Skip to content

Latest commit

 

History

History
664 lines (453 loc) · 45.7 KB

File metadata and controls

664 lines (453 loc) · 45.7 KB

二、物联网威胁建模

在本章中,我们将介绍以下配方:

  • 熟悉线程建模概念
  • 设备威胁建模剖析
  • 威胁建模固件
  • 物联网网络应用的威胁建模
  • 物联网移动应用的威胁建模
  • 威胁建模物联网设备硬件
  • 物联网无线通信威胁建模

介绍

无论您是否有软件利用背景或系统和网络背景,您都可能熟悉各个区域内的攻击面或攻击向量。攻击面指的是设备通过输入源受到破坏的多种方式。该输入源可以通过硬件、软件或无线方式。一般来说,设备包含的攻击面越多,泄露的可能性越高。攻击面是物联网设备的入口点。有时,物联网设备或应用天生信任这些入口点。发现的每个攻击面都有相关的风险、可能性和影响。本质上,攻击面是一种威胁,可能会对设备造成负面影响,从而执行非预期的操作。为了发现每个攻击面,在进行测试或编写软件之前,需要考虑理论用例。此练习称为威胁建模。

本章将讨论威胁建模的基本原则,以及它将如何帮助我们利用物联网设备中的缺陷。我们将提供有关如何为固件、web 应用、移动应用、设备硬件和无线电通信建立基本威胁模型的方法,让您在正确的轨道上起步。

虽然本章中的食谱将向您介绍威胁建模,但有几本书是关于这个主题的。如果需要补充阅读以理解威胁建模的概念,请务必阅读一本关于威胁建模的书或参考第三方来源。

熟悉威胁建模概念

威胁建模或多或少与软件利用相关,是在软件设计阶段之后、软件部署之前进行的一项练习。众所周知,这些练习是在软件利用、系统、网络和安全团队在主要软件发布时通过绘制完整的端到端数据流图或数据流和网络图来确定如何采用安全控制和对策来进行的。这些图纸可以在白板上进行物理绘制,也可以通过软件工具(如 Microsoft 的免费威胁建模工具)和网络应用(如【T0)】进行绘制 https://draw.io 有许多模板图,可用于多种用途。其想法是将设备的所有功能和特性映射到它们相关的技术依赖项。如何绘制威胁模型格式取决于公司或个人。请记住,当单独分解组件时,威胁模型可能变得非常精细。威胁建模最重要的方面是迭代更新文档,因为在添加功能时,以及在获取有关所用特定技术的更多知识时,威胁会发生变化。

一旦 IoT 设备攻击面被绘制出来,就必须使用 STRIDE 等方法识别威胁用例,这将在后面讨论。需要使用评级系统对这些威胁进行评级,以确定发现威胁的风险。根据行业的不同,有几种威胁评级系统;然而,最常见的是恐惧和通用漏洞评分系统CVSS)。

CVSS 提供了一个更细粒度的评级系统,14 个评分区域分为 3 组:基本、时间和环境。三组中的每一组都被细分为子区域,包括六个基本区域、三个时间区域和五个环境区域。CVS 在向供应商报告漏洞方面非常有用,但在威胁建模方面可能没有这么简单。欲了解更多关于 CVSS 的信息,请访问https://www.first.org/cvss/user-guide

恐惧等级系统代表以下内容:

  • 潜在伤害:如果被利用,伤害有多大?
  • 再现性:再现攻击有多容易?
  • 可利用性:攻击有多容易?
  • 受影响用户:大概有多少用户受到影响?
  • 可发现性:发现漏洞有多容易?

恐惧有一个 1-3 级的风险评级系统。1 为低风险,2 为中风险,3 为高风险。

下表描述了每个评级类别的每个评级编号:

| | 评级 | 高(3) | 中(2) | 低(1) | | D | 损伤潜能 | 可以颠覆所有安全控制,获得完全信任,接管整个物联网生态系统。 | 可能泄露敏感信息。 | 可能泄露敏感信息。 | | R | 再现性 | 攻击总是可以复制的。 | 攻击只能在定时窗口或特定条件下再现。 | 即使有关于漏洞的具体信息,也很难重现攻击。 | | E | 可利用性 | 新手攻击者可以执行此攻击。 | 熟练的攻击者可以反复进行攻击。 | 允许具有深入知识的熟练攻击者执行攻击。 | | A | 受影响用户 | 所有用户、默认配置、所有设备。 | 影响某些用户、某些设备和自定义配置。 | 通过模糊功能影响一小部分用户和/或设备。 | | D | 可发现性 | 在出版物中很容易找到攻击说明。 | 影响一个很少使用的功能,攻击者需要非常有创意才能发现该功能的恶意使用。 | 不清楚,攻击者不太可能发现利用该漏洞的方法。 |

STERID 模型将威胁分为六类,以便制定问题以发现可能的威胁。六个威胁类别源自首字母缩写词 STRIDE,描述如下:

  • 欺骗身份:欺骗是指试图使用虚假身份访问系统。这可以通过使用被盗的用户凭据或错误的 IP 地址来实现。在攻击者成功获得作为合法用户或主机的访问权限后,可以开始使用授权提升权限或滥用权限。
  • 篡改数据:篡改是指未经授权修改数据,例如,当数据在两台计算机之间的网络上流动时。
  • 拒绝:拒绝是指用户(合法或其他)拒绝其执行特定操作或交易的能力。如果没有充分的审计,很难证明否认攻击。
  • 信息披露:信息披露是对私人数据的不必要披露。例如,用户查看未经授权打开的表或文件的内容,或监视通过网络以纯文本形式传递的数据。信息泄露漏洞的一些示例包括使用隐藏表单字段、嵌入在包含数据库连接字符串和连接详细信息的网页中的注释,以及可能导致向客户端泄露内部系统级详细信息的弱异常处理。这些信息中的任何一条都可能对攻击者非常有用。
  • 拒绝服务:拒绝服务是使系统或应用不可用的过程。例如,拒绝服务攻击可能是通过向服务器发送消耗所有可用系统资源的请求,或通过向其传递可能导致应用进程崩溃的格式错误的输入数据来实现的。
  • 特权提升:当具有有限特权的用户以特权用户的身份获得对应用的特权访问时,会发生特权提升。例如,具有有限权限的攻击者可能会提升其权限级别,以破坏并控制高度特权和受信任的进程或帐户。

有关使用步幅的其他详细信息,请访问以下链接: https://msdn.microsoft.com/en-us/library/ee823878(v=cs.20)。aspx https://msdn.microsoft.com/en-us/library/ff648641.aspx

Microsoft 提供了一种重大威胁建模方法,它使用多步骤过程来确定新应用或系统引入的威胁的严重性。威胁建模过程步骤如下图所示:

有关微软威胁建模过程的更多信息,请访问以下链接: https://msdn.microsoft.com/en-us/library/ff648644.aspx

我们将从黑盒的角度应用 STRIDE 和 DREAD 进行威胁建模练习,并分解物联网设备每个配方中的组件。在开始任何类型的安全测试时,最好事先建立威胁模型,以确保测试的正确覆盖率。思考所有潜在的威胁可能性并将其归类为脑力锻炼也是很有趣的。

准备

为了逐步了解本章中正在进行的威胁模型配方,我们将利用微软的免费威胁建模工具和从中绘制的图表 https://draw.io 。撰写本文时,可从下载微软 2016 年威胁建模工具 https://www.microsoft.com/en-us/download/details.aspx?id=49168

怎么做。。。

对于此配方,我们将使用 Microsoft 的威胁建模工具,因为使用以下工具绘制网络图非常简单:

  1. 启动 2016 年微软威胁建模工具。选择“创建模型”选项:

  1. 熟悉该工具提供的模板,以演示设备、传输通信以及输入和输出的信任边界。下载该工具时,Microsoft 会提供关于不同模具和选项的用户指南,尽管不需要阅读:

从 2016 年版本的 Microsoft 威胁建模工具开始,可以创建自定义模板和模板,以更准确地关联威胁。

  1. 可以根据设备、网络或应用修改每个模具属性:

  1. 在这一阶段,一旦通过研究或逆向工程获得了更多关于物联网系统的知识,我们通常会从高层识别物联网系统的资产,并专注于感兴趣的领域。识别资产可以以表格形式或通过头脑风暴直观地写出。下表显示了资产的基本清单和每项资产的简要说明:

| ID | 资产 | 说明 | | 1. | 门铃 | 智能门铃监控运动,提醒用户,并通过应用提供实时摄像头反馈。数据存储在门铃本身以及应用接口上。如果用户在网络中本地查看摄像头提要,或者连接到利用 STUN/TURN 服务器访问摄像头提要而无需打开路由器端口的应用,门铃可以通过 P2P 与 SIP/RTP 连接。所有数据都传输到路由器进行远程访问。 | | 2. | LED 灯泡 | LED 灯泡通过 Zigbee 将数据传输至物联网集线器,通过 Wi-Fi 进行通信。LED 通过物联网集线器或应用接口进行控制。 | | 3. | 移动应用 | 移动应用控制网络中的各种设备。这些移动应用可以直接由设备制造商或物联网集线器供应商创建。设备配置数据和机密可能存在于移动应用中。数据通过 API 或 web 服务传输到设备或后端系统。 | | 4. | 物联网枢纽 | 物联网集线器将所有协议聚合到一个设备中,以便于管理。用户可以通过物联网中心的应用界面控制设备。物联网集线器可以无线连接到路由器或通过以太网插入。物联网集线器存储配置数据,并可将数据发送到外部后端系统进行处理。 | | 5. | 路由器 | 所有的网络通信都由路由器负责。路由器可以阻止对设备的外部访问或让流量通过。 |

  1. 下图显示了具有智能门铃、LED 灯泡、移动应用和物联网集线器的智能家居环境的概览图:

所描述的示例步骤只是威胁建模练习的开始。我们讨论了下载微软的威胁模型工具,熟悉模具及其相关属性。然后,我们转向基于研究或逆向工程形式的简要描述,确定智能家居环境的资产。接下来,给出了一个示例体系结构图来可视化所识别的资产。我们的下一步将是威胁建模的具体步骤,这将有助于分解物联网系统的每个部分,以帮助识别攻击点、方法和影响(如果要利用物联网系统的一部分)。与安全性的许多方面一样,您对计划测试的平台越熟悉,被破坏的可能性就越高。

物联网设备威胁建模剖析

2016 年,我们见证了由 IP 摄像头和数字录像机DVR)组成的物联网设备的大规模利用,这促成了有史以来全球最大的分布式拒绝服务DDoS)。这种 DDoS 可能是由于供应商疏忽造成的,而供应商疏忽本可以通过基本威胁模型练习加以预防。考虑到这些类型的设备在互联网上的普遍性及其对互联网造成的风险,我们将进行一次威胁建模练习,并为一个连接的 DVR IP 摄像头安全系统演练威胁建模过程。消费者或中小型企业可以通过电子商务网站以及许多电子商店以相当低的价格购买这些连接的安全系统。连接的 DVR 是物联网系统的一个很好的例子,因为它们包含许多进入设备的入口点,以便查看摄像头提要,并且可以连接到第三方提供商,以便在不打开网络端口的情况下利用远程查看。从黑盒的角度收集物联网设备及其应用的详细信息可能有点棘手。然而,在线上可能有大量关于该产品的资源可用于此练习。

怎么做。。。

要开始对连接的 DVR 进行威胁建模,我们将遵循前面提到的 Microsoft 多步骤威胁建模方法。

