你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
IoT 解决方案的安全体系结构
设计和构建 IoT 解决方案时,了解潜在威胁并包括适当的防御非常重要。 了解攻击者如何入侵系统有助于确保从一开始就采取适当的缓解措施。
威胁建模
Microsoft 建议将威胁建模过程用作 IoT 解决方案设计的一部分。 如果不熟悉威胁建模和安全开发生命周期,请参阅:
IoT 中的安全性
在威胁建模练习中,将 IoT 体系结构划分为多个区域很有帮助:
- 设备
- 现场网关
- 云网关
- 服务
每个区域通常都有自己的数据和身份验证和授权要求。 还可以使用区域来隔离损坏,并限制低信任区域对较高信任区域的影响。
每个区域都由 信任边界分隔,如下图所示的点红线。 它表示数据从一个源转换到另一个源。 在此转换期间,数据可能受到以下威胁:
- 欺骗
- 篡改
- 否认
- 信息泄露
- 拒绝服务
- 特权提升
若要了解详细信息,请参阅 STRIDE 模型。
可以使用 STRIDE 对每个区域中每个组件的威胁建模。 以下部分详述了每个组件和特定的安全注意事项,以及应准备好的解决方案。
本文的其余部分更详细地讨论了这些区域和组件的威胁和缓解措施。
设备区域
设备环境是设备周围的空间,其中物理访问和对设备的本地网络数字访问是可行的。 假设本地网络是不同的,并且与公共 Internet 有桥梁,但可能桥接到公共 Internet。 设备环境包括允许设备对等通信的任何短范围无线无线电技术。 它不包括任何创建此类本地网络的错觉的网络虚拟化技术。 它不包括公共运营商网络,如果两个设备要进入对等通信关系,则需要任何两个设备在公共网络空间之间通信。
现场网关区域
现场网关是一种设备、设备或常规用途服务器计算机软件,充当通信启用程序,并可能充当设备控制系统和设备数据处理中心。 现场网关区域包括现场网关本身和附加到该网关的所有设备。 现场网关在专用数据处理设施之外的行为通常受位置限制,可能受到物理入侵的影响,并且操作冗余有限。 如果攻击者获得物理访问权限,则现场网关通常是攻击者在物理上可能会破坏的。
现场网关不同于流量路由器,因为它在管理访问和信息流方面具有积极的作用。 现场网关有两个不同的外围应用。 其中一个面向附加到它的设备,并表示区域内部。 另一个面向所有外部方,并且是区域的边缘。
云网关区域
云网关是一个系统,可用于从多个站点部署的设备或现场网关进行远程通信。 云网关通常支持基于云的控制和数据分析系统,或此类系统的联合。 在某些情况下,云网关可立即提升特殊用途设备的终端(如平板电脑或手机)访问速度。 在云网关区域中,操作措施会阻止目标物理访问,不一定向公有云基础结构公开。
云网关可以映射到网络虚拟化覆盖层,使云网关及其所有附加设备或现场网关免受任何其他网络流量的隔离。 云网关本身不是设备控制系统,也不是设备数据的处理或存储设施;这些设施与云网关接口。 云网关区域包含云网关和所有现场网关,以及直接或间接附加到其上的设备。 该区域的边缘是所有外部方通过通信的不同外围应用。
服务区域
此上下文中的服务是任何通过现场或云网关与设备进行交互的软件组件或模块。 服务可以从设备和命令和控制这些设备收集数据。 服务是一个中介,它在其标识下对网关和其他子系统执行如下处理:
- 存储和分析数据
- 根据数据见解或计划向设备发出命令
- 向授权最终用户公开信息和控制功能
IoT 设备
IoT 设备通常是专用设备,从简单的温度传感器到复杂的工厂生产线,里面有成千上万的组件。 IoT 设备功能示例包括:
- 测量和报告环境条件
- 转向阀
- 控制
- 发出警报
- 打开或关闭灯
这些设备的用途决定了其技术设计和生产生存期操作的可用预算。 这些因素的组合限制了可用的运营能源预算、物理占用空间和可用存储、计算和安全功能。
自动化或远程控制的 IoT 设备出现问题的问题包括:
- 物理缺陷
- 控制逻辑缺陷
- 故意未经授权的入侵和操作。
这些故障的后果可能是严重的,如被摧毁的生产地段,建筑物被烧毁,或受伤和死亡。 因此,对于使事情移动或报告传感器数据的设备来说,有一个较高的安全条,这会导致导致事情移动的命令。
设备控制与设备数据的交互
特殊用途的连接设备具有大量的潜在交互接口区与交互模式,必须全面考虑所有项目才能提供适当的框架,以保护这些设备的数字访问安全性。 数字访问 是指通过软件和硬件而不是直接物理访问设备执行的操作。 例如,通过将设备放入门上锁的房间,可以控制物理访问。 尽管无法使用软件和硬件拒绝物理访问,但仍可以采取一些措施来防止物理访问干扰系统。
在探索交互模式时,对设备控制和设备数据同等重视。 设备控制是指提供给设备的任何信息,目的是修改其行为。 设备数据是指设备向任何其他方发出有关其状态及其环境的观察状态的信息。
Azure IoT 参考体系结构的威胁建模
本部分使用 Azure IoT 参考体系结构 来演示如何考虑 IoT 的威胁建模以及如何解决标识的威胁:
下图使用数据流图模型提供了参考体系结构的简化视图:
该体系结构分隔设备和现场网关功能。 此方法使你能够使用更安全的现场网关设备。 现场网关设备可以使用安全协议与云网关通信,这通常需要比简单设备(如恒温器)更强大的处理能力。 在关系图中的 Azure 服务区域中,Azure IoT 中心服务是云网关。
根据前面概述的体系结构,以下部分显示了一些威胁建模示例。 这些示例侧重于威胁模型的核心元素:
- 进程
- 通信
- 存储
进程
下面是进程类别中威胁的一些示例。 威胁根据 STRIDE 模型进行分类:
欺骗:攻击者可能会在软件或硬件级别从设备中提取加密密钥。 然后,受攻击者使用这些密钥通过原始设备的标识从其他物理或虚拟设备访问系统。
拒绝服务:通过干扰无线电频率或剪断线路,导致设备无法运行或无法通信。 例如,具有其电源或网络连接的监视摄像头根本无法报告数据。
篡改:攻击者可能会部分或完全替换设备上的软件。 如果设备的加密密钥可供攻击者代码使用,则可以使用设备的标识。
篡改:一个显示空走廊的可见光谱图片的监控摄像头可能针对这样的走廊的照片。 烟雾或火灾传感器可能将报告下面有人手持打火机。 任一种情况下,系统可能会在技术上完全信任设备,但是设备报告的信息却有可能受到操控。
篡改:攻击者可以使用提取的加密密钥来截获和禁止从设备发送的数据,并将其替换为通过被盗密钥进行身份验证的虚假数据。
信息泄露:如果设备正在运行受操控的软件,此类受操控的软件可能会数据泄漏给未经授权方。
信息泄露:攻击者可以使用提取的加密密钥将代码注入设备和现场网关或云网关之间的通信路径,以筛选信息。
拒绝服务:设备可以关闭或关闭为无法通信的模式(这在许多工业机器中是有意的)。
篡改:可将设备重新配置为在未知状态下运行,以控制系统(在已知校正参数的范围以外),并因此提供可误导的数据
权限提升:执行特定功能的设备可能将被强制执行其他操作。 例如,编程为半开的阀门可能将受骗而完全打开。
欺骗/篡改/否认性:如果未受保护(在使用者进行远程控制时很少出现这种情况),攻击者可以匿名方式操控设备的状态。 一个很好的插图是一个远程控制,可以关闭任何电视。
下表显示了这些威胁的示例缓解措施。 威胁列中的值是缩写:
- 欺骗 (S)
- 篡改 (T)
- 否认(R)
- 信息披露(I)
- 拒绝服务 (D)
- 特权提升 (E)
组件 | 威胁 | 缓解 | 风险 | 实现 |
---|---|---|---|---|
设备 | S | 将标识分配给设备并对设备进行身份验证 | 用其他设备替换设备或部分设备。 如何知道你正在与正确的设备通信? | 使用传输层安全性 (TLS) 或 IPSec 来验证设备。 基础结构应支持在这些无法处理完全非对称加密的设备上使用预共享密钥(PSK)。 使用 Microsoft Entra ID、 OAuth。 |
TRID | 对设备应用防篡改机制,例如,确保不能从设备中提取密钥和其他加密材料。 | 但风险是我们不知道设备是不是已受到篡改(物理干扰)。 如何确定该设备未被篡改。 | 最有效的缓解措施是受信任的平台模块(TPM)。 TPM 将密钥存储在无法读取密钥的特殊芯片上线路中,但只能用于使用该密钥的加密操作。 设备的内存加密。 设备的密钥管理。 为代码签名。 | |
E | 针对设备使用访问控制。 授权方案。 | 如果设备可以根据外部源甚至遭入侵的传感器的命令来执行各项操作,则意味着攻击可以凭此执行操作,而不仅是访问内容。 | 具有设备的授权方案。 | |
现场网关 | S | 现场网关到云网关的验证(例如证书式、PSK 或基于声明)。 | 如果某人可以欺骗现场网关,则就可以伪装成任何设备。 | TLS RSA/PSK、IPSec、RFC 4279。 同样地,一般的设备密钥存储和证明考虑因素都高度建议使用 TPM。 IPSec 的 6LowPAN 扩展可支持无线传感器网络 (WSN)。 |
TRID | 保护现场网关免遭篡改 (TPM) | 欺骗攻击,欺骗云网关认为它正在与现场网关通信可能会导致信息泄露和数据篡改 | 内存加密、TPM、身份验证。 | |
E | 针对现场网关使用访问控制机制 |
通信
下面是通信类别中威胁的一些示例。 威胁根据 STRIDE 模型进行分类:
拒绝服务:受约束的设备通常在主动侦听入站连接或网络上未经请求的数据报时受到 DoS 威胁。 攻击者可以并行打开许多连接,要么不为它们提供服务,要么缓慢服务,要么用未经请求的流量淹没设备。 在这两种情况下,网络可能会将设备解释为无法正常工作。
欺骗、信息泄露:受限设备和特殊用途设备通常具有一次性安全设施,例如密码或 PIN 保护。 有时,它们完全依赖于信任网络,并向任何设备授予对信息的访问权限位于同一网络上。 如果网络受到被披露的共享密钥的保护,攻击者可以控制设备或观察它传输的数据。
欺骗:攻击者可能会拦截或部分覆盖广播和欺骗发起人。
篡改:攻击者可能会截获或部分覆盖广播并发送虚假信息。
信息泄露: 攻击者可以在未经授权的情况下窃听广播并获取信息。
拒绝服务: 攻击者可能会堵塞广播信号并拒绝信息分发。
下表显示了这些威胁的示例缓解措施:
组件 | 威胁 | 缓解 | 风险 | 实现 |
---|---|---|---|---|
设备 IoT 中心 | TID | 用于加密流量的 (D)TLS (PSK/RSA) | 窃听或干扰设备与网关之间的通信 | 协议级别的安全性。 使用自定义协议时,需要了解如何对其进行保护。 在大多数情况下,通信主要是发生在设备到 IoT 中心这一段位置(由设备发起连接)。 |
设备到设备 | TID | 用于加密流量的 (D)TLS (PSK/RSA)。 | 读取设备之间正在传输的数据。 篡改数据。 使用新连接使设备过载 | 协议级别的安全性 (MQTT/AMQP/HTTP/CoAP)。 使用自定义协议时,需要了解如何对其进行保护。 DoS 威胁的缓解措施是通过云网关或现场网关将设备设为对等,使其仅可充当网络客户端。 网关代理对等互连后,对等互连之间可能存在直接连接。 |
外部实体设备 | TID | 外部实体与设备的强式配对 | 窃听设备的连接。 干扰设备的通信 | 使用 NFC/蓝牙 LE 安全配对外部实体与设备。 控制物理设备的操作面板。 |
现场网关 云网关 | TID | 用于加密流量的 TLS (PSK/RSA)。 | 窃听或干扰设备与网关之间的通信 | 协议级别的安全性 (MQTT/AMQP/HTTP/CoAP)。 使用自定义协议时,需要了解如何对其进行保护。 |
设备 云网关 | TID | 用于加密流量的 TLS (PSK/RSA)。 | 窃听或干扰设备与网关之间的通信 | 协议级别的安全性 (MQTT/AMQP/HTTP/CoAP)。 使用自定义协议时,需要了解如何对其进行保护。 |
存储
下表显示了存储威胁的示例缓解措施:
组件 | 威胁 | 缓解 | 风险 | 实现 |
---|---|---|---|---|
设备存储 | TRID | 存储加密、为日志签名 | 从存储读取数据,篡改遥测数据。 篡改排队或缓存的命令控制数据。 在本地缓存或排队时篡改配置或固件更新包可能导致 OS 和/或系统组件遭到入侵 | 加密、消息身份验证代码 (MAC) 或数字签名。 尽可能通过资源的访问控制列表 (ACL) 或权限进行强式访问控制。 |
设备 OS 映像 | TRID | 篡改 OS/替换 OS 组件 | 只读 OS 分区、签名的 OS 映像、加密 | |
现场网关存储(将数据排队) | TRID | 存储加密、为日志签名 | 从存储读取数据、篡改遥测数据、篡改排队或缓存的命令控制数据。 在本地缓存或排队时篡改配置或固件更新包(发往设备或现场网关)可能导致 OS 和/或系统组件遭到入侵 | BitLocker |
现场网关 OS 映像 | TRID | 篡改 OS/替换 OS 组件 | 只读 OS 分区、签名的 OS 映像、加密 |
后续步骤
若要了解有关 IoT 安全性的详细信息,请参阅: