GitHub 推出基於機器學習的程式碼掃描分析功能

2022-02-23 09:00:24

了一項由機器學習驅動的新程式碼掃描分析功能,該程式碼掃描功能可以針對四種常見漏洞模式顯示警報:跨站點指令碼 (XSS)、路徑注入、NoSQL 注入和 SQL 注入。

新的程式碼掃描功能由 提供支援,啟用 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-extendedsecurity-and-quality 其中一個碼掃描的使用者來說,該功能預設開啟。
  • 對已在使用程式碼掃描功能,但未使用上述分析套件的使用者,可以通過修改程式碼掃描操作的工作流組態檔,以啟用:
[...]
    - uses: github/codeql-action/init@v1
      with:
        queries: +security-extended
[...]
  • 對未啟用程式碼掃描功能的使用者來說,可按照為 JavaScript/TypeScript 程式碼設定分析,並在設定過程中加入上述分析套件。

注意:基於機器學習的實驗分析可能具有更高的誤報率,與大多數機器學習模型一樣,分析結果會隨著模型的不斷完善而改善。

展開閱讀全文