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

描述

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

  嵌入式环境已经成熟,安全性必须走在最前沿,就像 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)可以从复杂的环境中挑选出这些代码。开发人员应该始终与这些重要标准保持联系。

  下手

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

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

  保护嵌入式设备

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

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分