嵌入式系统安全实用技巧

电子说

1.2w人已加入

描述

虽然嵌入式系统往往缺乏服务器甚至现代个人计算机的处理能力,但设备的绝对数量使其成为希望运行非法僵尸网络和加密货币挖矿操作的不良行为者越来越有价值的目标。2016 年的 Nest 恒温器僵尸网络攻击是嵌入式系统设计人员的第一个与安全相关的重大警钟。鉴于特定物联网 (IoT) 面向消费者的性质,以及对隐私和安全的敏感性增加;Nest 僵尸网络引起了大量讨论。这些讨论往往集中在公司应如何在其低成本物联网产品中构建安全性以及消费者如何在家中和企业中安全地操作这些设备。

随着网络攻击威胁的增加,开发人员必须在整个设计过程中牢记安全考虑因素。通过遵循一些实用的提示和建议,开发人员可以防范各种攻击场景。继续阅读以了解开发人员可在其嵌入式设计中使用的安全措施概要。

构建安全

虽然有许多芯片架构、操作系统和通信协议;许多物联网设备往往围绕基于 Arm ®的架构构建,如果它们运行的操作系统往往是 Linux 发行版。这种共性在很多方面都是好的;更低的成本和更快的开发时间;它还带有很多底片。攻击向量趋向于“一刀切”,尤其是对于运行基于 Linux 的操作系统的设备。为了减轻与共享通用架构的广泛设备相关的威胁,开发人员应实施以下“速赢”安全设计原则:

不要将密码硬编码到固件中。此外,不要对所有设备使用通用的默认密码。要求用户在设备初始化期间创建自定义用户名和密码。

不要默认启用不安全的协议,例如 HTTP、FTP 或 Telnet。通过有线或无线协议离开设备的数据必须经过高度加密。避免“自制”加密解决方案。

以尽可能最严格的配置运送设备,并让最终用户主动决定减少与安全相关的设置。

用于访问设备的所有机制都应该需要身份验证和授权控制。如果可行,应使用双因素身份验证 (2FA)。

应过滤所有面向用户的输入以避免注入式攻击。

为最终用户实施一个安全的设备管理界面,使他们能够管理他们的资产、更新设备、监控设备,并安全地停用已达到生命周期结束 (EOL) 的设备。

无线 (OTA) 更新机制必须在设备上进行验证。更新文件必须在发送到设备的途中加密。最后,确保有防回滚功能,以防止设备恢复到以前的不安全固件。

如果在您的设备设计中使用了第三方软件库,则必须持续监控它们以确保集成了第三方更新并且它们不会被弃用。废弃的软件项目可能会成为您设备的严重漏洞。在将第三方软件提交到您的项目之前更改它们的默认密码。

限制应在设备上存储哪些敏感数据。仅将此类信息存储在安全区域中。

请记住,对于物联网,嵌入式系统只是更大生态系统的一部分。确保安全性也内置于云、桌面和移动应用程序中。生态系统的安全性取决于最薄弱的环节。

考虑建立漏洞赏金计划,以鼓励最终用户和安全研究人员以安全、负责任的方式提交漏洞。

对设备的物理访问往往是设备的游戏结束情况。这并不意味着没有什么可以使物理上利用这些类型的设备变得更加困难。整本书都是关于使电路板和相关外壳防篡改的,但为了获得一些“快速胜利”,请考虑以下物理设计经验法则来强化您的设备:

用于调试端口(例如 JTAG 和 UART)的引脚在开发和测试设备时非常有用。对于那些试图恶意逆向工程设备的人来说,它们也是诱人的目标。建议混淆这些引脚和/或移除生产单元的插头引脚。请注意,这将以在部署后更难进行故障排除为代价。设计人员必须考虑安全性和可维护性之间的平衡。

使用粘合剂、超声波焊接和/或专用安全螺丝会使打开设备变得更加困难。

在敏感元件上涂上非导电环氧树脂可能会混淆它们的身份和用途。

