搁置而非丢弃:无需修改APK即可动态瘦身Android应用的DEX和原生方法
密码学与安全
2025-01-10 v1
摘要
如今的Android开发者倾向于包含众多功能以满足多样化的用户需求,这不可避免地导致应用臃肿。然而,通常只有一小部分功能被用户频繁使用,因此臃肿的应用在潜在漏洞、扩大攻击面和额外资源消耗方面代价高昂。特别是在发生严重安全事件时,用户需要立即阻止易受攻击的功能。现有工作提出了各种代码瘦身方法来识别和移除可执行组件的功能。然而,它们通常涉及文件的静态修改(对于Android应用,还需要重新打包APK),这缺乏用户便利性,更不用说由于破坏公钥验证和代码完整性检查而损害Android的安全模型。本文介绍了3DNDroid,一种针对Android应用中DEX和原生方法的动态瘦身方法。通过使用一个无特权的管理应用与定制的Android操作系统协同工作,3DNDroid基于静态或动态分析预生成的瘦身方案,在应用执行期间动态减少不必要的代码加载。它拦截被瘦身的字节码方法的调用以防止其解释、编译和执行,同时在代码加载期间将被瘦身的原生方法的内存空间置零。评估表明,3DNDroid能够在55个真实世界应用中瘦身187个DEX方法和30个原生方法,移除超过10,000个面向返回编程(ROP)小工具。案例研究证实了其在缓解漏洞方面的有效性,性能评估突出了其相对于未瘦身应用的资源节省优势。
引用
@article{arxiv.2501.04963,
title = {Shelving it rather than Ditching it: Dynamically Debloating DEX and Native Methods of Android Applications without APK Modification},
author = {Zicheng Zhang and Jiakun Liu and Ferdian Thung and Haoyu Ma and Rui Li and Yan Naing Tun and Wei Minn and Lwin Khin Shar and Shahar Maoz and Eran Toch and David Lo and Joshua Wong and Debin Gao},
journal= {arXiv preprint arXiv:2501.04963},
year = {2025}
}