65.9K
CodeProject 正在变化。 阅读更多。
Home

物联网安全架构

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2016年9月26日

CPOL

25分钟阅读

viewsIcon

19906

威胁建模的目标是了解攻击者可能如何破坏系统,然后确保采取适当的缓解措施。威胁建模强制设计团队在系统设计时考虑缓解措施,而不是在系统部署之后。

在设计系统时,重要的是要了解该系统面临的潜在威胁,并在系统设计和架构时相应地添加适当的防御措施。从一开始就将安全性融入产品设计中尤为重要,因为了解攻击者可能如何破坏系统有助于确保从一开始就采取适当的缓解措施。

安全始于威胁模型

微软长期以来一直将其威胁模型用于其产品,并已将公司的威胁建模过程公开。公司经验表明,这种建模除了能立即理解最令人担忧的威胁之外,还具有意想不到的好处。例如,它还为与开发团队以外的人进行公开讨论创造了途径,这可能导致产品的新想法和改进。

威胁建模的目标是了解攻击者可能如何破坏系统,然后确保采取适当的缓解措施。威胁建模强制设计团队在系统设计时考虑缓解措施,而不是在系统部署之后。这一点至关重要,因为对现场大量设备进行安全防御改造是不可行的,容易出错,并将使客户面临风险。

许多开发团队在捕获有利于客户的系统功能需求方面做得非常出色。然而,识别某人可能滥用系统的非显而易见的方式更具挑战性。威胁建模可以帮助开发团队了解攻击者可能做什么以及为什么。威胁建模是一个结构化过程,它引发关于系统中安全设计决策的讨论,以及在此过程中对设计所做的影响安全的更改。虽然威胁模型只是一份文档,但这份文档也代表了确保知识连续性、保留经验教训以及帮助新团队快速上手。最后,威胁建模的一个结果是使您能够考虑安全的其他方面,例如您希望向客户提供哪些安全承诺。这些承诺与威胁建模相结合,将为您的物联网(IoT)解决方案的测试提供信息和驱动。

何时进行威胁建模

威胁建模如果在设计阶段融入,将提供最大的价值。在设计时,您拥有最大的灵活性来做出更改以消除威胁。通过设计消除威胁是理想的结果。这比添加缓解措施、测试它们并确保它们保持最新要容易得多,而且,这种消除并非总是可能的。随着产品变得越来越成熟,消除威胁变得更加困难,反过来,这将最终需要更多的工作和比早期开发阶段威胁建模更困难的权衡。

威胁建模什么

您应该对整个解决方案进行线程建模,并关注以下领域

  • 安全和隐私功能
  • 故障与安全相关的功能
  • 触及信任边界的功能

谁进行威胁建模

威胁建模与其他任何过程一样。将威胁模型文档视为解决方案的任何其他组件并对其进行验证是一个好主意。许多开发团队在捕获有利于客户的系统功能需求方面做得非常出色。然而,识别某人可能滥用系统的非显而易见的方式更具挑战性。威胁建模可以帮助开发团队了解攻击者可能做什么以及为什么。

如何进行威胁建模

威胁建模过程由四个步骤组成;这些步骤是

  • 对应用程序进行建模
  • 枚举威胁
  • 缓解威胁
  • 验证缓解措施

流程步骤

构建威胁模型时要牢记的三条经验法则

  1. 根据参考架构创建图表。
  2. 从广度优先开始。在深入探讨之前,先获得概览,并了解整个系统。这有助于确保您在正确的地方深入探讨。
  3. 驱动过程,不要让过程驱动您。如果您在建模阶段发现问题并想探索它,那就去做吧!不要觉得您需要盲目地遵循这些步骤。

威胁

威胁模型的四个核心要素是

  • 进程(Web 服务、Win32 服务、*nix 守护进程等。请注意,当无法对这些领域进行技术深入分析时,一些复杂的实体(例如现场网关和传感器)可以抽象为进程)。
  • 数据存储(存储数据的任何地方,例如配置文件或数据库)。
  • 数据流(数据在应用程序中其他元素之间移动的地方)。
  • 外部实体(与系统交互但不受应用程序控制的任何事物,示例包括用户和卫星馈送)。

