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

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

3天内不再提示

保护嵌入式软件安全的5个步骤

星星科技指导员 来源:嵌入式计算设计 作者:Bill Dickenson 2022-10-20 10:10 次阅读

随着越来越多的功能被嵌入到越来越小的设备占用空间中,安全问题也在增加。通常,新功能会排挤基本的安全问题,因为供应商将越来越多的功能打包到软件包中,而几乎没有整体系统工程,而只是粗略的安全测试。

嵌入式环境已经成熟,安全性必须走在最前沿,就像 20 世纪 90 年代 PC 发展时的安全性一样。随着物联网IoT)的爆炸式增长,毫无疑问,任何安全漏洞都将被利用。物联网设备使非常有用的业务案例成为现实。同时,它们也带来了失去控制的风险。今天的嵌入式系统更加强大和脆弱。如果嵌入式系统要避免1990年代的陷阱,协议和方法在成为新一代黑客的切入点之前必须到位。

IT 标准组织(如 IT 软件质量联盟 (CISQ)、MITRE 常见弱点枚举 (CWE) 以及 ISO 9000 和 ISO 25000)发布了指南和软件质量标准。CISQ发布了针对安全性、可靠性、性能效率和可维护性的自动化质量措施。这些度量提供了一些特定属性,这些属性应用作嵌入式系统可能需要实现其业务/任务功能的证据。在检查嵌入式系统的状态时,很明显,安全性应该预先设计。

实施安全策略

在考虑安全性时,大多数嵌入式系统工程师会立即关注保护数据的问题。系统不仅应该保护数据(在应用程序中),还应该保护接口不被滥用。这五个步骤代表了开发嵌入式安全策略的合理起点。

执行空间中没有未经测试的程序 – 除了执行函数所需的程序之外,其他任何程序都不应存在于可以执行它们的位置

数据必须是私有的 - 程序不应无意中向彼此或向网络公开信息

在两端确认数据 – 所有信息必须能够得到验证,并且必须在预期范围内,并且越界信息被拒绝

安全设备 – 设备应能够在启动期间验证其完整性;设备应在发送或接收数据之前对自己进行身份验证

遵循标准 – 查看 IT 软件质量联盟 (CISQ) 质量特征度量,这些度量值可以自动执行,以进行持续的安全性和软件质量分析和缓解

采取措施 – 如果发生异常,程序在处理问题时必须继续运行

执行空间中没有未经测试的程序

随着嵌入式供应商努力使其产品与众不同,他们将程序添加到其标准分发中。其中许多将不会被使用,并代表潜在的安全风险。这些程序必须被消除,或者更好的是,永远不要安装。要求一个操作系统发行版,除了操作系统工作和手动安装程序的必需品之外,没有任何内容。极简主义策略最适合代码。如果供应商不提供精简的分发,操作系统可以限制这些程序和敏感 API 的访问权限,或者可以删除未使用的代码。

更好的方法是为自定义和第三方应用程序提供一个沙盒,以便执行,然后通过 API 推送通信,从而提供必要的隔离。

硬件本身应该是“干净的”,没有安装任何程序。开发人员安装设备上的任何程序都是关键。每段代码都必须来自受信任的开发人员,并且在安装之前无法更改。

数据必须是私有的

程序不应无意中相互暴露信息或向网络公开信息。尽管相信一台设备不能在互联网上被黑客入侵是很诱人的,但它根本不是现实。随着程序中模块的增长,数据工件往往会随之增长,数据往往会变得越来越暴露。

嵌入式设备收集敏感数据(例如,医疗保健,企业),并且很有可能在数据流量到达目的地之前重新路由和修改数据流量。应该进行检查以防止复制和粘贴,以及在设备落入坏人之手时远程擦除数据的能力。

开发人员在满足最后期限的压力下,倾向于从自己和同事那里借用代码和例程。任何安全漏洞都将被传播。在第一时间正确设计和构建代码。

在两端确认数据

所有信息都必须在预期范围内进行验证,并明确识别。在两端使用相同的例程来验证内容至关重要。接口应该对传入的内容敏感,并且能够在数据不正确时采取措施。当设备从“受信任”的设备接收到不良数据时,入侵很可能是黑客攻击。对于直接硬件接口也是如此。

与隐私一样,所有与外部世界的联系都需要被视为可疑。应验证接口并检查数据。

保护设备

设备应该能够在启动期间验证其完整性,并应在发送或接收数据之前对自己进行身份验证。知道谁在发送数据很重要,其中一个更简单的黑客是替换未经验证的设备。

启动时,设备必须使用加密生成的数字签名。资源受限的设备可以使用独特的硬件特征而不是计算密集型算法来生成用于身份验证的数字签名。未通过该检查的设备应具有计划的响应。默认操作可能不适用于任何给定设备。

每个设备都应该有一个密钥,每个设备都应该知道其类型的可接受密钥。当收到未识别的密钥时,应计划响应,而不是简单地忽略响应。如果接收信息对设备的功能至关重要,则多次接收错误的 ID 应被视为攻击。规划此故障至关重要。

