专业的信息化与通信融合产品选型平台及垂直门户
注册 登陆 设为首页 加入收藏
首页 企业新闻 招标信息 行业应用 厂商专区 活动 商城 中标信息

资讯
中心

新闻中心 人物观点
厂商专区 市场分析
行业
应用
政府机构 能源产业 金融机构
教育科研 医疗卫生 交通运输
应用
分类
统一协作 呼叫客服 IP语音 视频会议 智能管理 数据库
数字监控 信息安全 IP储存 移动应用 云计算 物联网

TOP

麻省理工学院(MIT)发明漏洞自动修复系统
2015-07-02 16:10:48 来源:FreeBuf 作者:【
关键词:CodePhage MIT
 
在上月计算机协会编程语言设计与实现会议上(Association for Computing Machinery's Programming Language Design and Implementation),MIT研究人员展示了一个新的系统,能够通过导入其他更为安全的应用程序功能,自动修复危险的软件漏洞。

  在上月计算机协会编程语言设计与实现会议上(Association for Computing Machinery's Programming Language Design and Implementation),MIT研究人员展示了一个新的系统,能够通过导入其他更为安全的应用程序功能,自动修复危险的软件漏洞。

  漏洞自动修复系统:CodePhage

  该系统称为CodePhage,它在自动“借用”其他程序的功能时并不需要获取源代码。因此,被导入程序(即Donor捐献者,后文简称D)的开发语言并不重要。一旦用于修复的代码导入至有漏洞的应用程序(即Recipient接收者,简称R)中,CodePhage可以提供一个更深层的分析,以确保漏洞被修复。

  MIT 计算机科学与人工智能实验室(CSAIL)CodePhage开发负责人Stelios Sidiroglou-Douskos表示,

  “在开源库中,我们有大量的源代码可供使用,这些数以百万计的项目以及大量规范相似的项目实现。随着时间的推移,你需要完成的就是从这些项目中获取最好的组件来构建CodePhage——这一混合系统。”

  开始分析时,CodePhage需要两个样本值输入:一个会造成 R 崩溃,另一个则不会。一个称为DIODE的漏洞定位程序可自动生成引起崩溃(crash-inducing)输入。但用户仅仅认为是打开了一个特定文件而引发的崩溃事故。

  系统运行过程

  首先,CodePhage为 D 提供了一个不会引起崩溃的“安全”输入。然后跟踪 D 的执行操纵序列并使用符号表达式记录下它们,这里的符号表达式(symbolic expression,简称SE)是一串描述操作系统施加的逻辑约束符号。

  在某些情况下,比如可能会检测 D 的输入是否小于某个阈值。如果结果是小于的,CodePhage将添加一个 SE 术语来表示该情况低于阈值。这里并不记录文件的实际大小,仅仅是通过检测施加限制约束。

  接下来,CodePhage为 D 提供一个引起崩溃的输入。它再一次构建了一个SE来代表 D 执行的操作程序。但是当新的SE从旧的当中分离出时,CodePhage会中断其过程。这一偏差(divergence)就是了安全输入会遇到的约束而引起崩溃的输入不会遇见。因此,这可能是R安全检测所缺失的部分。

  然后CodePhage分析 R 程序以寻找大多数 SE 所限制输入的位置,但不是全部。R能以不同的顺序执行不同的操作,而非完全按照施者所做的,同时可以储存不同形式数据。在这个过程之后,SE 描述了数据的状态,而非过程本身。

  在每个标识的位置,CodePhage能够不受大部分 SE 的约束——同样适用 R。从第一个位置开始,CodePhage将仍然留在 R 程序语言中的少量约束转化成新代码,并将其插入源代码中。然后再次运行引起崩溃输入。

  如果程序可以运行,则新代码解决了这个问题。如果没有,CodePhage会移动到R的下一个候选位置。如果项目依旧崩溃,即使在CodePhage已经尝试修复了所有候选位置之后,它仍会重返 D 程序,并继续建立 SE,直至找到下一个偏差。

  <上述内容专业性很强,小编翻译的比较生涩……具体

  <  <  自动化的未来

  研究人员在发现漏洞的DIODE七个常见开源项目中测试了CodePhage,每个从 D 导入了两个到四个数量不等的漏洞修复。在所有情况下,CodePhage均能够修复漏洞代码,并且每个修复只需要二到十分钟时间。

  安全检测占据了现代商业软件80%甚至更多的代码。研究者希望未来CodePhage的版本中可以实现自动检查并插入系统,从而大大减少软件开发者花费在繁重工作中的时间,解放程序员。

  开发者之语

  MIT计算机科学与工程教授Martin Rinard说,

  “未来的愿景是,你再也不需要写一段别人曾写过的代码。这个系统能够发现代码,并无论是何种代码都能自动把它们连在一起,让你的程序运行起来。

  借用另一个具有相似功能程序代码的技巧,并且用来修复一个基本上已经坏掉的程序,这是非常酷的过程。说实话,我很惊讶它竟然能够运行。”

  Berger解释说,

  “施者程序并不是相同的人写的。他们有不同的编码标准;对变量的命名也不同;使用完全不同的变量;这些变量可以是本地的;或者是更高的堆栈。CodePhage能够识别这些链接,并判断‘这些变量与这些变量有关联’。与器官捐赠相似,通过遗传密码的转移让个体更完美。它的工作原理及最终成果真的很令人惊讶,这非常酷。”

      

责任编辑:admin
免责声明:以上内容转载互联网平台或企业单位自行提供,对内容的真实性、准确性和合法性不负责,Voipchina网对此不承担任何法律责任。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部

上一篇SDN发展方向: 网络加安全
下一篇苹果在新版iOS以及OS X中修复了诸..

热门文章

图片主题

最新文章

相关文章

广告位

Copyright@2003-2009 网络通信中国(原VoIP中国) 版权所有
联系方式:503927495@qq.com
  京ICP备05067673号-1 京公网安1101111101259