手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

LG 也打算玩折叠手机?LG 申请 Flex、Foldi、Duplex 商标

IT 之家 11 月 23 日新闻 稍早之前,Magisk 的开发者 topjohnwu 宣布推出了新版的 Magisk 工具,绕过一些安卓的 SafetyNet Attestation API,让手机在获取 Root 的情形下也能玩具有该 API 的手游(如《FGO》)。

然则在这之后他发现,这一解决方案对自己的一加 6 手机无效。之后,他在一则 Medium 帖子中示意发现了一个平安破绽,《Fate/Grand Order》(通常称《FGO》)似乎在滥用这一破绽,用来监测他一加手机上的 Root 接见权。

手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

XDA 公布了一篇文章,凭据他的发现梳理了这一破绽的信息。以下为该文主要内容翻译。

Procfs 和安卓

在基于 Unix 的操作系统上,有一个名为 “procfs” 的特殊文件系统,其中包罗有关历程(可以遐想应用程序)的信息,例如内存使用情形(可以遐想 RAM)、状态(历程是否正在运行,休眠等)。在大多数基于 Unix 的操作系统上,用户和应用程序可以轻松接见 procfs,来查看系统上正在运行的应用程序和服务类型(参考 Windows 的义务管理器)。然而从安卓 7.0“牛轧糖” 系统最先,Google 锁定了对 procfs 的接见权限。在 Android Nougat(安卓 7.x)系统之前,像 SystemPanel 这样的应用程序能够网络有关正在运行的应用程序的数据,而无需任何特殊权限。安卓 7.x 系统之后,应用程序需要通过 UsageStats 或 AccessibilityService 等 API 才可以做到这一点,这两个 API 都由必须通过用户授予的权限来把关。

Google 通过使用 “hidepid = 2” 标志挂载/proc,来阻止应用程序通过 procfs 读取其他应用程序的状态。通过这一手段,应用程序只能看到自己历程的状态。因此,应用程序需要通过可被接受的 API(如 UsageStats 或 AccessibilityService)来获取当前装备上正在运行的应用程序和服务的信息。

破绽

若是 procfs 没有用 “hidepid = 2” 挂载怎么办?那么,应用程序可以自由地读取系统上运行的其他应用程序(和挂载点)的状态,而无需任何分外的权限 (注)。Google 在自家的装备上通过 “hidepid = 2” 挂载了的 procfs,但并未强制其他 OEM 对装备强制执行此要求。来自 LG、一加、华为/荣耀、小米等公司的几款装备尚未通过 “hidepid = 2” 挂载 procfs。由此,《Fate/Grand Order》等应用程序就能利用它来检测装备上是否存在 Magisk(或是否 Root)。

注:安卓 9 Pie 中的一个平安性改动会阻止应用程序在自己的 “SELinux 上下文(context,可大致理解为 “环境”)” 之外读取信息,由于每个应用程序现在都是单独隔离的。SELinux 是一个内核模块,充当种种 “守卫”,阻止应用程序和服务接见它们不应该接见的文件。SELinux 上下文犹如一个文件的标签,其中包罗用户和角色等信息。若是没有为 procfs 启用 “hidepid = 2” 标志,则处于相同 SELinux 上下文的应用程序可以读取统一上下文中有关其他应用程序的信息。在运行安卓 9 Pie 的装备上,只有针对安卓 9 Pie 构建的应用才会将这一新的 SELinux 更改应用在它们身上。只要安装时没有通过 “hidepid = 2” 挂载 procfs,针对 Android 8.1 Oreo 或更低版本的应用程序将仍使用旧的 SELinux 规则,也就可以接见相同 SELinux 上下文中的历程信息。应 Google Play 的新要求,你的装备上运行多数应用程序目的 API 应对应安卓 8.0“奥利奥”,然则,许多应用程序尚未针对安卓 Pie 举行更新。

procfs 破绽演示:

手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

▲左为通过 “hidepid = 2” 挂载了 procfs 的 Google Pixel 3 XL,右为未通过 “hidepid = 2” 挂载 procfs 的华为 Mate 20 X

手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

▲在 Google Pixel 3 XL 上,“Material Terminal” 应用程序只能看到自己的历程;在华为 Mate 20 X 上,“Material Terminal” 应用程序可以看到其他历程。

我的装备是否受影响?

以下是 XDA 发现的未使用 “hidepid = 2” 挂载 procfs 的装备(项目从左至右对应为:OEM 厂商、装备、安卓版本、是否存在 procfs 泄密)。

手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

结果有多糟糕?

若是与 FuséeGelée、Blueborne、KRACK、Meltdown(熔断)Spectre(幽灵)等破绽举行对照,这个 bug 就相形见绌了。应用无法通过这一破绽获取 root 权限,或窃取你的密码。你的银行账户、信用卡都是平安的。最坏的情形是,应用程序可以判断你的装备上是否有另一个应用程序正在运行,因此用途异常有限。请记着,这是许多 GNU / Linux 发行版的规范行为,另外,Google 最近才最先通过安卓 7.x 系统阻止 procfs 接见。这一 bug 能让应用程序绕过所需的某些权限来监视其他历程,但无法损坏安卓系统的沙箱并从其他应用程序中窃取数据。可无论若何,这是非预期的行为,且已经打破了安卓的隐私功效,因此 bug 必须获得修复。

若何检测装备是否受影响

若要检查装备是否会向其他应用程序泄露历程信息(即 procfs 未使用 “hidepid = 2” 挂载),你可以使用 shell 下令(参考上文对比图),也可以使用 topjohnwu 开发的应用程序(点此从 GitHub 获取)举行检查。若是你的手机已经获取 Root 权限,topjohnwu 的应用还能让你使用 “hidepid = 2” 重新挂载 procfs。

手机连接电脑只显示充电,Magisk 开发者曝安卓系统重大破绽:可致手机历程被监视

会有修复吗?

是的,这一定会获得修复。谷歌现在会要求所有装备使用 “hidepid = 2” 挂载 procfs。谷歌将通过更新兼容性测试套件(CTS)来强制执行。这里的 CTS 是一组测试,所有装备必须通过测试,才气使用 Google Play 应用和服务。想要销售预装了 Google Play 商铺的所有 OEM,最后都必须推出更新,以便在不久的未来使用 “hidepid = 2” 重新挂载 procfs。这一问题最先在一加装备上发现,一加方面已经知悉此问题并正在举行修复。若是其他 OEM 对此错误揭晓谈论,我们迁就在此文举行更新。然则,你大可不必嫌疑所使用的装备的 OEM 是否会公布更新,若是他们希望更新通过 CTS 测试,就必须修复此 bug。

XDA 原文地址:点此前往(英文)

购买了 Pixel 3 或者 Pixel 3 XL? 在百思买购买 Pixel Stand 只需 40 美元(50%折扣)

原创文章,作者:菜鸡,如若转载,请注明出处:https://www.20on.com/22733.html

(0)
菜鸡菜鸡
上一篇 9月 22, 2020 5:46 上午
下一篇 9月 22, 2020 5:56 上午

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

相关推荐