【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 2020-05-16
  • 本文字数:1881 字

    阅读完需:约 6 分钟

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

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

IoT Web 应用威胁建模

接下来继续介绍针对 DVR 系统的威胁建模演练,下一步我们将分解 Web 应用。DVR 系统包含两种类型的 Web 应用。一种是嵌入式 Web 应用,在 DVR 设备内部运行。另一种是由厂商提供的 SaaS 应用,用于远程访问 DVR 系统和视频。


SaaS 应用能够实现对局域网内嵌入式 DVR 设备的访问。然而,本文我们主要关注 DVR 系统中运行的本地嵌入式 Web 应用,而非厂商的 SaaS 应用。在本章开头,我们曾简单提到了部分厂商 Web 应用所采用的技术,但是目前除此之外难以开展更深入的了解。下面,我们将绘制嵌入式 Web 应用的架构,其中在威胁部分涉及厂商 SaaS 应用,但是由于不知道其采用的架构,所以无法绘制其架构图。

测试流程

现在,我们应该对如何从头开始构建威胁模型已经能够在脑海中形成大体的思路了。了解了这些内容后,我们就可以忽略威胁建模过程中的部分步骤,而将重心放在更加重要的方面。


步骤 1 架构概况创建及分解


下面我们将基于对嵌入式 Web 应用的了解绘制架构概况图,然后在架构的数据流中识别威胁并进行评估。图 1 展示了嵌入式 Web 应用的部分基本功能。



图 1 DVR 系统嵌入式 Web 应用数据流分解示意图


由于只有局域网中的流量,没有公网流量,所以应用的数据流比较简单。因此,识别嵌入式应用中的威胁不算太难。


步骤 2 威胁识别


嵌入式 Web 应用中的数据流比较简单,所以将威胁用例形成文档本应轻而易举,但是考虑到还有厂商基于 SaaS 的 Web 应用,因此我们还需要再添加一些额外的场景。


攻击者针对 DVR 嵌入式 Web 应用和厂商 SaaS 应用开展漏洞利用能够实现以下操作:


  • 劫持用户会话查看摄像头监控视频和配置。

  • 监视 API 调用。

  • 通过命令注入漏洞执行操作系统命令。

  • 泄露敏感用户信息。

  • 采用 SQL 注入漏洞转储数据库中的数据(拖库)。

  • 任意脚本执行。

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

  • 伪造已登录用户的请求(CSRF)。

  • 修改 DVR 配置,将流量重定向到未经授权的用户或网络。

  • 追踪用户。

  • 泄露摄像头回放视频。

  • 删除摄像头回放视频。

  • 对厂商的 Web 服务器或应用服务器开展漏洞利用。

  • 阻止正常用户的访问。


步骤 3 威胁建档


接下来,同之前工作类似,我们选择部分典型威胁用例形成文档(见表 1~表 3),文档中包括威胁描述、威胁目标、攻击技术以及可能采用的对抗措施,并对其风险进行评级。


威胁 1


表 1 威胁 1


威胁描述攻击者通过命令注入漏洞执行操作系统命令
威胁目标嵌入式和厂商Web应用
攻击技术由于对输入的验证不完善,攻击者可以发现DVR设备同厂商API通信过程中的漏洞。攻击者可以开发能够在应用执行环境中运行的代码。攻击者还可以向应用程序注入特定代码以获取后台系统的访问权限
对抗措施在应用中对输入进行验证,并对执行环境中的输出进行编码


威胁 2


表 2 威胁 2


威胁描述攻击者伪造已登录用户的请求(CSRF)
威胁目标嵌入式和厂商Web应用
攻击技术攻击者定位存在漏洞的HTML表单,并编写代码在登录用户的通信流量中伪造请求报文。伪造的请求报文可以包括为第三方创建账户或共享某个账户等操作
对抗措施对可能变更应用状态的敏感HTML表单设置anti-CSRF token


威胁 3


表 3 威胁 3