第 1 步-确定资产

记录 DVR 的所有资产,以便了解为了节省时间,将更可能的攻击集中在何处。如果我们能够识别包含公共漏洞的资产,这将节省我们作为攻击者利用 DVR 系统的时间。下表介绍了我们在安装设备时通过阅读设备盒背面和用户手册了解的 DVR 资产:

| ID | 资产 | 说明 | | 1. | 录像机 | DVR 包含多个摄像头频道,用于查看实时提要、播放以前的提要、录制视频和拍摄摄像头照片。DVR 可以连接到 IP 摄像机或硬接线 BNC 电缆摄像机。支持许多已知的网络协议和专有协议,如 TCP/IP、PPPoE、DHCP、Hik connect Cloud P2P、DNS、DDNS、NTP、SADP、SMTP、NFS、iSCSI、UPnP 和 HTTPS。DVR 能够连接到多个应用接口,以查看摄像机馈送。 | | 2. | 摄像机 | 视频流由启用的 IP 摄像机和/或 BNC 电缆摄像机捕获,其中数据直接或无线传输至 DVR(如果 IP 可用)。 | | 3. | 固件 | 通过固件控制各种摄像头功能和配置选项。 | | 4. | Web 应用 | DVR 包含一个本地 web 服务器,可通过访问 web 浏览器中的 IP 地址访问该服务器。要通过本地 web 应用查看视频源,必须使用支持的浏览器下载插件。在配置设备时,设备可以选择通过供应商的云 SaaS 平台查看视频源。启用供应商的云 SaaS 平台需要单独的用户名和密码。SaaS 平台向第三方添加了额外的共享功能,并可以访问同一所有者可能购买的其他 DVR。 | | 5. | 移动应用 | Android 和 iOS 应用可用于配置各种设置以及远程查看和保存视频源。来自移动应用的所有流量通过供应商的 API 通过移动设备的网络连接发送。移动应用连接到供应商的云环境以渲染回摄影机提要。通过移动应用访问相机系统需要用户名和密码。 | | 6. | 厚应用 | Windows 和 OS X 安装程序可用于查看摄像头提要和配置各种设置。 | | 7. | 设备硬件 | DVR 硬件包含 VGA 和 HDMI 的多个视频输出。设备通过以太网电缆连接到本地网络。对于存储,该设备有一个 SATA 接口,用于容量高达 6 TB 的硬盘驱动器。 | | 8. | 无线电通信 | DVR 通过 BNC 连接器或 IP 连接到摄像头。没有使用无线通信;然而,通过移动应用的所有流量都是通过无线通信传输的。 |

步骤 2-创建物联网设备架构概述

创建体系结构概述有助于可视化我们如何攻击 DVR,以无意中滥用系统。在创建物联网设备体系结构概述时,我们的目标是根据我们在此过程中收集或了解的数据,记录 DVR 功能及其应用及其物理体系结构。我们希望发现 DVR 设计和实现中的缺陷。这也包括识别不同的技术。让我们将如何创建架构概述分解为三项任务:

  • 记录 DVR 的功能和特性
  • 创建详细描述 DVR 生态系统的体系结构图
  • 确定正在使用的技术

为了开始记录 DVR 的功能和特性,让我们创建几个用例。

用例 1:用户通过本地 web 应用在其本地网络中查看摄像头提要

  1. 用户安装 DVR 和摄像头。

  2. 用户创建一个用户。

  3. 用户配置 DVR 和摄像头设置。

  4. 然后,用户将以太网连接到 DVR 以实现网络连接。

  5. 用户注意 DVR IP 地址。

  6. 然后用户安装由供应商提供的插件和软件。

  7. 用户通过 web 浏览器登录到 DVR。

  8. 用户选择适当的摄影机以查看其提要。

用例 2:用户通过移动应用远程查看摄像头提要

  1. 用户配置平台访问供应商 SaaS 的设置。
  2. 用户下载并安装 Android 或 iOS 应用。
  3. 用户在安装时为供应商的 SaaS 应用创建单独的用户。
  4. 用户登录到移动应用。
  5. 用户使用 DVR 下的移动应用扫描条形码,以进行供应商验证。
  6. 用户选择适当的摄影机以查看其提要。

以下列出的用例架构图提供了 DVR 生态系统组件的详细信息:

一旦绘制了架构图,就需要识别和检查不同的技术。某些操作系统、协议和低级库包含固有的漏洞。重要的是记录使用哪些技术来进一步分析和定义可能的威胁案例:

| 技术 | 详情 | | 录像机 | 嵌入式 Linux 3.10.0;通过 HTTP 和 TCP/IP 进行通信;自定义 web 服务器(DNVRS web);内部和外部存储选项。 | | 无线(Wi-Fi)路由器 | 2.4GHz Wi-Fi;100 米射程。 | | 移动应用 | Android 和 iOS 应用连接到第三方服务以查看摄像头提要。数据可以选择本地存储在设备上,用于图片和用户凭据。 | | 通信协议:HTTP | 查看相机馈送时默认使用的明文协议。 | | 通信协议:HTTPS | 查看摄像头提要时进行加密通信,但需要在通过 web 界面生成 SSL 证书后手动配置。 | | 通信协议:802.11 Wi-Fi | IP 摄像机和 DVR 之间通信的 RF 协议。 | | 通信协议:RTSP | 用于将摄像头馈送流传输到应用的网络协议。 |

步骤 3-分解物联网设备

接下来,我们分析通过 DVR 环境的应用和协议数据流,以定位设备或客户端应用中的易受攻击入口点。我们将寻找具有更高访问权限的位置,并记录每个可能的入口点。一个危及 DVR 机密性和完整性的入口点将使我们作为攻击者占据上风。

