作者:Ian Beavers and Erik MacLean
物联网系统攻击正在成为头条新闻,并继续展示网络、边缘节点和网关的安全漏洞。最近的 Mirai 僵尸网络通过登录运行未更改默认密码的 telnet 服务器的设备感染了超过 250 万个物联网节点。1Mirai后来能够对服务器调用拒绝服务,从而中断了世界大部分地区的互联网访问。收割者僵尸网络通过利用软件漏洞并感染它们来攻击超过一百万台物联网设备。一个连接互联网的鱼缸提供了进入赌场网络的入口点,导致10 GB的数据被盗。智能电视已被利用并用于间谍和监视。
嵌入式传感器系统刚刚开始连接并暴露在互联网上。作为工业物联网(IIoT)的一部分,这些传感器缺乏Web服务器在这种敌对环境中过去二十年的发展。因此,该行业正在目睹这些系统中常见的许多 1990 年代及更早的攻击。IIoT系统的生命周期通常比传统计算中的生命周期长得多。某些设备在部署后可能会继续运行数十年,并且维护计划未知。
虽然服务器和PC足够复杂,可以进行安全设置,但IIoT节点的功耗和处理能力通常较低。这为有意的安全措施留下了很小的功率预算。安全性在很大程度上是一种权衡,因为涉及开发成本。尽管IIoT的成本可能高于消费者物联网,但它仍将面临可扩展性成本的挑战。如果忽视安全性,则在部署产品后将产生隐藏的影响,最终需要解决这些成本。
传感器和执行器允许IIoT设备与物理世界进行交互。网络攻击主要限于数据丢失,尽管IIoT黑客攻击允许潜在进入物理世界比过去更容易。攻击现在有可能造成人身伤害。这在IIoT中更为重要,在IIoT中,故障可能会关闭或破坏价值数百万美元的工业流程,或导致危及生命的情况。
互联世界
IIoT设备通常连接到某些网络,通常是互联网。这种连接使他们最容易受到攻击。与流行病学领域类似,感染通过与其他机器接触传播。攻击媒介存在于系统与外部世界交互的地方。攻击者能够严格地与系统进行交互,因为他们的连接访问。要问的第一个系统设计安全问题是:“设备真的需要连接到网络吗?将其连接到网络会大大增加安全风险。
保护系统的最佳方法是防止它连接到网络或将其限制为封闭网络。许多IIoT设备连接到网络仅仅是因为它们可能没有太多原因。将设备连接到网络的好处是否超过与之相关的安全风险?此外,与面向互联网的系统交互的任何其他遗留系统也可能面临风险。
在许多情况下,原本安全的网络和安全节点还必须与传统的现有网络进行互操作,而传统网络本身的安全性可能要差得多。这带来了一个新问题,因为最弱的安全风险可能不受IIoT系统的影响。在这种情况下,IIoT系统还需要保护自己免受网络内部的影响。
节点的安全注意事项:2
机密性 — 防止数据泄露给未经授权的人员,例如欺骗攻击
身份验证 - 使用数字证书验证两台计算机之间的身份
安全引导 — ROM 引导加载程序存储验证第二阶段引导加载程序的真实性
安全固件更新 - 仅允许制造商提供的授权代码
授权 - 只有真实的节点才能获得网络访问权限
完整性 — 保护数据不被更改
记帐 — 正确记帐数据、节点计数和时间戳有助于防止对 IIoT 网络的不必要访问
安全通信 — 可驻留在低功耗节点上的加密协议
可用性 — 确保用户在需要时可以访问
不可否认性 — 保证不会拒绝真实的通信请求
可靠性 — 即使在恶劣的电气环境中,访问也需要可靠
图1.欺骗伪装成网关的已知节点。
隔离
将系统彼此隔离可以减少攻击面并限制恶意软件的传播。将不需要网络连接的系统与向网络公开的系统隔离开来。对于高风险系统,请考虑设置一个单独的气隙或严格监控网络,该网络与其他网络分开。理想情况下,关键系统应与外界完全隔离。3
联网汽车的信息娱乐系统可能会使车辆暴露在许多以前从未见过的新攻击媒介中。主机控制单元 (ECU) 与信息娱乐系统无关,不应通过信息娱乐系统与其交互。尽管车辆中通常有两个独立的CAN总线,将最关键的系统与其他系统分开,但它们仍然以某种方式连接在一起。仍然有可能妥协一个并获得对另一个的控制。如果这些网络之间完全隔离,则泄露的风险将从潜在的生命威胁降低到远不那么严重。
图2.可能感染IIoT系统的各种类型的恶意软件。
向边缘移动
许多IIoT系统连接到云服务器,该服务器收集和处理设备发送给它的信息并管理设备。随着设备数量的扩展到大量,云可能难以跟上所有这些设备。许多系统正在将处理转移到IIoT设备上的边缘,以减少到云的流量。
我们通常将数据视为一种资产。数据被挖掘和出售,以找到大型数据集中的隐藏模式。但是,收集的大量数据通常不是很有用,尽管它可能对攻击者有用。敏感数据为攻击者创造了目标,并造成了负担。收集的数据应过滤到仅需要的数据,其余数据应尽快删除。这不仅提高了安全性,还提高了所收集数据的效用。识别潜在的敏感信息并消除或限制其收集非常重要。
在边缘处理数据可以减少发送和暴露到云的数据量。发送的位置数据越多,对其进行保密就越困难。每个新节点都是另一个潜在的妥协,数据可能会泄露。攻击面可能会呈指数级增长。
将敏感数据包含在边缘可以限制攻击面,特别是针对机密数据。如果它仅限于一个边缘节点,则被盗的可能性较小。在图像处理后仅通过二进制信号检测并报告车辆存在的停车占用传感器不会流式传输视频。它消除了图像中包含的大量不必要的数据。这减轻了接收服务器的负担,使其不能被恶意重用于监视。
与消费者物联网系统类似,工业物联网系统也具有必须维护的专有和机密信息:
专有算法
嵌入式固件
客户信息
财务信息
资产位置
设备使用模式
竞争情报
访问更大的网络
穿越迷雾
一些IIoT设备仍然缺乏基于边缘的功能和性能。另一种出现的拓扑,即雾模型,是基于云和边缘的系统之间的混合。在雾模型中,边缘节点首先连接到接收数据的网关,并在将数据发送到云之前进行一些处理。许多IIoT设备可能只有一个网关。网关不需要使用电池供电,可以承受更高的处理能力预算,并且成本高于受限的IIoT设备。
迷雾更多地来自可扩展性问题,但也可能在安全性方面发挥作用。网关设备可以帮助保护易受攻击的边缘节点,这些节点可能过于受限,无法自行提供安全性,但最好提供某种级别的保护,而不是没有保护。网关可用于帮助管理其下的所有节点,而不是直接管理每个单独的节点。雾模型还可以允许在IIoT中进行事件响应,同时避免服务中断。例如,安全性可以通过与网关交互来响应,而不是关闭任务关键型生产线。
预配和部署
IIoT面临的最大挑战之一是部署和管理大量设备。众所周知,广泛的IIoT系统难以设置和配置。由于IIoT的生命周期较长,系统可能由一个团队部署,并且在几年后,当另一个团队支持它时仍然可以运行。
默认情况下,IIoT 系统通常不安全,身份验证机制较弱。正如Mirai僵尸网络所见,大多数用户从未登录IIoT设备进行配置。他们甚至可能不知道它们应该被配置。大多数IIoT用户认为事情只是开箱即用。默认情况下,系统必须安全。应设置系统期望,即用户可能永远不会配置默认设备以外的设备。弱默认密码是一个常见的错误。
网络安全
虽然边缘在IIoT中获得了大部分关注点,但重要的是不要忽视系统的云或服务器端。测试常见的服务器端漏洞,如跨站点脚本、SQL 注入和跨站点请求伪造,并检查 API 中的漏洞,确保及时修补服务器上运行的软件。
通过网络传输的数据需要得到保护,否则可能会被恶意拦截和修改。TLS 或 SSH 等安全加密协议用于保护传输中的数据。理想情况下,数据应受到端到端保护。
IIoT网络的边界通常可能很模糊。IIoT传感器节点通常在空间上驻留在其网络的外围。但是,它们也通过固定网关提供了进入更大工业网络的简单门户。4对这些设备进行正确的网络身份验证有助于防止流量被恶意第三方篡改。
保护网络数据流量涉及使用安全通信协议。最佳做法应该是使用已知安全的标准协议。以太网 LAN 上的安全性可以使用 IEEE 802.1AE MACsec 提供。无线 LAN 往往风险更高,因为它们更容易访问且无处不在。WPA2 为 IEEE 802.11 无线网络提供安全性。低功耗IEEE 802.15.4标准通常用于无线IIoT解决方案,提供自己的安全协议套件。但是,这些是第 2 层协议,仅保护 LAN 上的流量。
保护需要在 LAN 外部路由的流量(例如通过互联网)需要提供端到端安全性的更高层协议。TLS 通常用于保护互联网流量并提供端到端安全性。虽然TLS使用TCP,许多物联网设备使用UDP进行通信,但DTLS(数据报传输层安全性)通过UDP工作。虽然 IoT 设备的功耗和内存受到限制,但可以毫不费力地为大多数受限的应用程序实现 TLS。对于更严格约束的设备,目前有一个新的协议,即IETF正在开发的约束应用程序协议(CoAP)。
端点安全
虽然保护传输中的数据很重要且必要,但攻击通常针对端点。面向网络的接口需要针对漏洞进行强化。IIoT 安全的一种方法是直接在传感器节点设备中构建保护。这提供了第一个关键安全层,因为设备不再依赖于公司防火墙进行单独保护。这对于部署在远程位置的移动公司设备和IIoT传感器尤其重要。
IIoT 设备的安全解决方案必须提供针对各种网络攻击的保护。它必须确保设备固件未被篡改,能够保护存储在设备中的数据,能够保护入站和出站通信,并且必须能够检测和报告任何企图的网络攻击。5这只能通过在设计的早期阶段包含安全性来实现。
图3.中间人攻击在节点和网关之间插入恶意接入点。
对于嵌入式设备,永远不可能有一刀切的安全解决方案。提供的解决方案为 OEM 提供通用框架。但是,完整的安全框架必须考虑保护特定设备、网络和整个系统所需的核心功能。还必须能够灵活地根据任何特定要求定制解决方案,同时确保包含关键的安全功能。
自动机高压灭菌器
在医学上,手术工具的灭菌对于允许其重复使用同时防止疾病传播至关重要。高压灭菌器是灭菌的黄金标准。它可以在高压下用过热蒸汽快速消毒器械。它消灭所有细菌并使仪器恢复到已知的良好状态。这允许外科医生使用手术刀进行手术,并在消毒后安全地重复使用手术刀。
在遭到入侵后将系统恢复到已知良好状态的能力比使其对所有攻击都无懈可击更重要。弹性系统可以快速恢复并充满信心地恢复运行。
一旦系统被感染,如何消毒?当系统被感染时,它会以某种未知的方式改变系统的状态。远程攻击控制处理器并将新的恶意代码注入系统。通常,固件会以某种方式被修改或替换为恶意软件,因此系统现在以不同的方式运行。一旦发生这种情况,处理器就不能再受信任。
嵌入式系统的设计方式通常使其难以可靠地从妥协中恢复。通常,清理系统并验证系统是否干净的唯一方法是将所有非易失性存储器直接物理转储到外部读取器。然后可以根据原始固件进行验证,如果它不完整,则用原始固件替换。大多数系统的设计方式都不是为了实现这一点。
保护系统完整性的一种方法是使用机械开关对非易失性存储器进行物理写保护。当交换机设置为写保护时,内存在硬件中受到物理保护。将对内存的控制移到处理器域之外,使得在没有物理访问设备的情况下将永久性恶意软件远程安装到此内存中是不可能的。这将潜在攻击者的列表从世界上任何具有互联网连接的人减少到仅那些可以长时间物理访问设备的人。固件更新通常是非常罕见的事件。当需要固件更新时,用户可以将交换机设置为写启用内存以授权更新,然后在更新完成后对设备进行写保护。
图4.物理写保护固件(执行更新时除外)是保护设备完整性的有效方法。
许多器件还使用其非易失性存储器来存储写入访问所需的数据。在高安全性系统中,单独的非易失性存储器芯片可用于存储数据,但不能用于存储软件。攻击者仍可能通过将恶意数据写入此内存并利用软件错误来危害某些系统,因此应彻底分析和测试系统,因此无论此内存中存储什么数据,系统都不会受到损害。增加额外的内存芯片会增加成本 - 但是,一些闪存允许对某些扇区进行写保护,而允许其他扇区可写。
安全启动
安全启动可防止在启动过程中将未经授权的软件加载到设备上。它是信任链的开始。安全引导从编程到节点上只读非易失性存储器位置的第一级引导加载程序开始。此引导加载程序仅验证第二阶段引导加载程序的真实性。第二阶段引导加载程序通常更复杂,可以存储在可重新编程的闪存中,重复该过程。6它验证操作系统和加载的应用程序是否确实从受信任的来源有效。
具有安全启动和安全固件更新功能的IIoT节点可确保设备正在运行授权代码,而不是更改或恶意代码,因为这可以防止永久安装恶意软件或代码。设备将仅运行未修改的代码,或者无法启动。
安全启动过程通常依赖于数字签名来保护代码的真实性。代码映像由设备的 OEM 在制造组装时使用 OEM 的私钥进行签名。然后,节点使用 OEM 的相应公钥来验证固件映像的签名。
还可以使用对称加密使用消息身份验证代码 (MAC) 保护代码,但这需要私钥存储在设备上,这会使其面临风险。但是,使用 MAC 在计算上更容易。
虽然安全启动可以增强安全性,但有时对最终用户的限制性太大,因为它会阻止他们更改设备上运行的软件或运行自己的软件。根据应用程序的不同,用户可能需要更大的灵活性和配置安全启动的能力,从而允许它信任自己的代码。
安全固件更新(类似于安全启动)验证 OEM 在升级过程中是否已对新代码映像进行签名。如果下载的映像无效,则会丢弃这些映像并停止升级。只有有效的图像是可接受的,并随后保存到设备内存中。
假设某个时候会发现漏洞。应该有一个计划,以便在发现或利用漏洞时如何解决漏洞。通常需要一种方法来允许在设备上安装软件更新和补丁来修复漏洞。还需要正确实施更新过程,以便它不会被用作允许任何人在设备上安装恶意软件的攻击媒介。仅为了提供修补功能而使设备通过网络访问可能会带来比减轻更多的风险。
安全通信
大多数工程师将安全性视为通信协议,例如SSL/TLS,SSH和IPsec,因为安全通信已添加到许多嵌入式设备中。但是,虽然这是安全威胁的一部分,但其他攻击媒介提供了新的途径。许多IIoT传感器节点在低功耗配置中运行,具有低功耗处理器,无法支持某些最佳选项,例如TLS或IPsec。安全协议为构建安全设备提供了良好的起点。7它们旨在防止数据包嗅探、中间人攻击、重放攻击以及未经授权的与节点通信尝试。
小型IIoT边缘传感器设备通常采用无线协议,如Zigbee,低功耗蓝牙(BLE)以及其他无线和网状网络协议。这些协议具有一定程度的内置安全性。但是,它相对较弱。许多漏洞已经发布,并且被老练的黑客所熟知。小型IIoT设备通常在不支持TLS或IPSec的低成本、低功耗处理器上运行。对于小型边缘设备,DTLS(通过 UDP 的 TLS)可用于安全通信。®
物理安全
物理攻击针对IIoT系统的实际边缘硬件节点或网关,可能包括前端传感器的漏洞。这些攻击通常需要对系统的物理访问,但也可能仅涉及仅限制IIoT硬件效率的操作。攻击者可以篡改节点,以控制IIoT环境中的传感器或其他设备。然后,他们可以从源中提取机密数据和嵌入式固件代码。使用恶意节点注入策略,攻击者可以将合法节点之间的恶意节点物理部署到IIoT网络中。8
为了帮助缓解这些攻击,可以在设计阶段实现几个硬件预谋。通过引线器件、裸露铜通孔或未使用的连接器对信号进行轻松物理探测应尽可能少,甚至从设计中放弃。应删除详细说明组件并向潜在黑客提供额外信息的丝网印刷,除非认为设计绝对必要。虽然它会增加系统的复杂性,但工业保形涂层不仅可以缓冲硬件与元件的影响,还可以增加一个额外的步骤来防止直接探测PCB上的电子设备。
任何嵌入式非易失性存储器内容都应在组件内进行加密和写保护。微控制器和DSP器件之间的接口应位于PCB上的埋地走线层内。即使可以检索到嵌入式存储器的内容,该数据的加密和有效性也应该使其毫无意义。
制造商通常包括调试或测试端口。这些通常是串行或JTAG,可用于访问和控制系统的大部分。确保这些端口在生产中功能上被禁用或保护,因为不填充调试标头是不够的,因为确定的个人可以填充它们或将自己的连接焊接到引脚。如果需要在生产设备中保持启用状态,则需要在允许使用这些接口之前进行身份验证。它们可以受密码保护,但请确保允许用户设置强密码。
随机数生成
加密函数通常需要某种随机数生成器 (RNG)。随机数可能需要不可预测才能生成密钥,或者它们可能需要从不重复。由于缺乏资源和熵,在受约束的嵌入式系统中生成随机数通常是一个重大挑战。
许多嵌入式系统的熵太少。这可能会导致灾难性的中断,例如台湾的国民身份证智能卡。研究人员发现,由于缺乏熵,许多身份证从相同的数字生成了相关的密钥。结果,尽管使用了强大的RNG,但它们还是能够被打破。9同样,在2012年,研究人员发现公钥服务器上0.38%的RSA密钥共享弱随机数生成,并且能够破解它们。10
验证RNG的强度是困难的或几乎不可能的。过去的RNG设计是相当临时的,而且知之甚少。然而,近年来,在鲁棒加密随机数生成器的设计和形式分析方面取得了重大进展。
现代、强大的 RNG 设计现在往往有三个阶段。8有一个熵源提供原始熵,一个熵提取器使熵均匀分布,还有一个扩展阶段来扩展可用的少量熵。
第一阶段是熵源。这可能是一些物理噪声源,例如时钟抖动或热噪声。某些处理器(例如ADI Blackfin DSP)为硬件提供可用于熵生成的随机数发生器。®
加密货币的随机数需要具有均匀的统计分布。所有熵源都有一定程度的偏差,在将其用于加密应用程序之前,需要消除这种偏差。这是使用熵提取器完成的,该提取器采用具有高熵的非均匀分布输入,并生成具有高熵的均匀分布输出。这是以一些熵损失为代价的,因为熵提取器需要比输出更多的熵输入。因此,需要从熵源收集更多的位,并将其提炼成一个小的高熵数,可用于为加密安全的伪随机数生成器播种。11, 12
利用勘误表
几乎所有的IIoT节点都使用某种形式的嵌入式固件或算法进行操作。从功能上讲,此固件可以正常运行,其执行其要求的能力没有明显的问题。但是,所有软件都有一定程度的错误或勘误表,允许一小部分可能导致安全问题的异常操作。例如,99.99% 无勘误的固件很少(如果有的话)会导致任何操作问题。但是,入侵者可能会利用这个 0.01% 的小勘误表,强制节点在该特定操作模式下 100% 的时间内失败。软件错误源于复杂性,这是任何系统执行任何有用操作所必需的。软件错误和漏洞基本上存在于所有系统中。
图5.利用小勘误表在 100% 的时间内强制故障。
安全设计
安全性必须从一开始就是系统设计的考虑因素。它应该是设计过程的一部分,而不是在项目结束时附加的东西。安全性不是添加安全功能;这是关于管理风险的。安全设计方法对于任何IIoT系统开发都至关重要。
现有的安全设计实践仍然适用。使用威胁建模来识别风险并选择适当的风险缓解策略。确定系统的入口点,以便识别系统中风险最高的区域。大多数攻击媒介都通过外部接口,因此请查看安全漏洞的设计实现。仔细处理未知数据并验证所有输入 - 验证和安全性不应仅限于入口点。纵深防御很重要,这意味着在外层被破坏时需要安全层。
许多处理器提供不同级别的特权。ARMhas Trustzone和ADI Blackfin DSP提供用户级执行模式和特权执行模式。以尽可能低的权限级别执行尽可能多的代码,以将最重要的代码保持在特权模式中。IIoT 设备的安全要求必须考虑安全故障的成本、攻击的可能性、主要攻击媒介以及实施安全解决方案的成本。
结论
其中许多建议相互冲突,并与系统的其他设计目标冲突。提供安全性通常涉及某种权衡,通常涉及成本、功能或可用性。有些权衡非常有效且便宜,而另一些则成本高且影响不大。安全性需要与设计的其他需求相平衡,并且应通过安全的设计过程在特定应用的基础上确定。
为了帮助保护IIoT,ADI提供了多种处理器,这些处理器提供基于硬件的安全增强功能,有助于突破边缘节点的极限。低功耗收发器ADF7023 RF采用ISM频段和多种不同可用调制方案,提供内部AES加密。
ADuCM3029中的嵌入式收发器提供AES和SHA-256硬件加速、真随机数发生器以及多重保护SRAM。ADSP-BF70X Blackfin系列数字信号处理器提供嵌入式一次性可编程存储器,用于安全密钥存储和快速安全启动,有力地保证系统在受损后将恢复到已知的良好状态。
Blackfin DSP中的回滚保护具有基于硬件的仅增量计数器,允许在出现漏洞时更新固件以修复漏洞。这与密钥存储的不可变性相结合,提供了创建强大且有弹性的边缘节点的能力。此外,Blackfin DSP还提供加密硬件加速器、基于硬件的真随机数发生器、特权和非特权代码执行分离、MMU,以及限制许多DMA通道访问的能力,以低成本实现并行和节能的安全DSP。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !