QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

评论

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

Apache DolphinScheduler新特性与Roadmap路线

代立冬

大数据 数据中台 工作流调度 海豚调度 数据湖调度

ARTS-1

你当像鸟飞往你的山

ARTS 打卡计划

ARTS week 3

刘昱

眼中有码,心中无码

小眼睛聊技术

学习 深度思考 程序员 最佳实践 算法

[ARTS打卡] week 01

Mau

ARTS 打卡计划

ARTS打卡第一周

GKNick

DDD 中的那些模式 — 使用 Specification 管理业务规则

Joshua

设计模式 领域驱动设计 DDD 架构模式

如何做好Code Review?

架构精进之路

Code Review

Flutter开发环境配置

玉龙BB

flutter android vscode

ARTS 打卡 WEEK2

编程之心

ARTS 打卡计划

后疫情时代,区块链的发展迎来曙光!

CECBC

CECBC 区块链技术

5G时代下应用的安全防御研究

Nick

5G 5G网络安全 5G安全

关爱孩子的心理建设

Neco.W

人生 感悟 教育

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【2】-抓包分析

hadesxiong

Python 爬虫 保险 Scrapy

如何使用 Apache CXF 快速实现一个 WebService

Rayjun

Java WebService CXF

Java日志门面系统

泛泛之辈

Java 日志 slf4j

clang-format 使用与集成介绍

Geek_101627

2万字长文带你细细盘点五种负载均衡策略。

why技术

Java 负载均衡 源码分析 面试 dubbo

如何设置线程池参数?美团给出了一个让面试官虎躯一震的回答。

why技术

Java 源码分析 面试 线程池

ARTS-01

NIMO

ARTS 打卡计划 ARTS活动

重学 Java 设计模式:实战单例模式

小傅哥

设计模式 编程思维 重构 优化代码

数据产品经理实战-数据门户搭建(上)

第519区

数据中台 开发数据

区块链技术大显身手,仅用20分钟就打完一场官司!

CECBC

CECBC 区块链技术 数字版权 存证

ARTS打卡计划_第一周

叫不醒装睡的人

ARTS 打卡计划

我的编程之路 -6(新时代)

顿晓

android 编程之路 时代

体验一次简洁的代码

你当像鸟飞往你的山

Mysql索引不会怎么办?6000字长文教会你

Super~琪琪

MySQL 数据库 sql 索引

深入计算机底层,从几本靠谱的书开始

HackMSF

计算机工作原理

MySQL 可重复读,差点就我背上了一个 P0 事故!

楼下小黑哥

Java MySQL

那些会阻碍程序员成长的细节[2]

MavenTalker

程序员 程序人生

像孩子一样认识新事物 —— 读《终身幼儿园》

YoungZY

学习 读书笔记 读书

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