物联网渗透测试(六):IoT 设备威胁建模剖析

阅读数:1 2020 年 5 月 14 日 10:00

物联网渗透测试(六):IoT 设备威胁建模剖析

编者按:本文节选自华章网络空间安全技术丛书《物联网渗透测试》一书中的部分章节。

IoT 设备威胁建模剖析

2016 年,我们见证了一起针对 IoT 设备的大规模漏洞利用事件,事件中的 IoT 设备主要包括网络摄像头和数字视频录像机(Digital Video Recorder,DVR),攻击者利用这些设备发起了全球有史以来最大规模的分布式拒绝服务攻击(Distributed Denial of Service,DDoS)。这次 DDoS 攻击缘起于厂商对 IoT 设备安全问题的轻视,而这些问题通过基本的威胁建模演练就可以避免。考虑到上述类型的设备在互联网中普遍存在以及它们可能给互联网带来的风险,我们将对联网 DVR 与网络摄像头安防系统开展威胁建模,并详细介绍威胁建模过程。普通个人用户或者中小型企业通过电商平台或者众多电子用品商店以相当低的价格就可以购买到这些联网的安防系统。联网 DVR 系统可以作为 IoT 系统的一个绝佳示例,因为为了能够查看摄像头监控视频,设备中包含了很多入口点,用户还可以在路由器无须开放端口的情况下连接到第三方服务提供商以远程查看监控视频。从黑盒测试的角度来看,搜集 IoT 设备及其应用程序的细节信息可能有点棘手。但是,这些产品一般都有大量在线资源可以利用,从而有助于威胁建模。

测试流程

开展针对联网 DVR 系统的威胁建模时,我们将继续采用之前介绍的微软多步威胁建模方法1

1 参考 http://onlinehelp.microsoft.com/zh-cn/mdop/ff648644.aspx 。—译者注

步骤 1 资产识别

首先统计所有 DVR 资产并形成文档,以便了解哪些设备最可能遭受攻击从而予以重点关注。对于攻击者而言,如果能够找到那些存在已知漏洞的资产,那么在针对 DVR 系统开展漏洞利用时将节省大量时间。部署设备时,查看设备背部粘贴的标签以及用户手册就可以了解到有关 DVR 系统资产的信息,具体信息如表 1 所示。

表 1 DVR 系统资产清单
ID 资产 描述
1 DVR 设备 DVR 设备包含多个摄像头通道,可以查看实时监控,回放、录制视频,并且对视频截图。DVR 设备可以连接到网络摄像头或采用 BNC 电缆连接摄像头。DVR 设备能够支持当前许多通用网络协议和专有协议,例如 TCP/IP、PPPoE、DHCP、Hik-connect Cloud P2P、DNS、DDNS、NTP、SADP、SMTP、NFS、iSCSI、UPnP 和 HTTPS 等。DVR 设备能够通过多个应用程序接口查看监控摄像头
2 摄像头 网络摄像头或采用 BNC 电缆连接的摄像头启动后就可以捕获到监控视频,如果摄像头分配了 IP 地址,那么可以将数据直接或者以无线的方式传送给 DVR 设备
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 连接器连接硬盘,支持最多 6TB 的存储容量
8 无线电通信 DVR 设备通过 BNC 连接器或网络 IP 连接到摄像头,中间不使用无线通信。然而,所有移动应用的流量均通过无线通信传输

步骤 2 IoT 设备架构概况构建

通过构建架构概况,可以采用可视化的方式形象地展示出攻击者如何攻击 DVR 系统,进而以非预期的手段利用系统。在构建 IoT 设备架构概况时,我们的目标是基于在整套流程中搜集或了解到的数据将 DVR 系统的功能、应用及其物理架构形成文档。我们希望能够发现 DVR 系统设计和实现中的漏洞,其中也包括识别出系统所采用的不同技术。接下来我们将架构概况的构建分为以下 3 项工作:

  • 编制 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)用户选择摄像头并查看监控视频。

图 1 给出了上述用例的架构图,图中包含了 DVR 生态系统各组件的详细信息。

物联网渗透测试(六):IoT 设备威胁建模剖析

图 1 DVR 生态系统架构图

