GitHub 推出基于機(jī)器學(xué)習(xí)的代碼掃描分析功能
GitHub 推出了一項(xiàng)由機(jī)器學(xué)習(xí)驅(qū)動(dòng)的新代碼掃描分析功能,該代碼掃描功能可以針對(duì)四種常見(jiàn)漏洞模式顯示警報(bào):跨站點(diǎn)腳本 (XSS)、路徑注入、NoSQL 注入和 SQL 注入。
新的代碼掃描功能由 CodeQL 分析引擎?提供支持,啟用 CodeQL 來(lái)針對(duì)某個(gè)代碼庫(kù)進(jìn)行查詢,即可識(shí)別潛在的安全漏洞。這些開(kāi)源查詢由社區(qū)成員和 GitHub 安全專(zhuān)家編寫(xiě),盡可能多地識(shí)別特定漏洞類(lèi)型的變體,并提供廣泛的通用弱點(diǎn)枚舉 (CWE) 覆蓋范圍。
該功能對(duì) JavaScript 和 TypeScript 代碼的靜態(tài)分析,涵蓋了整個(gè) OWASP(開(kāi)放式 WEB 應(yīng)用程序安全項(xiàng)目)的十大漏洞類(lèi)型。功能目前處于 beta 版本,側(cè)重于為一些最常見(jiàn)和最危險(xiǎn)的漏洞:
- 跨站點(diǎn)腳本(XSS、CWE-79)
- 路徑注入(CWE-22、CWE-23、CWE-36、CWE-73、CWE-99)
- NoSQL 注入 (CWE-943)
- SQL 注入 (CWE-89)
隨著開(kāi)源生態(tài)系統(tǒng)的快速發(fā)展,不常用的庫(kù)越來(lái)越多。因此新的掃描功能使用由手動(dòng)編寫(xiě)的 CodeQL 查詢提供的示例,不斷地識(shí)別同類(lèi)開(kāi)源庫(kù)以及內(nèi)部開(kāi)發(fā)的閉源庫(kù),以此來(lái)訓(xùn)練深度學(xué)習(xí)模型。使用這些模型,CodeQL 可以識(shí)別更多不受信任的用戶數(shù)據(jù)流,從而識(shí)別更多潛在的安全漏洞。
如何打開(kāi)該代碼掃描功能?
- 對(duì)使用 security-extended? 或 security-and-quality? 其中一個(gè)代碼掃描分析套件的用戶來(lái)說(shuō),該功能默認(rèn)開(kāi)啟。
- 對(duì)已在使用代碼掃描功能,但未使用上述分析套件的用戶,可以通過(guò)修改代碼掃描操作的工作流配置文件,以啟用新的分析功能:
[]
- uses: github/codeql-action/init@v1
with:
queries: +security-extended
[ ]
- 對(duì)未啟用代碼掃描功能的用戶來(lái)說(shuō),可按照說(shuō)明為 JavaScript/TypeScript 代碼配置分析,并在配置過(guò)程中加入上述分析套件。
注意:基于機(jī)器學(xué)習(xí)的實(shí)驗(yàn)分析可能具有更高的誤報(bào)率,與大多數(shù)機(jī)器學(xué)習(xí)模型一樣,分析結(jié)果會(huì)隨著模型的不斷完善而改善。