架构图中的所有元素都受到各种威胁;我们将使用 STRIDE 助记符。阅读 再次威胁建模,STRIDE 以了解更多关于 STRIDE 元素的信息。

应用程序图的不同元素受到某些 STRIDE 威胁

  • 进程受 STRIDE 约束。
  • 数据流受 TID 约束。
  • 数据存储受 TID 约束,如果数据存储是日志文件,有时也受 R 约束。
  • 外部实体受 SRD 约束。

物联网安全

连接的专用设备具有大量的潜在交互表面区域和交互模式,所有这些都必须考虑在内,以提供一个框架来保护对这些设备的数字访问。这里使用“数字访问”一词是为了与通过直接设备交互执行的任何操作进行区分,其中访问安全性通过物理访问控制提供。例如,将设备放入带锁的房间。虽然无法使用软件和硬件拒绝物理访问,但可以采取措施防止物理访问导致系统干扰。

当我们探索交互模式时,我们将以同等程度的关注来看待“设备控制”和“设备数据”。“设备控制”可以定义为任何一方提供给设备的任何信息,其目的是改变或影响其行为以达到其状态或其环境的状态。“设备数据”可以定义为设备向任何其他方发出的关于其状态和观察到的环境状态的任何信息。

为了优化安全最佳实践,建议将典型的物联网架构在威胁建模练习中划分为几个组件/区域。这些区域在本节中进行了全面描述,包括

  • Device
  • 现场网关
  • 云网关,以及
  • 服务

区域是细分解决方案的广义方式;每个区域通常都有自己的数据以及身份验证和授权要求。区域还可以用于隔离损坏并限制低信任区域对高信任区域的影响。

每个区域都由信任边界隔开,如下图中的虚线红色线所示。它代表数据/信息从一个源到另一个源的转换。在此转换过程中,数据/信息可能受到欺骗(Spoofing)、篡改(Tampering)、抵赖(Repudiation)、信息泄露(Information Disclosure)、拒绝服务(Denial of Service)和权限提升(Elevation of Privilege)(STRIDE)的影响。

每个边界内描绘的组件也受到 STRIDE 的影响,从而实现了解决方案的完整 360 度威胁建模视图。以下各节详细阐述了每个组件以及应采取的特定安全问题和解决方案。

以下各节将讨论这些区域中通常发现的标准组件。

设备区

设备环境是指设备周围的即时物理空间,在该空间中,物理访问和/或“本地网络”对设备的对等数字访问是可行的。“本地网络”假定为一种网络,该网络与公共互联网不同且相互隔离——但可能与公共互联网桥接——并包括任何允许设备进行对等通信的短距离无线电技术。它不包括任何创建此类本地网络幻觉的网络虚拟化技术,也不包括需要任何两个设备在公共网络空间中进行通信才能建立对等通信关系的公共运营商网络。

现场网关区域

现场网关是一种设备/设备或某种通用服务器计算机软件,它充当通信使能器,并可能充当设备控制系统和设备数据处理中心。现场网关区域包括现场网关本身以及连接到它的所有设备。顾名思义,现场网关在专用数据处理设施之外运行,通常受地点限制,可能受到物理入侵,并且操作冗余有限。总而言之,现场网关通常是可以触摸和破坏的东西,同时知道其功能是什么。

现场网关与单纯的流量路由器不同,因为它在管理访问和信息流方面扮演着积极的角色,这意味着它是一个应用程序寻址实体和网络连接或会话终端。相比之下,NAT 设备或防火墙不符合现场网关的条件,因为它们不是明确的连接或会话终端,而是通过它们建立连接或会话的路由(或阻止)。现场网关有两个不同的表面区域。一个面向连接到它的设备,代表区域内部,另一个面向所有外部方,是区域的边缘。

云网关区域