架构图绘制完成后,就需要识别并分析系统所采用的各种技术了。鉴于某些操作系统、协议和底层函数库可能早已存在已知漏洞。因此,为了便于开展进一步分析,并清晰刻画出潜在的威胁用例,将系统中所采用的技术(见表 2)形成文档非常重要。

表 2 DVR 系统技术应用情况汇总表
技术 详细信息
DVR 设备 嵌入式 Linux 3.10.0;
基于 HTTP 和 TCP/IP 协议进行通信;
定制的 Web 服务器(DNVRS-Webs);
提供内部和外部存储选项
无线(Wi-Fi)路由 2.4 GHz Wi-Fi;
100 米距离
移动应用 Android 和 iOS 应用连接至第三方服务来查看视频。
可以通过选项配置将图片和用户认证信息等内容存储在设备本地
通信协议:HTTP 查看视频时,默认使用明文协议
通信协议:HTTPS 查看视频时可以对通信流量加密,但需要通过 Web 接口生成 SSL 证书后进行手工配置
通信协议:802.11 Wi-Fi 网络摄像头与 DVR 设备之间采用 RF 协议进行通信
通信协议:RTSP 用于向应用发送流视频的网络协议

步骤 3 IoT 设备分解

接下来,我们对 DVR 系统环境中的应用与协议数据流进行分析,定位设备或客户端应用中的漏洞。我们所要搜索的位置可能需要更高权限才能访问,在此过程中需要记录下每个可能的入口点。其中,只需要找到一个能够危害到 DVR 系统的机密性和完整性的攻击入口点,就能够帮助攻击者赢得攻防中的主动权。

这些入口点根据所使用的平台、技术和协议的区别可能有所不同,在本节中,我们将从一个更高的层次来看待这个问题。同时,我们还需要检查技术和特性之间的各种信任边界。一旦完成了对 DVR 架构的分解,读者就可以更好地理解攻击面以及针对数据的破坏方式。

图 2 是 DVR 系统环境中对数据流的分解示意图示例:

物联网渗透测试(六):IoT 设备威胁建模剖析

图 2 物联网 DVR 环境数据流

数据流绘制完成后,表 3 对入口点进行说明。

表 3 DVR 系统入口点汇总表

DVR 系统的入口点

# 入口点 描述
1 嵌入式 Web 应用 嵌入式 Web 应用提供了接口用于查看视频、更改摄像头配置信息,以及监控 SNMP 等协议的网络流量。嵌入式 Web 应用使用基于 HTTP 协议的 SOAP/XML Web 服务进行通信,但是也可以在配置菜单中创建自签名证书,采用 HTTPS 协议进行通信。为了查看视频,需要下载一个可执行程序,该程序会在 IE 浏览器中安装 ActiveX 插件,然后即可以通过 IE 浏览器查看视频。注意:除 IE 浏览器之外的浏览器不能查看视频
2 厂商 Web 应用 为了在无须开放路由器端口的情况下传输视频,DVR 设备会建立同厂商 STUN/TURN 服务器之间的连接。厂商 Web 应用采用 Web sockets 基于 HTTPS 协议进行通信
3 DVR 设备 DVR 设备能够连接多个 Web 应用与移动应用。嵌入式 Web 应用的服务器就位于 DVR 设备之中,厂商 SaaS 应用则会同 DVR 设备建立连接。与之类似,厂商也开发了移动应用,同时 DVR 设备的 OEM 也开发有第三方移动应用(通过流量代理可以发现)。DVR 设备还可以接收来自硬件外设与主 PCB 的输入
4 固件 DVR 设备利用固件控制设备,而固件只能通过厂商提供的技术支持服务获取。嵌入式 Web 服务器使用固件管理设备操作
5 摄像头 摄像头以将自身 IP 地址添加到 DVR 设备配置页面的方式连接 DVR 设备,也可以借助 BNC 连接器手动连接
6 移动应用 从网络上可以下载多款移动应用。每款应用都可以对 DVR 设备和摄像头的配置进行更改。使用移动应用时需要认证信息。所有流量都会发送到厂商的基础架构环境中,以便查看摄像头中的信息与视频
7 无线通信 移动应用的通信流量采用无线技术进行传输,包括 802.11 协议与蜂窝网络(4G)

