写点什么

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

  • 2020-05-13
  • 本文字数:4070 字

    阅读完需:约 13 分钟

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

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

威胁建模概念简介

威胁建模同软件开发存在一定联系,因为威胁建模是在软件设计阶段之后、软件部署阶段之前开展的一次演练。演练通常由软件开发团队、系统运维团队、网络运维团队以及安全团队在重大软件发布之前开展,通过绘制完整的端-端数据流图,或者通过绘制数据流与网络图,都能够对部署安全控制措施与入侵对抗措施提供帮助。上述图表可以画在白板上也可以借助软件来绘制,例如微软就提供了免费的威胁建模工具 Threat Modeling Tool,此外还有 Web 应用https://draw.io也可以用来完成这项工作,链接中给出的 Web 应用提供了大量模板可以用于绘制多种用途的图表。图表绘制的思路是将设备的所有功能、特性同与之关联的技术建立映射。而如何绘制威胁模型的版式则取决于机构或者绘制者自身。需要谨记的是,当将组件逐个分解时,威胁模型会进一步细化。对于威胁建模而言,非常重要的一方面在于需要不断进行文档迭代,因为当设备添加了新特性之后或者对设备所采用的技术有了更深了解时,对威胁的认识也会不断深化。


一旦确定了 IoT 设备的攻击面之后,就需要使用 STRIDE 等方法确定威胁用例,STRIDE 方法将会放在后面的章节中进行讨论。这些威胁需要通过评级系统进行评级,进而确定所识别出的威胁的风险等级。在不同的行业中,可以采用不同的威胁评级系统,其中最常见的是 DREAD 评级系统以及通用安全漏洞评分系统(Common Vulnerability Scoring System,CVSS)。下面分别对 CVSS 评分系统和 DREAD 评级系统进行介绍。


CVSS 系统的评分粒度更加细致,该系统囊括了 3 个度量组共 14 个度量维度,3 个度量组分别是:基本得分、临时得分和环境得分。这 3 个度量组又分别包含了 6 个基本度量维度、3 个临时度量维度和 5 个环境度量维度。当向厂商提交漏洞时,CVSS 系统的评级结果是非常有用的,但是对于威胁建模来说则可能不够直观。想要了解更多关于 CVSS 系统的内容可以访问链接https://www.first.org/cvss/user-guide


DREAD 评级系统名称中的每个字母分别表示如下含义:


  • 潜在危害(Damage potential):如果漏洞利用成功可能造成的危害有多大?

  • 可重现性(Reproducibility):重现攻击的难易度如何?

  • 可利用性(Exploitability):发起攻击的难易度如何?

  • 受影响用户(Affected users):大概会有多少用户受到影响?

  • 发现难度(Discoverability):发现该漏洞的难易度如何?


DREAD 评级系统的风险评级范围为 1~3。其中 1 代表低风险,2 代表中风险,3 代表高风险。


表 1 展示了各评级类别的评级结果所对应的含义。


表 1 DREAD 评级系统风险对照表


评级高风险(3)中风险(2)低风险(1)
D潜在危害能够规避所有的安全控制措施,获取设备的完全信任进而接管整个IoT生态系统导致敏感信息泄露导致敏感信息泄露
R可重现性攻击总是可复现的只有在特定时间范围内或者满足特定条件的情况下才能够复现攻击即便拥有关于漏洞的特定信息,也很难复现攻击
E可利用性经验欠缺的攻击者就能够开展漏洞利用具备一定经验的攻击者能够反复发起攻击只有深入掌握漏洞利用技术的攻击者才能够发起攻击
A受影响用户所有用户、默认配置、所有设备影响部分用户、部分设备、特定配置通过不确定的特性影响一小部分用户或设备
D发现难度可以在公开信息中较为容易地找到漏洞利用方法影响较少使用的功能特性,攻击者需要精心构造利用代码才能实现恶意利用成因不明攻击者不太清楚或者基本不可能发现漏洞利用的方法


