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

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

3天内不再提示

安全关键时代的遗留代码

星星科技指导员 来源:嵌入式计算设计 作者:BILL ST. CLAIR 2022-11-07 14:28 次阅读

当考虑安全和安全关键风险时,遗留代码重用的成本和便利性优势可能会降低或复杂化。如果遗留代码被证明在功能上正确且在操作上可行,则其接受是基于对预期会发生什么的假设。但是,通常会导致故障的是意外情况,而结构测试提供了一种缓解意外情况的方法。

今天,对遗留软件的“构建”接受正在受到更多的审查。这是由于在军事和商业系统中,越来越强调安保和安全评价标准。关于认证的软件方面,必须提供可重复验证过程的证据和支持该过程的分析。结构测试是验证此证据的一种机制。

虽然曾经被视为不必要的成本负担,但严格的、基于标准的开发和验证过程是全球嵌入式系统行业安全重要性的新兴全球视角的结果。这种观点的定义是与商业航空旅行、医疗设备产品部署、全球汽车产品开发标准化以及国防和安全等各种活动相关的风险。在这些应用程序中,与意外软件和系统行为相关的责任、成本和任务影响被认为是不可接受的。

作为美国联邦航空局国际飞行软件工作组的成员,该工作组正在制定下一版DO-178软件标准,我目睹了人们越来越意识到在飞行软件系统中使用遗留软件。工作组努力确保遗留代码得到适当的管理和验证,并且它实际上不会成为“死”或无法访问的代码,在这种代码中,它可能无意中被调用用于运行时执行,而无需事先进行适当的测试。从历史上看,死代码被视为意外软件行为的原因,并对飞行安全构成重大风险。

随着嵌入式系统中面向对象应用程序的出现,使用C++JavaAda 2005等语言,工作组还意识到重用遗留代码的可能性呈指数级增长。旧组件可以与新组件共享成员函数,并且在运行时执行之前,这些共享函数的精确行为实际上不可见。在面向对象的系统中,意外发生的可能性更高。

美国军方也认识到与意外软件行为相关的风险,特别是在安全漏洞的背景下。空军研究实验室与国家安全局、国防部主要承包商、学术界和软件供应商合作,正在管理一个多独立级别的安全/安全(MILS)计划,将DO-178B与安全标准相结合。这包括共同标准和中央情报局局长指令6/3,保护信息系统中的敏感隔离信息。虽然MILS计划不直接解决遗留代码,但其许多目标正在应用于包含遗留软件的新项目和部署。MILS 程序的软件开发和验证指南主要来自 DO-178B,现在给软件供应商和系统集成商带来了实施可重复验证流程和降低与意外软件行为相关的风险的巨大挑战。

鉴于与安全和安全关键型软件相关的挑战,我们需要确定有关遗留代码的最佳实践,并提出一种维护和更新遗留代码的方法。这些挑战可以通过结构测试来解决。结构测试(有时称为“软件测试软件”)提供了一个运行时环境,在该环境中,自动生成测试用例,以基于系统范围的路径级代码分析来执行软件行为。尽管过去结构测试因没有明确验证功能正确性而受到批评,但这种观点没有认识到结构测试的目标是练习整个软件结构,捕获异常并测量结果代码覆盖率 - 而不是显式测试软件功能。

除非正确分析遗留软件的“竣工”架构,否则无法预测更改的影响,也无法有效地应用更改。幸运的是,结构测试固有的静态分析也可以生成架构的图形表示,包括调用树图、控制流图、数据耦合表和设置/使用表。这些可视化对于处理来自多个来源的代码(如建模工具、手动代码和软件库)的工程师特别有用。结构测试静态分析维度的另一个副产品是将编码规则自动应用于源代码,确保旧代码和新代码之间的实现一致性。

测试技术的进步催生了新一代工具,而不仅仅是另一种工具。这些进步恰逢其时,以满足国际软件标准化、嵌入式软件市场的全球化以及安保和安全关键验证标准的日益重视的需求。现在,传统软件用户可以排除意外的软件行为,并帮助确保我们的安全。

审核编辑:郭婷

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

    关注

    19

    文章

    2922

    浏览量

    103399
  • C++
    C++
    +关注

    关注

    21

    文章

    2072

    浏览量

    73071
  • 代码
    +关注

    关注

    30

    文章

    4603

    浏览量

    67390