这些入口点将根据所使用的平台、技术和协议而有所不同,但在本节中,我们将保持较高水平。还要检查技术和功能之间的各种信任边界。一旦 DVR 体系结构的分解完成,您应该对攻击面以及数据可能受到的危害有更好的了解。

下图是分解物联网 DVR 环境数据流的示例:

绘制并完成数据流后,将记录入口点:

| DVR 入口点 | | | | | 入口点 | 说明 | | 1. | 嵌入式 web 应用 | 嵌入式 web 应用提供了一个界面,用于查看摄像头提要,并对摄像头详细信息、配置以及用于监控的网络详细信息(如 SNMP)进行更改。嵌入式 web 应用使用 SOAP/XML web 服务通过 HTTP 进行传输通信,但可以通过在配置菜单中创建自签名证书来选择使用 HTTPS。为了查看摄像头提要,将下载一个可执行文件,并在可执行文件中,在 Internet Explorer 中安装一个 ActiveX 插件。注意:Internet ExplorerIE以外的浏览器无法查看摄像头提要。 | | 2. | 供应商 web 应用 | 从 DVR 连接到供应商拥有的 STUN/TURN 服务器,以便在不打开路由器端口的情况下流式传输摄像机馈送。供应商应用仅通过 HTTPS 可用,并使用 web 套接字进行通信。 | | 3. | 录像机 | DVR 连接到多个 web 应用和移动应用。嵌入式 web 应用是 DVR 本身的服务器,供应商 SaaS 应用连接到 DVR。类似地,供应商有一个可用的移动应用,但也有另一个来自 DVR 原始制造商的第三方移动应用(通过代理发现)。DVR 还具有通过硬件外围设备及其主 PCB 的输入。 | | 4. | 固件 | DVR 利用固件控制设备,但只能通过供应商技术支持(根据文档)获取。嵌入式 web 服务器利用固件管理操作。 | | 5. | 摄像机 | 通过将摄像头的 IP 地址添加到 DVR 配置页面,可以将摄像头添加到 DVR。也可以通过手动插入带有 BNC 连接器的摄像头来添加摄像头。 | | 6. | 移动应用 | 可下载多个移动应用。每个移动应用都可以对 DVR 和摄像头进行配置更改。使用移动应用需要凭据。所有流量都会反馈到供应商环境,以查看摄像头详细信息和反馈。 | | 7. | 无线通信 | 来自移动应用的通信流量通过无线技术传输;802.11 或蜂窝提供商网络(4G)。 |

步骤 4-识别威胁

在此阶段,我们绘制了 DVR 系统的数据流,并确定了入口点。我们现在必须确定每个入口点的风险,因为它与用户、网络和应用以及编写应用代码的供应商有关。从攻击者的角度来看,我们希望识别影响网络、应用和主机的威胁,这些威胁可能会被利用,并造成以下影响:

  • 影响大量使用此特定 DVR 系统的用户
  • 破坏供应商的基础设施,导致大规模利用
  • 危害 DVR,给用户带来隐私风险
  • 危害 DVR,给 DVR 所有者带来安全风险

为了帮助识别威胁并对其进行分类,让我们将 STERE 模型应用到我们的 DVR 物联网系统中。我们将在下表中添加两种威胁类型,以替代物联网特定问题。本表并非详尽无遗,但在考虑可能影响整体 DVR 环境的威胁时,应提供一些想法:

| 威胁类型 | 分析 | | 欺骗身份 | 检查系统是否存在与欺骗 DVR 身份相关的威胁,以及攻击者克服设备之间自动信任关系的能力。寻找允许设备或用户在 DVR 配置过程中操纵信任关系的入口点。使用 DVR 的应用接口分析身份验证和授权功能。查看 DVR 的应用通信,了解伪造请求的能力。 | | 篡改数据 | 查看 DVR 在应用和设备之间的消息传递通信。确定 DVR 中提供机会在数据收集、处理、传输和存储点篡改数据的点。试图篡改固件和移动应用配置以执行未经授权的操作。 | | 否认 | 识别允许在没有日志记录能力的情况下进行非法操作的攻击入口点。禁用 web 和移动应用跟踪功能。 | | 信息披露 | 模糊应用参数以影响应用错误披露识别所有明文通信。查看 DVR API 通信 HTTP 响应头以获取版本控制信息。确定使用的所有 API 端点和应用后端技术。检查应用数据存储是否存在明文文件中的意外数据泄漏。 | | 拒绝服务 | 执行忘记密码等功能,以确定是否可以锁定用户。在每个 DVR 应用接口内测试帐户锁定策略。检查 DVRs 网络服务的吞吐量,以了解攻击如何抵御相关的 DoS 攻击。检查 DVR 组件内使用的消息传递结构(例如,数据总线)、数据结构、变量和 API 的不当使用,并确定是否存在允许恶意摄像头淹没合法摄像头或兼容 DVR 设备传输的漏洞。 | | 特权海拔 | 检查 DVR 提供的管理功能。创建较低级别的应用用户并测试管理访问权限。确定在 DVR 应用和操作系统中,将管理功能与用户级功能分离的能力存在弱点的情况。识别 DVR 节点采用的身份验证方法中的弱点,以便在系统中设计适当的身份验证控制。 | | 物理安全旁路 | 检查 DVR 及其摄像头提供的物理保护机制,以确定允许管理控制台访问的弱点。 | | 供应链问题 | 了解构成 DVR 系统的各种技术组件及其来源(例如,ODM、硬件制造商、OEM 等)。跟踪与 DVR 硬件和软件组件相关的任何技术层的漏洞。 |

