其他

解析安卓年度大洞“Janus”的攻击原理和利用过程

2017-12-11 郭佳 雷锋网

文 | 郭佳

来自雷锋网(leiphone-sz)的报道

近期,安卓用户在更新各类 APP 时要当心了,你可能遇到山寨的!

昨日(12月10日),雷锋网曾发文《安卓年度大洞现身:能让恶意代码进入已签名应用》,其中提到,名为“Janus”的漏洞会允许恶意攻击者绕过应用程序签名,并将恶意代码注入安卓应用程序。

雷锋网从顶象技术获悉,由于安卓系统的其他安全机制也是建立在签名和校验基础之上,该漏洞相当于绕过了安卓系统的整个安全机制。一旦攻击者将植入恶意代码的仿冒的 App 投放到安卓商店等第三方应用市场,就可替代原有的 App 做下载、更新。

网友安装这些仿冒 App 后,不仅会泄露个人账号、密码、照片、文件等隐私信息,手机更可能被植入木马病毒,进而或导致手机被 root ,甚至被远程操控。

分析显示,安卓 5.0 到 8.0 系统以及基于 signature scheme V1 签名机制的 App 均受“Janus”漏洞影响;基于signature scheme V2签名的App则不受影响。

“Janus”漏洞爆发原因是什么?

为了提升安卓系统的安全性,Google 发布了新的签名认证体系 signature scheme V2。

由于signature scheme V2 需要对 App 进行重新发布,而大量的已经存在的 App APK 无法使用 V2 校验机制,所以为了保证向前兼容性,V1 的校验方式的还被保留,这就导致了“Janus”漏洞的出现。

“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未被篡改;

以上内容来自顶象技术的投稿,雷锋网编辑整理。

   智能投顾高级特训班   


随着大众互联网理财观念的逐步普及,理财规模随之扩大,应运而生的智能投顾,成本低、风险分散、无情绪化,越来越多的中产阶层、大众富裕阶层已然在慢慢接受。王蓁博士将以真实项目带你走上智能投顾之路,详情点戳阅读原文链接或长按识别下方二维码~


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存