云网关是一个系统,它允许设备或现场网关从多个不同站点通过公共网络空间进行远程通信,通常是与基于云的控制和数据分析系统(此类系统的联合)进行通信。在某些情况下,云网关可能直接促进从平板电脑或手机等终端对专用设备的访问。在此处讨论的上下文中,“云”是指一个专用数据处理系统,该系统不绑定到与所连接设备或现场网关相同的站点,并且云区域中的操作措施可防止有针对性的物理访问,但并非必然暴露于“公共云”基础设施。

云网关可能会被映射到网络虚拟化覆盖层中,以隔离云网关及其所有连接的设备或现场网关与任何其他网络流量。云网关本身既不是设备控制系统,也不是设备数据的处理或存储设施;这些设施与云网关接口。云网关区域包括云网关本身以及所有直接或间接连接到它的现场网关和设备。该区域的边缘是一个独特的表面区域,所有外部方都通过它进行通信。

服务区

在此上下文中,“服务”定义为任何软件组件或模块,通过现场或云网关与设备接口,用于数据收集和分析,以及命令和控制。服务是中介。它们以自己的身份与网关和其他子系统交互,存储和分析数据,根据数据洞察或计划自主向设备发出命令,并向授权的最终用户公开信息和控制能力。

信息设备与专用设备

个人电脑、手机和平板电脑主要是交互式信息设备。手机和平板电脑明确地优化了电池寿命最大化。当不直接与人交互,或者不提供播放音乐或引导其所有者到特定位置等服务时,它们最好部分关闭。从系统角度来看,这些信息技术设备主要充当人员的代理。它们是“人员执行器”,建议采取行动;是“人员传感器”,收集输入。

专用设备则不同,从简单的温度传感器到拥有数千个组件的复杂工厂生产线。这些设备的目的范围更广,即使它们提供了一些用户界面,它们也主要用于与物理世界中的资产进行接口或集成。它们测量并报告环境情况,打开阀门,控制伺服,发出警报,打开灯,并执行许多其他任务。它们有助于完成信息设备过于通用、昂贵、庞大或脆弱的工作。具体目的直接决定了它们的技术设计以及生产和预定寿命操作的可用资金预算。这两个关键因素的结合限制了可用的操作能源预算、物理占用空间,以及可用的存储、计算和安全功能。

如果自动化或远程可控设备出现“问题”,例如物理缺陷或控制逻辑缺陷,到故意的未经授权的入侵和操纵。生产批次可能会被销毁,建筑物可能会被洗劫或烧毁,人员可能会受伤甚至死亡。这当然与某人刷爆被盗信用卡的额度完全是不同类别的损害。对于能够导致物体移动的设备,以及最终导致物体移动的传感器数据,其安全标准必须高于任何电子商务或银行场景。

设备控制和设备数据交互

连接的专用设备具有大量的潜在交互表面区域和交互模式,所有这些都必须考虑在内,以提供一个框架来保护对这些设备的数字访问。这里使用“数字访问”一词是为了与通过直接设备交互执行的任何操作进行区分,其中访问安全性通过物理访问控制提供。例如,将设备放入带锁的房间。虽然无法使用软件和硬件拒绝物理访问,但可以采取措施防止物理访问导致系统干扰。

当我们探索交互模式时,我们将在威胁建模时以同等的关注级别查看“设备控制”和“设备数据”。“设备控制”可以定义为任何一方提供给设备的任何信息,其目的是改变或影响其行为以达到其状态或其环境的状态。“设备数据”可以定义为设备向任何其他方发出的关于其状态和观察到的环境状态的任何信息。

Azure IoT 参考架构的威胁建模

微软使用上述框架对 Azure IoT 进行威胁建模。因此,在下面的部分中,我们使用 Azure IoT 参考架构的具体示例来演示如何思考 IoT 的威胁建模以及如何解决已识别的威胁。在我们的案例中,我们确定了四个主要的重点领域

  • 设备和数据源
  • 数据传输
  • 设备和事件处理,以及
  • 演示

下图提供了一个简化的微软物联网架构视图,它使用微软威胁建模工具使用的数据流图模型