或者,我们可以简单地从高层列出威胁,在本章后面,我们将深入到每个组件的威胁。有些威胁可能是未知的或完全理论化的,因为我们可能没有所有的见解,但集思广益这些想法很重要。为了最大限度地利用识别威胁,请与合作伙伴配对,或与其他正在攻击您感兴趣的特定物联网系统的人一起进行集体练习。以下是攻击者可能对我们的 DVR 系统造成的高级威胁的示例:

  • 远程接管 DVR 系统
  • 未经授权远程查看摄像头提要(spy)
  • 关闭摄影机录制播放功能
  • 追踪个人
  • 根据情报收集,闯入周围地区
  • 在 DVR 上安装恶意软件
  • 获取物理访问和破坏记录
  • 使用请求使 DVR 过载,以防止使用
  • DVR 通信中的窃听

步骤 5-记录威胁

接下来,我们将记录我们在步骤 4 中识别的一些威胁用例,包括描述、威胁目标、攻击技术以及可能存在的任何对策。

威胁#1

| 威胁描述 | 攻击者可以远程接管 DVR 系统 | | 威胁目标 | DVR 客户、DVR 网络流程、DVR 应用。 | | 攻击技术 | 攻击者拦截无线通信、API 通信和/或网络协议通信以获取凭据或会话 cookie。攻击者可以通过欺骗用户界面或利用应用漏洞通过跨站点请求伪造(CSRF)来添加用户帐户,从而对用户进行社会工程,使其访问其 DVR。 | | 对策 | 如果尝试登录失败或一次发送的请求过多,DVR 会将用户锁定 30 分钟。 |

威胁#2