在开展威胁评级之前,需要识别出威胁。为了准确地阐释安全隐患,进而识别出潜在威胁,可以采用 STRIDE 模型。STRIDE 模型将威胁分为 6 种类型。这 6 种威胁类型分别对应于英文缩写 STRIDE 的首字母,其含义如下:


  • 身份欺骗(Spoofing Identity):身份欺骗即通过使用虚假身份信息来尝试获取系统的访问权限。攻击者可以使用窃取的用户认证信息或者伪造的 IP 地址来实现身份欺骗。当攻击者以合法用户或者本地主机的身份成功获得目标系统访问权限后,就可以进一步以授权身份开展权限提升或者其他恶意操作。

  • 数据篡改(Tampering with Data):篡改是指在未经授权的情况下恶意修改数据,例如篡改网络中两台计算机之间的通信数据。

  • 抵赖(Repudiation):抵赖是指用户能够(以合法或者不合法的形式)否认其执行了某项操作或业务。如果未配备适当的审计措施,则难以证实攻击者发起了抵赖攻击。

  • 信息泄露(Information Disclose):信息泄露是指私有数据的意外公开。例如,用户能够查阅未授权表格或文件的内容,或者监控通过网络发送的明文数据。信息泄露漏洞的部分实例包括隐藏的表单字段、Web 页面注释中遗留的数据库连接语句和连接信息,以及可能向用户泄露内部系统信息的不完善的异常处理等。所有这些信息对于攻击者实施攻击都大有帮助。

  • 拒绝服务(Denial of Service):拒绝服务是指导致系统或应用不可用的过程。举个例子,通过向服务器发送海量请求消耗掉目标系统所有可用的系统资源就可以实现针对目标的拒绝服务攻击,此外,发送足以导致应用进程崩溃的畸形输入也可以实现拒绝服务攻击。

  • 权限提升(Elevation of Privilege):当拥有有限权限的用户以特权用户的身份取得了某应用的特权操作权限时即实现了权限提升。例如,权限受限的攻击者通过提权可以实现入侵,或者接管具有较高权限并且受信任的进程或账户。


可以通过以下链接来了解关于 STRIDE 模型的更多细节:

https://msdn.microsoft.com/en-us/library/ee823878(v=cs.20).aspx

https://msdn.microsoft.com/en-us/library/ff648641.aspx


微软公司提出了一种非常好的威胁建模方法,该方法采用多步处理来确定新应用或者新系统所引入威胁的严重程度。其威胁建模处理步骤如图 1 所示。



图 1 威胁建模处理步骤


了解微软威胁建模过程的更多内容可以参考以下链接:

https://msdn.microsoft.com/en-us/library/ff648644.aspx


后面我们将采用 STRIDE 模型和 DREAD 评级系统以黑盒测试的方式开展威胁建模演练,并将 IoT 设备进行分解,对其中的各个组件分别进行威胁建模。这里我们建议,读者无论在开展任何安全测试之前,最好都先进行威胁建模,通过威胁建模来保障测试的覆盖面。思考所有潜在威胁发生的概率并对其分类的过程很有意思,需要读者好好动动脑筋。

准备工作

在逐一介绍威胁建模方法时,我们将会用到微软公司提供的免费威胁建模工具 Threat Modeling Tool 以及基于制图网站https://draw.io所绘制的图表。在本书撰写阶段,我们从链接https://www.microsoft.com/en-us/download/details.aspx?id=49168下载了微软的威胁建模工具 Threat Modeling Tool 2016。

测试流程

在本节中,我们使用微软威胁建模工具 Threat Modeling Tool 来进行图表绘制,采用该工具绘制网络图表非常简单:


1)启动微软威胁建模工具 Threat Modeling Tool 2016。选择“创建模型”(Create A Model)选项,如图 2 所示。



图 2 创建威胁模型


2)然后,熟悉工具中所提供的用于表示设备、通信传输以及输入输出可信边界的模板(Stencils)。微软针对不同的模板与选项提供了用户指南,当下载工具时可以一并下载,但并不做强制要求。


2016 版的微软威胁建模工具 Threat Modeling Tool 中允许用户自定义模板,用户可以创建模板(Stencils),从而更加准确地刻画各个组件同威胁之间的关系,如图 3 所示。



图 3 创建威胁模板


3)每套模板的属性都可以根据设备、网络或者应用的实际情况加以调整,如图 4 所示。


4)至此,我们通常就可以从一个较高的角度来识别 IoT 系统的资产了,并且,当通过研究或逆向分析对目标设备具备了更深的了解之后,可以进一步聚焦于所感兴趣的领域。资产识别的过程可以采用表格或者思维导图的形式加以记录。表 2 列出了一份基本的资产清单,其中对各项资产进行了简要说明。


5)图 5 展示了部署了智能门铃、LED 灯具、移动应用以及 IoT Hub 的智能家居环境。



图 4 修改模板属性


表 2 IoT 系统资产清单


