【AICon 全球人工智能与大模型开发与应用大会】改变 AI 时代下写代码的模式 >>> 了解详情
写点什么

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

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

评论

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

Linux RedHat7.4更换阿里云yum源

Albert Edison

7月月更

企业数字化转型之路,从这里开始

天翼云开发者社区

数字化转型 云存储

中文版Postman?功能真心强大!

Liam

Java 开发者工具 Postman 后端开发 程序员进阶

彻底理解为什么网络 I/O 会被阻塞?

C++后台开发

网络编程 socket 非阻塞网络I/O C++后台开发 C++开发

Web3.0时代来了,看天翼云存储资源盘活系统如何赋能新基建(下)

天翼云开发者社区

数字化 云存储

RedHat7.4配置yum软件仓库(RHEL7.4)

Albert Edison

7月月更

Ubuntu 20.04 安装 Chisel

贾献华

7月月更

【刷题记录】1. 两数之和

WangNing

7月月更

鱼和熊掌可以兼得!天翼云弹性裸金属一招鲜!

天翼云开发者社区

服务器 弹性扩容

开创人工智能产业新未来!7月8日昇思生态论坛与你相约广州

科技热闻

XaaS 陷阱:万物皆服务(可能)并不是IT真正需要的东西

雨果

云服务 xaas DaaS 本地服务

【愚公系列】2022年7月 Go教学课程 004-Go代码注释

愚公搬代码

7月月更

华律网牵手观测云,上线系统全链路可观测平台

观测云

尚硅谷尚优选项目教程发布

小谷哥

7000+字图文并茂解带你深入理解java锁升级的每个细节

华为云开发者联盟

Java 开发 华为云

AI金榜题名时,MLPerf榜单的份量究竟有多重?

脑极体

国内低代码开发平台靠谱的都有哪些?

AIRIOT

低代码 物联网 低代码,项目开发

不要再手动批量替换了,使用python AST模块批量替换

阿呆

Python AST 批量替换

一文读懂简单查询代价估算

华为云开发者联盟

数据库 后端 查询引擎

Spring你牛个啥,我承认刚才说话我声音有点大

zxhtom

7月月更

EMQX 5.0 发布:单集群支持 1 亿 MQTT 连接的开源物联网消息服务器

EMQ映云科技

物联网 IoT mqtt #开源 7月月更

5. 数据访问 - EntityFramework集成

MASA技术团队

C# .net 微软 后端 Framework

企业级数据安全,天翼云是这样理解的

天翼云开发者社区

数据安全

一朵云开启智慧交通新未来

天翼云开发者社区

区块链 大数据 物联网

集合处理的利器

技术小生

java8 7月月更

无人自助洗车机投放选址有啥要点

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车机投放

Vue和小程序的关系

Geek_99967b

小程序 Vue

MySQL数据库索引教程(超详细)

Albert Edison

7月月更

跨境支付平台 XTransfer 的低代码实践:如何与其他中台融合是核心

XTransfer技术

技术 前端

使用 RepositoryProvider简化父子组件的传值

岛上码农

flutter ios 安卓 移动端开发 7月月更

systemd-resolved 开启 debug 日志

程序员与厨子

ubuntu 运维 DNS systemd-resolved

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