0
本文作者: 郭佳 | 2017-12-11 17:32 |
近期,安卓用户在更新各类 APP 时要当心了,你可能遇到山寨的!
昨日(12月10日),雷锋网曾发文《安卓年度大洞现身:能让恶意代码进入已签名应用》,其中提到,名为“Janus”的漏洞会允许恶意攻击者绕过应用程序签名,并将恶意代码注入安卓应用程序。
雷锋网从顶象技术获悉,由于安卓系统的其他安全机制也是建立在签名和校验基础之上,该漏洞相当于绕过了安卓系统的整个安全机制。一旦攻击者将植入恶意代码的仿冒的 App 投放到安卓商店等第三方应用市场,就可替代原有的 App 做下载、更新。
网友安装这些仿冒 App 后,不仅会泄露个人账号、密码、照片、文件等隐私信息,手机更可能被植入木马病毒,进而或导致手机被 root ,甚至被远程操控。
分析显示,安卓 5.0 到 8.0 系统以及基于 signature scheme V1 签名机制的 App 均受“Janus”漏洞影响;基于signature scheme V2签名的App则不受影响。
为了提升安卓系统的安全性,Google 发布了新的签名认证体系 signature scheme V2。由于,signature scheme V2 需要对 App 进行重新发布,而大量的已经存在的 App APK 无法使用 V2 校验机制,所以为了保证向前兼容性,V1 的校验方式的还被保留,这就导致了“Janus”漏洞的出现。
攻击原理
1、安卓在 4.4 中引入了新的执行虚拟机 ART,这个虚拟机经过重新的设计,实现了大量的优化,提高了应用的运行效率。与“Janus”有关的一个技术点是,ART 允许运行一个 raw dex,也就是一个纯粹的dex文件,不需要在外面包装一层zip。
而ART的前任 DALVIK 虚拟机就要求 dex 必须包装在一个 zip 内部且名字是 classes.dex 才能运行。当然ART也支持运行包装在ZIP内部的dex文件,要区别文件是ZIP还是dex,就通过文件头的magic字段进行判断:ZIP文件的开头是‘PK’, 而dex文件的开头是’dex’。
2、ZIP文件的读取方式是通过在文件末尾定位 central directory, 然后通过里面的索引定位到各个zip entry,每个entry解压之后都对应一个文件。
影响范围
1. 安卓5.0-8.0的各个版本系统;
2. 使用安卓Signaturescheme V1签名的App APK文件。
利用过程
1、攻击者可以向 APK文件的开始位置放置一个攻击的 DEX 文件 A;
2. 安卓系统在安装时用ZIP的读取机制从末尾开始进行文件的读取,读取到了原始的APK内容,并且以V1的方式进行校验,认为这个文件是正常的,没有篡改,APK安装成功;
3. 在运行时,Android 的 ART 虚拟机从文件头开始读取,发现是一个 DEX 文件,直接执行,攻击文件A被最终执行。
带来的威胁
可以在没有 apk 所有者的证书的情况下对 apk 进行修改,并且绕过校验机制安装在用户的手机上,造成的可能后果如下:
1. 对存储在原手机上的数据进行读取,例如金融类APP的银行密码、支付密码、token; 通信类APP的聊天记录、图片、通信录
2. 对用户的输入做各种监听、拦截、欺诈,引导用户输入密码,转账。
3. 利用这个漏洞可以更新Android的系统APP,从获得更高的系统权限,甚至root/越狱,为其他攻击做准备
安卓用户:
1、尽快升级到最新版安卓系统;
2、尽量到官方网站更新、下载App,短期内不用使用第三方安卓应用市场更新或下载App。
安卓开发者:
1、将App APK升级到最新的Signature scheme V2签名机制;
2、开发者及时校验App APK文件的开始字节,以确保App未被篡改;
以上内容来自顶象技术的投稿,雷锋网编辑整理。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。