写点什么

物联网渗透测试(九):IoT 移动应用威胁建模

  • 2020-05-17
  • 本文字数:1585 字

    阅读完需:约 5 分钟

物联网渗透测试(九):IoT 移动应用威胁建模

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

IoT 移动应用威胁建模

在下一个威胁建模演练中,我们将对 DVR 系统中的 IoT 移动应用进行分析。代理商和不同的 OEM 为 DVR 系统(和 IoT 中的其他系统一样)开发了多套移动应用。出于演示的目的,我们只分别选择了一款 Android 应用和一款 iOS 应用进行威胁建模。

测试流程

在前面的章节中,我们已经绘制了很多数据流图,本节中我们将继续使用微软威胁建模工具 Threat Modeling Tool 进行图表绘制。


步骤 1 架构概况构建与分解


与之前绘制图表的步骤类似,这里我们直接展示构建完成的数据流图,其中包括了移动应用中的所有已知资产。图 1 是移动应用的数据流图。


可以看到,应用每次查看账户信息和摄像头视频时,都需要与第三方厂商的云平台建立连接,即使用户与 DVR 系统处于同一网络中。而远程访问 DVR 系统所需的用户名和口令就存储在移动设备中。在这里,我们尚不清楚同应用厂商后台系统通信时如何存储或发送这些数据。带着这些疑问,我们开展下一步工作,进行威胁识别。



图 1 DVR 系统移动应用数据流分解示意图


步骤 2 威胁识别


  • 攻击者可以利用移动应用进行以下操作:

  • 监视 API 调用。

  • 访问移动设备中的本地资源。

  • 泄露用户敏感信息。

  • 定位在移动设备中以明文存储的用户敏感信息。

  • 通过 SQL(ite)注入漏洞转储数据库中的数据。

  • 通过 WebView 控件的 JavaScript 接口实现任意脚本执行。

  • 获取其他用户账户的访问权限。

  • 在厂商的云平台环境中追踪用户。

  • 访问存储在设备上的摄像头回放视频。

  • 删除摄像头回放视频。

  • 篡改用户信息。

  • 在未经认证的情况下为摄像头添加共享用户。

  • 建立永久会话,该会话具有持久访问权限不会过期。

  • 截屏并发送给第三方。


步骤 3 威胁建档


接下来,同之前的工作类似,我们将选取部分威胁用例并形成文档,评估其风险等级,见表 1~表 3。


威胁 1


表 1 威胁 1


威胁描述攻击者在移动设备中访问本地资源
威胁目标移动应用
攻击技术攻击者发现API通信中的漏洞,如果漏洞能够将WebView控件暴露给JavaScript bridge,那么攻击者进而就可以实现对本地对象的访问。攻击者还可以利用移动设备中的SQL注入漏洞连接本地SQLite数据库,并创建拥有本地资源访问权限的文件
对抗措施在应用中禁用WebView控件中的JavaScript脚本,或者创建白名单,只接收白名单中的脚本。在应用中对用户输入进行验证,并禁用动态查询


威胁 2


表 2 威胁 2


威胁描述攻击者定位移动设备中用户以明文存储的敏感信息
威胁目标移动应用
攻击技术攻击者在运行时监控文件存储过程,并且截获到从厂商云平台同步到移动设备上的数据,从而导致敏感信息暴露
对抗措施只在设备中存储需要用到的数据


威胁 3


表 3 威胁 3


|威胁描述|攻击者在未经认证的情况下为摄像头添加共享用户|攻击技术|攻击者利用 CSRF 漏洞向被攻击者发送请求,自动添加共享用户|


|-|-|


|威胁目标|移动应用|对抗措施|使用 anti-CSRF token|


步骤 4 威胁评级


从表 4 中选择某种威胁并评估其风险等级。


表 4 威胁风险等级评定表


威胁风险等级:攻击者访问在移动设备中的本地资源


类别分数
潜在危害3
可复现性2
可利用性1
受影响用户1
发现难度2
威胁综合得分:中9


在移动领域中,常见威胁都与数据以及数据的存储和传输方式有关。因此,除非该漏洞能够对大量用户造成影响,或者导致泄露大量用户数据,否则移动应用漏洞风险一般相对较低。在对移动应用的测试过程中,移动应用的漏洞基本不会导致攻击者获取服务器或者移动设备的 shell。


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



相关阅读


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


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


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


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


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


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


物联网渗透测试(七):固件威胁建模


物联网渗透测试(八):IoT Web 应用威胁建模


2020-05-17 10:001822

评论

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

HTTP Methods和RESTful API的设计

孙苏勇

架构 系统设计 RESTful 接口

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

无代码开发

Fenng

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

【深度】为您解读东西方艺术教育的专业设置差异对比~

默聲

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

如何做一名失败的安全架构师

石君

架构 安全架构师 安全评估

小议RPA

一品凡心

人工智能 RPA 自动化

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(二)

石君

创业 乔布斯 成为乔布斯

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

Elasticsearch文档版本冲突原理与解决

Skysper

elasticsearch 乐观锁 悲观锁

做产品的同理心

孙苏勇

产品 产品经理 产品设计

《小狗钱钱》——财富离我们并不遥远

Yin

读书笔记 投资 成长 思维方式

探究vscode debug流程,解决无法运行go程序的问题

simpleapples

vscode Go 语言

删掉最后一句话

池建强

心理学 情绪控制

分布式数据库是无用的屠龙术吗?

海边的Ivan

企业架构 分布式数据库 业务中台

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

任正非管理哲学中的三个常识和三种科学

霍太稳@极客邦科技

创业 团队管理 华为

喔,明白了,成功也是一种苦难

霍太稳@极客邦科技

创业 身心健康 企业文化 个人成长 心理

我的第一个千万阅读量

彭宏豪95

创作 生活 写作

GitHub知错就改,是个好同志

遇见

GitHub

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

走出舒适区最好办法别走了,扩大它

乐少

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(一)

石君

职场 乔布斯 成功学

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

是时候要说再见了,春风十里,不如邮你!

乐少

dubbo-go 中如何实现远程配置管理

joe

Apache 开源 微服务 dubbo Go 语言

翻译: Effective Go (2)

申屠鹏会

翻译 Go 语言

做小池塘里的大鱼,还是大池塘里的小鱼?这是个问题。

霍太稳@极客邦科技

创业 团队管理 目标管理

特别评论:甲骨文的傲气

张晓楠

云计算 互联网巨头 企业文化

物联网渗透测试(九):IoT 移动应用威胁建模_安全_亚伦·古兹曼,阿迪蒂亚·古普塔_InfoQ精选文章