需要注意的是,该架构将设备和网关功能分开。这允许用户利用更安全的网关设备:它们能够使用安全协议与云网关通信,这通常需要比原生设备(如恒温器)本身所能提供的更大的处理开销。在 Azure 服务区域中,我们假定云网关由 Azure IoT Hub 服务代表。

设备和数据源/数据传输

本节通过威胁建模的视角探讨了上述架构,并概述了我们如何解决一些固有的问题。我们将重点关注威胁模型的核心元素

  • 进程(受我们控制的进程和外部项目)
  • 通信(也称为数据流)
  • 存储(也称为数据存储)

流程

在 Azure IoT 架构中概述的每个类别中,我们尝试在数据/信息存在的不同阶段(进程、通信和存储)缓解许多不同的威胁。下面我们将概述“进程”类别中最常见的威胁,然后概述如何最好地缓解这些威胁

欺骗 (S):攻击者可能从设备中提取加密密钥材料,无论是在软件还是硬件级别,然后以从其获取密钥材料的设备的身份,使用不同的物理或虚拟设备访问系统。一个很好的例子是万能遥控器,它可以打开任何电视,并且是流行的恶作剧工具。

拒绝服务 (D):通过干扰无线电频率或切断电线,设备可能无法正常运行或通信。例如,一台被故意切断电源或网络连接的监控摄像头将根本不会报告数据。

篡改 (T):攻击者可能部分或完全替换设备上运行的软件,如果密钥材料或保存密钥材料的加密设施可供非法程序使用,则可能允许替换的软件利用设备的真实身份。例如,攻击者可能利用提取的密钥材料拦截并阻止来自设备在通信路径上的数据,并将其替换为使用被盗密钥材料进行身份验证的虚假数据。

信息泄露 (I):如果设备正在运行被操纵的软件,则此类被操纵的软件可能会将数据泄露给未经授权的方。例如,攻击者可能利用提取的密钥材料,将自己注入设备与控制器、现场网关或云网关之间的通信路径,以窃取信息。

权限提升 (E):可以强制执行特定功能的设备执行其他操作。例如,一个程序设计为只开一半的阀门可以被欺骗为完全打开。

组件 (Component) 威胁 缓解措施 风险 实现
Device S 为设备分配身份并对设备进行身份验证 将设备或设备的一部分替换为其他设备。我们如何知道我们正在与正确的设备通信? 使用传输层安全(TLS)或 IPSec 对设备进行身份验证。基础设施应支持在无法处理完整非对称加密的设备上使用预共享密钥(PSK)。利用 Azure AD,OAuth
  TRID 对设备应用防篡改机制,例如,通过使从设备中提取密钥和其他加密材料变得非常困难甚至不可能。 风险是如果有人篡改设备(物理干扰)。我们如何确定设备没有被篡改。 最有效的缓解措施是可信平台模块(TPM)功能,它允许将密钥存储在特殊的片上电路中,密钥无法从其中读取,但只能用于使用密钥的加密操作,而不会泄露密钥。设备的内存加密。设备的密钥管理。代码签名。
  E 对设备进行访问控制。授权方案。 如果设备允许根据来自外部源甚至受损传感器的命令执行单个操作,它将允许攻击执行其他无法访问的操作。 为设备提供授权方案
现场网关 S 对现场网关到云网关进行身份验证(基于证书、PSK、基于声明)。 如果有人能够欺骗现场网关,那么它就可以冒充任何设备。 TLS RSA/PSK, IPSe, RFC 4279。与一般设备相同的密钥存储和证明问题——最佳情况是使用 TPM。用于支持无线传感器网络(WSN)的 IPSec 的 6LowPAN 扩展。
  TRID 保护现场网关免受篡改(TPM?) 欺骗攻击会欺骗云网关,使其认为正在与现场网关通信,这可能导致信息泄露和数据篡改。 内存加密、TPM、身份验证。
  E 现场网关的访问控制机制    

以下是此类别中的一些威胁示例

欺骗:攻击者可能从设备中提取加密密钥材料,无论是在软件还是硬件级别,然后以从其获取密钥材料的设备的身份,使用不同的物理或虚拟设备访问系统。

