黑客是如何远程攻破你的Android手机的

“你走进一个咖啡店坐下来。等咖啡的时候,你拿出你的智能手机开始玩一款你前些天下载的游戏。接着,你继续工作并且在电梯里收邮件。在你不知情下,有攻击者获取了公司网络的地址并且不断地感染你所有同事的智能手机。

等下, 什么?

尽管权限提升技术在Android上很普遍(并形成了“root”设备的惯例),但远程代码执行是一种罕见且危险得多的漏洞。它允许攻击者不经授权就在用户设备上执行特定代码。这个Bug特别另人关注,因为,即使在它被修复后过了18个月,在安装了所有补丁的最新型的Android设备上仍可被利用。想想看,如果这是真的,利用此漏洞需要付出多少努力。

我们用了两种不同的方法研究此Bug。首先,在类似公共WIFI的环境中利用它,也就是你可能在咖啡店中遇到到环境。我们启动了一些 Android设备和廉价的网络设备,开始攻击。第二步是估计普通用户有多大的可能遇到这种最坏的情形。为此,我们使用了统计分析技术,看看有多少有漏洞 的App和设备。

在开始细节之前,先了解一下此Bug的背景知识:

背景知识

它始于2012年的Javascript在addJavascriptInterface API中的远程代码执行Bug,CVE-2012-6636。此Bug允许Javascript代码获得访问系统的更大权限,这并非开发者的本意。至此,如此糟糕。MWR的研究人员在几个月后的研究结果显示有大量App使用了广告供应商的框架程序,而这些框架程序通常受此Bug影响而且还在运行时下载Javascript代码。

这些因素结合起来意味着,大量的App采用不安全的方式从互联网下载Javascript代码,因此恶意攻击者劫持下载并发动远程代码执行的攻击并不难。

还没修复?

Android 4.2修复了这个潜在的javascript漏洞。不幸的是,由于向后兼容的原因,修复只意味着在特定的场景中关闭了漏洞。现实中的Android版本碎片化和Android上的广告商业模式意味着这些场景并不常见。我们检查了Google Play上的100,000个APK文件,发现大约有12%即使运行在最新的Android设备上仍然有漏洞风险。

APK分析结果:一半没有漏洞风险,因为它们的目标SDK版本大于或等于17;剩下的31%没有使用存在漏洞的API;7%由于APK混淆或分析出错而没有分析。

另外,不管此漏洞是否被修复,超过50%的Android设备仍旧使用着低于4.2的版本。对于这些设备,没有修复程序,它们依旧存在漏洞风险。

技术点

为了修复成功,调用addJavascriptInterface的程序必须编译为API 17及以上,也就是说你的目标Android版本必须是4.2及以后的。为了兼容更多的设备,App和框架程序经常用尽可能低的API版本编译。重点就是即使运行在打了补丁程序的Android 4.2, 4.3或4.4的设备上,App仍存在漏洞攻击风险。

广告商业模式在Android中很流行:也就是App免费,开发者通过向用户展示广告而获得收入。在Android中,有超过50个不同的广告框架程序,这使得开发者很容易实现广告功能,事实上他们经常在App中使用不止一个广告框架程序。有的App发现使用了20个之多。这些框架程序大都有这种行为——当app第一次运行时,它们通过HTTP下载javascript库。这也就是说App通常不安全地下载了未验证的javascript代码,而这些代码运行在可执行任意代码的环境中。

代码的执行意味着对设备的无限制访问

迄今为止,这个漏洞仅仅允许一个攻击者在一个安卓应用环境中去执行代码。这很糟糕,但是仍然被安卓权限系统限制在单独的应用中去访问数据。然而,一旦一个攻击者有了一个在系统中的立足点,这就类似于他们可能获得额外的特权。以futex漏洞为例,它影响当前使用的每个Linux内核版本,包括安卓系统以及最近第一次被成功root的Galaxy S5。尽管他们不是等价的,但我们还是应该养成“远程代码执行”与“root权限”在严重等级上等价的习惯,因为迟早,一个下定决心的黑客将可能从一个地方蹦到另一个地方,获取设备的完全控制权。

真实世界中的漏洞利用

我们谈了如何利用漏洞和漏洞为什么如此严重。现在我们撇开分析,验证一下漏洞到底有多容易被利用。

我们从PlayStore随机下载了102,189个免费的app,并通过统计分析发现其中的12.8%存在潜在的漏洞风险。这些APK同时使用了过低的目标API版本和addJavascriptInterface API。这些APK调用addJavascriptInterface时的漏洞事实上可以通过中间人攻击的方式利用,当从互联网不安全地下载的javascript脚本时可以发起中间人攻击。

我们会测试通过中间人攻击劫持非安全的javascript下载,并注入一些javascript脚本来探查addJavascriptInterface漏洞。

