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

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

3天内不再提示

在互联汽车开发生命周期中构建安全性

星星科技指导员 来源:嵌入式计算设计 作者:Mark Pitchford 2022-06-16 16:45 次阅读

一架波音 787 飞机包含大约 650 万行软件。令人印象深刻的是,直到您意识到现代汽车平均有 2000 万行代码,才能使客机超过三倍。虽然人类生命和安全取决于两个系统中软件的正常运行,但汽车行业在确保功能安全性方面落后于航空航天。

近年来,汽车行业采用了 ISO 26262 等功能安全标准,但并未同样重视安全性。根据BI Intelligence的数据,现在该行业正在迎头赶上,预计联网汽车的数量将从 2015 年的 3600 万辆增长到 2020 年的 3.81 亿辆,测试继续显示联网汽车的安全漏洞。

从客户(驾驶员)的角度来看,确保安全和安全的责任落在了汽车制造商身上。反过来,这些 OEM 依赖于一级和二级供应商提供一系列电子控制单元 (ECU)、车联网 (V2X) 通信、高级驾驶辅助系统 (ADAS) 和信息娱乐系统。现在,这些系统中的每一个都连接到一个通用的车辆网络(图 1),每个系统都有助于不断扩大的攻击面。分离内核和管理程序等安全方法可以通过提供运行时分离和隔离在一定程度上缓解该问题,但它们不能提供安全保证——仅仅是一道防线。

最佳实践表明,安全性(如功能安全性)不能是事后才想到的。它必须是整个软件开发生命周期的一部分。

需求是安全软件开发生命周期的一部分

安全开发生命周期始于 OEM 向一级和二级供应商提出的特定安全要求。然后必须将这些要求应用于开发过程和生产的软件。必须向 OEM 验证和证明过程和生成的软件方面的结果,以便 OEM 可以验证整个车辆及其系统是安全的。

只有可以跟踪和验证要求才有意义,而实施这些要求依赖于遵守必须不断检查和验证的实践和标准。可以将安全编码实践和标准与策略(整体方法)和策略(详细执行)进行比较。不遵守其中任何一个都可能导致危害安全的错误。幸运的是,可以使用适当的自动化测试工具和方法来检测这些错误。

计算机应急准备小组 ( CERT ) 网站列出了 12 种安全编码实践,可被视为战略编码方法或安全要求。它们包括诸如“验证输入”和“注意编译器警告”等建议,同时使用编译器的最高警告级别。另一条建议是“保持简单”,这可以通过圈复杂度等指标进行测试。这突出了比预期更复杂的函数,因此任何超出指定范围的复杂度值都可以证明是合理的,目的是创建更清晰、更可维护和更可测试的代码。12 项实践中的另一个关键建议是采用安全编码标准。

采用安全编码标准

编码标准规定了使用特定语言(例如 C 或 C++)编写安全代码的特定规则和指南(策略)。其中一个编码标准是 CERT C,它有 98 条规则用于开发安全、可靠和可靠的系统。规则按部分分组,涵盖字符串、内存和表达式等内容。MISRA C 和 MISRA C++ 是另外两种在汽车行业广泛使用的流行编码标准。这些 MISRA 标准始终针对“关键”代码,这意味着它们始终适用于安全和安保关键系统。MISRA C:2012 修正案 1 通过引入 14 条专门针对安全的新指南进一步强调了这一点。

编码标准处理为安全系统正确使用高级语言的细节,限制编码结构以最大限度地减少潜在漏洞。使用标准的一个好处是可以使用静态分析工具检查源代码是否符合所选标准,最好在整个开发过程中进行。

结构性覆盖提供信心

保护联网汽车及其广泛多样的攻击面是一项艰巨的任务。例如,可以通过信息娱乐系统、GPS、ODB2 诊断端口或软件/固件更新过程进行访问。一旦车载网络被破坏,安全关键系统(如安全气囊、制动、转向、传输和防撞)中的漏洞可能会被暴露和利用。任何这些系统中的编码错误都可能导致灾难,因此开发人员必须测试安全性,然后衡量该测试的有效性。

在执行和测试编译的代码时,结构覆盖分析通过识别和突出显示哪些代码已经过测试和没有经过测试,有助于衡量测试过程的有效性。颜色编码格式化的源代码和流程图可以很容易地确定还需要做什么(图 2)。获得的覆盖范围越多,就可以确信不存在包含漏洞的代码。软件组件的安全性或安全性越关键,应应用的覆盖分析级别的要求就越高——从简单的语句覆盖到修改的条件/决策覆盖 (MC/DC)。

poYBAGKq7caAYYeQAAKSxEgQueM702.png

【图2 | 使用动态分析的结构覆盖揭示了尚未采用的功能和路径。]

结构覆盖率可能来自整个运行系统的执行,或在单元测试期间。单元测试利用提供可执行机制的测试工具来调用具有指定输入的功能或子系统,以便可以验证输出并跟踪需求。这种组合导致对单个软件组件和整个应用程序的功能的信心。

一套集成的、协调的和可配置的工具对于处理这些项目的规模和复杂性是必不可少的。这些工具自动跟踪、分析和测试,并维护重要、复杂系统的证明和资格或认证所需的数据。它们为安全、可靠的软件开发生命周期提供了基础,并为所有团队成员提供了一种沟通和协调工作的机制。