拒绝服务:通过干扰无线电频率或切断电线,设备可能无法正常运行或通信。例如,一台被故意切断电源或网络连接的监控摄像头将根本不会报告数据。

篡改:攻击者可能部分或完全替换设备上运行的软件,如果密钥材料或保存密钥材料的加密设施可供非法程序使用,则可能允许替换的软件利用设备的真实身份。

篡改:一台显示空走廊可见光谱图像的监控摄像头可能被对准了这样一张走廊的照片。烟雾或火灾传感器可能报告有人在它下面拿着打火机。在这两种情况下,设备在技术上可能完全值得系统信任,但它将报告被操纵的信息。

篡改:攻击者可能利用提取的密钥材料拦截并阻止来自设备在通信路径上的数据,并将其替换为使用被盗密钥材料进行身份验证的虚假数据。

篡改:攻击者可能部分或完全替换设备上运行的软件,如果密钥材料或保存密钥材料的加密设施可供非法程序使用,则可能允许替换的软件利用设备的真实身份。

信息泄露:如果设备正在运行被操纵的软件,则此类被操纵的软件可能会将数据泄露给未经授权的方。

信息泄露:攻击者可能利用提取的密钥材料,将自己注入设备与控制器、现场网关或云网关之间的通信路径,以窃取信息。

拒绝服务:设备可以被关闭或进入无法通信的模式(这在许多工业机器中是故意的)。

篡改:设备可以被重新配置为在控制系统未知(超出已知校准参数)的状态下运行,从而提供可能被误解的数据。

权限提升:可以强制执行特定功能的设备执行其他操作。例如,一个程序设计为只开一半的阀门可以被欺骗为完全打开。

拒绝服务:设备可以进入无法通信的状态。

篡改:设备可以被重新配置为在控制系统未知(超出已知校准参数)的状态下运行,从而提供可能被误解的数据。

欺骗/篡改/抵赖:如果未加密(消费级遥控器很少如此),攻击者可以匿名操纵设备状态。一个很好的例子是万能遥控器,它可以打开任何电视,并且是流行的恶作剧工具。

通信

设备之间、设备与现场网关之间以及设备与云网关之间的通信路径上的威胁。下表提供了设备/VPN 上的开放套接字的一些指导

组件 (Component) 威胁 缓解措施 风险 实现
设备物联网中心 TID (D)TLS (PSK/RSA) 加密流量 窃听或干扰设备与网关之间的通信。 协议级别的安全性。对于自定义协议,我们需要弄清楚如何保护它们。在大多数情况下,通信是从设备到物联网中心(设备发起连接)。
设备设备 TID (D)TLS (PSK/RSA) 加密流量。 读取设备之间传输中的数据。篡改数据。用新连接使设备过载。 协议级别的安全性(HTTP(S)/AMQP/MQTT/CoAP)。对于自定义协议,我们需要弄清楚如何保护它们。针对 DoS 威胁的缓解措施是通过云或现场网关对等设备,并让它们只充当网络的客户端。对等可能导致在网关协调之后,对等设备之间建立直接连接。
外部实体设备 TID 外部实体与设备的强配对 窃听与设备的连接。干扰与设备的通信。 安全地将外部实体与设备 NFC/蓝牙 LE 配对。控制设备的操作面板(物理)。
现场网关云网关 TID TLS (PSK/RSA) 加密流量。 窃听或干扰设备与网关之间的通信。 协议级别的安全性(HTTP(S)/AMQP/MQTT/CoAP)。对于自定义协议,我们需要弄清楚如何保护它们。
设备云网关 TID TLS (PSK/RSA) 加密流量。 窃听或干扰设备与网关之间的通信。 协议级别的安全性(HTTP(S)/AMQP/MQTT/CoAP)。对于自定义协议,我们需要弄清楚如何保护它们。

以下是此类别中的一些威胁示例

拒绝服务:受限设备在主动侦听网络上的入站连接或未经请求的数据报时通常会受到 DoS 威胁,因为攻击者可以并行打开许多连接而不提供服务或非常缓慢地提供服务,或者设备可能被未经请求的流量淹没。在这两种情况下,设备都可能在网络上有效地无法操作。

