日志日期 · 周五
PADRAIG 上传 arXiv:基于控制流模型的 Android 输入生成
两篇 Android 自动化探索论文于当日上传 arXiv(原载 QRS 2024 与 DSA 2023),提醒客户端流程可被系统性遍历。
当天发生了什么
2026-07-31 19:20(UTC),论文《PADRAIG: Precise Android Automated Input Generation》v1 提交到 arXiv;需要说明,arXiv 页面的期刊引用显示它已发表于 QRS 2024,因此这是一次旧作上传而非新研究。PADRAIG 为被测应用构建详细的控制流模型,用于生成测试输入。据摘要,在 F-Droid 随机选取的 19 个应用上,与三种先进工具相比,平均行覆盖率高 16%,测试生成时间平均减少 84%。同一作者当天还上传了 DroidGraph(原载 DSA 2023),它把静态分析与系统化探索测试结合,平均比随机探索多交互 18% 的应用内容。
对防御方的意义
这两项工作的目的都是自动化测试,但它们也说明了一个与保护相关的事实:结合静态分析得到的模型,自动化工具可以比随机点击更高效地到达应用中的更多界面和代码路径。对开发者来说,这意味着隐藏在深层菜单、长按手势或特定状态后的功能并不安全,只要代码随包分发,就可能被系统化地遍历到,例如残留的调试面板、未上线功能或内部开关。需要指出,论文评估的是开源的 F-Droid 应用,摘要没有讨论混淆后的应用,不应外推其覆盖率数字。同样的技术对防御方也有价值,可以用来测试自己的应用。
可以做的检查
第一,检查 release 构建中是否仍包含调试面板、隐藏入口和未上线功能的代码,能在编译期移除的就移除,必须保留的功能开关由服务端按账号控制。第二,在混淆或加固之后的构建上运行自动化 UI 探索测试,确认转换没有破坏某些较少访问的界面或回调。第三,把自动化探索得到的界面清单与产品预期对比,任何意料之外可达的界面都应视为需要处理的问题。
行动清单
- 从 release 构建中移除调试面板与未上线功能代码
- 在加固后的构建上运行自动化 UI 探索测试
- 比对可达界面清单与产品预期
原始资料
- arXiv: PADRAIG: Precise Android Automated Input Generation (2608.00230) · 资料日期 2026-07-31 · 核对于 2026-10-12
- arXiv: Modelling Android applications through static analysis and systematic exploratory testing (2608.00228) · 资料日期 2026-07-31 · 核对于 2026-10-12