手机数据传输安全分析

标签: 无线安全 终端安全 | 发表时间:2016-06-03 05:23 | 作者:dawner
分享到:
出处:http://www.freebuf.com

55.jpg

如今手机已经成了我们离不开的伙伴和知己,它了解我们的日常生活。然而每一天在路上的时候,它都会收集我们的私密信息。平时我们会用它拍照,在社交网络中分享我们的心情;我们也用它发送邮件、短信以及拨打电话。所以,这些信息则让我们的智能手机成为黑客眼热的宝库。

普通用户的安全概念

最重要的是,我们中大多数人相信手机中的数据是绝对安全的。毕竟手机制造商曾向我们保证过,而且他们也给我们提供了安全补丁和更新升级包。

我们自己也会采取措施来保护自己的隐私,比如自定义安装固件、挖掘操作系统机制、刷机获得root权限,以便更好地操控手机等等。同时,我们还会使用一些自以为安全便捷的软件。

大多数用户并不会对手机进行深度挖掘,他们会设置PIN码、一个复杂的密码,或者设置指纹扫描,同时会坚持使用官方应用商店,这似乎就足够了。

大多数用户认为上面这些措施能使得数据更安全,但是真的是这样么?下面的实验将告诉你,或许只是给设备充下电,就可能带来很多麻烦。

数据传输

前一段时间,我开始尝试深度挖掘。当你将手机连入电脑时,手机如果做了保护,你就只能在电脑上看到手机设备名。但是如果手机没有设置PIN码/密码,你就能访问手机里的媒体文件。

数据交换的总量取决于制造商、操作系统版本和底层固件。但数据肯定是存在的,即使是最新的手机操作系统也是那样。

下面是一张比较的表格,里面罗列了各种电脑和手机握手包的数据交换情况,它们是根据手机和桌面操作系统进行组合的。

语法解释:

DN – 设备名称

DM – 设备制造商

DT – 设备类型

SN – 序列号

FW – 固件信息

OS – 操作系统信息

FS – 操作系统信息/文件列表

ECID – 电子芯片ID

设备 设备系统 模式 主机系统 数据大小 (bytes) 数据类型
Nexus 5 Android 4.4 MTP (默认) Windows 8.1 32 336 DN, DM, DT, SN, FS
MTP (解锁) Windows 8.1 32 155 DN, DM, DT, SN, FS
MTP + ADB Windows 8.1 11 946 DN, DM, SN
MTP (默认) Windows 10 8 827 DN, SN
MTP (解锁) Windows 10 242 206 DN, SN, FS
MTP + ADB Windows 10 10 582 DN, SN, FW
MTP (默认) OSX 10.9 1 213 DN, DM, DT, SN
MTP (解锁) OSX 10.9 581 DN, DM, DT, SN
Nexus 6 Android 6.0.1 Charging only (默认) Windows 8.1 8 965 DN, DM, SN
MTP (解锁) Windows 8.1 39 418 DN, DM, DT, SN, FS
Charging only (默认) Windows 10 8 975 DN, SN
MTP (解锁) Windows 10 91 342 DN, SN, FS
Charging only (默认) OSX 10.9 14 000 DN, DM, DT, SN
MTP (解锁) OSX 10.9 7 674 DN, DM, DT, SN
Samsung Galaxy S4 Android 5.0.1 MTP (默认) Windows 8.1 4 098 DN, DM, DT, SN
MTP (默认) Windows 10 7 740 DN, DM, DT, SN, FS, FW
Apple iPhone 5 iOS 9.1 Default (锁) Windows 8.1 5 001 DN, DM, SN
Default (锁) OS X 10.9 83 272 DN, DM, DT, SN, OS, ECID, 设备公钥
解锁+ 配对 Windows 8.1 1 829 145 UniqueChipID, 设备类型, iOS版本, SessionID, 设备模型, 文件系统大小, 文件系统剩余空间
解锁+ 配对 OS X 10.9 23 223 DN, DM, DT, SN, OS, ECID, 设备公钥

