下载后可任意编辑【开发者曝安卓系统重大漏洞:可致手机进程被监视】量子密码 重大漏洞 IT 之家 11 月 23 日消息稍早之前,Magisk 的开发者topjohnwu 宣布推出了新版的 Magisk 工具,绕过一些安卓的SafetyNetAttestationAPI,让手机在猎取 Root 的情况下也能玩具有该 API 的手游(如《FGO》)。 但是在这之后他发现,这一解决方案对自己的一加 6 手机无效。之后,他在一则 Medium 帖子中表示发现了一个安全漏洞,《Fate/GrandOrder》(通常称《FGO》)似乎在滥用这一漏洞,用来监测他一加手机上的 Root 访问权。 XDA 发布了一篇文章,根据他的发现梳理了这一漏洞的信息。以下为该文主要内容翻译。 Procfs 和安卓 在基于 Unix 的操作系统上,有一个名为“procfs”的特别第 1 页 共 7 页下载后可任意编辑文件系统,其中包含有关进程(可以联想应用程序)的信息,例如内存使用情况(可以联想 RAM)、状态(进程是否正在运行,休眠等)。在大多数基于 Unix 的操作系统上,用户和应用程序可以轻松访问 procfs,来查看系统上正在运行的应用程序和服务类型(参考 Windows 的任务管理器)。然而从安卓7.0“牛轧糖”系统开始,Google 锁定了对 procfs 的访问权限。在 AndroidNougat(安卓 7.x)系统之前,像 SystemPanel 这样的应用程序能够收集有关正在运行的应用程序的数据,而无需任何特别权限。安卓 7.x 系统之后,应用程序需要通过UsageStats 或 AccessibilityService 等 API 才可以做到这一点,这两个 API 都由必须通过用户授予的权限来把关。 Google 通过使用“hidepid=2”标志挂载/proc,来阻止应用程序通过 procfs 读取其他应用程序的状态。通过这一手段,应用程序只能看到自己进程的状态。因此,应用程序需要通过第 2 页 共 7 页下载后可任意编辑可被接受的 API(如 UsageStats 或 AccessibilityService)来猎取当前设备上正在运行的应用程序和服务的信息。 漏洞 假如 procfs 没有用“hidepid=2”挂载怎么办?那么,应用程序可以自由地读取系统上运行的其他应用程序(和挂载点)的状态,而无需任何额外的权限(注)。Google 在自家的设备上通过“hidepid=2”挂载了的 procfs,但并未强制其他OEM 对设备强制执行此要求。来自 LG、一加、华为/荣耀、小米等公司的几款设备尚未通过“hidepid=2”挂载 procfs。由此,《Fate/GrandOrder》等应用程序就能利用它来检测设备...