GitHub本周在其GitHub高级安全(GHAS)中推出了其Copilot自动修复高级AI代码扫描和修复产品。Copilot自动修复使用AI来查找代码中的漏洞,解释其重要性并提供代码建议来修复它们,GitHub首席安全官兼高级副总裁MikeHanley在公司博客上的文章中写道。
“代码扫描工具检测漏洞,但它们没有解决根本问题:修复需要安全专业知识和时间,这两种资源都非常宝贵且供应不足,”Hanley在文章中写道。“换句话说,发现漏洞不是问题。修复它们才是。”
Copilot自动修复使用能够实时做出决策、计划和适应新信息的AI代理。事实上,Hanley写道,在3月份推出的该产品的公开测试版期间,GitHub了解到开发人员修复代码漏洞的速度比手动修复快三倍以上。
克服长期困扰
开发人员长期以来一直在努力使用应用程序安全测试(AST)工具来查找应用程序源代码中的安全漏洞,企业战略集团分析师DavidVance告诉TheNewStack。传统的AST工具以速度慢且容易出现误报而闻名。他说,凭借GitHub庞大的开发者社区,将应用程序安全功能引入其平台是顺理成章的事情。
GitHub的Copilot自动修复是下一波应用程序安全创新的最新例子,它还有助于减少开发人员对安全工具的摩擦。
在测试版期间,开发人员在他们的拉取请求中使用Copilot自动修复来快速修复新代码中的漏洞,以防止它们合并到生产环境中,从而影响客户。
“通过允许开发人员尽早识别其源代码中的安全漏洞,它极大地减少了在编码完成后修复漏洞所需的时间和精力,”Vance说。
Hanley在他的博客文章中写道,开发人员使用Copilot自动修复自动提交拉取请求时间警报修复的平均时间为28分钟,而手动解决相同警报则需要1.5小时。
“可以为数十种代码漏洞类别生成修复,例如SQL注入和跨站点脚本,开发人员可以在他们的拉取请求中忽略、编辑或提交这些修复,”他写道。
事实上,Copilot自动修复在查找和修复跨站点脚本漏洞方面快了七倍——22分钟,而手动修复则需要近三个小时。该公司表示,它在查找和修复SQL注入漏洞方面快了12倍——18分钟,而手动修复则需要3.7小时。
“自从实施Copilot自动修复以来,我们观察到与安全相关的代码审查时间减少了60%,总体开发效率提高了25%,”Optum首席工程师KevinCooper在一份声明中说。
此外,“在安全至关重要的医疗保健领域,它帮助我们快速采取经过验证的行业解决方案。这种主动的安全方法有助于我们预防潜在问题,每月节省数千小时,否则这些时间将用于修复,”Cooper补充道。
“有趣的分裂”
“保护代码一直存在一个有趣的分裂:负责修复安全漏洞的个人——软件开发人员——通常既缺乏时间,也缺乏完成此任务所需的培训,”ForresterResearch分析师JanetWorthington告诉TheNewStack。
静态应用程序安全测试(SAST)工具扫描代码库,并根据安全缺陷和编程语言向开发人员提供修复指南。然而,Worthington说,这些建议可能过于笼统,或者更适合已经熟悉安全术语的安全专业人员。
Hanley表示,CopilotAutofix背后利用了CodeQL引擎、GPT-4o以及启发式算法和GitHubCopilotAPI的组合来生成代码建议。
“像GitHub的CodeQL这样的安全工具正在利用生成式AI来减轻软件开发人员修复安全缺陷的负担,同时降低风险,”Worthington说。
借助GitHubCopilotAutofix等创新,开发人员会看到安全缺陷以及针对其代码的自动生成的修复,开发人员可以审查并根据需要接受或修改修复。这不仅提高了开发人员的生产力,而且提高了有效解决问题的可能性。
“虽然这一进步标志着代码安全方面的重大进展,但重要的是要认识到生成式AI并非完美无缺,”Worthington说。“任何由自动化工具提供的修复都必须像其他任何代码更改一样经过严格审查,在集成到主分支之前,要进行SAST、软件成分分析和同行代码审查。”
CopilotAutofix的工作原理
Hanley表示,要为现有代码中的漏洞启动CopilotAutofix,只需在GHAS代码扫描警报中的警报上按下“生成修复”按钮。CopilotAutofix会评估代码和漏洞,并返回解释和代码建议以供审查。然后,开发人员可以按下“使用修复创建PR”按钮来创建一个新的拉取请求,其中包含修复警报的代码更改。
“CopilotAutofix负责繁琐的安全任务,确保我们现有的和新的代码始终尽可能安全,”Otto(GmbH&CoKG)安全社区经理MarioLandgraf在一份声明中说。“漏洞会立即被标记,并会自动推荐代码更改。它可以帮助我们的团队腾出时间,以便他们专注于更具战略意义的举措。”
与此同时,从9月开始,GitHub将在拉取请求中添加CopilotAutofix,将其添加到为所有开源项目提供的工具列表中。该列表已经包括GitHub的代码扫描、秘密扫描、依赖项管理和私有漏洞报告工具,这些工具都是免费提供的。
【查看完整讨论话题】 | 【用户登录】 | 【用户注册】