你可能知道,特朗普政府被禁止的美国公司与做生意华为几个月前。最近华为出了大事智能手机发布, 这伴侣30专业版由于出口禁令,第一款没有谷歌应用程序的华为手机发布。缺乏谷歌应用程序是该设备上的一个严重污点,因为它现在发货时没有 Android 应用程序生态系统,也没有 Play 商店、Gmail、Google 地图、YouTube、Chrome、Google Assistant 等杀手级 Google 应用程序。ARS 铁三角

这个故事最初出现在

技术艺术,技术新闻、技术政策分析、评论等的可信来源。Ars 归 WIRED 母公司 Condé Nast 所有。

正如往常一样,互联网一直在想出解决方法来解决这个问题,以便在 Mate 30 Pro 上安装 Google 应用程序。Google 应用程序的灰色市场分发是 Android 改装领域的一门科学,并且很容易在通常不随 Google 应用程序提供的东西上获取 Google 应用程序,例如 Amazon Kindle Fire 设备、基于开源 Android 代码(像 LineageOS),以及进口设备面向没有谷歌的中国市场。

不幸的是,这些方法都不适用于 Mate 30 Pro。它们要么依赖于未锁定的引导加载程序,该加载程序允许用户将 Google 应用程序刷新到通常只读的系统分区,要么依赖于系统中留下的“存根应用程序”由设备制造商专门为 Google 应用程序进行分区,因此旁加载版本可以获得工作所需的系统级权限。Mate 30 不允许使用这两种方法。

随着所有传统技术的出现,互联网上将 Google 应用程序安装到 Mate 30 上的全新方法是通过一个名为 Lzplay.net 的网站。您可以在几乎所有主要 Android 新闻网站上看到宣传该网站的新闻文章。我用谷歌搜索“mate 30 pro 安装 Play 商店,”并且实际上推荐了第一页上的每个结果乐游网。很容易理解为什么 Lzplay 无处不在:访问网站,安装应用程序,混搭“下一步”几次,然后,Google 应用程序就出现在您的华为设备上。

它似乎眨眼间就安装了六个系统应用程序,几乎没有用户交互。尽管谷歌应用程序不应该能够获得它们工作所需的系统级权限,但由于这个应用程序,它们以某种方式做到了。这就像魔法一样。

Lzplay 速度快、操作简单,而且就将 Google 应用程序安装到您的华为设备而言,它很有效。这也是我见过的最大的 Android 改装安全噩梦。不,这并不夸张。

专业提示:不要将随机的中文网站设置为智能手机的远程管理员

Lzplay.net 插入 Android 的移动设备管理 (MDM) API,该 API 适用于企业服务,例如安卓工作版,或您公司的 IT 部门。这是一个远程管理 API,旨在让您的 IT 部门完全控制公司发行的设备。目标是让您的 IT 部门基本上能够像您在设备面前一样远程控制设备,允许他们静默安装和卸载应用程序、更改锁定屏幕密码、远程擦除设备,以及做一百万件其他事情。

观看任何视频指南下载应用程序后,您将看到“激活设备管理员?”屏幕弹出窗口,带有一个巨大的滚动列表,详细说明了所有可怕的权限。此时,您应该真正停下来思考一下,向未知实体授予这些权限是否是一个好主意。(完全不是。)

这组权限,曾经是称为“设备所有者”的信息只能提供给您 100% 信任的实体:Google 的 Android for Work 等应用程序、您公司的 MDM 提供商为您公司发行的手机提供的应用程序,或者您可能拥有 Android 驱动的信息亭或您个人想要远程管理的 IoT 设备。这些选项都很好。不好的是将这些权限授予像 Lzplay.net 这样的随机网站。

照片:Michaela Handrek-Rehle/Bloomberg/Getty Images

没有人知道谁或什么拥有 Lzplay.net,因此没有人知道该网站是否值得信赖,或者他们想从这一切中得到什么。由于网站上没有版权声明或任何形式的所有权声明,因此无法进行太多挖掘。whois 查询显示,该网站托管在中国大陆,并且仅在三个月前创建,但这些事实都没有激发太多信心。

很多文章和视频都掩盖了 Lzplay 的工作原理以及它可以访问多少权限。您访问该网站,安装 Lzplay 应用程序,然后授予其超强大的设备管理员权限,此时它会执行其操作并安装 Google 应用程序。此时,大多数指南都会继续讨论您是如何完成的以及之后如何重置您的设备。他们几乎没有人提到你如何仍然将这个 Lzplay.net 应用程序设置为你的设备管理员,以及如何,除非你卸载它,否则你的手机将永远拥有这个带有后门的随机第三方。卸载设备管理员应用程序也不像卸载普通应用程序那么容易,除非您首先深入了解设置并首先以管理员身份将其删除,否则您无法删除该应用程序。

