Android 非 SDK(隐藏)服务 API 安全的系统性研究
密码学与安全
2022-03-25 v1
摘要
Android 允许应用通过其系统服务辅助类与系统服务通信,以便这些应用可使用系统服务提供的各种功能。同时,系统服务依赖其服务辅助类实施安全检查以提供保护。不幸的是,服务辅助类中的安全检查可能通过直接利用非 SDK(隐藏)API 被绕过,降低系统稳定性并带来严重安全威胁,如权限提升、无需用户交互的自动功能执行、崩溃和 DoS 攻击。Google 已提出多种方法解决此问题,例如逐例修复漏洞甚至提出黑名单以屏蔽所有非 SDK API。然而,开发者仍可能找出利用这些隐藏 API 规避非 SDK 限制的新方式。本文中,我们系统性研究因隐藏 API 利用导致的漏洞,并分析 Google 对策的有效性。我们旨在回答在最新 Android 12 中是否仍存在可被利用的脆弱隐藏 API。我们开发了名为 ServiceAudit 的静态分析工具,以自动挖掘服务辅助类与隐藏服务 API 之间不一致的安全实施。我们将 ServiceAudit 应用于 Android 6~12。我们的工具在 Android 6 中发现 112 个漏洞,精度高于现有方法。此外,在 Android 11 和 12 中,我们识别出超过 25 个保护不一致的隐藏 API;但其中仅一个脆弱 API 可在 Android 11 中导致严重安全问题,且无一在 Android 12 上可用。
引用
@article{arxiv.2203.09374,
title = {A Systematic Study of Android Non-SDK (Hidden) Service API Security},
author = {Yi He and Yacong Gu and Purui Su and Kun Sun and Yajin Zhou and Zhi Wang and Qi Li},
journal= {arXiv preprint arXiv:2203.09374},
year = {2022}
}