codeql学习案例

思路是找到一个开源的java项目,然后用codeql去检测。因为有vscode、cli两种方式可以用。这里选择CodeQL命令行界面(CLI)来运行。

一. 物料准备

1.1 拉取开源项目

git clone https://gitee.com/log4j/pig.git

1.2 下载codeql

git clone [email protected]:github/codeql.git

1.3 下载code-cli

下载地址,选择自己需要的版本。

1.4 配置codeql环境

见此文
以上就把需要的东西准备好了。下面开始正式操作。

二. 操作分析

2.1 在pig项目下,生成数据库

codeql database create java-database --language=java --command='mvn clean install'

备注:这里是用mvn来编译的java,如果电脑里没有mvn环境,需要自己安装一下mvn。
更多见

2.2 编写ql查询语句

刚开始学习,可能还不会这个语句,可以选择第1.2的下载下来的查询语句来运行。例如
codeql-main/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql
把codeql里的ql文件夹复制到pig目录下。

cd pig/
cp codeql-main/java/ql ./

2.3 执行分析

cd pig/
codeql database analyze java-database ql/security/CWE/CWE-020/UntrustedDataToExternalAPI.ql  --format=csv --output=result.csv

2.4 查看分析结果

执行2.3命令后,可以看到生成result.csv文件。文件内容如下:


image.png

分析结果见

你可能感兴趣的:(codeql学习案例)