此外,一旦汽车上路,只要暴露出新的漏洞或引入额外的安全要求,该工具套件就能做出有效且高效的响应。

审核编辑:郭婷

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

    关注

    76

    文章

    2479

    浏览量

    91166
  • 编译器
    +关注

    关注

    1

    文章

    1576

    浏览量

    48606
  • adas
    +关注

    关注

    307

    文章

    2055

    浏览量

    207841
收藏 人收藏

    评论

    相关推荐

    什么是设备全生命周期管理系统?

    设备全生命周期管理系统是一款能够对设备进行全周期数字化管理的软件平台,它通过将设备信息电子化,使得设备的管理和监督更加便捷。这个系统不仅涵盖了设备的采购、使用、维修、报废等各个阶段,还能够对设备
    的头像 发表于 02-26 14:21 270次阅读
    什么是设备全<b class='flag-5'>生命周期</b>管理系统?

    IBM ELM—系统工程全生命周期管理平台

    Engineering Lifecycle Management是IBM提供的工程全生命周期管理组合工具,帮助企业降低开发成本,应对开发挑战并更快地发展其流程和实践。Engineering
    的头像 发表于 11-22 18:27 761次阅读
    IBM ELM—系统工程全<b class='flag-5'>生命周期</b>管理平台

    数据包的生命周期

    电子发烧友网站提供《数据包的生命周期.pdf》资料免费下载
    发表于 10-13 14:44 0次下载

    基于工业互联网平台的PLM产品生命周期管理系统

    随着工业4.0时代的到来,工业互联网平台正逐渐成为制造业转型升级的重要驱动力。其中,产品生命周期管理系统(PLM)在实现产品全生命周期管理、提高研发效率、降低制造成本等方面具有重要作用。本文将详细
    的头像 发表于 09-20 16:46 327次阅读

    基于Rust语言中的生命周期

    Animal的代码示例。 生命周期 生命周期是Rust语言中的一个概念,用于决内存安全问题。我们在Rust中定义一个变量时,需要确定这个变量在内存中存储时长。这存储时长需要在编译时确定,而生命
    的头像 发表于 09-19 17:03 601次阅读

    KAN252使用软件包进行产品生命周期管理

    本应用笔记介绍了软件包如何在整个产品生命周期管理(PLM)过程中为您提供帮助。 本文解释了软件包的主要优点,并将其与PLM联系起来。 使用Pack概念的高级版本控制功能有助于更快地开发应用程序,并最终降低维护成本。
    发表于 09-04 06:13

    安全性产品生命周期管理Product Life Cycle Management

    安全性产品生命周期管理Product Life Cycle Management
    的头像 发表于 08-10 11:15 441次阅读
    <b class='flag-5'>安全性</b>产品<b class='flag-5'>生命周期</b>管理Product Life Cycle Management

    Arm Lifecycle Manager(LCM)规范

    为系统提供基本的安全功能,如信任根(RoT)密钥管理、生命周期管理和安全调试域控制。 这些功能允许您构建安全服务,如安全引导、
    发表于 08-09 07:23

    如何打造长生命周期的“爆款”智能终端?

    当前,因产能受限等因素,许多半导体器件的产品生命周期正在缩短。特别是面向消费类电子行业的芯片平台,大多数仅有可满足日常温度下运行的2~3年生命周期。但面对运行和维护周期长达数十年的工业设备,工业
    发表于 07-20 11:16 296次阅读
    如何打造长<b class='flag-5'>生命周期</b>的“爆款”智能终端?

    C语言里变量的生命周期

    在C语言中,变量的生命周期指的是该变量存在的时间段,理解变量的内存释放时机,设计程序才能少出问题。
    的头像 发表于 07-11 09:12 958次阅读
    C语言里变量的<b class='flag-5'>生命周期</b>

    编译器的标准生命周期

    编译器的标准生命周期
    发表于 07-05 19:32 0次下载
    编译器的标准<b class='flag-5'>生命周期</b>

    构建安全可信的数字世界

    曲阜的尼山圣境生机勃发,山环水抱,郁郁葱葱的草木,与古风建筑相得益彰。世界互联网大会数字文明尼山对话正在这片历史文化圣地举行。对话聚焦人工智能给人类文明带来的机遇与挑战,围绕“构建安全可信的人工智能”“人工智能赋能千
    的头像 发表于 06-28 11:16 642次阅读

    生命周期交付到OEM状态时如何解锁S32R294的JTAG?

    当我们 EFUSE 中编程 JTAG 密码并将生命周期从客户交付状态推进到 OEM 生产状态时,安全 JTAG 就会启用。 在这种情况下,当我们将lauterbach 与JTAG 连接时,会显示
    发表于 06-08 07:20

    从设计到部署:芯片生命周期管理如何优化整个IC生命周期

    SLM涉及半导体生态系统的所有阶段。它旨在收集有关芯片及其操作的大量数据,并使用复杂的分析来优化芯片及其整个生命周期部署系统的性能、安全性和效率。该技术可用于提高设计鲁棒性、减少设计裕量、提高电源
    的头像 发表于 05-24 18:03 1636次阅读

    NAPI 类对象导出及其生命周期管理(下)

    NAPI 类对象导出及其生命周期管理(下)
    的头像 发表于 05-16 10:25 1573次阅读
    NAPI 类对象导出及其<b class='flag-5'>生命周期</b>管理(下)