0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用源代码分析安全迁移

星星科技指导员 来源:嵌入式计算设计 作者:GWYN FISHER 2022-11-07 14:31 次阅读

军事和航空电子软件系统的开发人员可以做些什么来利用软件重用,同时确保软件尽可能无错误和安全?

软件在军事和航空航天工业中通过不同的程序使用和重用并不完全是国家安全机密。这是一种久经考验的软件开发方法。GAO 在 2004 年 3 月向美国参议院提交的报告估计,某些项目中软件的重用率高达 70%,这在成本节约和效率方面提供了重大机会。但是,迁移如此数量的软件并非没有风险,尤其是在用于安全或任务关键型软件应用程序时。因此,问题是:军事和航空电子软件系统的开发人员可以做些什么来利用软件重用,同时确保软件尽可能无错误和安全?

迁移软件以在新系统上使用并与新开发的代码相结合,对任务关键型系统提出了巨大的挑战。首先是当今软件系统的规模和范围。据估计,美国陆军的未来作战系统(FCS)将在最终产品中提供超过6000万行软件代码。最新商用喷气式飞机上的航空电子软件涉及数百万行代码;运行波音787的软件接近700万行代码,是777的三倍。要正确测试这种规模的软件项目(基本上要考虑无限数量的代码路径)并非易事,尤其是当设计用于任务和安全关键型上下文时。

除了这一迁移挑战之外,还有这样一个事实:即使代码被重用,并且在多年的现场操作后可能被认为是稳定的,但它通常在新的上下文或环境中运行。这提供了以前潜在的错误变成活动的关键错误的可能性,以前安全的编码实践变成了高风险的安全漏洞。这不是一个理论讨论。随着阿丽亚娜5号航天器的发射,欧洲航天局(ESA)发生了这个确切的问题,该航天器重用了其前身阿丽亚娜4号的代码。代码在旧飞船中安全运行,但执行上下文发生了变化,将阿丽亚娜4中的“理论”或潜在错误更改为导致阿丽亚娜5崩溃的关键错误。安全漏洞也是如此:多年前在非网络系统中的编码实践在部署在现代软件环境中时可能会成为极高风险的漏洞,其中系统在安全的任务关键型环境中联网。

软件风险为业内专业人士所熟知,民用航空航天软件行业受 DO-178B 法规的约束,这些法规管理软件开发和验证要求。这些类型的指南存在于许多行业中,在这些行业中,安全要求对于正在开发的软件至关重要。这些行业的软件开发专业人员面临的挑战是找到正确的工具和流程组合,以解决重用大量代码的独特挑战,同时能够扩展到任务关键型系统的规模和范围。

任务关键型软件开发的一个增长趋势是采用源代码分析 (SCA) 作为一种技术来增强(甚至取代)传统的源代码验证技术,例如无法扩展的同行代码审查。SCA 是一种 bug 检测技术,不需要测试用例,是完全自动化的,并允许开发人员在开发生命周期的早期检查其源代码,确保 bug 不会向下游传播,从而导致不必要的质量和效率问题。与 SCA 相关的底层技术称为静态分析,当前一代技术解决方案能够提供复杂、快速和准确的分析,定位和描述源代码中的弱点区域,包括内存和资源管理、程序数据管理、缓冲区溢出、未经验证的用户输入、易受攻击的编码实践和并发冲突,以及各种长期维护问题。

SCA不同于传统的动态分析技术,如单元测试或渗透测试,因为工作是在构建时仅使用相关程序或模块的源代码执行的。因此,报告的结果是从每个可能的执行路径的完整视图生成的,而不是从有限的、观察到的运行时行为的某些方面生成的。这在传统迁移环境中特别有价值,SCA 可以检查难以测试的领域,例如错误处理例程。SCA还将报告“潜在”问题,以便高级开发人员可以确保通过重用在运行时上下文中的更改不会产生新的错误源。当与现有的测试和软件验证技术相结合时,SCA 为源代码的大规模验证提供了一个可扩展、高效的解决方案。

