当前位置: 首页 > 科技观察

“软件迁移”如何修复损坏的代码?

时间:2023-03-13 08:47:16 科技观察

什么是软件迁移?他们如何修复损坏的代码?它会在企业软件生命周期中占有一席之地吗?此外,它们是否会导致更多的软件错误和安全漏洞?MichaelCobb:软件开发人员喜欢从网络上复制和粘贴密码。无论是关于函数的工作原理、代码片段还是多行开源库。这节省了大量时间和金钱,并允许开发人员快速添加特性和功能,而无需从头开始创建它们。在开发应用程序时,开发团队可以轻松使用上百个开源库、框架和工具,以及从互联网上找到的代码片段。《2014 Sonatype开源开发调查》发现90%的典型应用程序是由开源组件“组装”而成的,其中许多组件还存在已知的安全漏洞。这是一个严重的问题:相同的损坏代码可以被成千上万的应用程序重用。事实上,这已显示在最近的OWASP十大应用程序漏洞列表中。为了解决这个问题,麻省理工学院的研究人员想出了一种方法,可以用其他正确运行的程序的代码替换损坏的代码,这是一种自我改进的方式。他们的系统称为CodePhage,可识别并解决常见的编程错误,例如越界访问、整数溢出和“被零除”错误。CodePhage的工作原理是分析损坏的代码如何处理数据而不会导致崩溃或故障以及确实会导致错误的代码。然后将有错误的输入反馈给原始程序,并准确记录它安全处理输入的检查和约束,通常是检查输入数据的函数或程序。然后检查嵌入式代码是否修复了错误。如果不是,它将继续寻找这两个程序处理输入方式的差异。CodePhage不需要访问源应用程序的开源代码,它可以从已经用编程语言编写的应用程序而不是正在修复的程序中发起检查。各种常用的开源程序的早期测试(发现它们存在漏洞,包括输入错误的生成器DI??ODE)看起来很有希望,一次用于2-4个源应用程序,如有损坏的代码可以在2~10分钟。由于大量的编码时间确保数据输入不会干扰程序的预期流程,因此CodePhage通过在开发过程中自动纠正代码错误来节省开发时间。CodePhage作为自动化代码分析和修复工具有着光明的前景,企业开发团队可以密切关注它,并在可能的情况下将其纳入他们的构建过程。开发人员忽视安全编码实践,而是依赖于将它们嵌入重要的安全检查中,这将是对技术的滥用。