“软件移植”如何修复受损代码?

简介:

何谓软件移植?它们如何修复受损代码?它会在企业软件生命周期中占据一席之地吗?此外,它们是否会导致更多的软件漏洞和安全漏洞?

Michael Cobb:软件开发人员喜欢从网上复制和粘贴密码。不管是关于一个函数如何工作的、一个代码片段还是多行开源库。这节省了大量的时间和金钱,且可以让开发人员能快速添加特性和功能,而无需从头开始创建。

“软件移植”如何修复受损代码?

在开发一个应用时,开发团队可以很轻易地使用从网上找来的一百种以上的开源库、框架和带有代码片段的工具。《2014 Sonatype开源开发调查》发现,一个典型应用的90%都是由开源组件“组装”而成的,其中有很多也带有已知的安全漏洞。

这是一个十分严重的问题:同样的受损代码可被成千上万的应用重复使用。实际上在最近的OWASP前10名应用程序漏洞列表上这已经显现出来。

为了解决这一问题,麻省理工学院的研究人员想出了一种方法——用从其他运行正确的程序的代码替代受损代码,这是最佳的一种自我完善的模式。他们的系统被称作CodePhage,它能识别并解决常见的编程错误,例如越界访问、整数溢出和“除以0”的错误。

CodePhage通过分析受损代码如何处理数据不会造成奔溃或故障以及会造成失误的代码来工作的。然后会将带有错误的输入内容反馈给原来的程序并记录究竟是哪些检查并约束其安全地处理输入,通常都是一个函数或审查输入数据的程序。之后检查一下嵌入的代码是否已经修正这个错误。如果还没有,它会继续寻找两个程序在处理输入方面的差异。CodePhage不需要访问来源应用的开源代码,它能够从已用编程语言写好的应用中开启检查,而不是从正在修复的程序中。

对各种常用开源程序(在这些程序中他们包括错误输入的产生器DIODE已被发现存有漏洞)进行早期测试看上去是非常有前景的,每次在2~4个来源应用中使用,受损代码可在2~10分钟解决。

因为很多编码时间可确保数据输入不会干扰到程序的预期流动,CodePhage能够通过在开发过程中自动纠正代码错误从而节省开发时间。作为一个自动代码分析和修复工具,CodePhage前途无量,企业开发团队可时刻关注其动向,如果有可能的话将其纳入到自己的构建过程中。如果开发人员弃安全代码实践于不顾,而只是依赖将其嵌入至重要安全检查中,那么这将是对该技术的滥用。


作者:Michael Cobb

来源:51CTO

相关文章
|
安全 Unix Linux
操作系统紧急故障修复常见有效方案
操作系统是计算机系统的核心软件之一,如果操作系统出现了紧急故障,将会引起系统的宕机,严重影响业务系统的可用性。因此,对操作系统的紧急故障进行修复是必不可少的。本文将介绍操作系统紧急故障的常见有效方案。
316 1
|
5月前
|
运维 监控 固态存储
|
小程序 Android开发 iOS开发
小程序 | 小程序修复了一些bug
前段时间,有朋友反应小程序的今天吃个啥有bug,不能正常使用。
146 0
|
安全 Windows
计算机系统更新出现你的设备中缺少重要的安全和质量修复
计算机系统更新出现你的设备中缺少重要的安全和质量修复
606 1
计算机系统更新出现你的设备中缺少重要的安全和质量修复
|
安全 开发者 Windows
Windows 11 受“吐槽”?黑客开发者设计出更漂亮的 Rectify 11 系统来“修复”它
Windows 11 受“吐槽”?黑客开发者设计出更漂亮的 Rectify 11 系统来“修复”它
324 0
Windows 11 受“吐槽”?黑客开发者设计出更漂亮的 Rectify 11 系统来“修复”它
|
数据安全/隐私保护