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