CODEQL使用简介
codeql
codeql是一个可以对代码进行分析的引擎, 安全人员可以用它作为挖洞的辅助或者直接进行挖掘漏洞,节省进行重复操作的精力
下载:
解析引擎:https://github.com/github/codeql-cli-binaries/releases
SDK(规则库):https://github.com/github/codeql
使用方式简介:
1.解压解析引擎,将目录添加到环境变量,方便之后运行命令
2.执行命令,生成我们需要分析项目对应的database
注意:windows中建议用cmd不用powershell,powershell识别命令有bug
codeql database create 生成的数据库名 --language=项目语言 --source-root=项目源码路径 --command="编译命令"
codeql database create D:\Codeql\database\xxxdatabase --language=java --source-root=D:\project\DemoPro --command="mvn clean install -Dmaven.test.skip=true -Dmaven.repo.local=D:\maven\Rep --settings D:\maven\settings.xml"
#--source-root=源码路径 如果没有指定则需要进入到项目的pom目录中运行命令,指定了就可以在任何目录运行命令
#--command="编译命令" 如果项目需要编译,则需要添加此命令
3.执行扫描规则,生成分析结果
codeql database analyze 上一步生成的数据库路径名 扫描规则文件路径 --format=结果输出格式 --output=结果文件输出路径
运用官方规则集生成扫描结果
codeql database analyze D:\Codeql\xxx-database D:\Codeql\codeql-main\java\ql\src\Security\CWE --format=csv --output=D:\Codeql\result\result.csv
codeql database analyze D:\Codeql\xxx-database D:\Codeql\codeql-main\java\ql\src\codeql-suites\java-lgtm.qls --format=sarif-latest --output=D:\Codeql\result\result.sarif-latest
codeql帮助文档:
https://codeql.github.com/docs/codeql-overview/
https://www.freebuf.com/articles/web/283795.html