今日國(guó)內(nèi)新聞簡(jiǎn)訊seo云優(yōu)化
CodeQL 是什么?
CodeQL 是用于自動(dòng)執(zhí)行安全檢查的分析引擎。在 CodeQL 中,代碼被視為數(shù)據(jù)。 安全漏洞、bug 和其他錯(cuò)誤被建模為可針對(duì)從代碼中提取的數(shù)據(jù)庫執(zhí)行的查詢??梢赃\(yùn)行由 Github 研究人員和社區(qū)參與者編寫的標(biāo)準(zhǔn) CodeQL 查詢,也可以自己編寫查詢用于自定義分析。
接下來以 Golang 項(xiàng)目為例來看下如何下載安裝和使用 CodeQL。
下載安裝?CodeQL
1、下載 codeql-cli-binaries
到 codeql-cli-binaries 的 release 頁面(https://github.com/github/codeql-cli-binaries/releases)下載最新版的即可,下載完成后解壓到?$GOPATH/src/github.com/github/codeql-cli-binaries,并將 $GOPATH/src/github.com/github/codeql-cli-binaries 目錄添加到環(huán)境變量。
2、下載代碼庫?codeql
切換到?$GOPATH/src/github.com/github 目錄,執(zhí)行如下命令
git clone https://github.com/github/codeql.git
運(yùn)行 CodeQL 掃描代碼
切換到要掃描的 Golang 項(xiàng)目的根目錄,首先設(shè)置如下環(huán)境變量,表示在構(gòu)建 CodeQL 數(shù)據(jù)庫時(shí)啟用跟蹤:
CODEQL_EXTRACTOR_GO_BUILD_TRACING=on
構(gòu)建 CodeQL 數(shù)據(jù)庫:
codeql database create go-database --language=go
執(zhí)行代碼掃描并輸出 csv 類型的報(bào)告:
codeql database analyze go-database --format=csv --output=result.csv
完成掃描后輸出信息如下(這里只是截取了輸出的信息最后的部分,前面還有很多,這里為舉例使用省略掉了)
......
Interpreting results for go
Analysis produced the following diagnostic data:| Diagnostic | Summary |
+-----------------------------+-------------+
| Successfully analyzed files | 124 results |Analysis produced the following metric data:| Metric | Value |
+----------------------------------------+-------+
| Total lines of Go code in the database | 8383 |
可以打開 result.csv 文件查看掃描出來的漏洞情況及說明。
小結(jié)
本文簡(jiǎn)單介紹了如何在本地環(huán)境使用 CodeQL 掃描出代碼中的安全漏洞的方法,接下來的文章會(huì)詳細(xì)介紹?CodeQL 的使用方法。