MIT研究人员发明漏洞修复系统,可自动给代码打补丁 | 附论文

简介:
本文来自AI新媒体量子位(QbitAI)

点开许久不用的“XX旅行”,你想买张回家的车票。页面上弹出的升级提示写着:

本次升级将修复系统XX功能漏洞。

“这些App怎么天天升级。”你心里有些不耐烦。

如果有系统能自动修复补丁,可能就没这么麻烦了。你别说,还真有。

麻省理工学院(MIT)电子工程和计算机科学教授Martin Rinard就曾开发出一些通用模板,算法可以通过模板生成并评估一系列备用补丁。

最近,Rinard的学生Fan Long和加州大学圣地亚哥分校的Peter Amidon又研发出一个新系统,通过分析软件已经打出的补丁,学习生成自己的模板。

在一个手工编码的补丁生成系统中,可能有5至10个模板,但这个新系统创建了85个,帮助它生成更多样化的精确补丁。它的模板可适用于特定类型软件,不会产生很多无用的备用补丁。在测试中,被称为“Genesis”的新系统修复的漏洞数量是最好的手工编码模板系统的两倍。

循环评估

“这是一个权衡的过程,”Long说,“一方面,你想生成足够多的备用补丁,让你可以从中挑选出有用的那几个。另一方面,你又不想让备用补丁数量过多,多到无法找到它。”

训练Genesis的数据集中包含两组代码块:原始代码、漏洞及修复的补丁的代码。Genesis先构造出几对训练实例,这样数据集中的每一项都能与其他项配对。

之后,Genesis分析每一对实例,并创建一个通用的表示形式,即模板草稿,它将两个原始版本的两个补丁合成在一起,也可能合成其他无用的备用补丁。

接下来,Genesis测试了训练集中所有示例的每个模板。每个模板仅基于两个示例合成,但也可能适用于其他几个例子。模板有两个标准,即漏洞的数量和产生的无用备选模板的数量。

例如,一个模板生成了10个备用补丁,其中4个在训练数据中出现错误,而另一个模板生成了1000个备用补丁,其中只有5个可以用的补丁。相比之下,还是前者更合适。

在这些评分标准的基础上,Genesis选择了500个最有能力胜任的模板。对每个模板来说,它都以此用其他示例增强最初两个示例的训练集,创建了一个庞大的三例训练集。每个训练集都会改变草稿模板,产生更通用的模板,然后执行同样的评估程序。

巨大潜力

这个过程循环四轮后,500个最好的模板都接受了五个示例的训练。最后,用稍微有些不同的评估标准进行筛选,确保训练集中每个错误都被纠正了。

在研究人员的实验中,最终的筛选将模板的数量从500减少到85。在Genesis里用Java编写的程序中,MIT的研究人员将其性能与表现最好的手工编码的Java补丁生成器做了对比。

从41个开源编程项目中抽取的49个测试用例中,Genesis正确修补了其中21个漏洞,而手工编码的系统则修补了11个。

研究人员表示,如果训练数据更充足、计算能力更强大,评估的备用模板可能结果还能更好。

最后,附研究论文地址:

https://people.csail.mit.edu/rinard/paper/fse17.genesis.pdf

本文作者:安妮
原文发布时间:2017-09-29
相关文章
|
8月前
|
数据采集 人工智能 机器人
微软37页论文逆向工程Sora,得到了哪些结论?
【2月更文挑战第14天】微软37页论文逆向工程Sora,得到了哪些结论?
118 3
微软37页论文逆向工程Sora,得到了哪些结论?
|
2月前
|
人工智能 监控 安全
大模型训练遭投毒损失千万美元?Anthropic惊人发现:LLM植入炸弹,代码库暗藏bug!
在AI领域,前沿语言模型的快速发展引人注目,但也带来了潜在的灾难性风险。Anthropic等机构研究了模型的破坏性能力,即模型在特定情境下通过隐蔽手段破坏人类评估、监控或决策的能力。研究团队设计了模拟部署场景的评估方法,对Claude 3 Opus和Claude 3.5 Sonnet模型进行了评估,发现这些模型在当前监督下未达到破坏性能力的阈值,但随着能力提升,未来可能需要更严格的评估和缓解措施。
41 4
|
人工智能 自然语言处理 算法
prompt攻防战!哥伦比亚大学提出BPE造词法,可绕过审核机制,DALL-E 2已中招
prompt攻防战!哥伦比亚大学提出BPE造词法,可绕过审核机制,DALL-E 2已中招
176 0
|
Windows
微软终于决定解决这项恼人问题
一直以来我们在使用Windows系统都会遇到一个令人非常厌烦的问题,就是当删除某个文件时会弹出“文件正在被使用,您无法删除该文件”的窗口,而你没有别的办法只能点击“确定”。或者使用任务管理器直接结束这项进程,但问题是不是所有程序你都能找到进程,有些非常小的dll进程普通人根本不知道它属于哪项程序,最后唯一的办法可能就是重启再删除了。
145 0
微软终于决定解决这项恼人问题
|
Web App开发 安全 Windows
微软将迎来迄今最大补丁日 一次修补49个漏洞
据国外媒体报道,微软下周二将发布16个补丁程序,总计修复高达49处漏洞,是迄今为止修复漏洞数量最多的一个“补丁日”。 每月的第二个星期二为微软的“补丁日”,即发布一系列补丁程序,修复存在于微软各大产品中的漏洞。
902 0
|
监控 安全
NSA Fuzzbunch中EternalRomance工具复现过程
     自Shadow Brokers公布NSA泄露工具后,各路大神陆陆续续发表复现过程,这几天也仔细试了各种套路,一直想弄明白DoublePulsar中的shellcode到底是如何用的,刚好又在模拟环境中偶遇Windows Server 2003,EternalRomance貌似只能用shellcode方式植入利用,于是各种试错以后有了这篇文章。
1716 0
|
安全 Windows
Google工程师发现公布XP漏洞 并提供攻击代码
来自TechTarget的报道称:Google工程师塔维斯·奥曼迪(Tavis Ormandy)日前公开了Windows XP的一处漏洞,该漏洞允许黑客控制用户计算机,此举导致微软很不高兴。 尽管奥曼迪已经声明,该行为只代表个人,与 Google 公司无关,但微软还是很生气。
798 0
|
安全
微软正准备一个简易的Rootkit清除方案 助用户打补丁
昨天微软MSRC确认了安装MS10-015更新后出现蓝屏问题是由Alureon的rootkit导致,今天微软表示,已经研究出一个简单的解决方案来检测和清除受影响系统中的Alureon。 当然,其它第三方安全公司也已经开始集中研究Alureon所造成的问题。
639 0
|
机器学习/深度学习 人工智能 算法
MIT数亿美金构建MIT IQ 项目,逆向工程人类智能打造可自我发育的计算机
MIT发起MIT IQ项目,旨在联合多个学科,对人类智能进行逆向工程,为机器学习和人工智能创造新的算法,并促进协作,共同推动AI的突破。该项目包含“核心”和“桥梁”两个实体,分别注重基础研究和应用研究。该项目或能促进学术界与工业界、AI学科与其他学科为实现AI突破的更多合作。
2339 0