步骤 4 威胁识别

到了这个阶段,我们已经绘制完成了 DVR 系统的数据流,并确定了都有哪些入口点。现在我们必须判断每个入口点的风险,这些风险同用户、网络和应用以及应用的开发厂商息息相关。从攻击者的视角来看,我们需要识别出影响网络、应用以及主机的威胁,因为其中存在可以被利用的漏洞,进而可能导致以下后果:

  • 影响大量使用某 DVR 系统的用户。
  • 入侵厂商基础设施并造成大规模漏洞利用。
  • 入侵 DVR 设备,给用户带来隐私泄露的风险。
  • 入侵 DVR 设备,给 DVR 用户带来功能安全方面的风险。

为了帮助定位威胁并对威胁进行分类,我们采用 STRIDE 模型对 DVR IoT 系统进行安全评估。在表 4 中,我们使用一组威胁类型来代替 IoT 中的安全隐患。表中所列内容可能并不完备,但是在考虑可能对整个 DVR 系统环境造成的安全威胁时,能够为读者提供一些思路。

表 4 DVR 系统威胁识别表
威胁类型 分析
身份欺骗 分析系统中是否存在同 DVR 身份欺骗有关的威胁,以及攻击者是否具备影响设备间建立自动信任关系的能力。
寻找在 DVR 系统配置过程中,设备或用户能够对信任关系进行控制的入口点。
分析 DVR 系统应用接口的认证与授权功能。
审计 DVR 系统中应用的通信过程,确定是否能够伪造请求报文
数据篡改 审计 DVR 系统中应用与设备之间的消息通信。
挖掘 DVR 系统中可以在数据的收集、处理、传输和存储过程中篡改数据的漏洞。
尝试篡改固件和移动应用中的配置来执行未授权操作
抵赖 挖掘在没有日志审计功能的情况下实现非法操作的漏洞。
禁用 Web 和移动应用的调试功能
信息泄露 针对应用中的参数开展模糊测试,判断对应用报错信息的影响。
识别出所有明文通信。
分析 DVR API 通信中的 HTTP 响应报文首部,查找其中是否包含版本信息。
识别所采用的所有 API endpoint 和应用后端技术。
审计应用数据存储方式,确定明文文件中是否存在意外数据泄露
拒绝服务 执行忘记密码等操作,以确定是否存在用户锁定。
对每个 DVR 应用接口测试账户锁定策略。
检查 DVR 网络服务的吞吐量,推算能承受多大流量的 DoS 攻击。
检查消息结构(比如数据总线)、数据结构,以及 DVR 组件中变量和 API 是否存在使用不当的问题,进而确定是否存在漏洞允许恶意摄像头的流量淹没正常摄像头或者其他 DVR 兼容设备的正常数据传输
权限提升 检查 DVR 系统提供的管理功能。创建低权限用户并测试能否获得管理员访问权限。
在 DVR 应用和操作系统中,分析管理员级操作与用户级操作之间的隔离是否存在漏洞。
挖掘 DVR 节点所采用认证方式的漏洞,为系统设计合适的认证控制方式
物理安全绕过 检查 DVR 设备及与其连接的摄像头所提供的物理保护机制,分析是否存在允许访问管理 Con-sole 口的漏洞
供应链问题 确定 DVR 系统的各组成部件,并掌握其来源(例如 ODM、硬件制造商、OEM 等)。
跟踪与 DVR 系统中软硬件组件相关的所有技术层面的漏洞

或者,在这里我们也可以从更高的层面上简单列出可能存在的威胁,后面的章节中我们将对每个组件的威胁进行深入探讨。受知识面所限,有些威胁可能是未知的或者还停留在理论层面,但是对围绕这些威胁开展头脑风暴开拓思维也是很重要的。为了识别出尽可能多的威胁,读者可以找个小伙伴一起练习,或者找到正在尝试入侵你所感兴趣的某套 IoT 系统的人组团开黑。下面是我们找出的 DVR 系统高级别威胁示例,攻击者可以执行这些操作:

  • 远程接管 DVR 系统。
  • 在未经认证的情况下,远程查看视频(秘密监视)。
  • 关闭摄像头的回放功能。
  • 跟踪某个个人。
  • 基于所搜集的情报闯入某片区域。
  • 在 DVR 设备中植入木马。
  • 获得物理接触的权限,并破坏视频记录。
  • 通过发送请求过载 DVR 系统,使其不能正常工作。
  • 窃听 DVR 系统通信数据。

