GitHub最新的人工智能工具可以自动修复代码漏洞
对于虫子来说,今天是个糟糕的一天。今天早些时候,Sentry 宣布了其 AI 修复功能,用于调试生产代码,现在几个小时后,GitHub 推出了首个代码扫描自动修复功能的测试版,用于在编码过程中查找和修复安全漏洞。这项新功能结合了 GitHub 的 Copilot 实时功能和 CodeQL、公司的语义代码分析引擎。该公司于去年11月首次预览了这一功能。
GitHub承诺,这个新系统可以修复超过三分之二的漏洞,通常无需开发人员自行编辑任何代码。该公司还承诺,代码扫描自动修复将覆盖其支持的语言(目前为JavaScript、TypeScript、Java和Python)超过90%的警报类型。
现在,这一新功能已经对所有GitHub高级安全(GHAS)的客户开放。
GitHub 在今天的公告中写道:“正如 GitHub Copilot 可以减轻开发者繁琐重复的任务,代码扫描自动修复功能将帮助开发团队重新获取以前用于修复的时间。安全团队也将受益于减少日常漏洞数量,因此他们可以集中精力制定保护业务的策略,同时跟上加速的开发步伐。”
在背景中,这项新功能使用了CodeQL引擎,GitHub的语义分析引擎来查找代码中的漏洞,甚至在代码执行之前。该公司在2019年末收购了代码分析初创公司Semmle后,将第一代CodeQL提供给公众使用,CodeQL在该公司孵化。多年来,他们对CodeQL进行了许多改进,但一个从未改变的事实是,CodeQL仅供研究人员和开源开发者免费使用。
现在,CodeQL是这个新工具的核心,尽管GitHub还指出它使用“启发式方法和GitHub Copilot API的组合”来建议修复方案。为了生成修复方案及其解释,GitHub使用了OpenAI的GPT-4模型。尽管GitHub明显足够自信,可以建议绝大多数自动修复建议都是正确的,但该公司也指出,“一小部分建议的修复方法会反映出对代码库或者漏洞的显著误解。”