何谓软件移植?它们如何修复受损代码?它会在企业软件生命周期中占据一席之地吗?此外,它们是否会导致更多的软件漏洞和安全漏洞?
Michael Cobb:软件开发人员喜欢从网上复制和粘贴密码。不管是关于一个函数如何工作的、一个代码片段还是多行开源库。这节省了大量的时间和金钱,且可以让开发人员能快速添加特性和功能,而无需从头开始创建。
在开发一个应用时,开发团队可以很轻易地使用从网上找来的一百种以上的开源库、框架和带有代码片段的工具。《2014 Sonatype开源开发调查》发现,一个典型应用的90%都是由开源组件“组装”而成的,其中有很多也带有已知的安全漏洞。
这是一个十分严重的问题:同样的受损代码可被成千上万的应用重复使用。实际上在最近的OWASP前10名应用程序漏洞列表上这已经显现出来。
为了解决这一问题,麻省理工学院的研究人员想出了一种方法——用从其他运行正确的程序的代码替代受损代码,这是最佳的一种自我完善的模式。他们的系统被称作CodePhage,它能识别并解决常见的编程错误,例如越界访问、整数溢出和“除以0”的错误。
CodePhage通过分析受损代码如何处理数据不会造成奔溃或故障以及会造成失误的代码来工作的。然后会将带有错误的输入内容反馈给原来的程序并记录究竟是哪些检查并约束其安全地处理输入,通常都是一个函数或审查输入数据的程序。之后检查一下嵌入的代码是否已经修正这个错误。如果还没有,它会继续寻找两个程序在处理输入方面的差异。CodePhage不需要访问来源应用的开源代码,它能够从已用编程语言写好的应用中开启检查,而不是从正在修复的程序中。
对各种常用开源程序(在这些程序中他们包括错误输入的产生器DIODE已被发现存有漏洞)进行早期测试看上去是非常有前景的,每次在2~4个来源应用中使用,受损代码可在2~10分钟解决。
因为很多编码时间可确保数据输入不会干扰到程序的预期流动,CodePhage能够通过在开发过程中自动纠正代码错误从而节省开发时间。作为一个自动代码分析和修复工具,CodePhage前途无量,企业开发团队可时刻关注其动向,如果有可能的话将其纳入到自己的构建过程中。如果开发人员弃安全代码实践于不顾,而只是依赖将其嵌入至重要安全检查中,那么这将是对该技术的滥用。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
敏捷开发时代:软件安全测试需更灵活
持续的测试方法已经日益重要,其动态性就像新的开发过程一样。幸运的是,企业越来越明白这种不断增长的需要,并且重新思考整个过程……
-
企业是否应信任第三方代码?
软件日益成为企业从事各种业务的核心,而合作伙伴提供软件中的漏洞可能会成为企业的漏洞。企业是否该信任第三方代码呢?
-
关于软件开发安全的CISSP秘籍(二)
对于软件问题,最好的办法是在一开始构建软件开发安全流程。然而,软件程序通常将功能摆在首位,而不是安全性。事实上,从一开始将安全构建到每个软件中要比随后增加安全性更为有效。
-
关于软件开发安全的CISSP秘籍(一)
对于软件问题,最好的办法是在一开始构建软件开发安全流程。然而,软件程序通常将功能摆在首位,而不是安全性。而其实,从一开始将安全构建到每个软件中要比随后增加安全性更为有效。