3 月 21 日消息,GitHub 今天为所有 Advanced Security(GHAS)许可用户推出了全新的“代码扫描”功能(预览版),用于搜索 GitHub 代码中潜在的安全漏洞和编码错误。
这项新功能可利用 Copilot 与 CodeQL(IT之家注:CodeQL 是 GitHub 开发的代码分析引擎,用于自动执行安全检查)发现你的代码中可能存在漏洞或错误,并且对其进行分类和确定修复的优先级。值得一提的是,“代码扫描”需要消耗 GitHub Actions 的分钟数。
据介绍,“代码扫描”还可防止开发者引入新问题,还支持在特定日期和时间进行扫描,或在存储库中发生特定事件(例如推送)时触发扫描。
如果 AI 发现你的代码中可能存在漏洞或错误,GitHub 就会在仓库中进行告警,并在用户修复触发警报的代码之后取消告警。
要监控你的仓库或组织的“代码扫描”结果,你可以使用 web 挂钩和 code scanning API。此外,“代码扫描”也可与输出静态分析结果交换格式 (SARIF) 数据的第三方代码扫描工具互操作。
目前,对“代码扫描”使用 CodeQL 分析有三种主要方法:
- 使用默认设置在存储库上快速配置对“代码扫描”的 CodeQL 分析。默认设置自动选择要分析的语言、要运行的查询套件和触发扫描的事件,如果需要也可以手动选择要运行的查询套件以及要分析的语言。启用 CodeQL 后,GitHub Actions 将执行工作流运行以扫描代码。
- 使用高级设置将 CodeQL 工作流添加到存储库。这会生成一个可自定义的工作流文件,该文件使用 github / codeql-action 运行 CodeQL CLI。
- 直接在外部 CI 系统中运行 CodeQL CLI 并将结果上传到 GitHub。
GitHub 承诺,这一 AI 系统可以修复其发现的三分之二以上的漏洞,所以一般来说开发人员无需主动编辑代码。该公司还承诺,代码扫描自动修复将覆盖其支持的语言中超过 90% 的告警类型,目前包括 JavaScript、Typescript、Java 和 Python。
参考资料:
- 《About code scanning – GitHub Docs》
- 《About code scanning with CodeQL – GitHub Docs》