【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

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

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

    阅读完需:约 20 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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

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:001334

评论

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

《经济学人》2021年3月13日刊精彩文章导读及资源免费下载

wbliu85

进入大厂的简历应该是什么样子

我是程序员小贱

3月日更

Day01:VBA和Python入门

披头

办公自动化 IT蜗壳教学 数据科学探究

谈产品和创业方向

Ryan Zheng

创业 产品

阿里Java岗个人面经分享(技术三面+技术HR面):Java基础+Spring+JVM+并发编程+算法+缓存

Java架构之路

Java 程序员 架构 面试 编程语言

2021字节面经最新整理: 面试真经/思维导图/学习笔记!火遍全网

比伯

Java 编程 架构 面试 计算机

微服务学习笔记

lenka

3月日更

算法攻关 - 重上到下打印二叉树 (O(n))_offer32

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 从上到下打印二叉树

滚雪球学 Python 之怎么玩转时间和日期库

梦想橡皮擦

28天写作 3月日更

熟练使用SSH客户端常用工具SecureCRT

xiezhr

Linux SSH securecrt SSH工具

你最喜欢的奥斯卡电影是哪部?

wbliu85

代码审查:从 ArrayList 说线程安全

mzlogin

Java 代码审查

MySQL主从复制机制

luojiahu

MySQL 主从复制

对话微众和红枣:预言机是区块链提供可信数据的基础设施

CECBC

区块链

资深大牛带你了解源码!最详细的docker中安装并配置redis,实战解析

欢喜学安卓

android 程序员 面试 移动开发

如何实现可靠UDP传输

赖猫

计算机网络 udp TCP/IP

net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.

wjchenge

说说RPC架构

Kylin

读书笔记 3月日更 日常积累 RPC架构

[转]html5设计原理

小江

Python 日期格式和时间以及当前时间和时间戳

HoneyMoose

【LeetCode】设计哈希集合Java题解

Albert

算法 LeetCode 28天写作 3月日更

浅谈数仓、数仓模型分层

白程序员的自习室

大数据 解决方案 通用设计模型 数仓

寻找被遗忘的勇气(十三)

Changing Lin

3月日更

虚拟路由器冗余协议 VRRP 详解

css高度坍塌与清除浮动

依旧廖凯

28天写作 3月日更

Elasticsearch 近实时搜索 Near Real-Time Search

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

万事开头难——人为推进效应

Justin

心理学 28天写作 游戏设计

Zookeeper.01 - 简介

insight

zookeeper 3月日更

资深大牛带你了解源码!面试题解析已整理成文档,已拿offer

欢喜学安卓

android 程序员 面试 移动开发

太简单了!看完这篇还能不会SpringCloud+Nginx高并发?

Java架构追梦

Java nginx 架构 面试 SpringCloud

数字化“翻译官”

boshi

数字化 七日更

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