威胁描述攻击者采用SQL注入漏洞转储数据库中的数据
威胁目标厂商Web应用
攻击技术攻击者在存在漏洞的参数中附加或者拼接SQL命令,进而实现数据库查询
对抗措施对用户输入进行验证,将查询语句中需要用户输入的内容设置为参数,或采用存储过程访问数据库


步骤 4 威胁评级


我们将使用表 4 评定威胁的风险等级,选择某个威胁之后,即可确定其对应的风险评级。


表 4 威胁风险等级评定表


威胁等级:攻击者通过 SQL 注入转储数据库内容


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


显然,对于攻击者而言,针对厂商 SaaS 应用开展漏洞利用能够取得更理想的效果,因为其中保存了大量的用户信息以及其他内容。但是,希望读者一定要在法律许可的范围内开展测试,并提前获得甲方授权。话又说回来,针对嵌入式 Web 应用开展渗透测试,虽然可能不一定会取得同针对厂商 SaaS 应用开展渗透测试一样的评价,但如果充分分析设备的在线资料了解其用法,进而挖掘出一个可以远程利用的漏洞,那么肯定也会大有收获。


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



相关阅读


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


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


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


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


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


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


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


2020-05-16 10:00941

评论

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

这些js手写题对我这个菜鸟来说写不出来

helloworld1024fd

JavaScript 前端

如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行

Jerry Wang

angular SAP commerce Spartacus 9月月更

从使用者,DBA,内核开发三个不同角度来分析SQL的性能问题

数据库 postgresql sql database

浮点, 让多少老司机折戟?

浮点数 计算机原理 计算机科学与技术

Dubbo 泛化调用引发的“血案”

Java-fenn

Java

用了这个IntellijIDEA插件以后,我写代码快了10倍!

Java-fenn

Java

Javaweb核心之注解开发Servlet

楠羽

Servlet 笔记 9月月更

Java服务异常排查定位大图

慕枫技术笔记

后端 9月月更

OpenJDK 的原生 Wayland 支持正在取得进展

Java-fenn

Java

2022-09-24:以下go语言代码输出什么?A:1;B:3;C:13;D:7。 package main import ( “fmt“ “io/ioutil“ “net/

福大大架构师每日一题

golang 福大大 选择题

在家学习如何保持高度自律

大数据搬运工

学习方法

2022react高频面试题有哪些

beifeng1996

前端 React

对领域驱动设计的理解与社交领域的实践

微服务 微服务架构 DDD

面试官:这些js手写题你会吗

helloworld1024fd

JavaScript 前端

数据库路径选择理论与postgreSQL实现

数据库 postgresql 遗传算法

Identity and Access Management

冯亮

DevOps security AWS Cloud

percolator的理解与开源实现分析

数据库 分布式 事务

哪些vue面试题是经常会被问到的

bb_xiaxia1998

Vue 前端

kubernetes“雪崩了”

Linux 云原生 #Kubernetes#

数据库并发控制理论

数据库 postgresql 并发控制 database

工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)

宇宙之一粟

数据库 abap 查询语句 select 9月月更

SQL是什么?它能做什么?

乌龟哥哥

9月月更

【编程基础】正则表达式基本使用及在Python中使用正则表达式匹配内容

迷彩

Python 正则表达式 9月月更

最近几周react面试遇到的题总结

beifeng1996

前端 React

新书上市|听说你翻开数学书就眼睛疼?

图灵教育

数学 科普 教育

后端打工人必知必会21个MySQL表设计的经验准则

程序员小毕

MySQL 数据库 程序员 程序人生 Java 面试

跟着卷卷龙一起学Camera--内存池浅析02

卷卷龙

ISP 9月月更

脑机接口照进现实:5位脑科学家带来的最新启示

脑极体

RocketMQ&kafka消息队列性能优劣对比

程序员小毕

程序员 面试 RocketMQ 后端 消息队列

顺序、时钟与分布式系统

分布式 时钟

大数据调度平台Airflow(八):Airflow分布式集群搭建及测试

Lansonli

airflow 9月月更

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