tgoop.com/qianqianzhuang/22
Last Update:
Android 11 中引入的软件包可见性(package visibility, https://developer.android.com/training/package-visibility )可以过滤应用能够访问的应用列表,但实际上是鸡肋功能
一方面,该功能虽然对 PM API 及其他一些 API (如 getDefaultSmsPackage)返回的结果进行了过滤,但系统中仍然存在大量 API 允许应用违反可见性获得未知包,如 AccessibilityManager.getEnabledAccessibilityServiceList() 允许应用获得正在运行的无障碍服务列表,还有 Settings API 允许应用通过读取系统设置的方式获得无障碍服务列表及通知监听器列表等
另一方面,系统中存在大量漏洞允许应用绕过软件包可见性查询指定软件包是否存在,以 CVE-2021-0975 为例,该漏洞允许攻击者通过系统抛出的异常信息中的微小差异判断软件是否已被安装。对应补丁在 https://cs.android.com/android/_/android/platform/frameworks/base/+/bf0d59726a0d9973f6867faedac0fe476c81fe8b
类似的漏洞 Google 给予的评级一直都是 Moderate severity 因此只在 Android 大版本迭代时对其进行修复。这种漏洞还有多少,我简单检索了一下,仅仅只是 Android 14 中修复的有 CVE 编号的漏洞就至少有图上这些。同时,2023 年 5 月起大部分 moderate 漏洞不会再被授予 CVE 编号,被默默修复而不为人所知的漏洞又会有多少呢?
注:即使使用 HideMyApplist 这样的 Xposed 模块,也无法阻止软件通过上述方式违规获得信息。不排除未来会有软件利用这种方式绕过用户安装的 HideMyApplist 等模块获取敏感应用(如 Magisk/KernelSU manager)信息。如果想治住这些软件,稍微靠谱一点的方法是利用多用户,把它们扔一个单独的用户里。一般情况下,能够跨越用户边界访问其他用户数据的漏洞 Google 至少都会评级为 High severity 因此能够在每月安全补丁中修复。注意必须是完全用户,使用 work profile 是不行的。
BY 钱庄
Share with your friend now:
tgoop.com/qianqianzhuang/22