您的位置: 华声热线 > 科技 > 正文

Android应用安全之外部动态加载DEX文件安全风险!

2021-03-01 04:36:31来源:阅读:-

1. 外部动态加载DEX文件风险描述

Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件。外部动态加载DEX文件的安全风险源于:Anroid4.1之前的系统版本容许Android应用将动态加载的DEX文件存储在被其他应用任意读写的目录中(如sdcard),因此不能够保护应用免遭恶意代码的注入;所加载的DEX易被恶意应用所替换或者代码注入,如果没有对外部所加载的DEX文件做完整性校验,应用将会被恶意代码注入,从而执行的是恶意代码;

如果应用没有正确的动态加载DEX文件,将会导致攻击者的任意代码被自动执行,进一步实施欺诈、获取账号密码或其他恶意行为等危害,如在乌云漏洞平台上的类似漏洞:QQ游戏Android客户端漏洞导致任意代码执行和密码泄漏[1]。

2. 外部动态加载DEX文件影响范围

Android 系统

3.外部动态加载DEX文件风险详情1) 风险位置:

public DexClassLoader (String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent)[2]

2) 风险触发前提条件: 动态加载的DEX文件存储在被其他应用读写的目录中,如sdcard; 没有对外部所加载的DEX文件做完整性校验;3) 风险原理:

动态加载的DEX文件存储在被其他应用任意读写的目录中(如sdcard),如果没有对外部所加载的DEX文件做完整性校验,应用将会被恶意代码注入,从而执行的是恶意代码;

4. 外部动态加载DEX文件风险证明

利用DexClassLoader运行时加载JAR/DEX文件,该将恶意代码替换掉被加载的DEX文件,或向该被加载的DEX文件注入恶意代码。

被替换的所加载的JAR/DEX class的恶意代码如下:

Android应用安全之外部动态加载DEX文件安全风险

动态加载JAR/DEX的调用代码:

Android应用安全之外部动态加载DEX文件安全风险

Android 4.1之前系统版本,结果显示成功动态加载JAR/DEX如下图所示:

Android 4.1之后系统版本,结果抛出异常“Optimized data directory /mnt/sdcard is not owned by the current user. Shared storage cannot protectyour application from code injection attacks.”:

Android应用安全之外部动态加载DEX文件安全风险

由于Android 4.1之后Android版本增加了对JAR/DEX存放目录文件的user_id 和动态加载JAR/DEX的进程的user_id是否一致的判断,如果不一致将抛出异常导致加载失败,如下图所示:

4.1之前版本的Android系统DexFile.java代码片段[3]:

Android应用安全之外部动态加载DEX文件安全风险

4.1及其之后版本的Android系统DexFile.java代码片段[4]:

Android应用安全之外部动态加载DEX文件安全风险

5. 外部动态加载DEX文件安全建议1. 将所需要动态加载的DEX/APK文件放置在APK内部或应用私有目录中[5]

为了所加载的DEX/APK不被恶意代码注入,阿里聚安全建议将要动态加载的DEX/APK放置在APK内部;

2. 使用加密网络协议进行下载加载的DEX/APK文件并将其放置在应用私有目录中[5]

阿里聚安全建议使用加密网络协议进行下载并将下载的DEX或APK放置在应用的私有目录;

3. 对不可信的加载来源进行完整性校验

如果应用必须将所加载的DEX或APK放置在能被其他应用人意读写的目录中(如sdcard)或使用没有加密的网络协议进行下载加载源,阿里聚安全建议对这些不可信的加载源进行完整性校验和白名单处理,以保证不被恶意代码注入。

推荐阅读:陕西之窗

滚动推荐
36:31Android应用安全之外部动态加
1. 外部动态加载DEX文件风险描述Android 系统提供了一种类加[详细]
34:516款高颜值香水合集:安娜苏“名不虚
6款高颜值香水合集:安娜苏“名不虚传”,第4款居然自带细闪!俗话说得好[详细]
15:11市值突破1.3万亿,手机业务令人焦
近日媒体纷纷报道,苹果股价去年涨幅将近一倍的好消息。令人意外的是,本周[详细]
04:174000mAh大电池+双面玻璃机身
相信很多迷弟迷妹都在打算着自己的大学生活,在此之前,是时候挑一款适合自[详细]
00:404G+来了!教你判断什么手机支持4
近日,移动、电信、联通相继宣布推出“4G+”业务,称下行速率可超过30[详细]
01:35太拉风了!这绝对是魅蓝 E2 最搭
在魅蓝E2发布的前夕,魅族宣称新品将删除些什么——然后为我们带来了具备[详细]
01:14华为手机的英文文件夹里面存放的是什
很多人不知道自己手机里那些英文文件夹是什么意思,存放的是什么东西。其实[详细]