随着软件复杂性的爆炸式增长及其关键任务性质的不断增加,软件测试和验证的未来在于持续的自动化。新形式的验证将扩展SCA等技术的深度和广度,并将它们与其他形式的软件测试相结合,以提供创建创新,全面的软件验证方法的技术。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 源代码
    +关注

    关注

    94

    文章

    2927

    浏览量

    66063
  • 航空航天
    +关注

    关注

    1

    文章

    346

    浏览量

    23954
收藏 人收藏

    评论

    相关推荐

    源代码审计怎么做?有哪些常用工具

    源代码审计是一种通过检查源代码来发现潜在的安全漏洞的方法。 下面是常用的源代码审计工具: 1、Fortify:通过内置的五大主要分析引擎,对
    发表于 01-17 09:35

    为什么安秉信息的源代码防泄密软件这么稳定?

    现在很多研发性企业都会意识到企业的源代码文件需要防泄密保护,现在很多企业对于源代码只是用了git或svn版本管理服务器进行了简单的代码统一管控。虽然现在对于源代码防泄密,有专业的
    的头像 发表于 12-05 10:21 207次阅读
    为什么安秉信息的<b class='flag-5'>源代码</b>防泄密软件这么稳定?

    安秉信息源代码图纸防泄密方案,电路图纸,源代码文件

    安秉信息源代码图纸防泄密方案,电路图纸,源代码文件
    发表于 12-01 16:56 0次下载

    瑞萨MCU洗衣机控制器源代码

    瑞萨MCU洗衣机控制器源代码
    发表于 11-09 15:18 8次下载
    瑞萨MCU洗衣机控制器<b class='flag-5'>源代码</b>

    Labview开发电梯控制源代码

    Labview开发电梯控制源代码
    发表于 10-25 18:23 5次下载

    AMD发布其AMD安全加密虚拟化技术的源代码

    AMD宣布发布其AMD安全加密虚拟化(AMD Secure Encrypted Virtualization,简称SEV)技术的源代码,该技术是基于AMD EPYC处理器的机密计算虚拟机(VMs
    的头像 发表于 09-07 16:23 589次阅读

    如何使用Neon intrinsic的矢量处理代码迁移到氦intrinsic

    本指南旨在帮助任何将使用霓虹灯内部函数的现有矢量处理代码迁移到氦内部函数的人。我们将研究不同复杂度的霓虹灯代码示例,并研究如何将该霓虹灯代码迁移
    发表于 08-02 07:39

    什么是静态代码分析?静态代码分析概述

    静态分析可帮助面临压力的开发团队。高质量的版本需要按时交付。需要满足编码和合规性标准。错误不是一种选择。 这就是开发团队使用静态分析工具/源代码分析工具的原因。在这里,我们将讨论静态
    的头像 发表于 07-19 12:09 923次阅读
    什么是静态<b class='flag-5'>代码</b><b class='flag-5'>分析</b>?静态<b class='flag-5'>代码</b><b class='flag-5'>分析</b>概述

    XCP源代码分享

    XCP源代码
    发表于 06-25 11:43 8次下载

    19个经典Java小程序源代码合集

    19个经典Java小程序源代码合集
    发表于 06-07 14:59 0次下载

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    Python编程实战(源代码)

    [源代码]Python编程实战 妙趣横生的项目之旅
    发表于 06-06 17:49 1次下载

    基于51单片机的表决器例程源代码例程

    基于51单片机的表决器例程源代码例程源代码
    发表于 05-18 09:54 0次下载

    基于51单片机的表决器例程源代码

    基于51单片机的表决器例程源代码例程源代码
    发表于 05-12 15:55 1次下载

    STC-1T-用for循环测脉宽源代码实例

    STC-1T-用for循环测脉宽源代码
    发表于 05-12 15:49 0次下载