总的来说,里面还是有相当多关于设备的信息。

我在做研究时,偶然发现了某知名手机制造商的一个有趣特性。我发现,当安装了CDC驱动(在这里使用的是普通windows PC机和标准microUSB数据线),手机也安装COM端口,将其作为modem。乍一看觉得没什么,然而这手机并没有启用USB tethering,也没有启用开发者模式,或者ADB(USB调试)。而且,这个COM端口用默认方法就可以连接。

我们能接触到modem,或者说我们接触的,只是与modem有机会通信的接口层,而并不是直连。现在我们从理论上进行讨论,安卓包含了不同的层,其中一层是RIL,也就是无线接口层(Radio Interface Layer)。它允许应用级别的app(比如安卓电话框架)去与modem硬件通过特定命令进行通信(互相发送请求、响应包)。

为了避免纠结太多细节,我不会花力气描述与rild守护进程或者Vendor RIL通信的RIL Java子层。

通常,所有的modem都会使用一个叫Hayes的命令集,这是由Dennis Hayes在1981开发的。这组用来与modem通信的命令叫做AT-命令。那些命令可以让应用通过RIL进行调用,也可以用于RIL传输给modem,它们根据制造商modem固件的限制,会有许多不同。当然,许多制造商也为他们自己的modem制定了自定义的命令。比如,高通就用了:

  AT$Q<command>extension, Infineon – AT+X<command>

比如,ATI1-9命令返回了设备和modem的通用信息,ATI1返回了软件版本代码。

1.png

ATI2返回了IMEI号码,在这里我们可以看出该设备是双SIM卡。

2.png

你可以继续用其他AT命令,挖掘一些好玩的东西。

挖掘,挖掘

在挖掘一些信息后,我们发现了所有适用于该modem的命令。注意,其中很多都是受限的或者需要参数的,不然调试的时候会返回“Error”。

3.png

话说,厂商自定义的命令这里就避而不谈了,因为它们不具有通用代表性。我们用AT+CSQ可以检查手机的信号电平和电池电量等等。

还有个有趣的默认modem命令,它可以让黑客在手机锁屏时,也能拨打任意电话。这是对于那些把手机用PIN码上锁的手机来说,是一个非常独特的地方。因为,咱们通常只能使用锁屏手机的紧急服务功能。

我们还发现了可以让您阅读SIM里的电话簿的命令,这个默认是不开启的,但谁知道其他厂商是否进行了支持呢?

可怕的部分

你可能认为,就算上述的那些是真的又怎么样?这些信息可以用来干嘛?那我们这么看,你可以取出厂商信息、固件细节,这些可以帮助你分析设备的安全。你可以发现手机设备主人的电话号码,但这只需要用它打下你自己的号码就行。而检测出手机电池电量后,你可以预估下该手机用户还有多久会去插入充电器。当然,这些听起来确实没啥卵用。

但是仔细想想,其实你也可以用这些信息做更多事。后来的实验中,我发现了一个命令。它实际上会进入到手机重启后的固件更新模式。在正常情况下,这种模式允许黑客对设备进行各种各样的操作。

因此,我做了个实验。我将手机重置为出厂固件,并将其重置为默认设置,保证不会有如ADB之类的对外接口。

首先我用手机连接到了电脑,然后我用AT命令获取了固件数据,确认了设备类型和操作系统。再之后,我输入了命令,手机重启,进入了固件更新模式:

4.png

那么接下来发生了什么呢?我们通过AT命令收集了信息后,我鉴定了设备。然后,我用了一个方便的ROOT手机的POC,为设备找到了合适的包,启动了固件更新应用,接下来发生的就是:

  5.png

更新持续了约一分钟(文件很小),手机重启后执行root:

  6.png

