codeql简介
codeql是一个将代码转化成类似数据库的形式,并基于该database进行分析的引擎。在 CodeQL 中,代码被视为数据。安全漏洞、Bug 和其他错误被建模为可针对从代码中提取的数据库执行的查询
CodeQL安装
准备工具:(Xshell Xftp)个人习惯 Linux系统环境 Codeql-Linux文件
安装网站:https://github.com/github/codeql-cli-binaries/releases
Llinux选择:codeql-linux64.zip文件 点击下载
linux上的Codeql的安装
进入Linux切换root用户并切换到根目录下
su root
cd /opt
进入根目录下后 创建codeql-cli文件夹
sudo mkdir -p /opt/codeql-cli

使用Xftp(个人喜好也可以用别的方式传进去就ok了)传入刚才下载好的Codeql-linux64.zip文件到codeqlProject目录
传入的codeql进行解压操作
1 | sudo unzip codeql-linux64.zip -d /opt/codeql-cli |
解压好后配置环境变量(暂时)
1 | export PATH="/opt/codeql-cli/codeql:$PATH" |
1 | 保存文件并执行以下命令使其立即生效: |
遇到问题:
1 | # CodeQL config |
1 | codeql |

创建 CodeQL 数据库
执行以下命令
1 | ./codeql database create <数据库名称> --language=java --command="mvn clean compile --file pom.xml" --source-root=<具体的项目地址> --overwrite |
必须指定以下内容:
1 | <database>:要创建的新数据库的路径。 执行命令时将创建此目录,无法指定现有目录。 |
CodeQL CLI 分析数据库
命令为:
1 | ./codeql database analyze <刚才生成的数据库名称和地址> --threads 16 java-security-and-quality.qls --format=csv --output=/opt/vpaas_framework_db_result.csv |
解释:
1 | --threads: |
通过指定套件来进行查询
1 | 例如: |
解释:
1 | <query-specifiers>:如果省略,将使用已分析数据库语言的默认查询套件 |
这里我把规则已经下载到了对应的目录,自己需要根据自己的目录来使用