遵循标准

CISQ发布了一个安全标准,旨在识别由MITRE在常见弱点枚举(CWE)中维护的IT应用软件中的前25个已知安全漏洞。CWE 是一组可衡量的项目,可用作复原能力、安全性和安全性的证据。代码分析器(如 CAST)可以从复杂的环境中挑选出这些代码。开发人员应该始终与这些重要标准保持联系。

下手

如果发生异常,程序在处理问题时必须继续运行。开发人员通常专注于接收到良好数据时会发生什么,但错误处理通常过于简单。开发人员培训假设不良数据是编程的产物,而不是黑客攻击,这是需要审查的策略。对所有关键组件进行保证案例测试。保证案例支持对实现进行迭代审查和修订,直到系统显示正确的行为。

在某些情况下,设备可能有一种方法可以通知另一个设备它受到攻击。在其他情况下,它可能只是选择忽略或解决威胁。无论哪种情况,通信都是避免黑客攻击的强大武器。

保护嵌入式设备

嵌入式安全正在成为嵌入式设备的关键需求。通过遵循这些建议,您的嵌入式解决方案可以专注于解决其旨在解决的问题,而不会为新一代黑客打开闸门。

审核编辑:郭婷

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

    关注

    5068

    文章

    19013

    浏览量

    303098
  • 物联网
    +关注

    关注

    2903

    文章

    44253

    浏览量

    371103
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入
    的头像 发表于 10-16 10:14 481次阅读

    EsDA,一站嵌入式软件

    ,旨在提高嵌入式软件开发的效率、性能和可扩展性。EsDA全称是嵌入式系统设计自动化,它是一由AWorksLP、AWStudio、AXPI、AWTK、ZWS等多种
    的头像 发表于 09-15 08:10 224次阅读
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个
    的头像 发表于 09-02 09:11 390次阅读

    嵌入式软件开发与AI整合

    嵌入式软件开发与AI整合是当前技术发展的重要趋势之一。随着人工智能技术的快速发展,嵌入式系统越来越多地集成了AI算法,以实现更复杂的智能功能。以下是关于嵌入式
    的头像 发表于 07-31 09:25 656次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发与AI整合

    嵌入式软件工程师如何提升自己?

    阅读专业书籍、参加行业会议、关注技术社区等方式不断提升自己的技术水平,保持竞争力。 5.发展个人品牌 在竞争激烈的嵌入式软件领域,拥有一良好的个人品牌非常重要。建议通过撰写技术博客、
    发表于 06-12 11:20

    Vector推出符合ISO 26262最高安全标准的ECU嵌入式软件

      Vector推出符合ISO 26262最高安全标准的ECU嵌入式软件,远远超越市场常规标准。该软件可以确保可靠运行,因此尤其适用于自动驾驶和线控底盘系统。新
    的头像 发表于 06-03 17:21 709次阅读

    嵌入式会越来越卷吗?

    嵌入式系统的安全性也面临着越来越大的挑战。 这要求设计师在设计和实现时需要充分考虑安全问题并采取相应的措施来保护数据和系统的安全。 总结
    发表于 03-18 16:41

    嵌入式软件设计的原则分享

    嵌入式软件开发如果具有更好的阅读性、扩展性以及维护性,就需要考虑很多因素。今天给大家分享几个嵌入式软件设计的原则。
    发表于 02-25 10:54 651次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>设计的原则分享

    嵌入式学习步骤

    嵌入式行业是一涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得
    发表于 02-02 15:24

    汽车嵌入式软件的技能要求

    如果你希望开始在汽车嵌入式软件领域的职业生涯,必须掌握符合行业需求的全面技能。下面是一路线图,列出了需要学习的关键技术和技能。
    的头像 发表于 01-23 11:09 1554次阅读
    汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>的技能要求

    嵌入式软件开发和软件开发的区别

    嵌入式软件开发和软件开发是两不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开
    的头像 发表于 01-22 15:27 2160次阅读

    基于功能安全的汽车嵌入式软件单元验证技术研究

    随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件安全性提出了更高要求,基
    的头像 发表于 01-07 11:27 1004次阅读
    基于功能<b class='flag-5'>安全</b>的汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>单元验证技术研究

    聊聊嵌入式软件分层

    今天以控制LED闪烁为例,聊聊嵌入式软件分层
    的头像 发表于 12-28 09:22 634次阅读

    嵌入式软件问题的分析与解决

    软件问题的分析与解决 嵌入式软件由于调试手段的限制、部署场景的多样化、软硬件问题混合在一起、外部环境因素的影响等因素,导致软件经常会遇到一些非常难以解决的问题。 3.1 解题思想 熟悉
    的头像 发表于 12-07 15:56 690次阅读

    嵌入式硬件和软件哪个好?

    这类技术都是看经验的,经验越高,那他的身价也相应变高。据统计,65%的电子产品开发企业中,嵌入式软件开发工程师团队,往往只占全公司人数的5%,但是却创造了全公司超过70%的效益。 嵌入式
    发表于 12-05 15:17