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