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

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

3天内不再提示

左移以保护连接的嵌入式系统

星星科技指导员 来源:嵌入式计算设计 作者:Mark Pitchford 2022-06-21 10:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

虽然连接的系统为更容易监控、升级和增强带来了新的机会,但它们也带来了更易受攻击的攻击面。不幸的是,连接系统的任何单一防御都不能保证不可穿透性。幸运的是,有多个级别的安全性可以确保如果一个级别失败,其他级别就会站稳脚跟。

这些纵深防御方法可以包括安全启动,以确保正确的图像加载;域分离;多个独立的安全级别 (MILS) 设计原则,例如最小权限;攻击面减少;以安全为中心的测试,例如静态和动态分析,以及最后但并非最不重要的安全编码技术。

虽然如果底层架构不安全,安全应用程序代码对保护连接的嵌入式系统几乎没有作用,但它确实在考虑安全性的系统中发挥了关键作用。

纵深防御和 V 模型

传统上,安全代码验证的实践在很大程度上是被动的。代码是按照有些松散的准则开发的,然后进行性能、渗透、负载和功能测试以发现漏洞,这些漏洞稍后会修复。

更好、更主动的方法可确保代码在设计上是安全的——沿着时间线“左移”。这意味着一个系统的开发过程,其中代码是根据安全编码标准编写的,可追溯到安全要求,并经过测试以证明随着开发的进展符合这些要求。

这种主动方法将与安全相关的最佳实践集成到功能安全领域的开发人员熟悉的 V 模型软件开发生命周期中。由此产生的安全软件开发生命周期 (SSDLC) 代表了以安全为中心的应用程序开发人员的左移,并提供了一种实用的方法来确保在系统之外设计漏洞或及时彻底地解决漏洞。

相同的原则可以应用于 DevOps 生命周期,从而产生所谓的 DevSecOps。尽管 DevSecOps 和 SSDLC 的上下文有所不同,但左移因此对两者来说意味着相同的事情——即对安全性的早期和持续考虑。

尽早并经常测试

此处描述的所有与安全相关的工具、测试和技术在每个生命周期模型中都占有一席之地。在 V 模型中,它们在很大程度上类似于和补充通常与功能安全应用程序开发相关的流程(图 1)。

poYBAGKxJkyAfggYAACVCpdNj60837.png

图 1:在基于 V 模型的安全软件开发生命周期 (SSDLC) 中使用安全测试工具和技术

在 DevSecOps 模型中,DevOps 生命周期与整个持续开发过程中的安全相关活动叠加(图 2)。

poYBAGKxJlSAB7NaAAIi9qHoL38952.png

图 2:在 DevSecOps 流程模型中使用安全测试工具和技术

在 V 模型的情况下,需求可追溯性在整个开发过程中得到维护,在 DevSecOps 模型的情况下,需求可追溯性在每个开发迭代中得到维护(在每个图中以橙色显示)。

一些 SAST(静态)工具用于确认遵守编码标准,确保将复杂性保持在最低限度,并检查代码是否可维护。其他用于检查安全漏洞,但仅限于在没有执行环境上下文的情况下对源代码进行此类检查的范围内。

白盒 DAST(动态)使编译和执行的代码能够在开发环境中进行测试,或者更好的是,在目标硬件上进行测试。代码覆盖有助于确认代码满足所有安全和其他要求,并且所有代码都满足一个或多个要求。如果系统的关键性需要,这些检查甚至可以达到目标代码级别。

可以在单元测试环境中使用健壮性测试来帮助证明特定功能是有弹性的,无论是在其调用树的上下文中隔离。

传统上与软件安全相关的模糊和渗透黑盒测试技术仍然具有相当大的价值,但在这种情况下,用于确认和证明在安全基础上设计和开发的系统的稳健性。

提供双向追溯

IEEE 软件工程术语标准词汇表将可追溯性定义为“在开发过程的两个或多个产品之间可以建立关系的程度,尤其是彼此之间具有前继或主从关系的产品。” 双向可追溯性意味着追溯路径既向前又向后(图 3)。

自动化使在不断变化的项目环境中维护可追溯性变得更加容易。

