CodeQL简介
CodeQL是一个非商业的开源代码自动化审计工具,Github收购后,开源了CodeQL的规则部分,所以收集了大量的规则,安全工程师可以依赖CodeQL的规则实现对多种开发语言项目的代码审计工作
CodeQL原理
CodeQL将代码转化成可查询数据库,代码被视为数据,漏洞、bug、错误,被建模为可针对从代码中提取的数据库执行查询. Extractor 模块对源代码工程进行关键信息分析提取,构成一个关系数据库.对于编译型语言,Extractor 会监控编译过程,编译器每处理一个源代码文件,它都会收集源代码的相关信息,如语法信息、语意信息、控制流、数据流。对于解释性语言,Extractor 则直接分析源代码,得到类似的相关信息。分析后的数据导入CodeQL database.
CodeQL安装
解析引擎安装
https://github.com/github/codeql-cli-binaries/releases
下载
https://github.com/github/codeql-cli-binaries/releases/download/v2.13.3/codeql.zip
#Windows 加入系统path
#Linux cd /usr/bin sudo ln -s /root/Codeql/codeql/codeql codeql source /etc/profile
SDK安装
git clone https://github.com/github/codeql.git
创建一个目录
codeql 和 sdk保存到该目录,可以重名为pl(这个很重要,要不然会出一些奇葩错误)
codeql配置环境变量
vscode安装codeql插件,配置好引擎路径
创建数据库
codeql database create d:\database\codeqltest --language=java --source-root=源码路径 --command="mvn clean install"
导入数据库
打开sdk的工作空间,创建test.ql,执行hello world,代表 CodeQL 开发环境和靶场数据库环境均成功准备完毕
语法参考:
https://blog.csdn.net/weixin_39190897/article/details/128435897
标签:github,CodeQL,codeql,--,实践,学习,https,源代码 From: https://www.cnblogs.com/fczlm/p/17479508.html