了解更多

连线指南开源

Android 改装场景始终存在一些安全问题。改装通常涉及鼓励人们安装具有强大 root 权限的应用程序,如果他们愿意,这些应用程序可能会对手机执行非常令人讨厌的恶意操作。社区通常解决这个问题的方法是安装开源应用程序,任何人都可以审核代码并查看它在做什么,或者使用少数已经存在多年的受信任的根应用程序开发人员,已经向社会证明了自己。在安装谷歌应用程序的情况下,正常的谷歌应用程序经销商喜欢打开缺口将一次性软件包刷入系统分区后就完成了。执行此操作的脚本是开源,并且您可以验证它安装的专有 Google 应用程序没有被篡改,这要归功于 Android 的 APK 签名。

Lzplay.net 方法没有获得任何这些社区安全网。正如我之前提到的,该网站已经成立三个月了,托管在中国,没有人知道谁拥有它。然而,真正令人震惊的是整个远程后门情况,假设你将 Lzplay 留在手机上,就像大多数指南建议的那样。Lzplay 今天可能不会做任何恶意的事情,但由于它仍然具有设备管理员权限,明天它可以轻松地用比特币矿工填充您的手机,远程安装勒索软件,或者砖砌您的手机。我根本不建议使用这种方法,并且将这个非常强大的应用程序永远留在您的手机上是一个巨大的安全问题。

Lzplay疑点重重的手段及来历

Lzplay 在过去一两周内迅速崛起,部分原因是它非常适合将 Google 应用程序安装到华为 Mate 30 上。确实没有其他方法。Google 应用程序旨在访问仅限系统的权限,从而允许它们向其他应用程序提供服务。一个例子是统一的 Google 帐户 APK,它处理所有其他应用程序的登录职责,而您无法将其作为普通的用户空间应用程序来执行。由于 Google 应用程序始终作为系统分区上手机的一部分提供,因此依赖这些额外的权限就可以了。不过,你不能像普通应用程序那样侧载它们,而且由于 Mate 30 没有允许用户修改系统分区的解锁引导加载程序,因此应该无法将 Google 应用程序放在 Mate 30 上。不知何故,不过,Lzplay 设法让它发挥作用。如何?

答案很可疑。Lzplay 插入仅存在于华为 Mate 30 上的特殊权限,这些权限允许将侧载应用程序标记为“系统”应用程序,并授予它们通常无法使用的权限。也就是说,华为添加了自己的后门,破坏了Android的权限系统,Lzplay就利用了它。这一切发生得快得惊人:Lzplay.net 上线,文章在 Mate 30 发售之前就在互联网上传播开来。Mate 30 于 9 月 26 日在中国发布,但新闻文章在 9 月 23 日才开始流传。嗯。

John Wu,Android 安全研究员和支持 root 的 Android 应用程序的开发者马吉斯克,最近挖进Lzplay 应用程序和华为(中文!)开发人员文档可准确了解幕后情况。华为实现了Android的MDM API,但随后为Lzplay等设备管理员应用程序添加了两个额外的权限:“com.huawei.permission.sec.MDM_INSTALL_SYS_APP”大概是“安装系统应用程序”和“com.huawei.permission.sec.MDM_INSTALL_UNDETACHABLE_APP”用于安装任何“不可拆卸的应用程序”。

允许第三方应用程序修改系统分区将是特别可怕的,因为 Mate 30 上没有可解锁的引导加载程序,因此无法返回到新状态。华为的“Install_sys_app”权限并没有那么糟糕——吴说,华为系统分区仍然是只读的,相反,第三方应用程序可以被标记为系统应用程序,但实际上不是系统应用程序。他们不进入系统分区,但他们仍然获得系统级分区,这要归功于华为的操作系统补充。

立即注册

报名参加小工具实验室通讯您可以使用新闻和评论。

这在带有 Google Play 的手机上永远不会发生,因为授权 Google Play 应用程序的要求之一是遵守Android 兼容性定义文档(CDD)。CDD 已完全编纂了许可系统的工作方式,以及您想要的章节引用第 9.1 节第 3 段:“保护级别为 PROTECTION_FLAG_PRIVILEGED 的权限必须仅授予预安装在系统映像特权路径中的应用程序。”换句话说,如果你不在系统分区,你就无法拥有系统级权限。华为这种提升系统权限的“标记”方式是被明确禁止的。