| 威胁描述 | 攻击者可以在未经授权的情况下远程查看摄像头提要 | | 威胁目标 | DVR 客户、协议和应用。 | | 攻击技术 | 获取凭据或 API 调用以查看没有经过身份验证的访问权限的摄像头。攻击者可以获取会话标识符以劫持会话,从而远程查看摄像头提要。攻击者可以通过社交方式引导用户访问其 DVR 提要。攻击者可以利用易受攻击的明文 RTSP 流,通过 Camerader(等工具访问视频源 https://hub.docker.com/r/ullaakut/cameradar/ )。 | | 对策 | 实施多因素身份验证并使用加密的 RTSP 或 SRTP 流。 |

威胁#3

| 威胁描述 | 攻击者可以关闭录音回放功能 | | 威胁目标 | DVR 客户。 | | 攻击技术 | 攻击者可以通过物理方式访问 DVR 系统以应用更改。攻击者可以通过社交方式引导用户访问其 DVR。 | | 对策 | 强制对敏感功能进行身份验证以及多因素身份验证。 |

步骤 6-对威胁进行评级

既然我们已经识别并记录了 DVR 的威胁,让我们使用恐惧评级系统对威胁的可能性及其可能的影响进行评级。在本章前面,我们介绍了恐惧评级系统,但是,正如前面提到的,还有其他评级系统可供使用。恐惧中每个字母的评级值范围为高 3,中 2,低 1。

对于恐惧,使用以下评级对最终风险进行排名:

| 风险等级 | 结果 | | 高的 | 12-15 | | 中等的 | 8-11 | | 低的 | 5-7 |

DVR 系统中威胁案例的威胁等级示例如下所示:

| 威胁风险等级:攻击者可以在未经授权的情况下远程查看摄像头提要 | | | 项目 | 得分 | | 损伤潜能 | 3. | | 再现性 | 2. | | 可利用性 | 3. | | 受影响用户 | 2. | | 可发现性 | 3. | | 风险评级得分:高 | 13 |

最初,由于所有不同的组件,在考虑所有威胁情况时,对整体 DVR 系统进行威胁建模可能会有点困难。虽然,一旦完成,您将记录一些潜在的高风险漏洞,以便集中精力进行测试。这将使测试物联网系统时更容易确定漏洞的优先级。

威胁建模固件

在前面的配方中,我们对 DVR 系统进行了威胁模型,并对威胁案例进行了评级,这将有助于确定测试漏洞的优先级。在本配方中,我们将介绍同一 DVR 系统的威胁建模固件。

准备

在本练习中,我们将使用免费的https://draw.io 在线图表软件,帮助演示固件中图表的关系。该工具是一个 Chrome 应用,与第三方存储服务(如 Google Drive 或 GitHub)相关联。我们可以绘制重叠的关系和流程,这在 Microsoft 工具中是不可能的。任何能够有效绘制具有目标设备或软件各自关系的架构的工具都足够了。

要开始绘制图表,请执行以下步骤:

  1. 选择 Createwdiagram。
  2. 选择软件设计。
  3. 选择部署关系图模板,如以下屏幕截图所示:

  1. 删除模板中所有未使用的图表,并为固件及其内部组件保留一个矩形。
  2. 将资产拖放到图表中以显示它们之间的关系。

怎么做。。。

对于固件,我们可以通过设备包装、基本端口扫描或各种在线资源来确定正在运行的操作系统类型。如第 1 章物联网渗透测试所述,我们应该大致了解固件在嵌入式物联网设备上的功能。本节将不会像前面的配方那样详细介绍,但我们仍然希望确定我们对固件的所有了解,并绘制其组件,以确定测试的潜在威胁。为了简洁起见,我们将结合一些威胁建模步骤。

第 1 步-确定资产

根据我们对 DVR 提供的固件和服务的了解,让我们使用下表来记录一些固件资产:

| ID | 资产 | 说明 | | 1. | 网络服务器 | 固件为本地 web 应用提供服务,用于查看摄像头提要和管理摄像头。 | | 2. | SSH | DVR 在端口 22 上侦听外壳访问。 | | 3. | RTSP | 相机馈送利用 RTSP 进行查看。 | | 4. | UPnP | UPnP 可用于管理设备的配置。 | | 5. | 域名服务器 | 本地 DNS 服务器正在运行以进行远程查看。 |

步骤 2 和 3-创建架构概述和分解

我们对 DVR 服务可能使用的固件组件和可能的库有一个大致的了解。可以绘制一个概览图(如下图),显示设备、固件内容和文件系统中的内容之间的关系:

步骤 4-识别威胁

现在,让我们根据图表和固件内容知识记录威胁。请记住,在此阶段,我们尚未分解或定位固件映像。图表的内容是基于 DVR 所宣传的服务和在线文档的假设。以下是可能的固件威胁,攻击者可利用这些威胁执行以下操作:

  • 在网络服务上执行远程代码
  • 获得对文件系统的管理员访问权并攻击 LAN
  • 拦截网络通信
  • 通过 SSH 访问文件系统资源
  • 控制 DNS 以将流量重定向到受害者网络/计算机
  • 访问 web 配置和固件中可能的秘密
  • 在 DVR 上安装恶意固件或应用
  • 跟踪用户活动
  • 篡改摄影机提要和内容
  • 篡改审计日志
  • 用砖砌 DVR
  • 阻止与 DVR 的所有网络连接

步骤 5-记录威胁

接下来,我们将挑选一些威胁案例,并记录它们的描述、威胁目标、攻击技术,以及可能采取的任何应对措施,以评估其风险。

威胁#1

| 威胁描述 | 攻击者可以在网络服务上执行远程代码 | | 威胁目标 | DVR 固件。 | | 攻击技术 | 攻击者发现 DVR API 通信中存在缺陷。 | | 对策 | DVR 在其 API 中具有速率限制保护。 |

威胁#2

| 威胁描述 | 攻击者可以获得对文件系统的管理员访问权并攻击 LAN | | 威胁目标 | DVR 固件。 | | 攻击技术 | 可以通过 SSH 或 Telnet 启用对控制台的访问。攻击者可以发现缓冲区溢出来访问文件系统内容并利用攻击后技术。攻击者在 DVR 使用的库中找到已知错误。 | | 对策 | DVR 强制实施自动更新功能,防止启用易受攻击的库和服务。 |

威胁#3

| 威胁描述 | 攻击者可在 DVR上安装恶意固件或应用 | | 威胁目标 | DVR 固件。 | | 攻击技术 | 攻击者可以在固件更新时侧向加载恶意固件。 | | 对策 | DVR 应签署其固件映像,并在重新启动时进行验证。 |

步骤 6-对威胁进行评级

正如我们在上一个配方中所做的那样,我们需要使用恐惧来评估每个可能的威胁。使用下表,我们将选择一种威胁并确定其风险等级:

| 威胁风险等级:攻击者可以获得对文件系统的管理员访问权限并攻击 LAN | | | 项目 | 得分 | | 损伤潜能 | 3. | | 再现性 | 2. | | 可利用性 | 2. | | 受影响用户 | 3. | | 可发现性 | 2. | | 风险评级得分:高 | 12 |

大多数嵌入式设备操作系统通常以 root 或 admin 身份运行。这意味着任何可能通过设备固件被利用的漏洞都应该为您提供所需的最高访问权限。不需要升级权限。更受监管的行业可能会推迟,但如果您正在测试消费类设备,很可能固件已经以 root 身份运行。

物联网 web 应用的威胁建模

继续我们的 DVR 威胁建模练习,我们将致力于分解其 web 应用。我们的 DVR 包含两种类型的 web 应用。一个 web 应用是嵌入式的,运行于 DVR 本身。第二个 web 应用是由供应商提供的 SaaS 应用,用于远程访问 DVR 及其摄像头提要。

SaaS 应用访问局域网内的嵌入式 DVR。我们更好地了解在 DVR 上本地运行的嵌入式 web 应用,而不是供应商 SaaS 应用。在本章前面,我们确实提到了一些用于供应商 web 应用的技术,但目前还不知道其他信息。我们将从绘制嵌入式 web 应用的体系结构开始,并在威胁部分讨论供应商 SaaS 应用,而不是绘制其未知的体系结构。

怎么做。。。

在这一点上,我们应该对如何从头到尾进行威胁模型有一个很好的想法。考虑到这一点,我们将跳过威胁建模过程中的一些步骤,转向更重要的方面。

步骤 1:创建架构概述和分解

如前所述,我们将了解嵌入式 web 应用的相关知识,并在其体系结构数据流中识别和评估威胁。下图说明了嵌入式 web 应用的一些基本功能:

应用的流程过于简单,因为流量只停留在 LAN 中,不会到达面向公众的流量。识别嵌入式应用的威胁不应该太难。

步骤 2:识别威胁

由于嵌入式 web 应用中的数据流本质上过于简单,因此记录威胁应该是轻而易举的事,尽管我们将添加一些额外的场景来考虑供应商 SaaS web 应用。

攻击者可以利用 DVR 嵌入式 web 应用和/或供应商 SaaS 应用进行以下攻击:

  • 劫持用户会话以查看摄像头提要和配置
  • 窃听 API 调用
  • 通过命令注入漏洞执行操作系统命令
  • 公开敏感用户详细信息
  • 通过 SQL 注入转储数据库内容
  • 执行任意脚本执行
  • 访问其他用户帐户
  • 在登录用户帐户(CSRF)下伪造请求
  • 修改 DVR 设置以将流量重定向到未经授权的用户或网络
  • 跟踪用户
  • 曝光摄影机回放提要
  • 删除摄像机回放提要
  • 利用供应商环境的 web 或应用服务器中的漏洞进行攻击
  • 阻止访问合法用户

步骤 3:记录威胁

下一步,我们将选择与我们在前面的配方中所做的相似的威胁案例,并记录它们的威胁案例描述、威胁目标、攻击技术,以及可能用于评估其各自风险的任何对策。

威胁#1

| 威胁描述 | 攻击者可以通过命令注入漏洞执行操作系统命令 | | 威胁目标 | 嵌入式和供应商 web 应用。 | | 攻击技术 | 攻击者发现 DVR 和供应商 API 通信中由于弱输入验证而存在缺陷。攻击者创建在应用上下文中运行的代码。攻击者通过向应用中注入自定义代码来访问后端系统。 | | 对策 | 应用执行输入验证和上下文输出编码。 |

威胁#2

| 威胁描述 | **攻击者可以在登录用户帐户(CSRF)**下伪造请求 | | 威胁目标 | 嵌入式和供应商 web 应用。 | | 攻击技术 | 攻击者识别易受攻击的 HTML 表单,并创建代码在登录用户的上下文中伪造请求的更改。此类更改可能包括向第三方添加或共享用户帐户。 | | 对策 | 为更改应用状态的敏感 HTML 表单实现反 CSRF 标记。 |

威胁#3

| 威胁描述 | 攻击者可以通过 SQL 注入转储数据库内容 | | 威胁目标 | 供应商网络应用。 | | 攻击技术 | 攻击者将 SQL 命令附加或连接到用于查询数据库的易受攻击参数。 | | 对策 | 应验证用户输入,并对查询进行参数化或使用存储过程来访问数据库。 |

步骤 4:对威胁进行评级

使用下表,我们将选择一种威胁并确定其风险等级:

| 威胁风险等级:攻击者可以通过 SQL 注入转储数据库内容 | | | 项目 | 得分 | | 损伤潜能 | 3. | | 再现性 | 3. | | 可利用性 | 2. | | 受影响用户 | 3. | | 可发现性 | 2. | | 风险评级得分:高 | 13 |

显然,鉴于用户的详细信息和其他可用功能的负载,利用供应商 SaaS 应用中的漏洞有更多的好处。然而,在测试之前,保持在法律范围内并获得授权是很重要的。以嵌入式 web 应用为目标可能不会预先获得这么大的回报,但一旦对设备使用情况进行在线调查并发现可远程利用的漏洞,这绝对是可能的。

物联网移动应用的威胁建模

在下一次威胁建模练习中,我们将研究 DVR 系统的物联网移动应用。该 DVR 系统(与物联网中的许多其他系统一样)有多个由经销商和不同 OEM 利用的移动应用。出于演示目的,我们将仅对一个 Android 和一个 iOS 应用进行建模。

怎么做。。。

由于我们的大部分数据流图都是根据以前的配方创建的,因此我们将继续使用相同的 Microsoft 威胁建模工具来创建此配方。

步骤 1:创建架构概述和分解

与上两个方法类似,我们将直接创建一个数据流图,其中包括移动应用的所有已知资产。以下是移动应用的数据流图:

我们可以看到,应用每次都会联系第三方供应商云环境,以便查看帐户详细信息和照相机提要。当用户与 DVR 位于同一网络中时,也会发生这种情况。远程访问 DVR 需要用户名和密码,DVR 也存储在移动设备中。此时,我们不知道在与供应商后端系统通信时如何存储或发送此数据。这将引导我们进入下一步,识别威胁。

步骤 2:识别威胁

攻击者可以利用移动应用执行以下操作:

  • 窃听 API 调用
  • 访问移动设备上的本地资源
  • 公开敏感用户详细信息
  • 在移动设备上以明文形式查找所有用户的敏感信息
  • 通过 SQL(ite)注入转储数据库内容
  • 通过 WebView JavaScript 界面执行任意脚本执行
  • 访问其他用户帐户
  • 跟踪供应商云环境中的用户
  • 曝光存储在设备上的摄像头播放提要
  • 删除摄像机回放提要
  • 更改用户信息
  • 添加未经授权共享相机的用户
  • 创建不会因持久访问而过期的长期会话
  • 截图并发送给第三方

步骤 3:记录威胁

接下来,我们将选择类似于我们在前面的配方中所做的威胁案例,并记录它们以评估各自的风险。

威胁#1

| 威胁描述 | 攻击者可以访问移动设备上的本地资源 | | 威胁目标 | 移动应用。 | | 攻击技术 | 攻击者发现 API 通信中的漏洞,该漏洞将 WebView 暴露给 JavaScript 网桥以访问本地对象。攻击者利用移动设备上本地 SQLite 调用的 SQL 注入来连接数据库并创建可访问本地资源的文件。 | | 对策 | 应用在 WebView 中禁用 JavaScript 或白名单接受脚本。应用验证用户输入并禁止执行动态查询。 |

威胁#2

| 威胁描述 | 攻击者可以在移动设备上以明文形式定位所有用户的敏感信息 | | 威胁目标 | 移动应用。 | | 攻击技术 | 攻击者在运行时监视文件存储,发现数据正在从供应商云同步到移动设备,从而暴露敏感信息。 | | 对策 | 设备上只应存储使用所需的数据。 |

威胁#3

| 威胁描述 | 攻击者可以在未经授权的情况下添加共享摄像头的用户 | | 威胁目标 | 移动应用。 | | 攻击技术 | 攻击者创建一个 CSRF 请求,发送给受害者以自动添加用户进行共享。 | | 对策 | 使用反 CSRF 令牌。 |

步骤 4:对威胁进行评级

使用下表,我们将选择一种威胁并确定其风险等级:

| 威胁风险等级:攻击者可以访问移动设备上的本地资源 | | 项目 | 得分 | | 损伤潜能 | 3. | | 再现性 | 2. | | 可利用性 | 1. | | 受影响用户 | 1. | | 可发现性 | 2. | | 风险评级得分:中等 | 9 |

在移动领域,常见的威胁涉及数据及其存储和传输方式。因此,移动漏洞的风险相对较低,除非该漏洞影响到大量用户或暴露了许多用户的数据。在应用测试期间,移动漏洞很少会导致服务器或移动设备上出现外壳。

威胁建模物联网设备硬件

是时候为我们的目标 DVR 分析硬件威胁了。大多数消费类 DVR 易于打开和拆卸,以检查其各种输入及其外围设备。这是因为需要扩展存储空间,或者仅仅是因为它们不是设计为像生产硬件安全模块HSMs)那样具有防篡改保护的重型。

