HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 2020-05-14
  • 本文字数:6227 字

    阅读完需:约 20 分钟

物联网渗透测试(六):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资产描述
1DVR设备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固件通过固件能够对摄像头的不同特性以及配置选项进行控制
4Web应用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 生态系统各组件的详细信息。



图 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 系统环境中对数据流的分解示意图示例:



图 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协议进行通信
3DVR设备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 中的 Web 应用


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


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


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


2020-05-14 10:001554

评论

发布
暂无评论
发现更多内容

SAP UI5 的规则构建器控件介绍

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

给工作加点料——试一试python

为自己带盐

Python 爬虫 9月月更

访问控制系统的质量评价

权说安全

网络安全 零信任 访问控制

写出优秀的产品手册文档的技巧

Baklib

文档 产品手册

贝斯的圆桌趴 |科技公司内部 SaaS 工具大公开

Bytebase

干货 | 企业数字化转型过程中,传统IT和数字型IT能否严格区分?

嘉为蓝鲸

运维 转型 IT 数字化 研发

江南农村商业银行容器云平台建设经验分享

BoCloud博云

云计算 云原生 容器云

好像知道的人不多?Spring容器关闭执行销毁方法有几种,看完MQ源码我才知道SmartLifecycle最快

程序知音

Java spring 程序员 后端 框架

零信任态势评估:安全控制自动化

权说安全

零信任 动态评估

超长序列,超快预测!深势科技联手阿里云,AI蛋白质预测再下一城

阿里云大数据AI技术

人工智能 深度学习 企业号九月金秋榜

TiFlash 源码解读(八)TiFlash 表达式的实现与设计

PingCAP

源码阅读 TiDB TiDB 源码解读

太牛了,这是我见过把微服务讲的最全最好的SpringCloud架构进阶

程序知音

Java 架构 微服务 SpringCloud 后端技术

Linux系统安装配置Tomcat

Linux Tomccat 9月月更

首批合作伙伴!博云携手中科院共建 SERVE 云平台规范

BoCloud博云

云计算 云原生 处理器

大促活动如何抵御大流量 DDoS 攻击?

京东科技开发者

安全 电商 DDoS 电商大促 防护

硬实力!旺链科技与蚂蚁、腾讯共同入选国家工信安全中心“区块链优选计划”

旺链科技

区块链 产业区块链 Baas 企业号九月金秋榜 融合创新

5 分钟比较理解 require() vs import()

掘金安东尼

前端 9月月更

Baklib|FAQ常见问题对产品推广的重要性

Baklib

产品 FAQ

Java开发培训的就业方向有哪些?

小谷哥

Java加密技术(四)非对称加密算法RSA

No Silver Bullet

RSA密码 9月月更 非对称加密算法

如何选择比较靠谱的数据培训班?

小谷哥

学员在web前端培训机构应该怎么学习

小谷哥

Spring源码解析(十一)Spring扩展接口InstantiationAwareBeanPostProcessor解析

石臻臻的杂货铺

spring 9月月更

知识管理对企业的作用不容小觑

Baklib

知识管理 企业

怎么来选择大数据培训课程

小谷哥

《小米创业思考》之二:互联网简史

郭明

读书笔记

OpenHarmony Camera源码分析

OpenHarmony开发者

OpenHarmony

干货 | 如何实现软件自动化部署?

嘉为蓝鲸

运维 IT 应用发布 应用部署

Java培训学习技术需要具备哪些能力

小谷哥

大规模数据如何实现数据的高效追溯

华为云开发者联盟

大数据 后端 华为云 企业号九月金秋榜

OneFlow源码解析:Tensor类型体系与Local Tensor

OneFlow

深度学习 源码解析 算子

物联网渗透测试(六):IoT 设备威胁建模剖析_安全_亚伦·古兹曼,阿迪蒂亚·古普塔_InfoQ精选文章