收藏 人收藏

    评论

    相关推荐

    安全服务加密存储代码怎么查

    安全服务加密存储代码的查询与实现是一个复杂的过程,涉及到多个方面,包括数据加密、密钥管理、访问控制等。 1. 引言 随着云计算的快速发展,越来越多的企业和个人将数据存储在云端。然而,数据安全问题也
    的头像 发表于 07-02 09:28 88次阅读

    安全关键技术有哪些

    安全是确保云计算环境中数据和应用程序安全的一种技术。随着云计算的普及,云安全已成为企业和个人关注的焦点。本文将详细介绍云安全关键技术,包
    的头像 发表于 07-02 09:20 123次阅读

    该如何提高代码容错率、降低代码耦合度?

    提高RT-Thread代码的容错率和降低耦合度是确保代码质量和可维护性的关键,下面列举了几种在编写代码时,提高代码容错率和降低耦合度的思路。
    的头像 发表于 06-26 08:10 108次阅读
    该如何提高<b class='flag-5'>代码</b>容错率、降低<b class='flag-5'>代码</b>耦合度?

    工业安全与通信并进:大核桃防爆手机助力工业4.0时代安全发展!

    在数字化浪潮席卷全球的今天,工业4.0时代正以前所未有的速度推动着各行业的深刻变革。在这个充满创新与挑战的时代,工业安全与通信的并进显得尤为关键。大核桃防爆手机,作为工业
    的头像 发表于 06-21 16:18 117次阅读
    工业<b class='flag-5'>安全</b>与通信并进:大核桃防爆手机助力工业4.0<b class='flag-5'>时代</b><b class='flag-5'>安全</b>发展!

    AIoT人员定位成化工安全关键

    AIoT人员定位成化工安全关键
    的头像 发表于 01-12 08:13 540次阅读
    AIoT人员定位成化工<b class='flag-5'>安全</b><b class='flag-5'>关键</b>

    SCADE—产品级安全关键系统的MBD开发套件

    安全关键零部件的嵌入式产品级软件提供了SCADE开发套件,支持嵌入式软件详细设计和代码自动生成,有效缩短产品研制周期,提高产品研制效率,提高产品质量。
    的头像 发表于 01-05 14:12 392次阅读
    SCADE—产品级<b class='flag-5'>安全</b><b class='flag-5'>关键</b>系统的MBD开发套件

    如何知道你的代码是否线程安全

    的?如何知道你的代码是否线程安全?要如何访问数据才能保证数据的安全? 本篇文章会一一回答你的问题。 1. 线程不安全是怎样的? 要搞清楚什么是线程
    的头像 发表于 11-01 11:42 423次阅读
    如何知道你的<b class='flag-5'>代码</b>是否线程<b class='flag-5'>安全</b>

    安全驱动示例代码和实现

    的mk文件)和common.mk文件,同时也需要将安全驱动集成到OP-TEE的内核中。 然后编译整体OP-TEE后就能够使用该份示例代码来验证本书提供的安全驱动示例是否运行正常
    的头像 发表于 10-30 16:07 466次阅读
    <b class='flag-5'>安全</b>驱动示例<b class='flag-5'>代码</b>和实现

    网络关键设备安全检测方法

    电子发烧友网站提供《网络关键设备安全检测方法.pdf》资料免费下载
    发表于 10-20 08:31 0次下载
    网络<b class='flag-5'>关键</b>设备<b class='flag-5'>安全</b>检测方法

    数智时代,财务数字化转型制胜的关键是什么?

    随着科技的飞速发展,企业正面临着数字化转型的时代,而财务领域也不例外。在这个数智时代,财务数字化转型成为企业保持竞争力的关键之一。那么,要在这个数字化潮流中脱颖而出,财务数字化转型的关键
    的头像 发表于 10-18 11:47 441次阅读

    汽车网络安全机制关键技术

    关键点 新特性和业务模式要求网络安全作为一种工具 安全性不以密码学开始或结束>安全工程 分层安全概念支持深度防御 AUTOSAR为A
    发表于 10-18 11:00 770次阅读
    汽车网络<b class='flag-5'>安全</b>机制<b class='flag-5'>关键</b>技术

    隔离Zynq UltraScale+设备上的关键安全应用程序

    电子发烧友网站提供《隔离Zynq UltraScale+设备上的关键安全应用程序.pdf》资料免费下载
    发表于 09-15 10:33 0次下载
    隔离Zynq UltraScale+设备上的<b class='flag-5'>关键</b><b class='flag-5'>安全</b>应用程序

    面向OpenHarmony终端的密码安全关键技术

    本文转载自 OpenHarmony TSC 官方​[​《峰会回顾第17期 | 面向OpenHarmony终端的密码安全关键技术》​]​ 演讲嘉宾 | 何道敬 回顾整理 | 廖涛 排版校对 | 李萍萍
    发表于 09-13 19:20

    电梯维保管理:保障安全出行的关键

    电梯维保管理:保障安全出行的关键|深圳梯云物联
    的头像 发表于 09-06 17:38 338次阅读

    如何编写Arm汇编代码

    大多数开发人员使用高级语言(如C和C++)编写大部分代码。然后将此高级源代码编译为在目标设备上运行的机器代码。 然而,有时编写低级汇编代码也有好处。也许你想手动优化一个
    发表于 08-02 13:01