怎么做。。。

在本练习中,我们使用https://draw.io 帮助我们演示硬件输入的图表。

步骤 1:创建架构概述和分解

以下是 DVR 硬件的示意图:

如图所示,有八个用于摄像头的 BNC 接口、两个 USB 端口、一个以太网端口、一个电源端口、一个 VGA 端口和一个面向 DVR 外部的 HDMI 端口。DVR 内部有各种芯片,其中一个是 EEPROM,可能是 PCB 板上 UART 的输入。

步骤 2:识别威胁

攻击者可以利用 DVR 硬件输入执行以下操作:

  • 通过 UART 访问控制台
  • 在 EEPROM 中转储机密
  • 利用 USB 堆栈中的漏洞攻击 DVR
  • 连接导致损坏的恶意 USB 设备
  • 短接 DVR 电源输入
  • 将 DVR 引导加载程序故障切换到控制台访问
  • 通过 USB 安装恶意软件

步骤 3:记录威胁

下一步,我们将选择与我们在前面的配方中所做的相似的威胁案例,并记录它们以评估各自的风险:

威胁#1

| 威胁描述 | 攻击者可以通过 UART访问控制台 | | 威胁目标 | UART。 | | 攻击技术 | 攻击设备 PCB 板上的 UART 头。 | | 对策 | UART 访问受密码保护。UART 访问被另一个芯片阻止。 |