不过,由于没有谷歌应用程序,CDD 不适用,华为可以做出任何它想要的破坏安全的改变。如果您想要一个真实的例子来说明为什么 Google 的无数 Android 规则是必要的,请注意,OEM 只需发布一个非 Google 手机版本就可以破坏 Android 安全模型。

正如 John Wu 所写,这个 API 并非只供任何第三方开发人员使用:

根据全中文文档,第三方开发者/公司需要签署法律协议并将其发送给华为才能获得SDK的访问权限。对于每个项目,开发人员都必须提交请求以及理由以及愿意授予的权限列表。此外,每个版本的APK二进制文件都必须上传到华为进行进一步检查,然后最终可以使用华为的特殊密钥进行签名。

吴接着说:“从这一点来看,很明显华为对这款‘LZPlay’应用程序非常了解,并且明确地允许它的存在。这个应用程序的开发者必须以某种方式了解这些未记录的API,签署法律协议,经过几个阶段的审查,并最终让该应用程序获得华为的签名。”我想补充一点,记住,这一切都完成了距离 Mate 30 公开发布至少还有三天。Lzplay 在发布之前就对这一切了解得足够多,并且有时间构建一个应用程序,遍历华为的整个流程,并再次启动一个网站:嗯。。

华为已经被问到它是否支持 Lzplay,老实说,考虑到 Lzplay 的强大,这可能是最好的情况。不过,华为否决了这一想法,并发表了以下声明:安卓中心:“华为最新的Mate 30系列没有预装GMS,华为也没有与www.lzplay.net有任何关系。”

目前还不可能进行进一步的研究,因为正如 Wu 所写,Lzplay 应用程序“被 QiHoo Jiagu (å¥èå åº) 混淆/加密,并且对于逆向工程而言并非易事。”所以有人不遗余力地隐瞒了 Lzplay 正在做什么,所以我们不知道它是如何运作的,也不知道它是谁制造的。

Lzplay 和 Mate 30 不确定的未来

在我写这篇文章的整个过程中,我偶尔会刷新一下乐游网看看它是否还活着。有时它上升,有时它下降,有时应用程序下载有效,有时则无效。该网站目前似乎正在经历一些困难。目前尚不清楚原因。

在我撰写本文时,围绕 Mate 30 的 Google 生态系统似乎也在崩溃。一旦刷了Google应用,Mate 30就莫名其妙地通过了谷歌的“安全网”对早期审查单元进行设备完整性检查,这是运行 Google Pay 和一些银行应用程序等高安全性支付应用程序所必需的。正如 Google 的文档所述,SafetyNet 的存在“是为了帮助确定您的服务器是否与在正版 Android 设备上运行的正版应用程序进行交互”,因此在任何情况下 Mate 30 都不应通过。该手机没有通过 Android CDD,因此不是 Android 设备(Google 拥有该商标),而 SafetyNet 的存在专门用于阻止经过修改和 root 的 Android 版本访问某些应用程序。

昨天,Mate 30突然停止经过SafetyNet 检查,Google Pay 和其他银行应用程序停止工作。为什么它首先通过是一个谜。但值得注意的是,工作一周后,当 Wu 在 Twitter 上标记该应用程序后,它就不再通过 SafetyNet。也许谷歌正在倾听?

目前,Mate 30 仅在中国销售,而且由于大多数谷歌服务器在中国被封锁,整个灾难不会引起那么广泛的安全问题。华为并没有真正在美国开展业务,但它在欧洲有着巨大的影响力,在那里它是第二大智能手机供应商,落后于三星,市场份额为 18%。虽然欧洲的正式发布日期尚未确定,但 Mate 30 Pro 登陆欧洲似乎已成定局。如果当没有谷歌的手机进入需要谷歌应用程序的领域时,Lzplay 能够生存下来,我们可能会看到许多人将他们的手机交给一个未知的实体,只是为了访问那些可爱的谷歌应用程序。

如果与华为结盟的实体创建 Lzplay 的目的是为了缓解潜在 Mate 30 客户对 Google 应用的焦虑,那么现在看来确实适得其反。Google Pay 等应用程序的未来状态不断变化,Lzplay 凸显了 Google 生态系统之外的生活是多么阴暗和危险。华为可以通过让用户完全控制他们的设备并允许他们解锁引导加载程序来解决所有这些问题,因此正常的谷歌应用程序刷新技术可以工作,但到目前为止,它似乎并不想这样做。