写点什么

物联网渗透测试(九):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:001476

评论

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

ShardingSphere 知识库更新 | 官方样例集助你快速上手

SphereEx

数据库 开源

人类高质量 Java 学习路线【一条龙版】

程序员鱼皮

Java 数据库 后端 求职 编程学习

【Vue2.x 源码学习】第四十一篇 - 组件部分 - 生成组件的真实节点

Brave

源码 vue2 8月日更

谷歌高级架构师十年心血终成Kubernetes微服务实战文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

神策分析 iOS SDK 代码埋点解析

神策技术社区

程序员 数据采集 埋点

多种云资源管理用什么软件好?你知道吗?

行云管家

云计算 云服务 云资源

Python对系统数据进行采集监控——psutil

Python研究者

8月日更

神策分析 iOS SDK 全埋点解析之启动与退出

神策技术社区

程序员 大前端 后端 代码 神策数据

百度推出 “汽车机器人”,AI体验官金晨直呼“太豪横了”

百度开发者中心

产品 最佳实践 企业动态 Apollo 无人车

安装ApiPost-接口工具 发送HTTP请求

CodeNongXiaoW

大前端 测试 后端 接口测试 接口管理工具

结合scipy.linalg在Python中使用线性系统

华为云开发者联盟

Python 矩阵 Numpy 线性系统 向量

【ShardingSphere技术专题】「ShardingJDBC」SpringBoot之整合ShardingJDBC实现分库分表(JavaConfig方式)

码界西柚

ShardingJDBC ShardingSphere ShardingSphere-Proxy 8月日更

gopher成长之路(三):出差小记

非晓为骁

个人成长 蜕变

NDK 编译代码(一)

Changing Lin

8月日更

解决参数依赖,接口之间传递数据——apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

神策分析 Android SDK 网络模块解析

神策技术社区

程序员 代码 信息 神策数据

引领异构时代,英特尔发布重大架构创新

科技新消息

MySQL 系列教程之(九)MySQL 必修:事务

若尘

MySQL 数据库 8月日更

imtoken钱包搭建,区块链去中心化钱包搭建

字节跳动《实时音视频通讯技术》学习笔记之服务器端开发入门

Regan Yue

git 字节跳动 Go 语言 8月日更

神策 Android 全埋点插件介绍

神策技术社区

程序员 数据采集 埋点 行为数据

全链路压测实践

超凡生

币安智能链智能合约DAPP开发|智能合约DAPP源码搭建

量化系统19942438797

dapp 币安智能链

手把手教你写 Gradle 插件 | 数据采集

神策技术社区

android 程序员 Gradle 神策数据

Docker

彭阿三

python接口测试unittest使用详解

与风逐梦

Python 软件测试 接口测试

Redis主从握手流程,你真的了解了吗?

博文视点Broadview

AI 场景的存储优化之路(二)

焱融科技

人工智能 云计算 AI 高性能 分布式存储

JVM调优(一)

彭阿三

学完阿里P8推荐的实时流计算系统设计与实现PDF,终入淘宝

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

币安智能链智能合约DAPP开发

Geek_23f0c3

智能合约 DAPP智能合约交易系统开发 DAPP系统开发 币安智能链

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