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

2017 年 10 月 8 日 EGONetworks

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

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

“ 这些 App 怎么天天升级 ”。你心里有些不耐烦。如果有系统能自动修复补丁,可能就没这么麻烦了。你别说,还真有。

本文经 AI 新媒体量子位( 公众号 ID :QbitAI )授权转载,转载请联系出处。

麻省理工学院( 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

责任编辑:刘海星


往期热文



关于 EGO

关于 EGO极客邦科技旗下的高端技术领导者社群,汇聚全国超过 400 位技术大牛,其中不乏「饿了么」、「知乎」、「同程旅游」、「得到」、「喜马拉雅」、「新浪微博」等著名企业的 CTO 及技术 VP 。EGO 致力于组建全球最具影响力的技术领导者社交网络,联结杰出的技术领导者学习和成长。

第二季会员招募现已结束,欢迎添加 E 小欧( EGOWinner )微信了解第三季会员招募及更多 EGO 详情。加入 EGO ,与更多技术领导者同侪学习。

点击「 阅读原文 」即刻报名!

登录查看更多
0

相关内容

深入学习的成功来自于三个方面:高效的算法、强大的硬件和大规模的数据集。我们的实验室针对前两个方面,麻省理工学院汉实验室正在寻找有动机的学生在深入学习和计算机架构领域来解决有影响的人工智能问题,具有较轻的模型和较高的计算效率。
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
64+阅读 · 2020年3月26日
【综述】基于图的对抗式攻击和防御,附22页论文下载
专知会员服务
69+阅读 · 2020年3月5日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
【学界】毫秒级图像去噪!英伟达、MIT新AI系统完美去水印
GAN生成式对抗网络
8+阅读 · 2018年7月17日
【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文
GAN生成式对抗网络
8+阅读 · 2017年8月14日
Pluralistic Image Completion
Arxiv
8+阅读 · 2019年3月11日
Arxiv
6+阅读 · 2018年11月29日
Arxiv
3+阅读 · 2018年4月18日
Arxiv
6+阅读 · 2018年3月12日
VIP会员
Top
微信扫码咨询专知VIP会员