嵌入式系统的分布式安全
网络嵌入式系统需要强大的安全措施,但大多数嵌入式工程师并不是安全专家。为了防范各种威胁,他们需要得到有关这些威胁性质的指导,以及从确保硬件设计安全到实施加密协议的多层防御策略。
这种需求催生了基于零信任原则的分布式安全框架,并强调了信息安全三要素:保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),简称“CIA”。
01、边缘设备的漏洞
在大多数情况下,企业对边缘设备部署的范围缺乏全面的了解。在物联网(IoT) 中,许多设备都布置在传统网络安全边界之外,很容易受到攻击。这些设备通常位于较远的位置,这给有效管理和安全带来了困难,而且IT部门对边缘设备的监督通常很有限,因此监控成为了一项难题。
此外,嵌入式设备设计团队的测试资源往往有限,因此很可能会忽视一些漏洞。对于许多依赖第三方库和框架的设计来说,这种风险尤其高。这些组件中的漏洞往往是众所周知的,并且被频繁利用,特别是在开源解决方案中。
同样,不及时更新固件也会使设备容易受到攻击。这里存在一个两难的问题,因为固件受到的关注往往不如软件,但同时,固件中的漏洞也可能成为未经授权访问和执行恶意代码的入口。
遗憾的是,如果身份验证和授权机制薄弱,即使是极先进的系统也很容易受到攻击。凭证和会话管理不善等缺陷会使设备容易受到暴力破解和会话劫持攻击。同样,设计不当的API也容易成为拒绝服务(DoS)和其他攻击的入口。
边缘设备上有限的计算资源限制了潜在防御的范围,使其容易受到过载攻击。这一风险凸显了确保边缘设备拥有足够资源来应对需求高峰并抵御资源耗尽攻击的重要性。
为了应对这些威胁,我们需要了解CIA三元组,即三个基本原则:
代码和数据的保密性
加密是实现这一目标的基础,但由于边缘设备的资源限制,并非所有加密技术都适合嵌入式系统。硬件加速器可以支持常见的加密工作,如广泛流行的对称加密算法高级加密标准(AES)和SSL/TLS认证中使用的非对称加密算法RSA,从而减轻这种负担。
可信平台模块(TPM)对于确保加密密钥的安全非常重要。TPM不仅能将密钥、密码和数字签名等敏感数据安全地存储在极难访问或篡改的硬件飞地中,还具有其他一些功能。
保持系统和功能正常运行的可用性
这包括纠错码(ECC)存储器和看门狗定时器等有助于避免灾难性故障的措施。同样,异常处理和自检等软件机制也可用于检测和恢复错误。
在某些情况下,有必要采用冗余硬件,以便在不中断运行的情况下处理故障。软件冗余也能提供类似的功能,例如,在多个虚拟化环境中复制软件密钥。
当然,并非所有威胁都发生在数字领域。边缘设备的后端设计也必须考虑到安全性问题。此外,还应制定备份系统和恢复计划,以便在系统受到威胁时迅速恢复。
02、保护边缘设备安全的综合策略
要实施能实现这些目标的措施,就必须在安全性、资源限制和操作需求之间取得谨慎的平衡。工程师可以采用专为嵌入式系统定制且行之有效的安全方法来应对这一挑战。这些方法包括:
#01、设计安全
从系统架构到设计细节,每一个开发阶段都应考虑安全问题,包括法规和标准合规性、安全的产品开发周期以及深度防御策略。
#02、零信任架构
这种模式的核心是假定基础架构不断受到威胁,包括企业自有系统内部的威胁。稳健的解决方案包括三个主要策略:强化身份管理、逻辑微分段和基于网络的分段。
#03、分割和隔离
目的是隔离关键系统,使攻击难以在网络内横向移动。微隔离可限制除允许数据包以外的所有网络数据包。容器化可隔离应用程序及其依赖关系,通过限制对敏感信息的访问来提高保密性和完整性。
这些方法与CIA的三元组设计原则非常吻合,为工程师提供了有效的工具来增强其边缘设备的安全性。通过采用这一框架,设计人员可以极大限度地降低系统风险,保护整个基础设施免受攻击。