威胁#2

| 威胁描述 | 攻击者可以在 EEPROM中转储机密 | | 威胁目标 | EEPROM。 | | 攻击技术 | 攻击者在 EEPROM 顶部附加 SOIC 剪辑以读取其内容。 | | 对策 | 防止在 EEPROM 中存储敏感数据。 |

威胁#3

| 威胁描述 | 攻击者可以将 DVR 引导加载程序故障切换到控制台访问 | | 威胁目标 | EEPROM。 | | 攻击技术 | 攻击者中断引导加载程序访问控制台的时间。 | | 对策 | 实施故障保护或篡改保护。 |

步骤 4:对威胁进行评级

使用下表,我们将选择一种威胁并确定其风险等级:

| 威胁风险等级:攻击者可以通过 UART访问控制台 | | 项目 | 得分 | | 破坏潜力 | 3. | | 再现性 | 3. | | 可利用性 | 2. | | 受影响用户 | 1. | | 可发现性 | 2. | | 风险评级得分:高 | 11 |

物联网无线通信威胁建模

转到无线电/无线通信,除了从客户端应用或摄像机传输到 DVR 的数据外,我们的 DVR 在无线电通信方面没有太多进展。大多数物联网设备和环境使用不同的协议在不同频率上进行多个不同的无线电通信广播。幸运的是,我们只需要担心 Wi-Fi 和手机提供商进入 DVR 的入口点。

怎么做。。。

对于我们的无线电通信威胁建模练习,我们可以简单地更新先前绘制的图表,以反映设备和应用中发生的无线电通信。

步骤 1:创建架构概述和分解

DVR 系统内无线电通信使用的示例架构概述如下所示:

正如您可能知道的,无线通信仅限于用户通过客户端设备(如浏览器和应用)访问 DVR,以及可选的启用无线的 IP 摄像头。还请注意,我们的图表反复显示,有关 DVR 的更多信息已通过以前的威胁模型获得。

步骤 2:识别威胁

攻击者可以利用无线通信执行以下操作:

  • 从远程访问 DVR 网络
  • DVR 无线通信中的窃听
  • 干扰 DVR 通信
  • 从 DVR 中卸下 IP 摄像头
  • 设置一个假接入点来连接摄像头
  • 蜂窝通信中的窃听
  • 全球移动通信系统GSM建立假基站
  • 欺骗客户端应用请求
  • 添加假 IP 摄像头
  • 通过恶意客户端应用访问 DVR 系统

步骤 3:记录威胁

下一步,我们将选择与我们在前面的配方中所做的相似的威胁案例,并记录它们以评估各自的风险:

威胁#1

| 威胁描述 | 攻击者可以从远程访问 DVR 网络 | | 威胁目标 | 无线的 | | 攻击技术 | 攻击者通过中间人技术或劫持无线客户端的用户会话,利用来自任何给定客户端应用的无线通信。 | | 对策 | 应实施授权设备并将其列入白名单。 |

威胁#2

| 威胁描述 | 攻击者可能干扰 DVR 通信 | | 威胁目标 | 无线的 | | 攻击技术 | 攻击者识别来自 IP 摄像机或客户端设备的 DVR 流量广播,以 DVR 无法使用的速率重播流量。 | | 对策 | 实施抗干扰保护或在给定阈值内阻止恶意 IP 地址。 |

威胁#3

| 威胁描述 | 攻击者可以添加假 IP 摄像头 | | 威胁目标 | 无线的 | | 攻击技术 | 攻击者模仿将 IP 摄像头添加到包含恶意固件的网络中。 | | 对策 | 应实施来自 DVR 的客户端验证。 |

步骤 4:对威胁进行评级

使用下表,我们将选择一种威胁并确定其风险等级:

| 威胁风险等级:攻击者可以从远程访问 DVR 网络 | | 项目 | 得分 | | 损伤潜能 | 3. | | 再现性 | 2. | | 可利用性 | 3. | | 受影响用户 | 1. | | 可发现性 | 3. | | 风险评级得分:高 | 12 |

使用普通的无线中间人技术,DVR 环境中的无线威胁可能非常简单。其他威胁,如添加假 IP 摄像头,可能会有点困难,不值得攻击者花时间制造更大的影响。