PortGPT:用AI革新开源软件安全补丁移植

70次阅读
没有评论

共计 1102 个字符,预计需要花费 3 分钟才能阅读完成。

在开源软件领域,维护旧版本的安全性一直是一项既重要又繁琐的任务。每当新版本修复了漏洞或错误,开发者们就需要将这些补丁 ’ 移植 ’ 到旧版本中,以确保长期支持的用户也能得到保护。然而,随着代码库的不断增长,这一过程变得越来越复杂和耗时。如今,一项名为 PortGPT 的新技术正在尝试用人工智能(AI)来改变这一现状。

PortGPT 是由来自中国、美国和加拿大的研究团队开发的一种 AI 系统,旨在自动化将安全补丁从主线分支迁移到旧版本软件中。与传统的基于规则的工具不同,PortGPT 试图复制人类开发者在手动适配补丁时所使用的推理步骤,从而更灵活地处理代码变化。

PortGPT:用 AI 革新开源软件安全补丁移植

PortGPT 的核心是一个大语言模型(LLM),它通过一组专用工具与代码进行交互。这些工具使 PortGPT 能够访问源文件、查看代码历史、定位函数,并逐步应用补丁。研究人员首先观察了人类开发者如何处理移植任务,然后赋予 PortGPT 类似的能力。例如,如果 AI 在旧版本中找不到某个函数,它可以搜索 Git 历史,查看该函数何时被引入或重命名。如果补丁无法编译,它可以使用编译器错误消息来改进其工作并重试。

PortGPT 的工作流程分为两个阶段:首先,它适配补丁的每个部分(称为 ’hunk’)以适应目标版本;其次,它组合所有适配的 hunk,将补丁应用到代码库中并运行编译测试。如果有错误,系统会分析它们并调整补丁。这种方法使 PortGPT 能够使用上下文和反馈,而不仅仅依赖预定义的转换规则。

研究团队在现有移植研究的近两千个补丁上测试了 PortGPT,结果显示其成功率达到 89.15%,优于其他自动化工具如 FIXMORPH 和 TSBPORT。在一个更难的、自建的包含 146 个复杂案例的数据集上,PortGPT 的成功率为 62.33%。此外,研究人员还将 PortGPT 应用于训练数据截止后发布的 Linux 和 Ubuntu 补丁,结果表明 AI 生成的补丁符合实际标准。

然而,PortGPT 的表现部分依赖于成熟开源项目中可用的结构化、高质量数据。当处理缺乏一致提交信息的仓库时,性能可能会下降。这种限制并非 AI 独有,人类维护者在面对糟糕的历史提交记录时也会遇到类似的困难。

虽然 PortGPT 仍处于研究阶段,但其成功暗示了 AI 如何改变开源软件的补丁管理。自动化移植可以减少漏洞披露和旧系统补丁可用之间的时间间隔,帮助依赖长期支持版本的安全团队保持其更新,而无需大量手动工作。

PortGPT 的成功也突显了使用大语言模型作为软件维护的自主代理的更广泛趋势。通过集成代码理解、版本控制意识和反馈循环,PortGPT 等工具展示了 AI 如何参与实际的开发工作流程,为未来的软件安全维护提供了新的可能性。

正文完
 0
admin-gah
版权声明:本文于2025-11-06转载自Help Net Security,共计1102字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)
验证码