深圳幻海软件技术有限公司 欢迎您!

GitHub 推出基于机器学习的代码扫描分析功能

2023-02-28

GitHub推出了一项由机器学习驱动的新代码扫描分析功能,该代码扫描功能可以针对四种常见漏洞模式显示警报:跨站点脚本(XSS)、路径注入、NoSQL注入和SQL注入。新的代码扫描功能由 CodeQL分析引擎​提供支持,启用CodeQL来针对某个代码库进行查询,即可识别潜在的安全漏洞。这些开

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
[...]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 对未启用代码扫描功能的用户来说,可按照说明为 JavaScript/TypeScript 代码配置分析,并在配置过程中加入上述分析套件。

  注意:基于机器学习的实验分析可能具有更高的误报率,与大多数机器学习模型一样,分析结果会随着模型的不断完善而改善。