欺骗,信息泄露:受限设备和专用设备通常具有一体化的安全设施,例如密码或 PIN 保护,或者它们完全依赖于信任网络,这意味着当设备位于同一网络上时,它们将授予信息访问权限,而该网络通常仅受共享密钥保护。这意味着当设备或网络的共享密钥泄露时,可以控制设备或观察从设备发出的数据。

欺骗:攻击者可能拦截或部分覆盖广播并欺骗发起者(中间人)。

篡改:攻击者可能拦截或部分覆盖广播并发送虚假信息。

信息泄露:攻击者可能窃听广播并未经授权获取信息。

拒绝服务:攻击者可能干扰广播信号并阻止信息分发。

存储

每个设备和现场网关都有某种形式的存储(用于数据排队的临时存储,操作系统镜像存储)。

组件 (Component) 威胁 缓解措施 风险 实现
设备存储 TRID 存储加密,日志签名 从存储读取数据(PII 数据),篡改遥测数据。篡改排队或缓存的命令控制数据。在本地缓存或排队时篡改配置或固件更新包可能导致操作系统和/或系统组件受损。 加密、消息认证码(MAC)或数字签名。在可能的情况下,通过资源访问控制列表(ACL)或权限进行强访问控制。
设备操作系统镜像 TRID   篡改操作系统/替换操作系统组件。 只读操作系统分区,签名的操作系统镜像,加密
现场网关存储(数据排队) TRID 存储加密,日志签名 从存储读取数据(PII 数据),篡改遥测数据,篡改排队或缓存的命令控制数据。在本地缓存或排队时篡改配置或固件更新包(用于设备或现场网关)可能导致操作系统和/或系统组件受损 BitLocker
现场网关操作系统镜像 TRID   篡改操作系统/替换操作系统组件 只读操作系统分区,签名的操作系统镜像,加密

设备和事件处理/云网关区域

云网关是一个系统,它允许设备或现场网关从多个不同站点通过公共网络空间进行远程通信,通常是与基于云的控制和数据分析系统(此类系统的联合)进行通信。在某些情况下,云网关可能直接促进从平板电脑或手机等终端对专用设备的访问。在此处讨论的上下文中,“云”是指一个专用数据处理系统,该系统不绑定到与所连接设备或现场网关相同的站点,并且操作措施可防止有针对性的物理访问,但并非必然暴露于“公共云”基础设施。云网关可能会被映射到网络虚拟化覆盖层中,以隔离云网关及其所有连接的设备或现场网关与任何其他网络流量。云网关本身既不是设备控制系统,也不是设备数据的处理或存储设施;这些设施与云网关接口。云网关区域包括云网关本身以及所有直接或间接连接到它的现场网关和设备。

云网关大部分是作为服务运行的定制软件,具有暴露的端点,现场网关和设备连接到这些端点。因此,它必须在设计时考虑安全性。请遵循 SDL 流程来设计和构建此服务。

服务区

在此讨论的范围内,“控制系统”(或控制器)定义为一种软件解决方案,它与设备、现场网关或云网关接口,用于控制一个或多个设备和/或收集、存储和/或分析设备数据以进行展示或后续控制。控制系统是本讨论范围内唯一可能直接促进人机交互的实体。例外情况是设备上的中间物理控制面,例如允许人关闭设备或更改其他属性的开关,并且没有功能上等效的数字访问方式。

中间物理控制面是指任何形式的控制逻辑限制了物理控制面的功能,使得可以通过远程启动等效功能或避免与远程输入冲突——此类中间控制面在概念上连接到本地控制系统,该系统利用与设备可能并行连接的任何其他远程控制系统相同的基础功能。云计算的十大威胁可在 云安全联盟 (CSA) 页面阅读。

其他资源

有关更多信息,请参阅以下文章

下一步

要了解有关保护您的物联网解决方案的更多信息,请参阅 保护您的物联网部署

您还可以探索 IoT Suite 预配置解决方案的其他一些功能

有关主题和新功能的更多更新,请查看 原始文档

© . All rights reserved.