步骤 5 威胁建档

接下来,我们将在步骤 4 中识别出的部分威胁用例形成文档(见表 5~表 7),文档中主要包括威胁描述、威胁目标、攻击技术以及可能采用的对抗措施。

威胁 1

表 5 威胁 1
威胁描述 攻击者远程接管 DVR 系统
威胁目标 DVR 用户、DVR 网络通信过程、DVR 应用
攻击技术 攻击者可以拦截无线通信、API 通信和网络协议通信,进而获取其中的认证信息或者会话 cookie。攻击者可以针对用户发起社会工程学攻击,进而访问其 DVR 系统,方法包括欺骗用户界面或者利用 CSRF 漏洞添加新用户账户等
对抗措施 如果登录尝试失败或者短时间内发送了多次请求,DVR 系统锁定 30 分钟

威胁 2

表 6 威胁 2
威胁描述 攻击者在未经授权的情况下远程查看视频
威胁目标 DVR 用户、协议和应用
攻击技术 攻击者可以在没有经过身份认证的情况下,获取认证信息或通过 API 调用查看摄像头监控视频。攻击者可以通过获取会话标识符劫持会话,远程查看摄像头监控视频。攻击者还可以使用社会工程学手段查看用户 DVR 系统的监控视频。借助 Cameradar( https://hub.docker.com/r/ullaakut/cameradar/ )等工具,攻击者也可以查看明文方式传输的 RTSP 视频流
对抗措施 强制采用多因子身份认证,采用加密的 RTSP 或 SRTP 视频流进行视频传输

威胁 3

表 7 威胁 3
威胁描述 攻击者可以关闭摄像头的记录回放功能
威胁目标 DVR 用户
攻击技术 攻击者可以物理访问 DVR 系统并更改配置。攻击者还可以使用社会工程学手段访问用户 DVR 系统
对抗措施 对敏感配置操作采用强制认证,以及采用多因子认证

步骤 6 威胁评级

现在,我们已经识别出了针对 DVR 系统的威胁并将其形成了文档,下面根据威胁发生的可能性以及可能导致的影响,我们采用 DREAD 评级系统对威胁进行评级。在本章前文我们已经对 DREAD 评级系统进行了介绍,也正如前文所指出的那样,用户也可以根据实际情况采用其他评级系统进行威胁评级。DREAD 评级系统中每个方面的评级都分为 3 个等级:3 表示高风险;2 表示中风险;1 表示低风险。

在 DREAD 模型中,按照表 8 所示的评级标准确定最终的风险等级。

表 8 风险等级判分表
风险等级 结果
高风险 12~15
中风险 8~11
低风险 5~7

DVR 系统中某威胁用例的威胁评级示例如表 9 所示。

表 9 威胁风险等级评定表

威胁风险等级:攻击者在未经授权的情况下远程查看视频

类别 分数
潜在危害 3
可重现性 2
可利用性 3
受影响用户 2
发现难度 3
威胁综合得分:高 13

起初,由于 DVR 系统用到了众多不同的组件,因此在考虑到所有的威胁用例的情况下,对整个 DVR 系统进行威胁建模可能会有点儿困难。尽管存在这样或那样的困难,但是一旦建模完成,读者将会发现许多潜在的高风险脆弱点,在渗透测试过程中就可以对这些高风险脆弱点予以重点关注。同时,这一工作也使得我们在对 IoT 系统开展渗透测试时更容易确定脆弱点的优先级。

图书简介 https://item.jd.com/12623610.html

物联网渗透测试(六):IoT 设备威胁建模剖析

相关阅读

物联网渗透测试(一):简介

物联网渗透测试(二):IoT 中的 Web 应用

物联网渗透测试(三):IoT 中的 移动应用

物联网渗透测试(四):IoT 渗透测试环境的部署

物联网渗透测试(五):威胁建模概念简介

评论

发布
暂无评论