您可能会想使用可能存在漏洞的旧组件。还要注意假冒组件。如果一笔交易好得令人难以置信,那它可能就是真的。平衡安全性和上市时间考虑因素并不是一个可以轻易做出的决定。

多层板可用于以一种更难辨别电路板功能的方式来布线。

以下一些建议可能对消费级 IoT 设备有点过分。然而,正如我们稍后将详述的那样,工业控制系统和防御系统可能会受益于这些更强大的物理安全措施:

在电路板本身中内置安全功能,例如微动开关、水银开关或磁性开关,它们可以检测电路板是否被无意地操作或打开。也可以使用镍铬合金线或光纤。如果电线或光纤受到试图篡改设备的人的负面影响,那么电线的电流或光子通过光纤的行为将会发生可检测的变化。

侧信道或故障攻击虽然可能不常见,但为对手提供了独特的优势,因为它们使用物理定律来攻击设备,因此虽然可以检测到,但很难预防。通过攻击时序或限制电子流向 CPU,有可能让设备以意想不到的方式运行,从而否定安全功能。电压和电流传感器可以在板载电路板上实现,以检测是否可能发生毛刺,尽管存在误报的可能性。

重要的对手可以使用 X 射线机器窥视微芯片并发现晶体管的形貌以确定功能等。可以添加检测 X 射线的传感器来检测篡改,但无法阻止对手提取有用信息。

应该指出的是,安全性和开放性范例之间存在着相当大的二分法。安全值混淆。开放硬件价值理解。无论如何,请记住这句古老的格言,锁只会让诚实的人保持诚实,对于一般安全人员来说也是如此。有关如何构建安全物联网设备的更多信息,请访问开放 Web 应用程序安全项目 (OWASP) 物联网项目。

操作安全

即使制造商可以在他们的产品中实施所有最好的安全设计原则,如果最终用户不以安全的方式操作他们的设备,他们也将毫无意义。

更改默认路由器名称、路由器密码、网络名称 (SSID) 和网络加密密钥。请务必使用强密码原则,不要为两个网络使用相同的密码。

将您的家庭网络划分为两个“虚拟”网络,以便台式计算机、网络附加存储 (NAS) 设备等无法“看到”IoT 设备。要快速轻松地执行此操作,请为您的 IoT 网络使用访客网络功能.

大多数物联网设备依靠智能手机应用程序来控制设备。使应用程序保持最新状态,并在可用时使用 2FA 进行登录。

禁用您不打算使用的物联网设备的任何功能。

定期更新路由器和物联网设备的固件。

当物联网设备达到使用寿命并且不再接收更新时,请考虑将其更换为更新的型号。

工业实力安全

面向消费者的 IoT 产品可能很多,但它们的工业对应产品(统称为工业控制系统 (ICS))管理着许多极其重要且具有潜在危险的过程。从能源生产到工厂,一切都使用嵌入式数字技术(称为操作技术或 OT;与以办公室为中心的信息技术或 IT 相对)来控制负责执行各种流程的设施和相关机械。ICS 环境与严格的 IT 环境有很大不同,因此需要特别考虑加固 OT 设备和 ICS 网络。最基本的原则是 ICS 不应连接到互联网。虽然这看起来很简单,但令人惊讶的是,违反这一基本规则的频率如此之高。

ICS 系统通常所在位置的性质(例如,环境、化学或其他危险区域)意味着 ICS 已被设计为优先考虑系统的可用性而不是机密性。从积极的角度来看,这通常意味着存在冗余系统,并且这些系统旨在安全地发生故障。然而,ICS 系统可能会运行数十年,并且可能不会始终保持最新状态。此外,许多协议都比较陈旧,并且在构建时考虑的是效率,而不是安全性。总之,ICS 或 IIoT 领域的安全性具有独特的挑战性,最佳实践可能难以实施。然而,

审核编辑 黄昊宇

 

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

全部0条评论

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

×
20
完善资料,
赚取积分