CodeQL环境搭建
参考:https://help.semmle.com/codeql/codeql-cli/procedures/get-started.html
下载
下载链接:https://github.com/github/codeql-cli-binaries/releases
下载最新的codeql.zip就可以了,比如:
https://github.com/github/codeql-cli-binaries/releases/download/v2.1.0/codeql.zip
不要下载下面的Source code
。
搭建本地环境
新建一个codeql目录用来放cli工具,比如$HOME/codeql-home
。
下载CodeQL依赖的库和examples:
https://github.com/Semmle/ql
重新组织目录
组织完之后是这样的:
77@ubuntu:~/repos/CodeqlHome$ ls codeql-repo/
change-notes CODE_OF_CONDUCT.md CODEOWNERS config CONTRIBUTING.md cpp csharp docs java javascript LICENSE misc python README.md
77@ubuntu:~/repos/CodeqlHome$ ls codeql-cli/
codeql codeql.cmd codeql.exe cpp csharp go java javascript legacy-upgrades LICENSE.md Open-Source-Notices python tools xml
codeQL常用命令
查看codeql执行哪些语言:
codeql resolve languages
根据已有的源码创建codeql工程:
codeql database create CodeQL_java-sec-code --source-root=/home/77/repos/java-sec-code --language=java
codeql自动识别了这个项目是maven的,然后编译了。
然后得到了这样的一个codeql工程目录:
src.zip是源码的压缩包,
codeql命令行参考手册:
https://help.semmle.com/codeql/codeql-cli/commands.html
从LGTM.com中获取databases
LGTM.com已经使用CodeQL分析了上千个项目,可以从LGTM.com下载这些项目的databases。
一些CodeQL给Java写的示例
参考:https://help.semmle.com/QL/learn-ql/ql-training.html
//TODO