ID资产描述
1智能门铃智能门铃主要用于监控户外动向,向用户发送告警信息,以及通过应用提供实时监控视频。数据可以存储在门铃自身设备中也可以存储在应用之中。如果用户在本地网络查看摄像头视频,或者在无须开放路由器端口的情况下,利用基于STUN/TURN服务器的应用来查看摄像头视频,那么可以基于SIP/RTP视频传输协议采用P2P方式建立同智能门铃之间的连接。所有数据都会被传送到路由器以便远程访问
2LED灯具LED灯具采用ZigBee协议传输数据到IoT Hub,继而通过Wi-Fi进行通信。用户可以通过IoT Hub或应用接口对LED灯具加以控制
3移动应用移动应用能够控制网络中的各种设备。这些移动应用可以直接由设备厂商开发,也可以由IoT Hub厂商开发。设备的配置数据与敏感信息均可以存放在移动应用中。数据可以通过API或Web服务传输到设备或后台系统
4IoT Hub(IoT中心)IoT Hub将所有协议聚合到一台设备中以便管理。用户可以通过IoT Hub的应用接口控制设备。IoT Hub通过无线或者以太网网线连接到路由器。IoT Hub中存储有配置信息,并且可以从外部将配置信息发送到后台系统进行处理
5路由器所有的网络通信都由路由器进行管理。路由器可以拦截针对设备的外部访问,也可以不对流量加以限制而让其直接通过



图 5 IoT 智能家居环境


上面的例子只是威胁建模演练的开始。我们已经介绍了如何下载微软威胁建模工具 Threat Model Tool,并熟悉了模板及其相关属性。然后,我们通过研究或逆向分析对智能家居环境进行了简单描述,进行了智能家居环境中的资产识别。接下来我们绘制了架构图,形象地展示了识别出的资产。下一步将是威胁建模的核心,即通过分解 IoT 系统的各个组成部分,帮助读者发现攻击入口点、确定攻击方法,以及分析 IoT 系统的某一部分遭受攻击后所造成的影响。与其他安全分析工作一样,测试人员对目标测试平台越熟悉,成功实施入侵的可能性也就越大。


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



相关阅读


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


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


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


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


2020-05-13 10:002281

评论

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

甲方日常 71

句子

工作 随笔杂谈 日常

vivo 商城架构升级-SSR 实战篇

vivo互联网技术

大前端 服务端 Node SSR

Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)

刘悦的技术博客

django Vue 微信支付 python3 请求数据 扫码

第十三周 作业

熊桂平

极客大学架构师训练营

数字货币量化交易所系统开发案例

创业感悟 | 2021是继续打工还是选择创业?

黑马腾云

创业

十日谈:我的 2020

escray

2020 七日更 十日谈

和 lvgo 一起学习设计模式.PDF

米凤君

Java 设计模式 23种设计模式

Flutter动态创建UI实现方案

FisherJoe

阿里不允许使用 Executors 创建线程池!那怎么使用,怎么监控?

小傅哥

Java JVMTI 线程池 七日更 Executors

数字货币交易所币币OTC交易系统开发

全球第一个 Serverless Redis 服务:Lambda Store 免费用

donghui

redis Serverless Lambda Store

不讲码德!坏味道偷袭我这个老码农

爱笑的架构师

Java 代码审查 代码坏味道 代码规范 七日更

今天发的被删了,不是我没写

lidaobing

28天写作

架构师 3 期 3 班 -week5- 总结

zbest

总结 week5

文件写入的6种方法,这种方法性能最好

王磊

Java io 文件读写 文件操作 文件写入

数字货币持币生息钱包系统开发案例

生产环境全链路压测建设历程 16:淘宝网高可用历程的总结

数列科技杨德华

全链路压测 七日更

Linux安装MySQL标准教程

Simon

MySQL centos 安装 七日更

我们该如何正确的中断一个线程的执行??

冰河

并发编程 多线程 高并发 中断线程 签约计划第二季

TypeScript | 第一章:环境搭建及基础数据类型

梁龙先森

typescript 大前端 七日更

【STL 源码剖析】浅谈 STL 迭代器与 traits 编程技法

herongwei

c++ 后端 迭代器模式 源码剖析 stl

突破某度云盘下载限速,提速30倍!想学?我教你啊

Silently9527

百度云 HTTP

FGC青蛙钱包系统开发|FGC青蛙钱包软件APP开发

系统开发

量化交易模式系统开发app案例

架构师训练营第十一周作业

文智

极客大学架构师训练营

架构师 3 期 3 班 -week5- 作业

zbest

作业 week5

架构的业务属性

soolaugust

架构 设计 架构师 七日更

什么是定点数?

Kaito

计算机基础

数字资产交易所系统开发交易平台APP

区块链钱包软件系统开发及费用

物联网渗透测试(五):威胁建模概念简介_安全_亚伦·古兹曼,阿迪蒂亚·古普塔_InfoQ精选文章