关注前沿技术,分享热点话题,QCon全球软件开发大会三站同启,重磅回归!立即查看 了解详情

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

2020 年 5 月 11 日

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

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

IoT 中的移动应用

在 IoT 领域,移动应用模型同前面介绍的 Web 应用模型类似。虽然对移动设备平台的安全模型进行深入探讨超出了本书的范围,但是了解移动应用开发模型的基本概念将有助于后面的学习。

混合应用

安装在 Android、iOS 或 Windows Phone 设备中的移动应用可以是混合应用也可以是原生应用。虽然同 Web 应用相比,混合和原生在移动应用中具有不同的含义,但是其原理相似。混合应用既用到了 HTML/HTML 5、CSS 和 JavaScript 等 Web 技术,也用到了部分原生平台硬件,如 GPS 模块或蓝牙模块。只有使用混合框架提供的插件才能够访问硬件资源。可以将混合应用看作包含了 Web 应用的封装包,而原生平台可以使用该封装包。这意味着 Web 开发人员无须学习新的开发语言即可编写移动应用。

混合应用在 Windows Phone、Android 和 iOS 等多个平台上可以使用同一个代码库,当考虑将 IoT 设备应用投放市场时这是一个巨大的优势。通过嵌入式 Web 浏览器 WebView 就可以调用 Web 应用。当前,市场中流行的应用有多种流行的混合框架可以选择,包括 Apache Cordova、Adobe PhoneGap 以及 Xamarin 等。

每套移动混合框架都包含一个第三方市场,在其中提供可以实现各种功能的插件。为了实现快速开发,部分框架会采用一种编程语言(C#)编写,然后再翻译成另一种本地语言(Objective C 或者 Java),例如 Xamarin 就是如此。然而,从原生平台的高危远程代码执行到隐私泄露,这些移动框架存在着诸多安全隐患,这也并非什么秘密。如果读者在应用中恰好发现用到了某套移动混合框架,那么最好查阅一下相应的漏洞库,兴许就能够找到可以直接利用的漏洞。

为了帮助读者更好地了解混合应用运行的架构,图 1 展示了应用代码、WebView、插件以及移动设备自身之间的各个组件。需要注意的是,大多数封装包的代码和插件都是由混合框架或参与混合框架开发的第三方开发人员开发的。

图 1 混合应用示例

原生应用

原生应用是为特定操作系统开发的,采用 Java、Objective C、Swift 等设备平台原生语言编写,其中对于 Windows Phone 平台而言则需要采用 C#语言。原生应用使用各自平台的 SDK 实现同摄像头、蓝牙和 GPS 等硬件的交互。原生应用的性能和安全性取决于开发人员对原生平台语言的熟悉程度。如果平台 API 经常更新并且经常弃用某些类或方法,那么将会增加开发工作的难度。越来越多的平台,例如 iOS 和 Android 等平台,正在开发安全的原生 API,这样开发人员就无须再利用第三方库即可直接使用安全 API,进而提高通信和数据存储的安全性。

同混合应用架构相比,原生应用架构简单得多。图 2 展示了原生应用在设备上直接运行原生代码访问硬件资源的过程,在应用访问硬件资源的过程中未借助第三方组件。

图 2 原生应用示例

了解每种移动应用模型的优缺点对于高效地开展渗透测试而言非常重要。由于移动应用拥有设备的控制权,因此是针对设备实施攻击的另一个重要突破口,并且同其他方法比起来,有时通过移动应用突破 IoT 设备要更加容易一些。在第 5 章中,我们将分解 IoT 设备,对 IoT 移动应用中最常见的漏洞展开深入分析。

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

相关阅读

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

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

2020 年 5 月 11 日 10:00 261

评论

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

Week11

丿淡忘

架构师0期Week11作业2

Nan Jiang

知乎李大海与阿里云贾扬清联合直播,AI大咖眼中的行业前景

InfoQ_967a83c6d0d7

深圳数字货币交易所开发商,币币撮合交易软件开发

13530558032

XSKY S3 Console 为对象存储系统赋能

XSKY融合存储

安全&高可用架构

dony.zhang

高可用 安全 安全架构 高可用系统的架构 高可用系统的运维

安全及高可用策略

Lane

极客大学架构师训练营

解码微盟半年财报:同比增长59.9%,SaaS商业版图不断扩大

ToB行业头条

SaaS 微盟

朱嘉明:新冠肺炎疫情如何改变社会成本观念和结构

CECBC区块链专委会

社会结构 社会观念

熔断、限流的一些理解

elfkingw

作为程序员,推荐5种编程语言!

代码制造者

Python 编程语言 低代码 C语言 零代码

java安全编码指南之:基础篇

力软.net/java开发平台

针对目前在线教育存在问题的解决方案

anyRTC开发者

WebRTC 在线教育 直播 安卓

源码解析 | 万字长文详解 Flink 中的 CopyOnWriteStateTable

Apache Flink

flink

调度选得好,下班回家早

易观大数据

账户经常被盗号怎么办?防盗“黑科技”了解一下

华为云开发者社区

华为云 云安全 主机安全 双因子认证 弱密码

Grabana:使用 Golang 或 Yaml 生成 Grafana Dashboard

郭旭东

go golang Grafana

合约跟单APP开发模式,合约跟单系统源码搭建

13530558032

IDEA插件之Mybatis Log plugin破解!!!

不才陈某

java hashcode idea插件

程序员不得不知的软技能

架构精进之路

软技能

高可用注意点

dony.zhang

高可用 高可用系统的架构 高可用系统的运维

一款JAVA快速开发平台,多项目整合,给开发提提速

力软.net/java开发平台

「Java 25周年」 工具软件 平台应用服务

USDT承兑商系统开发,USDT支付系统软件搭建

13530558032

区块链钱包系统开发服务商,区块链钱包应用搭建

13530558032

30万奖金等你拿!Apache Flink 极客挑战赛入门指南(附Demo)

Apache Flink

flink

Lambda架构已死,去ETL化的IOTA才是未来

易观大数据

架构训练营第十一周作业

张锐

架构师0期Week11作业1

Nan Jiang

力扣1514——概率最大的路径

健健

算法 最短路径

架构训练营第十一周感悟

张锐

java 是什么?作用是什么?

InfoQ_34a83d636158

云原生来袭,企业上云如何平滑迁移增效避险?

云原生来袭,企业上云如何平滑迁移增效避险?

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