测试app的漏洞

我们设置了一个充当透明web代理中间人的wifi无线接入点(AP)。它被设置为对任何接入此AP的设备在通过HTTP请求任何脚本时都注入恶意代码。AP设置了密码,以防有人误用,但本方法可以用到公开访问的AP。即使当AP不受控制时,DNS毒化或ARP缓存欺骗等技术也可以用来实现中间人代理。或者可以安装一个模仿成合法AP的假AP。也就是说,有各种方法实现中间人代理,使用wifi的任何人都将通过我们的代理访问网络。

javascript的动态性意味着我们不需要检测特定的应用程序或广告框架程序以作为目标。当运行时,恶意代码扫描整个javascript命名空间中的对象,查找不正确地使用了addJavascriptInterface API的对象,然后对每个进行漏洞测试。如果没有找到漏洞,它就静悄悄地退出,不影响app的运行。如果成功了,它将运行一个shell命令启动计算器 app(这是漏洞揭露中的一个传统,表明你完成了代码运行——如何你可以启动计算器,你就证明了可以执行任何代码)。

注入的 javascript片断

function findVulnerableObject() {
   for (var prop in window) {
       try {
           // If getClass() doesn’t throw, the object is vulnerable
           window[prop].getClass();
           return window[prop];
       }
       catch(err) { }
   }
   return null;
}

我设置好AP后,从13,119个标明有潜在漏洞的app中随机选了一些,把它们安装到接入了AP的一台Nexus 5(运行4.4.3)和一台三星XE700t(运行AOSP 4.2的x86平板)。我们只不过是启动每个App,做些简单的交互操作,就成功地在超过半数的应用中触发了远程代码执行,它们加载了通过中间人代理注入的恶意代码。

全是广告惹得

通过查看TCP/IP包的轨迹,很快发现广告框架程序就是联合使用了addJavascriptInterface和非安全HTTP下载的罪魁祸首。在我们调查的框架程序中没有一个使用HTTPS,也就意味着任何使用这些框架程序的app在非安全地下载javascript时也易受到攻击。以往的研究显示有17%的app虽然使用了HTTPS,但用法不当,但这是另一回事了。

我们认真地检查了一些app,看看使用用了哪些广告框架。AdMob是用得最多的(通常也是更新最频繁的),但我们发现用到的大量框架仍然在不安全 地使用addJavascriptInterface。在检查的app中,有超过80%的非付费app包含了至少一款广告框架。总体上讲,在识别的 2140个app中出现了4190个广告框架。

问题有多严重?

Google在PlayStore上公布了所有app的大致下载量。仅就我们手工确认了存在漏洞的小部分用例,就有超过1.5亿的下载量。这并不是说就保证会有150,000,000部有漏洞的设备,因为一台设备可能安装多个不同的有漏洞的应用。但考虑到我们在分析中发现的比例——10%的app有潜在的风险,其中有50%的有风险的app被实地测试可以被攻击——这就存在非常多有漏洞的设备。

而且,别忘了有57%的Android设备运行在低于4.2的版本上。所以即使明天所有有漏洞的app和框架打上了基于4.2的补丁,仍然有超过一半的Android设备不能修复这个漏洞。

一旦你实现了远程代码的执行,结束之前在咖啡店所描述的灾难情形,不是什么大的进步。初始化一个匹配的root权限,一个被损害的设备会变成某种中间人,它随后会进入任何网络。因此,攻击开始传播,举例来说,在自带移动设备的世界里,共同的wifi网络是那样地受欢迎。

合并设备分析器(Device Analyser)的数据

设备分析器(Device Analyser)是另外一个用于统计安卓设备的(数据)来源。其中的一项功能就是它追踪用户启动不同的应用的频繁程度。他们用足够地耐心去相互参照潜在缺陷应用的列表上的数据,给出了下面的结果:

每天每用户打开潜在缺陷应用的平均数量

过去一年左右的时间,设备分析器(Device Analyser)的数据显示设备的使用者们每天平均打开0.4-0.5个潜在漏洞的应用。或者换言之,平均一周内就有几次收到(漏洞)攻击。我们不能假 设应用的版本比我们分析过存在漏洞的版本新,因此,当我们的示例数据已不再是最新版本,与图形对应也就表现为急剧下降。如果我们对最近的APK版本重新进 行我们的分析,我们很有可能看到它仍在0.4分。DA(设备分析器:DeviceAnalyser)的数据是一个相当小的样本,让它去引导更多地关于安卓设备的结论,在整体上是困难的。

结论

我们发现,通过使用相对简单的中间人代理技术,无需特定的应用程序或设备可以远程运行有危害的应用程序,即使 Android设备安装了完全补丁。使用静态分析我们发现,相当大比例的应用很可能仍然脆弱,我们证实,通过随机测试超过一半的应用确实缺乏抵抗力。

