美国麻省理工学院的研究人员日前对外展示了一种能够自行修复程序漏洞的系统。这套名为CodePhage的系统,可在无需人工干预、不用访问应用程序源代码的情况下,从其他程序中寻找合适的代码对存有高危漏洞的程序进行修复,直至问题解决为止。
领导此项研究的麻省理工学院计算机科学与人工智能实验室(CSAIL)科学家斯泰利奥斯·塞迪罗格鲁-杜斯克斯说,在开源程序库中有海量的代码,涵盖数以百万计的项目,而其中不少在功能上都存在相似性。CodePhage正是基于这一点来开发的。
在运行时,这套系统就像修补匠一样,首先识别出目标软件中的故障组件,再从程序库中找到与其功能类似的完好“新零件”,然后将“新零件”安装到目标软件上替换故障组件。这个过程会不断重复,直到系统认为“新零件”已经完美地解决了问题。
为了测试其有效性,研究人员用该系统对开源程序中的7个漏洞进行修复,结果发现在所有情况下,它都能完成修复漏洞的任务,花费的时间从2分钟到10分钟不等。
当然,由于不同的软件采用了不同的编码标准、变量名称以及变量类型,且变量也有区域性与全局性的区别,要识别这些不同,让来自不同软件的代码完美地结合起来并不是一件简单的事情。
研究人员称,他们的长期愿景是:人们无需进行重复劳动,去写那些之前已经有人写过的代码,在需要时,只需自动寻找相应代码,然后将所需的部分组合成一个能够运行的整体。他们认为这将大幅减轻程序员的工作强度。
美国马萨诸塞大学阿默斯特分校计算机科学教授埃默里·伯杰说:“这个技术能从另外一个程序中寻找适合的代码修复漏洞,通过这种方式来解决问题。说实话,我很惊讶,它非常酷。”
转载自:http://www.cutech.edu.cn/cn/gwkj/2015/07/1435283054022008.htm