写点什么

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

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

评论

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

AI版女网红“半藏森林”上线,服务项目让人意想不到

引迈信息

人工智能 AI 低代码 JNPF

ChatGPT与软件架构(2) - 基于Obsidian和GPT实现解决方案架构自动化

俞凡

人工智能 架构 ChatGPT

软件测试|PC端应用自动化最佳解决方案——Pywinauto

霍格沃兹测试开发学社

三分钟知识点 - 重构平滑升级

雨中山

大模型时代下的企业系统架构变革

蔡超

架构 AI 大模型 GPT ChatGPT

朱珠代言Moto razr40登618手机榜首,小折叠成新摩登主义造风者

科技之家

ChatGPT与软件架构(4) - 架构师提示工程指南

俞凡

人工智能 架构 ChatGPT

你说的是哪一种 IDP:内部开发者门户 OR 内部开发者平台?

杨振涛

DevOps 平台工程 内部开发者平台 内部开发者门户 IDP,

软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

霍格沃兹测试开发学社

软件测试|简单易学的性能监控体系prometheus+grafana搭建教程

霍格沃兹测试开发学社

软件测试|教你用skip灵活跳过用例

霍格沃兹测试开发学社

使用Leangoo领歌敏捷工具实施多团队规模化敏捷管理

顿顿顿

项目管理 敏捷项目管理 敏捷工具 scrum工具

多模块项目使用枚举配置spring-cache缓存

javalover123

Java lombok Enum spring-boot spring-cache

au音频编辑 Audition 2022 中文激活版

真大的脸盆

Mac Mac 软件 音频编辑 音频处理 编辑音频

面试官问:kafka为什么如此之快?

JAVA旭阳

kafka

inBuilder低代码平台特性推荐系列-第三期

inBuilder低代码平台

【零售电商系列】走进电商

小诚信驿站

6 月 优质更文活动

利用 AWS CodeWhisperer 激发孩子的编程兴趣

汪子熙

人工智能 AI AWS AIGC 代码生成器

大数据公司数据分析取数流程以及SQL示例

MobTech袤博科技

架构实战营模块 1 第 4 课 - 如何做好架构设计

净意

精选一线企业最佳生产实践,《Apache Doris 用户案例集》重磅发布!

SelectDB

数据库 大数据 数据分析 实时数仓 Doris

软件测试|Pytest必会技巧(二)

霍格沃兹测试开发学社

三分钟知识点 - 如何选择编程语言

雨中山

龙蜥社区 5 月度运营大事件回顾

OpenAnolis小助手

开源 总结 生态 龙蜥社区 运营月报

软件测试|一步到位教会你Python字典操作(一)

霍格沃兹测试开发学社

软件测试|不会Python RPC,一篇文章教你入门

霍格沃兹测试开发学社

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

软件测试|Pytest必会技巧(三)

霍格沃兹测试开发学社

软件测试|Pytest必会技巧(四)使用autouse实现自动传参

霍格沃兹测试开发学社

ChatGPT与软件架构(3) - 软件架构提示工程

俞凡

人工智能 架构 ChatGPT

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