安装了Root包后,它进行了自清理。然后,在手机重启后,我们会看到:

  7.png

所有用户的数据都是安全的,但是它有几个应用无法通过默认手段卸载,而且它们有root权限。我算了下时间,考虑我手动点按钮的时间,整个过程不到3分钟。

想象时刻

现在发挥下你的想象力,如果这个安装包会不会没有通用目的(可能会有很多附加功能),但是专门在你手机上安装特定应用,或者了改变设备的配置呢?那就可能会减少安装包和脚本的大小,也减少了安装时间。

如果它安装了一个系统守护进程而不是安装包呢?如果是后门或者安卓木马呢,这是现在常见的一种手段。它就在后台运行,黑客会跟你一起分享你手机里面的内容。如果启用了开发者模式和ADB,然后将电脑指纹加入到可信库里?这些动作都不会被杀软检测到,因为它用的都是默认的函数,而且不会花多时间来运行。

那么我们用手机ADB连接可信电脑,又能做些什么呢?

我们可以安装和删除应用、备份消息库、照片、视频、应用缓存和数据文件,这些在很短的时间内就能完成。我们还能格式化手机、删除数据、加密数据,以及勒索赎金。想象下这样一个场景,在你经过5-8小时的飞行后下飞机,你的手机自然几乎没电了,接着你找到了一个USB充电站。

你将手机连上去充电后,可能会休息20-30分钟。你觉得,恶意改造过充电站的黑客,需要多长时间来下载你的手机上的数据,或者用恶意软件去感染你的手机。有了这些数据,黑客就能黑了你、追踪到你,你和你单位的数据都可能处于风险之中。

结论

世界各大网络社区,有不少都专注于深度挖掘和探索操作系统,他们会对其进行修改,并将辛苦研究的成果奉献给大家。

其他人则会用这些成果升级自己的设备,但事实上并不能保证他们在手机上安装的这些免费固件都是没有后门的。开发者可能会忘了禁用开发者模式或者调试模式,也可能安装了隐藏的手段,在后台收集和传输手机用户的数据。

尽管手机制造商付出了巨大努力,但是绝对安全的移动设备几乎是不可能存在的。我们的实验证明了这点,虽然案例里只有一个制造商,但是并不代表其他制造商是不存在这些问题的。同时,上述的实验工作都是基于已知的信息。

在我挖出了这个漏洞后,发现它早在2014年就已经在黑帽大会上被 报道过了。但是,它没有制造太多的影响力,以至于在最新的手机模型上还存在。而在本文中,我发现这些人某种程度上也 发现了这个洞。通过连接电脑窃取手机数据的技术早已被滥用,例如2013年 红色10月那场著名的网络间谍活动。

公共充电站导致的数据失窃的可能性,我们的专家曾在2014年提出来 分析过。你大概会认为没有人在机场、咖啡馆或者公交站恶意改造充电站。但是,我们却并不这么认为。

 *参考来源: securelist,FB小编dawner编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM) 

相关 [手机 数据 传输] 推荐:

手机数据传输安全分析

- - FreeBuf.COM | 关注黑客与极客
如今手机已经成了我们离不开的伙伴和知己,它了解我们的日常生活. 然而每一天在路上的时候,它都会收集我们的私密信息. 平时我们会用它拍照,在社交网络中分享我们的心情;我们也用它发送邮件、短信以及拨打电话. 所以,这些信息则让我们的智能手机成为黑客眼热的宝库. 最重要的是,我们中大多数人相信手机中的数据是绝对安全的.

window.name实现的跨域数据传输

- - Web前端 - ITeye博客
a.com/app.html:应用页面. a.com/proxy.html:代理文件,一般是一个没有任何内容的html文件,需要和应用页面在同一域下. b.com/data.html:应用页面需要获取数据的页面,可称为数据页面. 在应用页面(a.com/app.html)中创建一个iframe,把其src指向数据页面(b.com/data.html).