因此,我们建议当连接到一个不可信的wi-fi无线网络时不要使用任何Android应用程序显示广告。Android App存在的漏洞,是黑客下手的首要目标,因此,要及时用漏洞检测工具Safe.ijiami去检测下,并根据漏洞做相应的修复或保护,利用Android App安全保护平台ijiami给App做加密保护,维护自己的切身利益!

时间: 2025-01-15 01:22:02

黑客是如何远程攻破你的Android手机的的相关文章

在 Android 手机上使用 Terminal IDE 远程登录你的 Mac/Ubuntu

我的主力博客:半亩方塘 以下内容系原创,转载请务必注明地址 在 Android 手机上使用 Terminal IDE 远程登录你的 Mac 可以让你随时随地远程对你的 Mac 进行操作,这个很爽,特别是当你躺在床上还能操作你在某个地方开着的 Mac 计算机的时候,其实依照这种方法也可以类似地远程登录Ubuntu,有兴趣的可以试试,简单几步就可以实现了: 首先,需要下载 Terminal IDE,废话不说,请 google 下载之,下载完成后将 Terminal IDE 装到你的安卓手机上, In

为什么android手机越用越慢

根据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android+ 卡慢",也有超过 460 万条结果.在业内,Android 手机一直有着"越用越慢"的口碑,这个现象甚至超出了硬件范畴--很多中高端 Android 手机在硬件参数上都优于同一代 iPhone,但是它们仍然会在使用半年到一年的时间后进入"欠流畅"的状态--这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们需要追溯

为什么Android手机总是越用越慢?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们需要追溯到上个世纪,去寻找智能手机的起源. 西方历史及奇幻文学作品十分热衷于表达

为啥Android手机总会越用越慢?

转自:http://www.androidchina.net/818.html 根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情. 然而,若是要回答这个问题,我们

Android手机安全之我见

众所周知,iphone手机带来了手机时代的变革,而Android又掀起了手机发展的一个浪潮,然而手机中又有多少鲜为人知的秘密,又有多少人真正了解手机安全方面的知识呢?新的事物都具有2面型,带来好的同时也会有不好的一面.开源固然好,但开源引入的安全问题也是值得我们大家反思的.我在这里对我了解的安全进行一下我自己的诠释,如果说得有不妥的地方,希望大家指正: 自从智能手机的到来,手机中的安全或多或少地被大家关注起来.大家买iphone手机,都想把iphone手机越狱,手机越狱后,我们就可以安装一些盗版

[android] 手机卫士设置向导页面

设置向导页面,通过SharedPreferences来判断是否已经设置过了,跳转到不同的页面 自定义样式 在res/values/styles.xml中 添加节点<style name=””>,设置名称属性 在<style>节点里面,添加节点<item name=””>设置名称属性,就是布局的各种参数 在<item>的文本里面,设置布局的各种参数值 在布局文件中引用样式,style=”@style/xxxxxxxxxxxx” 在TextView的左侧放置小图

为什么 Android 手机总是越用越慢?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情.     然而,若是要回答这个问题,我们需要追溯到上个世纪,去寻找智能手机的起源. 1965 年,贝尔实验室.通

Android手机严重漏洞,可造成手机全面瘫痪!

趋势科技发现最新Android系统漏洞,可利用藏有恶意软件的App或网页,针对Android 移动设备进行攻击,一旦用户安装此App或是浏览这些网页,将会开启一个有害的MKV文档,此文档将会在设备开机时自动执行启动,造成手机无法接电话.收发短信或是屏幕全黑导致死机 !此漏洞影响遍及Android 4.3至5.1.1版本,在漏洞修补之前建议Android用户应防范此最新漏洞攻击, 攻击者只需要知道用户手机号码,经由多媒体信息即可入侵用户手机,并远程执行程序代码,所以你首先要在手机上停用多媒体信息,

手机控车OBD-移动管家手机控车方案基于Android手机智能控制汽车系统的研究与实现;

基于Android手机智能控制汽车系统的研究与实现:汽车手机启动,汽车远程启动是装置在智能汽车的一部分,是实现简远程遥控启动汽车的一个智能装置,同时也可以熄火.汽车手机启动可以在原车钥匙保留模式改装,也可以独立在汽车上改装. 目前很多汽车已经配有一键启动智能无钥匙进入系统设备,相对配置手机远程动的车辆比较少,关于智能汽车,PKE智能系统.一键启动.手机撑控配合使用才会显示智能操控的简捷性.国内生产汽车手机启动汽智能一键启动厂家已经在50家左右.汽车手机智能控制系统,体积小巧,简便安装.根据原车线