移动设备供应链安全长期被低估的一个攻击面,在于 OEM 厂商预装的系统级组件对第三方应用的流量劫持能力。近期曝光的案例显示,部分摩托罗拉设备上的预装系统组件能够在用户启动 Amazon 等电商应用时,自动注入联盟营销代码,将原本属于应用开发者的佣金收入 redirect 到设备制造商或其合作伙伴账户。这种供应链层面的中间人攻击,既非传统意义上的恶意软件感染,也超出了普通应用权限管理的范畴。
预装软件供应链的攻击面本质
Android 生态系统的开放性使得 OEM 厂商拥有极高的系统定制权限。从工厂固件烧录到 OTA 更新分发,设备制造商可以在多个环节植入系统级组件。这些组件以system/priv-app或vendor分区应用的形式存在,享有普通第三方应用无法获取的权限,包括:监听应用启动事件、拦截 Intent 跳转、修改系统级 URL 处理逻辑等。
历史上,Check Point 和 Avast 等安全厂商的研究已多次证实,供应链环节是移动设备安全的最薄弱环节之一。2017 年 Check Point 报告披露的 38 款预装恶意软件案例显示,攻击者能够在设备出厂前就将恶意代码植入系统分区,普通用户甚至无法通过恢复出厂设置清除。摩托罗拉近期案例的特殊之处在于,这种劫持行为并非来自外部攻击者,而是源于 OEM 自身的商业合作机制 —— 通过预装组件为合作伙伴(如 Amazon)引流并获取联盟分成。
联盟代码注入的技术实现路径
系统级组件实现应用流量劫持的核心机制,在于对 Android Intent 系统的深度介入。当用户点击 Amazon 应用图标或从其他应用跳转到 Amazon 时,系统会发送一个包含目标 URL 的 Intent。预装组件可以通过以下方式拦截并修改这一流程:
Intent 拦截与重写:注册高优先级的 Broadcast Receiver 或 Activity,监听特定 Action(如android.intent.action.VIEW)和 Data Scheme(http/https、amzn://)。在接收到 Intent 后,组件解析原始 URL,附加联盟追踪参数(如tag=oem-affiliate-id),再重新构造 Intent 转发至目标应用。
URL Scheme 劫持:通过声明与目标应用相同的 URL Scheme 和更高优先级的 intent-filter,系统组件可以 "抢注" 特定链接的处理权。当其他应用尝试打开 Amazon 商品页面时,系统会优先将请求路由至预装组件,由其完成联盟参数注入后再跳转。
WebView 代理模式:部分预装组件采用更隐蔽的方式 —— 在检测到 Amazon 域名访问时,通过本地 WebView 加载页面并注入 JavaScript 代码,动态修改页面内的联盟追踪 Cookie 或 URL 参数,再将用户重定向至官方 Amazon 应用。
供应链中间人攻击的风险评估
这种 OEM 层级的流量劫持构成了典型的供应链中间人攻击。其风险不仅限于联盟收入的转移,更暴露出移动设备供应链的系统性脆弱性:
权限边界模糊化:系统级组件的行为难以被普通用户感知或控制。用户即便在设置中查看应用列表,系统应用往往被隐藏或标记为 "必要服务",无法禁用或卸载。
攻击面扩展:一旦这种劫持机制被设计进系统组件,其潜在影响范围不仅限于单一应用。同样的技术路径可用于劫持银行应用、社交媒体或企业内部应用的流量,为钓鱼攻击或数据窃取创造条件。
合规与审计盲区:企业移动设备管理(MDM)方案通常聚焦于第三方应用的安装管控,对出厂预装的系统组件缺乏有效的可见性和治理手段。即便进行安全审计,系统分区的只读特性也使得检测和取证变得复杂。
企业端点防护策略
对于企业环境而言,应对 OEM 供应链劫持需要建立分层的检测与防护机制:
设备采购白名单:在设备采购阶段建立安全基线,优先选择提供纯净 Android 体验或可解锁 Bootloader 的厂商。对于必须使用 OEM 定制设备的场景,要求在合同中明确禁止预装非必要系统组件,并保留固件审计权利。
网络层流量分析:在企业网络边界部署流量检测系统,监控异常的应用间跳转模式和 URL 参数注入行为。特别关注包含已知联盟追踪标识符(如tag=、ref=、affiliate=)的请求是否源自非预期的系统进程。
MDM 增强策略:利用企业移动管理平台的 "应用配置" 功能,限制系统组件的 Intent 处理权限。对于 Android Enterprise 设备,可通过DevicePolicyManager API 限制特定应用的 URL 处理范围。
个人用户自查清单
终端用户可通过以下步骤识别和缓解预装组件的劫持行为:
-
检查默认应用设置:进入
设置 > 应用 > 默认应用,查看浏览器、助手等默认处理程序是否被异常应用接管。 -
审查系统应用列表:在
设置 > 应用中启用 "显示系统应用" 选项,检查是否存在名称可疑或来源不明的系统级组件,特别是与电商、广告相关的服务。 -
监控应用启动行为:使用
adb shell dumpsys activity命令或第三方工具(如 App Ops)监控应用的 Intent 拦截和自启动行为,识别异常的 Activity 跳转链。 -
网络流量抓包分析:在 Wi-Fi 环境下使用抓包工具(如 HTTP Canary、PCAPdroid)监控设备流量,检查 Amazon 等应用的启动是否伴随额外的重定向请求或参数修改。
-
考虑 ROM 替换:对于已确认存在劫持行为的设备,在保修允许的前提下,可考虑刷入 LineageOS 等第三方纯净 ROM,彻底移除 OEM 预装组件。
结语
摩托罗拉案例揭示了一个被长期忽视的安全盲区:供应链上游的 "合法" 商业行为,可能比下游的恶意软件感染更具隐蔽性和持久性。随着移动设备承载越来越多的敏感业务和数据,建立从采购到退役的全生命周期供应链安全治理,已成为企业安全架构的必选项。
参考来源
- Check Point Research: Preinstalled Malware on Android Devices
- Avast Blog: Android devices ship with pre-installed malware
- Reddit r/motorola: Unauthorized Installation of Apps and Games
- Slashdot: Motorola Spoiled a Good Budget Phone With Bloatware
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。