Sqoop实现关系型数据库到hive的数据传输

- - CSDN博客互联网推荐文章
Sqoop实现关系型数据库到hive的数据传输. 作者:zyuc_wangxw 发表于2013-8-9 17:21:20 原文链接. 阅读:118 评论:0 查看评论.

基于 Android NDK 的学习之旅-----数据传输一(基本数据类型和数组传输)(附源码)

- UnderSn0w - 博客园-首页原创精华区
基于 Android NDK 的学习之旅-----数据传输(基本数据类型和数组传输).        之前的一些文章都有涉及到上层和中间层的数据传输,简单来说,也就是参数和返回值的使用. 因为中间层要做的最多的也就是数据传输与转换,下面来介绍下这方面的知识.        数据传输可分为 基本数据类型传输 和 引用数据类型的传输 , 因为数组传输也比较特别(其实数组也是引用类型),所以这里也专门分出来讲讲.

电力线技术——未来的数据传输方式

- Roger - 张志强的网络日志
博客 » IT技术 » 网络 ». 今天买了一对电力线适配器,型号TP-LINK TL-PA201. 电力线适配器是一种通过电线传播网络信号的设备. 通常,用一个电力线适配器连接网络(或网络路由器的一个端口),并插在电源插头上. 然后可以用其余的电力适配器,在家里的任何地方,插上电源插头,即可连接上网络.

电灯泡将可传输无线数据:每秒超10Mb

- 阳阳猪 - CNBETA
英国著名物理学家哈拉尔德-哈斯表示,他研发出一种全新的无线数据传输技术,可利用普通的电灯泡完成整个过程. 在打开房间电灯的同时,用户也打开了互联网连接. 哈斯将这种装置称之为“Light Fidelity”(简称Li-fi),可用于传输来自电视波段“白空间”的无线数据或者未被使用的卫星信号. 哈斯是英国爱丁堡大学工程学院教授,他表示我们当前使用的无线电波数据传输方式效率不高.

单激光束每秒传输26TB数据

- Vincent - Solidot
BBC报导,根据《自然光学》期刊上刊登的报告,德国科学家使用单束激光,创下了每秒26TB的数据传输速度新纪录,能在10秒内传完美国国会图书馆的藏书. 科学家们通过“快速傅里叶变换”,将一束激光光束所包含的颜色进行拆分重组,最终获得了350多种不同的颜色,再根据每种颜色自身携带的数据流对其编码,然后使用光纤对其进行传输,获得了该速度.

如何优化与外部设备传输数据的速度?

- - 极客范 - GeekFan.net
在电脑和外部设备之间传输数据是一项常见的任务,照片,视频,重要文件,数据备份,它们时常会被来来回回传输很多次. 这就是为什么传输速度会让人不爽. 如果你需要马上带着几个GB的数据去参加一个会议,没人想等上十分钟来拷贝这些数据,马上就要迟到了. 幸运的是,有几种简单的方法来提高数据传输的速度. Windows的默认USB驱动使用“快速移除”数据传输策略,它会关闭写入缓存,导致数据传输变慢.

淘宝实时数据传输平台: TimeTunnel介绍

- - CSDN博客架构设计推荐文章
作者在工作中遇到了类似流式数据实时接入的业务场景,所以对淘宝的实时数据仓库这一块做了一些调研和了解. 本文从业务场景和设计上介绍了淘宝的TimeTunnel工具,文中的图片来自淘宝数据仓库团队交流过程中的sildes,也参考了一些相关文档. TimeTunnel(简称 TT)是一个基于thrift通讯框架搭建的实时数据传输平台,具有高性能、实时性、顺序性、高可靠性、高可用性、可扩展性等特点(基于Hbase).

德国开发出可让灯光无线传输800Mbps数据流的技术

- 11 - Engadget 中国版
引用来源 | 此文章网址 | 转寄此文章 | 回应.