目录
1、下载配置 codeql
1.1 配置 codeql
1.2 配置 maven
2、测试 codeql 漏洞检测
2.1 构建 codeql 查询数据库
2.2 漏洞检测
测试环境:centos7 + jdk11 + maven
1、下载配置 codeql
1.1 配置 codeql
下载安装 codeql-cli: https://github.com/github/codeql-cli-binaries/releases
下载 codeql 官方库:https://github.com/github/codeql
cd /opt && mkdir codeql
mv codeql-linux64.zip /opt
mv codeql-main.zip /opt
unzip -q -d codeql codeql-linux64.zip
unzip -q -d codeql codeql-main.zip
mv codeql/codeql codeql/codeql-cli
mv codeql/codeql-main codeql/codeql-repo
加入到环境变量
echo "export PATH=\$PATH:/opt/codeql/codeql-cli" >> /etc/profile
source /etc/profile
1.2 配置 maven
下载 java 依赖管理工具,maven 最新版:Maven – Download Apache Maven
unzip -q -d /usr/local/ apache-maven-3.8.6-bin.zip
echo "export MAVEN_HOME=/usr/local/apache-maven-3.8.6" >> /etc/profile
echo "export PATH=$PATH:$MAVEN_HOME/bin" >> /etc/profile
source /etc/profile
mvn -v
2、测试 codeql 漏洞检测
2.1 构建 codeql 查询数据库
测试项目下载地址:https://github.com/JoyChou93/java-sec-code/releases
下载解压,进入解压后的目录,构建 codeql 查询数据库,构建不成功的可能要挂代理,让 maven 能成功下载依赖
unzip -q java-sec-code-2.0.0.zip
cd java-sec-code-2.0.0
# 在当前目录创建名为 test 的数据库
codeql database create test --language=java
构建完成会在 test 目录下生成 db-java 目录
如果报 Evaluator heap must be at least 错,把机器内存调大点,或者把 java heap 相关的参数调大点
2.2 漏洞检测
使用官方的规则进行扫描
codeql database analyze test "/opt/codeql/codeql-repo/java/ql/src/Security/" --format=sarif-latest --output=java-results.sarif --threads=4
结果保存在 /opt/java-sec-code-2.0.0/java-results.sarif 文件中