NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 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:001983

评论

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

最强最全面的大数据SQL系列

五分钟学大数据

sql 大数据 hive

kafka丢失和重复消费数据

编程江湖

大数据 kafka

华为与湖北三所高校共建首批鲲鹏&昇腾产教融合育人基地

科技热闻

教你Python字符串的基本操作:拆分和连接

华为云开发者联盟

Python 连接 字符串 拆分 拆分字符串

大数据开发Hive之如何进行数据抽样

@零度

大数据 hive

确保关键基础设施精确授时与同步的弹性、冗余和安全性

科技热闻

滴滴数据通道服务演进之路

Kafka中文社区

云原生时代,需要什么样的数据库?

博文视点Broadview

一文带你了解数据库连接池的必要性

编程江湖

数据库 JAVA开发

10个Node.js 开发人员必须使用的IDE

编程江湖

node.js

Jira Software 年度总结:12个重要功能大放送!

Atlassian

DevOps 敏捷 Atlassian Jira ITSM

行业分析| AR远程协助-企业的好帮手

anyRTC开发者

音视频 远程协助 远程医疗 远程培训

完蛋,我的事务怎么不生效?

秦怀杂货店

MySQL 数据库 事务 事务失效

SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子

Jerry Wang

Kubernetes k8s 28天写作 docker build 12月日更

饿了么资深架构师分享云上基础架构演进

阿里云弹性计算

云上架构 运维峰会

PassJava 开源 (九) :Spring Cloud 整合 Gateway 网关

悟空聊架构

SpringCloud Gateway passjava 悟空聊架构

智算未来 | 2021新一代人工智能院士高峰论坛智算网络分论坛成功举办

OpenI启智社区

版本不兼容Jar包冲突该如何是好?

vivo互联网技术

jar Java 开发

Arctic:网易数帆开放式流批一体表服务 | BDTC 精彩回顾

网易数帆

大数据 数据湖 iceberg 流批一体 Arctic

面试被问一致性hash?看这一篇就够了

公众号:程序猿成神之路

迭代你好,我是冲刺

华为云开发者联盟

Scrum 开发 迭代 冲刺 迭代增量开发

Golang协程之了解管道的缓存能力

恒生LIGHT云社区

Go golang

初探语音识别ASR算法

华为云开发者联盟

算法 语音识别 ASR 语音转写文章 声学模型

网络安全好学吗?网络安全入门篇,安装渗透测试系统kali全套教学

学神来啦

运维 网络安全 渗透测试· kali基础 kali Linux

Soul运维总监尤首智:企业如何从0到1建设云上运维体系

阿里云弹性计算

阿里云 云上架构 运维峰会

技术揭秘!百度搜索中台低代码的探索与实践

百度Geek说

中台 后端 低代码 搜索

给弟弟的信第26封|做一个懂得感恩的人

大菠萝

28天写作

PingCAP x 亚马逊云科技,为 TiDB 云端体验“加冕”

PingCAP

【转】java开发之spring面试题

@零度

JAVA开发 spring框架

OPPO小布助手算法系统探索、实践与思考

安第斯智能云

算法

共筑AI开源繁荣生态 | 新一代人工智能院士高峰论坛深度学习框架分论坛成功举办

OpenI启智社区

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