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

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

3天内不再提示

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

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

扫码添加小助手

加入工程师交流群

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

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

虽然如果底层架构不安全,安全的应用程序代码在保护连接的嵌入式系统方面几乎无能为力,但在设计时考虑了安全性的系统,它确实起着关键作用。

纵深防御和 V 型模型

传统上,安全代码验证的做法在很大程度上是被动的。代码是通过遵循一些松散的指南来开发的,然后进行性能,渗透,负载和功能测试以查找漏洞,这些漏洞稍后会修复。

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

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

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

尽早并经常测试

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

pYYBAGNV6C6AK77nAACOi_GbamQ039.png

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

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

poYBAGNV6DWASAK5AAKRsmF_UpE074.png

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

对于 V 模型,需求可追溯性在整个开发过程中得到维护,对于 DevSecOps 模型(在每个图中以橙色显示),每个开发迭代都会保持需求可追溯性。

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

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

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

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

提供双向可追溯性

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

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

pYYBAGNV6DyAHAoFAAD51a6K3tU967.png

图 3:双向可追溯性

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

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

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

在实践中向左移动

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

审核编辑:郭婷

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

    关注

    5212

    文章

    20775

    浏览量

    338865
  • 代码
    +关注

    关注

    30

    文章

    4983

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Samtec应用分享 | 嵌入式连接器解决方案

    摘要前言 嵌入式系统的世界正在不断演变。 客户在其设计的各个方面都在寻求 更小的占位面积、更快的数据速率以及更高的集成度 。随着工程师们不断挑战性能与效率的极限,那些看似不起眼的连接器往往决定了一个
    的头像 发表于 05-13 18:09 972次阅读
    Samtec应用分享 | <b class='flag-5'>嵌入式</b><b class='flag-5'>连接</b>器解决方案

    知识分享-嵌入式系统可靠性模型

    嵌入式系统可靠性设计技术及案例解析1.3嵌入式系统可靠性模型嵌入式系统可靠性模型分为两种:串联结
    的头像 发表于 03-11 16:43 492次阅读
    知识分享-<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>可靠性模型

    嵌入式系统安全设计原则

    随着物联网、工业控制和智能设备的普及,嵌入式系统的安全问题越来越突出。一个小小的漏洞,就可能导致设备被入侵、数据泄露,甚至对人身安全产生威胁。因此,从设计阶段开始就考虑安全,是每一个嵌入式开发者必须
    的头像 发表于 01-19 09:06 563次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>安全设计原则

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式操作
    发表于 01-12 16:13

    arm嵌入式主板优缺点

    Windows CE、Linux等主流的嵌入式操作系统。   ARM的优点   一、高可靠性、高稳定性:在工业控制领域,性能稳定可靠是自动控制基本的要求,ARM嵌入式主板有着很特殊的优势。第一
    发表于 01-08 07:08

    系统嵌入式的学习路线

    嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及
    发表于 12-16 07:49

    什么是嵌入式操作系统

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

    嵌入式硬件设计解析

    ,构建成一个完整的、可独立运行的嵌入式系统硬件平台。这个硬件平台将运行特定的软件,实现诸如工业控制、智能家居、汽车电子、消费电子等各种应用领域中的特定功能。以下是对嵌入式硬件设计的详
    发表于 12-02 08:22

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平衡性能与灵活性
    发表于 11-19 06:55

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

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

    嵌入式开发的关键点介绍

    设备和移动设备。因此,嵌入式开发需要考虑系统的功耗,并编写节能的代码延长系统的使用寿命。 4. 软件集成:
    发表于 11-13 08:12

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

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

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

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

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

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

    运行在嵌入式系统上的emApps

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