poYBAGKxJlqAO_04AAD9BKDaGZg971.png

图 3:双向追溯

前向可追溯性表明所有需求都反映在开发过程的每个阶段,包括实施和测试。可以通过应用影响分析来评估对需求或失败的测试用例的任何更改的影响,然后可以解决这些影响。然后可以重新测试生成的实施,以提供继续遵守双向可追溯性原则的证据。

同样重要的是向后可追溯性,它突出显示不满足任何指定要求的代码。疏忽、错误的逻辑、特征蔓延以及恶意后门方法的插入都可能引入安全漏洞或错误。

必须记住,安全嵌入式工件的生命周期一直持续到该领域的最后一个示例不再使用。对此类工件的任何妥协都需要响应、更改的或新的需求,并且需要立即响应——通常是开发工程师很长时间没有接触过的源代码。在这种情况下,自动可追溯性可以隔离所需内容并仅对受影响的功能进行自动测试。

实践中左移

左移原则所包含的概念对于开发安全关键型应用程序的个人和团队来说是很熟悉的。多年来,功能安全标准要求采用类似的方法。因此,在功能安全领域证明的许多最佳实践适用于前面讨论的安全关键型应用程序,包括在开始时(V 模型)或每次迭代之前(DevSecOps)建立功能和安全要求,及早和经常测试,以及应用双向跟踪需求到开发的所有阶段。

审核编辑:郭婷

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

    关注

    5187

    文章

    20170

    浏览量

    329149
  • 代码
    +关注

    关注

    30

    文章

    4942

    浏览量

    73177
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    嵌入式系统的定义和应用领域

    不在影响着我们的生活和工作方式。 在嵌入式系统中,嵌入式操作系统嵌入式微处理器扮演着至关重要的角色。从硬件层面剖析,
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    通常具有以下特点: 快速响应:实时嵌入式操作系统能够迅速响应外部事件或任务请求,满足实时任务的时间要求。 稳定性和可靠性:实时嵌入式操作系统
    发表于 11-13 06:30

    如何采用SAFERTOS和ESM保护嵌入式系统安全

    信任根的重要组成部分是实时操作系统(RTOS),它为应用程序的运行提供了一个安全的平台。嵌入式系统的具体安全要求取决于其架构以及所面临的威胁。在本博客中,我们将探讨RTOS的安全性,
    的头像 发表于 10-24 15:51 1187次阅读

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在
    发表于 06-20 09:46

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在
    的头像 发表于 06-18 09:53 636次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用
    发表于 05-15 09:29

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」议程公布

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”将在深圳举行,论坛“新生态,智未来”为主题,旨在汇聚行业智慧,探讨嵌入式技术与边缘AI的深度融合与创新应用。
    的头像 发表于 04-02 15:12 1086次阅读
    飞凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛」议程公布

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的库和快速的开发周期,这使得它在某些
    的头像 发表于 03-19 14:10 1219次阅读

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、
    发表于 03-12 13:58

    使用Lattice mVision打造嵌入式视觉系统解决方案

    嵌入式视觉是嵌入式系统与机器视觉技术的集合,嵌入式视觉系统硬件集成摄像头模组和处理板,将图像捕获和图像处理功能结合在一台设备中。
    的头像 发表于 03-06 16:09 1239次阅读

    盘点无风扇嵌入式主板应用优势

    在科技飞速发展的今天,嵌入式主板在各个领域发挥着重要作用。而无风扇嵌入式主板独特优势在工业自动化、医疗设备和智能交通等领域广泛应用。今天,就让我们一起深入了解无风扇嵌入式主板在实际应
    的头像 发表于 02-15 18:04 659次阅读
    盘点无风扇<b class='flag-5'>嵌入式</b>主板应用优势

    嵌入式机器学习的应用特性与软件开发环境

    作者:DigiKey Editor 在许多嵌入式系统中,必须采用嵌入式机器学习(Embedded Machine Learning)技术,这是指将机器学习模型部署在资源受限的设备(如微控制器、物联网
    的头像 发表于 01-25 17:05 1235次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与软件开发环境

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功
    的头像 发表于 01-13 16:30 1198次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展