Janus漏洞(CVE-2017-13156): 修改安卓app而不影响签名

阅读量386574

|评论1

发布时间 : 2017-12-09 16:57:34

x
译文声明

本文是翻译文章,文章原作者 guardsquare,文章来源:guardsquare.com

原文地址:https://www.guardsquare.com/en/blog/new-android-vulnerability-allows-attackers-modify-apps-without-affecting-their-signatures

译文仅供参考,具体内容表达以及含义原文为准。

前言

自诞生以来,Android就要求开发者对应用进行签名。在应用进行更新时,只有更新包的签名与现有的app的签名一致的情况下,Android运行时才允许更新包安装到系统。若app被恶意的攻击者修改,重新打包签名,由于攻击者无法获得原始开发者的私钥,其重打包的签名与原始签名不一致,系统会拒绝安装此更新。这样可以保证每次的更新一定来自原始的开发者。然而Google在本月4日发布的Android安全公告中提到一个Android的漏洞,利用该漏洞的攻击者可修改app而不影响其原始签名。

该漏洞产生的根源在于:一个文件可以同时是APK文件和DEX文件。由于这种同时为APK文件和DEX文件的二元性,联想到罗马的二元之神Janus,将该漏洞命名为:Janus漏洞。

 

Janus漏洞原理

如图:

攻击者可以利用这种二元性(Janus漏洞),将一个恶意的DEX文件与原始APK文件进行拼接,从而不影响APK文件的签名。Android运行时就可以将该带有恶意DEX文件的APK文件看作是之前app的合法的升级版,允许这种安装,然后从DEX的头部开始执行!而这里的DEX就可以是任意的符合DEX格式的文件了,可以带有攻击者的恶意代码。如果被“升级”的app是一个具有高权限的app,比如系统应用,那么该恶意应用可继承其高权限,访问系统的敏感信息,甚至完全接管系统!

 

影响范围

该漏洞仅影响基于 JAR 签名的方案(v1 方案)。不影响自Android 7.0 以来引入的 APK 签名方案 v2(v2 方案)。

 

参考

http://www.androidpolice.com/2017/12/08/janus-vulnerability-allows-attackers-modify-apks-without-changing-signature-apkmirror-already-protected/

https://source.android.com/security/apksigning/

本文翻译自guardsquare.com 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66