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

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

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

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

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

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

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

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

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

作者:Michael Cobb

来源:51CTO

时间: 2024-09-17 15:48:39

“软件移植”如何修复受损代码?的相关文章

善用系统自带软件修复受损U盘的方法

  善用系统自带软件修复受损U盘的方法: 1.依次打开控制面板.管理工具.计算机管理.存储.磁盘管理,就会出现有如图的界面,在文字"磁盘1"上单击右键,选择"初始化磁盘",直接单击"确定".初始化完成后,U盘的状态变为"联机"状态.(注:此时U盘的锁要处于打开状态,否则会出现如下提示:"由于媒体受写保护,要求的操作无法完成.") 2.在右边的白框单击右键,选择"新建磁盘分区",进入&qu

C#判断某个软件是否已安装实现代码分享

  这篇文章主要介绍了C#判断某个软件是否已安装实现代码分享,本文直接给出实现代码,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 private void button1_Click(object sender, EventArgs e) { if (checkAdobeReader() == true) { MessageBox.Sho

Win7系统使用SFC命令修复受损的系统文件的方法

  对于系统文件,大多数win7系统用户并不陌生.系统文件指的是存放操作系统主要文件的文件夹,该文件夹中的文件直接影响系统的正常运行,多数情况下是不能随意改变的.不过有用户在操作系统的过程中,发现系统中存在着一些损坏或者丢失的系统文件,那么这时候我们应该如何处理这个问题呢?其实我们可以用sfc命令来修复文件,今天小编就跟大家一起分享下具体的修复方法! 方法如下: 1.鼠标单击win7系统"开始"菜单,在搜索框中输入cmd; 2.鼠标右击cmd选择"以管理员身份运行"

软件乱码怎么修复

  软件乱码怎么修复 在使用英文系统,尤其是繁体或日韩语言系统中运行中文简体软件时,经常会遇到软件出现乱码问题,虽然能够正常运行,但文字不可识别,还是会造成使用困扰.难道非简体中文用户就无法使用这些简体软件了吗?当然不是,其实Windows已经提供了比较完善的解决方案. 方法一 利用微软的AppLocale来解决乱码问题 1此处用微软的AppLocale来解决软件乱码问题,其它工具的使用也差不多类似. 2装好Microsoft AppLocale软件后,程序不会在桌面建立快捷方式图标.应该点击"

聊天软件的数据库的表格代码是

问题描述 聊天软件的数据库的表格代码是 就是那个表格数据的建表,主键.聊天软件的数据库的表格代码.请各位大神帮帮 解决方案 ------------------------啥? 解决方案二: 参考这个看看 网络聊天工具的设计与实现_http://wenku.baidu.com/link?url=issjPPsQJsDUXGP2bXGxMwX63Hvslyl2P62DvYSxhm2IR_oAsBm1enB6M34BBsRK7iweCQBTaJDmwTwfJ4SlakpEbxVNiLfZoXb9QM

windows-Azure能将非.net的软件移植到Windows Azure上吗

问题描述 Azure能将非.net的软件移植到Windows Azure上吗 Azure能将非.net的软件移植到Windows Azure上吗 解决方案 当然可以,因为Azure支持虚拟机,甚至可以上传你的本地vhd镜像.所以完全可以不用改动地移植现有软件. 但是,Azure还是有些限制,比如说Azure就不支持ipx协议,它也无法支持和特定硬件相关的程序(你的程序如果需要带加密狗运行,那就是悲剧)等等. 而且使用虚拟机还有一些坏处,比如说比较费钱,没法支持可用集和负载平衡,你需要自己保证服务

安全更新!VMware紧急修复旗下产品代码执行高危漏洞

本文讲的是安全更新!VMware紧急修复旗下产品代码执行高危漏洞, 本周,VMware紧急发布了多个修补程序,用于解决公司旗下ESXi.vCenter Server.Workstation和Fusion产品中存在的多个安全漏洞,其中甚至还包含一个高危级别漏洞. 这个被确定为高危漏洞的是CVE-2017-4924,它是存在于SVGA设备中的写入区溢出问题,而SVGA设备是由VMware虚拟化产品实现的老旧虚拟显卡. VMware表示,该漏洞可以允许Guest(访客)在主机上执行任意代码. Comi

HPE完成对SimpliVity收购 实行软件移植计划未提及硬件

HPE已经完成了对SimpliVity的收购,并公开了软件移植和迁移计划,但是没有对SimpliVity硬件迁移到ProLiant服务器公开任何信息. 作为第二大超融合基础设施一体机(HCIA)初创公司,SimpliVity被HPE以6.5亿美元收购,SimpliVity的硬件被添加到HPE的两大硬件产品组合中:HC 250和HC 380,这两个都是基于ProLiant的系统. HC 250是一款基于Apollo 2000的设备,有4个服务器抽屉,支持vSphere和微软Hyper-V.而HC

为AM335x移植Linux内核主线代码

/********************************************************************** * 为AM335x移植Linux内核主线代码 * 说明: * MariannaZhu对AM335x做Linux内核移植时写的blog,记录一下,也许以后 * 用得到. * * 2016-12-5 深圳 南山平山村 曾剑锋 *******************************************************************