影响范围:
1、所有Android 5.0以上系统
2、所有仅采用了Android APK Signature Scheme V1 签名机制的App
Janus漏洞原理
Janus漏洞产生的根源在于将DEX文件和APK文件拼接之后校验签名时只校验了文件的APK部分,而虚拟机执行时却执行了文件的DEX部分,导致了漏洞的发生。由于这种同时为APK文件和DEX文件的二元性,联想到罗马的二元之神Janus,将该漏洞命名为Janus漏洞。
Android支持两种应用签名方案,一种是基于JAR签名的方案(v1方案),另一种是Android Nougat(7.0)中引入的APK签名方案(v2方案)。
v1签名不保护APK的某些部分,例如ZIP元数据。APK验证程序需要处理大量不可信(尚未经过验证)的数据结构,然后会舍弃不受签名保护的数据。这会导致相当大的受攻击面。
Janus漏洞危害
代号为“Janus”的安卓漏洞(漏洞编号:CVE-2017-13156),能够让恶意攻击者在完全不修改App开发者签名的情况下,通过植入恶意dex代码,对App实施恶意代码注入,逃避Android签名校验机制甚至获取系统ROOT权限。
检测方法
-
检验apk的签名机制:使用漏洞核查工具GetApkInfo.jar(网上可下载)
<1>使用命令java -jar GetApkInfo.jar *.apk查看A