什么是软件移植?他们如何修复受损代码?它会在企业软件生命周期中占有一席之地吗?此外,它们会导致更多的软件和安全漏洞吗?
Michael Cobb:软件开发人员喜欢从互联网上复制和粘贴密码。无论是如何工作一个函数、一个代码片段还是一个多行开源库。这节省了大量的时间和金钱,并允许开发人员在不开始创建的情况下快速添加特性和功能。
在开发应用程序时,开发团队可以很容易地使用从互联网上找到的100多个开源库、框架和带有代码片段的工具。2014 Sonatype开源开发调查发现,90%的典型应用是由开源组件制成的“组装”许多也有已知的安全漏洞。
这是一个非常严重的问题:成千上万的应用程序可以重复使用相同的损坏代码。事实上,在最近OWASP这已经出现在前十名应用程序的漏洞列表中。
为了解决这个问题,麻省理工学院的研究人员想出了一种 *** ——用其他正确程序的代码代替受损代码,这是***自我完善的模式。他们的系统被称为CodePhage,它可以识别和解决常见的编程错误,如越界访问、整数溢出和“除以0”的错误。
CodePhage通过分析损坏的代码如何处理数据而不会导致崩溃或故障和错误的代码来工作。然后将错误的输入内容反馈给原始程序,并记录检查和限制其安全处理输入,通常是一个函数或审查输入数据的程序。然后检查嵌入的代码是否已经纠正了错误。如果没有,它将继续寻找处理输入的两个程序之间的差异。CodePhage不需要访问源应用程序的开源代码,它可以从已用编程语言编写的应用程序中打开检查,而不是从正在修复的程序中。
包括错误输入的产生器在内的各种常用开源程序(DIODE早期测试似乎很有前途,每次都有漏洞)2~4可在个源应用中使用受损代码2~10分钟解决。
因为很多编码时间可以保证数据输入不会干扰程序的预期流动,CodePhage在开发过程中自动纠正代码错误可以节省开发时间。作为自动代码分析和修复工具,CodePhage前途无量,企业开发团队可时刻关注其动向,如果有可能的话将其纳入到自己的构建过程中。如果开发人员弃安全代码实践于不顾,而只是依赖将其嵌入至重要安全检查中,那么这将是对该技术的滥用。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。