小米安全中心APP漏洞分析
字数 1153 2025-08-22 22:47:30

小米安全中心APP漏洞分析教学文档

漏洞概述

本漏洞存在于小米手机预装的安全中心应用(Guard Provider, com.miui.guardprovider)中,该应用负责检测恶意软件、保护用户手机安全。研究人员发现由于网络流量不安全,攻击者可发起中间人攻击(MiTM),通过第三方SDK更新机制关闭恶意软件保护并注入恶意代码。

漏洞影响

  • 攻击者可窃取用户数据
  • 可植入勒索软件、追踪软件
  • 可安装任意恶意软件
  • 影响所有预装该应用的小米主流手机

漏洞原理

应用架构分析

安全中心APP预装三种反病毒引擎供用户选择:

  1. Avast
  2. AVL
  3. 腾讯

这些SDK共享应用环境和权限,存在以下安全隐患:

  • 一个SDK的问题可能破坏其他SDK的保护
  • SDK间私有存储数据无法隔离

攻击步骤详解

第一阶段:Avast更新拦截

  1. 默认情况下APP会定期通过HTTP下载Avast病毒数据库更新:

    http://au.ff.avast.sec.miui.com/android/avast-android-vps-v4-release.apk
    

    保存路径为:

    /data/data/com.miui.guardprovider/app_dex/vps_update_<timestamp>.apk
    
  2. 攻击者通过MITM:

    • 拦截Avast更新流量
    • 记录APK文件名格式(如vps_update_20190205-124933.apk)
    • 通过404错误阻止后续Avast更新

第二阶段:利用AVL路径遍历漏洞

  1. 当用户切换默认引擎为AVL时,AVL会请求配置文件:

    http://update.avlyun.sec.miui.com/avl_antiy/miuistd/siglib/20180704.cj.conf
    
  2. 攻击者通过MITM修改.conf文件:

    • 设置is_new=0表示有新更新
    • 提供伪造ZIP文件的URL
  3. 利用AVL SDK的解压缩路径遍历漏洞:

    • 在伪造ZIP中包含恶意APK
    • 使用../../app_dex/vps_update_20190205-124933.apk路径覆盖之前记录的Avast更新文件

第三阶段:触发恶意代码执行

  1. 恢复Avast通信,拦截AVL通信
  2. 等待用户重新选择Avast为默认引擎
  3. Avast SDK加载并执行被覆盖的恶意APK
    • 更新签名在加载时不验证
    • 恶意代码获得执行权限

漏洞修复建议

  1. 对所有网络通信使用HTTPS加密
  2. 修复AVL SDK的路径遍历漏洞
  3. 对加载的更新文件进行运行时签名验证
  4. 实现SDK间的安全隔离机制
  5. 加强预装应用的安全审计

教学要点总结

  1. 中间人攻击风险:不安全的HTTP通信是漏洞根源
  2. SDK共享环境风险:多个SDK共享环境会放大单个漏洞的影响
  3. 路径遍历漏洞:解压缩时未正确处理路径导致任意文件写入
  4. 更新机制缺陷:更新文件加载时缺乏二次验证
  5. 组合攻击:利用多个SDK的交互实现复杂攻击链

实验复现建议(仅供教学研究)

  1. 环境准备:

    • 受影响版本的小米手机
    • 中间人攻击工具(如Burp Suite)
    • 网络环境控制能力
  2. 复现步骤:

    • 配置MITM代理
    • 监控Avast更新流量
    • 构造恶意.conf和ZIP文件
    • 观察文件覆盖和代码执行情况

注意:此漏洞已由小米修复,本教学文档仅用于安全研究教育目的。

小米安全中心APP漏洞分析教学文档 漏洞概述 本漏洞存在于小米手机预装的安全中心应用(Guard Provider, com.miui.guardprovider)中,该应用负责检测恶意软件、保护用户手机安全。研究人员发现由于网络流量不安全,攻击者可发起中间人攻击(MiTM),通过第三方SDK更新机制关闭恶意软件保护并注入恶意代码。 漏洞影响 攻击者可窃取用户数据 可植入勒索软件、追踪软件 可安装任意恶意软件 影响所有预装该应用的小米主流手机 漏洞原理 应用架构分析 安全中心APP预装三种反病毒引擎供用户选择: Avast AVL 腾讯 这些SDK共享应用环境和权限,存在以下安全隐患: 一个SDK的问题可能破坏其他SDK的保护 SDK间私有存储数据无法隔离 攻击步骤详解 第一阶段:Avast更新拦截 默认情况下APP会定期通过HTTP下载Avast病毒数据库更新: 保存路径为: 攻击者通过MITM: 拦截Avast更新流量 记录APK文件名格式(如vps_ update_ 20190205-124933.apk) 通过404错误阻止后续Avast更新 第二阶段:利用AVL路径遍历漏洞 当用户切换默认引擎为AVL时,AVL会请求配置文件: 攻击者通过MITM修改.conf文件: 设置 is_new=0 表示有新更新 提供伪造ZIP文件的URL 利用AVL SDK的解压缩路径遍历漏洞: 在伪造ZIP中包含恶意APK 使用 ../../app_dex/vps_update_20190205-124933.apk 路径覆盖之前记录的Avast更新文件 第三阶段:触发恶意代码执行 恢复Avast通信,拦截AVL通信 等待用户重新选择Avast为默认引擎 Avast SDK加载并执行被覆盖的恶意APK 更新签名在加载时不验证 恶意代码获得执行权限 漏洞修复建议 对所有网络通信使用HTTPS加密 修复AVL SDK的路径遍历漏洞 对加载的更新文件进行运行时签名验证 实现SDK间的安全隔离机制 加强预装应用的安全审计 教学要点总结 中间人攻击风险 :不安全的HTTP通信是漏洞根源 SDK共享环境风险 :多个SDK共享环境会放大单个漏洞的影响 路径遍历漏洞 :解压缩时未正确处理路径导致任意文件写入 更新机制缺陷 :更新文件加载时缺乏二次验证 组合攻击 :利用多个SDK的交互实现复杂攻击链 实验复现建议(仅供教学研究) 环境准备: 受影响版本的小米手机 中间人攻击工具(如Burp Suite) 网络环境控制能力 复现步骤: 配置MITM代理 监控Avast更新流量 构造恶意.conf和ZIP文件 观察文件覆盖和代码执行情况 注意:此漏洞已由小米修复,本教学文档仅用于安全研究教育目的。