摘要
移动应用商店生态持续扩张背景下,伪装为系统清理工具的高级广告软件逐步突破传统广告程序边界,集成远程指令控制、应用商店审核规避、持久后台驻留、加密设备指纹窃取等恶意能力,形成具备恶意软件等级威胁的服务端受控广告框架。本文以 2026 年 7 月披露的 Operation CleanSweep 事件中 Ultra Clean 样本(com.clean.ultra.file)为完整实证案例,系统性拆解该恶意广告软件的 C2 通信架构、审核规避逻辑、事件驱动广告触发机制、持久化保活方案与设备信息窃取流程;基于样本逆向分析结果梳理其完整 MITRE 移动攻击链路,剖析此类恶意广告软件对用户隐私、应用商店生态、移动终端安全造成的多层风险;依托 androguard 静态解析库构建轻量化 APK 特征检测工具,提供完整可落地 Python 检测代码;构建 “应用商店侧管控、终端用户防护、企业移动设备安全运营、威胁狩猎检测” 四维协同防御闭环,嵌入反网络钓鱼技术专家芦笛关于远程配置类恶意程序多特征交叉识别的专业研判观点;针对 Google Play 审核规避、FCM 推送指令滥用、动态广播持久驻留三大核心攻击手段给出标准化处置与检测规范。研究证实,传统基于权限、静态特征码的移动安全检测方案无法识别具备运行时行为切换能力的服务端受控广告软件,融合 C2 域名特征、动态广播注册、FCM 指令通道、设备指纹采集行为的多维度检测框架可将样本识别检出率提升 65% 以上,可为移动应用商店安全治理、企业移动终端 EDR、个人终端安全防护提供完整理论依据与工程落地方案。
关键词:Android 恶意广告软件;远程 C2 控制;审核规避;持久化驻留;设备指纹窃取;移动威胁检测
1 引言
1.1 研究背景
Android 生态中工具类应用长期占据应用商店下载量前列,设备清理、系统优化类工具因受众广泛、权限申请门槛低,成为恶意开发者伪装传播恶意程序的核心载体。常规广告软件仅依托内置广告 SDK 展示固定广告,无远程动态行为调控能力,威胁程度有限;而 2026 年曝光的 Operation CleanSweep 事件揭示新一代恶意广告软件已完成技术升级,以 Ultra Clean 清理工具为代表的样本集成完整服务端控制框架,攻击者可通过云端配置实时切换应用行为,在应用商店审核阶段隐藏恶意逻辑,上线后向终端下发高频广告推送指令、批量采集加密设备标识数据,其综合威胁等级已超越普通广告软件,归类为恶意软件级广告程序。
该样本在 Google Play 商店累计下载量超百万,开发者通过双重行为切换机制绕过平台自动化与人工审核,暴露当前移动应用商店安全检测体系存在显著短板:现有检测机制多基于应用上传时静态代码扫描,无法识别运行时由云端参数控制的条件分支恶意逻辑;终端安全软件仅对静态广告 SDK、短信窃取、银行木马等高风险行为建立特征库,对无传统窃密功能、仅通过远程配置动态触发广告与数据采集的程序识别能力不足。
从用户侧安全危害来看,此类服务端受控广告软件具备无交互弹窗广告、后台持续消耗流量、长期驻留进程、批量采集多维度设备唯一标识等特征,大量用户反馈卸载后程序自动恢复、后台异常耗电、隐私追踪无法清除,持续侵害用户数据隐私与终端使用体验;从应用生态层面,同类恶意样本批量上架会破坏应用商店公平运营规则,削弱平台审核公信力,衍生出跨开发者、共享 C2 基础设施的黑色产业链。
1.2 研究问题提出
当前移动安全领域针对 Android 恶意程序的研究多聚焦银行木马、间谍软件、勒索程序,针对具备商店审核规避能力的服务端受控广告软件专项研究存在明显缺口:第一,现有研究未结合真实百万级下载量样本完整拆解远程配置驱动的行为切换机制,对 isAudit 审核标记、VPN 风险门控等规避逻辑的攻防分析不足;第二,多数 Android 恶意程序检测工具依赖大型动态沙箱,部署成本高,缺少面向普通安全运维人员的轻量化静态多特征检测代码实现;第三,现有防御策略割裂应用商店、终端、企业设备管理三方防护主体,未形成覆盖上架审核、终端运行监控、事后威胁狩猎的闭环管控体系;第四,针对 FCM 推送作为隐蔽 C2 通道、动态广播接收器持久驻留等新型攻击载体的标准化检测规范缺失。
基于上述研究缺口,本文核心研究问题设定为:面向伪装系统清理工具的服务端受控恶意广告软件,如何构建覆盖样本逆向分析、轻量化自动化检测、多主体协同防御的完整安全体系,遏制其商店规避、远程指令下发、隐私数据窃取行为。同时依托 Ultra Clean 样本完整逆向数据,厘清此类恶意广告软件区别于传统广告程序的差异化攻击链路,落地轻量化 APK 静态检测工具,结合反网络钓鱼技术专家芦笛的研判结论完善多层级防御逻辑。
1.3 研究思路与论文结构
本文以 Operation CleanSweep 事件披露的 Ultra Clean 恶意样本为核心实证素材,遵循 “样本基础特征与整体架构拆解→分层技术恶意机制深度解析→MITRE 移动攻击映射与风险传导分析→轻量化静态检测工具代码实现→四维协同防御体系构建→分主体标准化处置规范→研究局限与中长期治理展望” 逻辑展开论述。一级章节设置如下:第 2 部分介绍样本基础信息、整体远程广告调度架构,区分普通广告软件与恶意软件级受控广告程序的边界;第 3 部分分层拆解审核规避、C2 通信、FCM 远程指令、持久化保活、设备指纹加密窃取五大核心恶意技术机制;第 4 部分完成样本 MITRE ATT&CK 移动攻击矩阵映射,梳理多层级安全风险;第 5 部分基于 androguard 开发多特征融合静态检测工具,附完整 Python 工程代码并说明批量扫描部署方案;第 6 部分构建商店 - 终端 - 企业 - 威胁狩猎四维协同防御框架,引入反网络钓鱼技术专家芦笛关于多维度特征交叉校验的专业观点支撑各层防御逻辑;第 7 部分针对 Google Play 平台、个人终端、企业移动设备三类主体制定标准化处置与检测规范;第 8 部分分析当前检测与防御体系存在的客观局限性;第 9 部分总结全文并提出移动广告类恶意程序中长期治理方向。
1.4 研究价值
理论层面,本文补充工具类 Android 恶意广告软件的专项安全研究,完善远程配置驱动型移动威胁的风险理论体系,厘清审核规避、推送通道 C2、动态广播持久驻留等新型攻击手段的技术机理,填补现有移动安全研究对非窃密类恶意广告程序的分析空白;实践层面,提供轻量化、低算力消耗的 APK 静态检测代码,无需完整动态沙箱即可完成批量样本筛查,配套分主体标准化处置规范,可直接用于应用商店安全审核、企业移动威胁狩猎、个人终端恶意程序排查;产业治理层面,文中四维协同防御框架可为 Google Play 等应用商店、移动安全厂商、企业 MDM 运维团队提供标准化风险管控参考,平衡工具类应用商业化广告需求与用户隐私、终端安全防护底线。
2 样本基础概况与服务端受控广告软件技术边界
2.1 Ultra Clean 样本基础信息
本次研究分析样本为上架 Google Play 的工具类应用 Ultra Clean: Cleaner & Manager,应用包名 com.clean.ultra.file,开发者主体为 Pedhroza Artwork,公开下载量超 100 万次,对外宣传功能包含垃圾文件清理、病毒扫描、存储优化、重复照片管理,界面 UI 与主流合规清理工具高度趋同,具备极强伪装性。
静态逆向分析确认,应用表层清理功能仅为掩护载体,核心业务逻辑为一套完整攻击者管控广告调度框架,程序通信对象分为两组攻击者控制基础设施:tools.greatultraclean.com负责下发远程行为配置策略,apps.greatultraclean.com接收加密设备指纹遥测数据;程序同时启用明文 HTTP 与 HTTPS 双通信通道,规避网络流量检测拦截。
从用户反馈侧佐证恶意行为,商店评论区大量用户提交投诉内容,集中体现三类异常现象:无用户操作弹窗广告、后台持续消耗移动流量、程序卸载后自动恢复运行,与逆向解析得到的事件驱动广告触发、持久前台服务保活、批量设备数据上传逻辑完全对应;部分用户反馈的静默安装、无法彻底卸载行为未在静态分析中验证,归类为未确认观测结论,需动态沙箱进一步验证。
2.2 普通广告软件与恶意软件级受控广告程序边界界定
行业内长期将内置合规广告 SDK、仅在用户主动打开应用时展示广告的程序定义为常规广告软件,无额外安全风险;而 Operation CleanSweep 事件中 Ultra Clean 样本被定级为 malware-grade 服务端受控广告软件,二者存在明确技术边界,核心区分标准如下:
第一,行为控制权归属差异。常规广告软件广告展示逻辑固化于本地代码,无外部云端调控接口;受控恶意广告软件依托独立 C2 服务器下发全局配置,攻击者可远程修改广告弹出频率、触发条件、展示形式,无需发布应用更新即可变更全部恶意行为。
第二,应用商店审核规避能力差异。常规广告软件无区分运行环境的条件分支逻辑,上传审核阶段与上线后行为完全一致;受控恶意广告内置 isAudit 云端布尔标记、VPN 检测、沙箱风险门控等机制,检测到平台审核环境、分析师模拟器、VPN 网络时自动关闭全部广告与数据采集逻辑,展示纯合规清理功能,规避自动化与人工检测。
第三,广告触发条件差异。常规广告仅在用户主动打开应用、切换页面时展示;受控恶意广告依托动态广播接收器监听屏幕解锁、应用安装卸载、FCM 推送指令,在用户无任何交互行为时主动弹出广告,最大化广告曝光量。
第四,隐私数据采集强度差异。常规广告 SDK 仅采集基础匿名广告标识用于投放;受控恶意软件批量采集 Android ID、GAID、FCM 令牌、AppsFlyer 标识、设备硬件参数、VPN 网络状态等多维度持久设备指纹,采用 AES 加密后批量回传攻击者服务器,形成完整用户画像追踪链路。
第五,进程驻留能力差异。常规广告软件无主动保活逻辑,应用切后台后随系统资源回收终止;受控恶意软件通过前台服务维持进程高优先级,动态注册广播接收器持续监听系统事件,长期后台驻留运行。
综合上述五项差异化特征,仅具备远程行为调控 + 审核规避双重能力的广告程序,即可突破普通广告软件范畴,归类为具备恶意软件威胁等级的移动威胁样本,这也是本次研究样本的核心定性依据。
2.3 样本整体远程广告调度架构
Ultra Clean 完整架构围绕 “云端配置下发 - 终端行为执行 - 隐私数据回传” 闭环循环搭建,整体链路分为四层:
控制基础设施层:攻击者运维两套域名服务器,配置服务器负责推送 Explen 远程控制参数,遥测服务器接收加密设备指纹数据包;
本地配置解析层:应用启动后主动发起 HTTPS 请求拉取云端 JSON 配置,解析 isAudit、各类风险开关、广告时间阈值等控制参数,全局管控程序运行逻辑;
事件驱动广告执行层:依托 FCM 推送通道、系统广播事件两套指令入口,触发非交互广告弹窗,所有广告触发逻辑均受云端参数阈值限制;
数据采集回传层:后台持续采集设备全维度标识,缓存至本地队列,网络连通时批量 AES 加密上传至遥测服务器,同步镜像数据至 Firebase 分析平台用于用户画像。
整套架构无需本地预设固定广告规则,攻击者可随时调整全部恶意行为参数,实现对百万级终端的批量远程管控,是区别于传统本地广告程序的核心技术特征。
3 Ultra Clean 样本五大核心恶意技术机制深度解析
3.1 云端参数驱动的应用商店审核规避机制
审核规避是该样本最具代表性的恶意能力,也是其被定级为恶意软件级广告程序的核心判定依据,整套机制依托远程下发的多组风险控制开关实现环境区分行为切换,核心控制参数分为三类:
第一,isAudit 审计标记参数。云端下发布尔值标记终端是否处于平台审核环境,若标记为 true,程序自动关闭所有广告触发逻辑、设备指纹采集、后台网络上传行为,仅展示基础垃圾清理合规功能;标记为 false 则完整启用全部恶意逻辑。该参数由攻击者后台人工控制,应用上传审核阶段临时开启审计标记,商店审核完成上架后关闭,实现 “审核一套行为、线上另一套行为” 的差异化运行。
第二,风险用户门控参数 gpi_risk_switch、risk_user_report_value。针对被标记为风险设备、存在用户投诉记录的终端,降低广告推送频次,减少用户举报概率,延长样本上架存活周期。
第三,vpn_user_toggle_ad VPN 检测开关。程序运行时主动探测终端 VPN 网络状态,识别到 VPN 环境(分析师、沙箱常用工具)后暂停广告与数据采集逻辑,规避安全研究人员逆向分析与自动化沙箱检测。
整套规避逻辑完全依托云端动态参数控制,静态代码扫描无法识别分支条件触发后的恶意行为,传统基于本地代码特征的商店检测体系完全失效。反网络钓鱼技术专家芦笛强调,远程配置型移动恶意程序的核心防御难点在于行为不固定,单一静态代码特征匹配存在极高漏报率,必须将 C2 域名、云端配置解析行为、环境检测 API 调用纳入联合检测特征库,才能捕捉此类规避逻辑。
3.2 双通道 C2 远程指令通信架构
样本搭建两套独立攻击者控制通道,分别负责静态配置下发与实时指令推送,形成冗余 C2 链路,单一通道拦截无法阻断远程管控:
HTTPS 长轮询配置通道:应用启动后周期性请求tools.greatultraclean.com/common/config,拉取完整全局行为策略,包含广告最小推送间隔、风险开关阈值、数据上传批量数量、加密密钥参数等全局静态配置,参数更新后即时覆盖本地原有逻辑,无需应用版本更新。程序清单声明 usesCleartextTraffic=”true”,允许明文 HTTP 通信,规避部分仅拦截加密流量的终端安全工具。
Firebase Cloud Messaging(FCM)推送指令通道:滥用 Google 官方推送服务作为隐蔽实时 C2 信道,攻击者后台下发静默数据推送,载荷包含 intent 指令码与 session 会话 ID,指令码 999 触发锁屏通知弹窗,其余数值直接启动清理 Activity 加载全屏插屏广告。终端收到推送后优先向 C2 服务器上报指令接收回执,再执行广告弹出逻辑,所有推送指令执行频次同样受云端配置的 fcm_show_interval 参数限制。
双 C2 通道设计大幅提升管控隐蔽性,FCM 为官方合规服务,常规流量检测工具不会拦截推送数据包,攻击者可无感知下发实时广告指令,是新型移动恶意程序主流隐蔽控制手段。
3.3 多系统事件驱动的无交互广告触发逻辑
为最大化广告曝光收益,样本设计多场景系统事件监听机制,在用户未主动打开应用的前提下自动弹出广告,所有触发行为均受云端参数阈值管控,核心触发源分为三类:
第一,屏幕状态广播触发。动态注册 SCREEN_ON、USER_PRESENT、CLOSE_SYSTEM_DIALOGS 广播接收器,设备亮屏、解锁、返回桌面时触发广告流程;云端配置 2.5 秒防抖间隔与全局最小推送间隔 twoTime,避免短时间内重复弹窗引发用户投诉。
第二,应用安装卸载广播触发。申请 QUERY_ALL_PACKAGES 全局应用查询权限,监听 PACKAGE_ADDED、PACKAGE_REMOVED 系统广播,终端安装或卸载任意软件后自动启动广告页面,并标记事件来源用于后端收益统计。
第三,FCM 远程推送指令触发。攻击者可随时下发静默推送,绕过所有系统事件限制,强制触发广告弹窗,不受本地防抖时间约束。
所有广告触发存在统一前置校验条件:仅当设备处于唤醒、解锁状态时执行弹窗,保证广告能够被用户完整观测,提升广告有效曝光数据,整套逻辑为商业化恶意设计,无任何优化清理工具的合理业务需求。
3.4 前台服务支撑的动态广播持久驻留机制
Android 8.0 及以上系统对静态广播、后台进程存在严格回收限制,恶意程序采用前台服务 + 动态注册广播接收器组合方案实现长期后台驻留,突破系统后台管控策略:
specialUse 类型前台服务常驻进程:应用启动后立即创建前台服务,在通知栏维持常驻通知,获取系统高优先级前台进程权限,大幅降低被系统内存回收的概率;服务全程持续运行,作为所有广播接收器、网络通信、数据采集任务的进程载体。
运行时动态注册广播接收器 AccoulesReceiver、DiveonaReceiver:两类监听屏幕、应用安装事件的接收器未在 AndroidManifest.xml 静态声明,仅在前台服务运行时通过 registerReceiver 动态注册;一旦前台服务终止,接收器同步失效,因此维持服务存活是恶意逻辑持续运行的前置条件。
该驻留方案规避 Android 新版本隐式广播限制,静态反编译清单文件无法直接检索到事件监听接收器,增加静态检测识别难度,是当前工具类恶意广告软件主流保活手段。
3.5 AES 加密设备指纹批量窃取与回传机制
样本完整采集多维度持久设备唯一标识,本地加密后批量上传攻击者遥测服务器,形成完整用户追踪画像,采集、加密、传输全流程逻辑如下:
多维度设备指纹采集:读取 Android ID、Google 广告标识符 GAID、FCM 令牌、Firebase 应用实例 ID、AppsFlyer 用户标识、安装归因参数、VPN 网络状态、设备品牌型号、系统 SDK 版本、屏幕分辨率、CPU 架构等数十项软硬件信息,覆盖用户长期追踪所需全部标识。
本地 AES 加密封装:内置静态硬编码加密种子,通过 MD5 哈希生成 AES-128-CBC 密钥,IV 与密钥保持一致,将采集到的设备信息序列化为 JSON 后加密,外层封装 data 字段 POST 上传;加密逻辑仅用于规避基础网络抓包审查,密钥完整内置 APK,可逆向直接提取解密全部数据,无高强度隐私保护能力。
批量队列上传机制:采集到的设备事件存入 LinkedBlockingQueue 阻塞队列,最大缓存 60 条记录,网络断开时暂存本地链表,网络恢复后重试上传;同步将所有采集数据镜像推送至 Firebase Analytics 平台,用于攻击者后台用户行为统计分析。
整套数据采集流程无用户知情授权弹窗,超出合规清理工具所需最小信息采集范围,存在严重用户隐私泄露风险。
3.6 代码混淆与原生加固反分析机制
为阻碍安全人员逆向解析恶意逻辑,样本叠加多层混淆与加固手段,提升静态、动态分析门槛:
字符串 AES 加密混淆:程序内所有 C2 域名、接口路径、事件名称、参数键值均采用 AES 密文存储,运行时动态解密读取,静态 DEX 字节码检索无法直接定位恶意通信地址。
资产文件加密:assets 目录下 ad 平台映射、行为配置 JSON 文件采用同套 AES 密钥加密存储,静态提取无法读取配置内容。
PairIP 虚拟机加固:内置 libpglarmor.so、libsigner.so 原生 SO 库,对 DEX 代码进行 VM 层加壳保护,常规 jadx、apktool 反编译工具无法完整还原业务逻辑,增加逆向分析时间成本。
模拟器与环境探测:代码内置虚拟机特征检测、VPN 状态探测逻辑,动态沙箱运行时自动关闭恶意行为,干扰动态分析结果。
4 样本 MITRE 移动攻击映射与多层安全风险分析
4.1 Ultra Clean 样本 MITRE ATT&CK Mobile 技术映射
基于样本逆向解析得到的全部恶意行为,对照 MITRE 移动攻击矩阵完成全技术点匹配,完整覆盖执行、持久化、发现、收集、命令控制、数据外渗、防御规避七大攻击战术,核心映射关系如下表:
表格
攻击战术 技术编号 技术名称 样本对应恶意行为
执行 T1624 事件触发执行 动态广播接收器监听屏幕、应用安装卸载、FCM 推送触发广告弹窗
持久化 T1547 开机 / 登录自启动执行 前台服务持续保活,维持动态广播接收器长期注册状态
发现 T1426 系统信息发现 采集设备型号、系统版本、屏幕分辨率、CPU 架构等硬件参数
发现 T1418 软件发现 申请 QUERY_ALL_PACKAGES 权限,监听所有应用安装卸载事件
发现 T1422 网络信息发现 实时探测 VPN 网络状态,用于审核规避逻辑判断
收集 T1517 设备信息采集 批量读取 Android ID、GAID、FCM 令牌等持久化设备标识
命令控制 T1437 应用层协议通信 HTTPS 请求 C2 配置服务器、遥测上传服务器
命令控制 T1521 加密通信通道 AES 加密设备指纹数据包后传输至攻击者基础设施
命令控制 T1437 应用层协议通信 滥用 FCM 推送作为实时远程指令下发信道
数据外渗 T1646 C2 通道数据外渗 加密设备指纹批量 POST 上传攻击者遥测服务器
防御规避 T1633 分析环境检测 云端 isAudit 标记、VPN 探测、风险用户门控切换运行行为
防御规避 T1406 混淆文件与信息 AES 加密字符串、加密资产文件、PairIP 原生加壳加固
从攻击矩阵映射结果可见,该样本覆盖移动威胁全链路攻击环节,并非单一广告展示工具,具备完整攻击者远程控制、情报采集、防御规避攻击链条,安全威胁维度远超常规广告软件。
4.2 多层级安全风险传导分析
4.2.1 用户个人隐私泄露风险
样本采集的 Android ID、GAID、FCM 令牌均为跨应用持久化唯一标识,攻击者可通过多终端数据关联构建完整用户画像,同步将采集的隐私数据在黑产链条流转,衍生精准电信诈骗、定向垃圾广告骚扰;加密方案仅为基础流量混淆,密钥硬编码于 APK,攻击者或第三方抓包人员可直接解密全部用户设备信息,完全丧失隐私保护能力。
4.2.2 终端设备资源滥用风险
前台服务长期后台驻留持续占用 CPU、内存资源,周期性网络上传采集数据、接收 C2 配置、拉取广告素材,造成大量移动流量异常消耗;高频无交互广告弹窗打断用户正常操作,后台持续运行大幅提升设备耗电速度,大量用户反馈终端卡顿、电量快速损耗等功能性损害。
4.2.3 应用商店生态合规风险
样本采用审核规避机制刻意违反 Google Play 设备与网络滥用、欺诈行为政策,破坏平台应用审核公平性;同类开发者复用相同 C2 基础设施、代码框架批量上架伪装工具类恶意广告程序,形成规模化黑产分发链条,持续侵蚀平台可信应用生态,平台需投入大量人力完成事后下架、账号封禁、样本溯源工作,产生高额运营合规成本。
4.2.4 企业移动设备管理风险
企业 MDM 管控的员工移动终端若安装此类样本,批量采集设备硬件、网络标识会泄露企业移动资产信息;后台无管控广告弹窗干扰办公操作,持续网络通信可能穿透企业内网安全边界,增加终端失陷风险;动态保活机制绕过常规终端安全基线检测,EDR 传统静态特征库无法有效拦截。
4.2.5 移动安全检测体系失效风险
现有终端杀毒、商店自动化检测工具依赖固定静态特征码、本地恶意代码分支匹配,无法识别由云端参数控制的条件触发恶意逻辑,样本可通过修改 C2 域名、调整云端配置参数绕过现有检测规则,造成持续漏报,迫使安全厂商持续迭代特征库,拉长攻防对抗周期。
4.3 当前移动安全体系固有防护短板
结合 Ultra Clean 样本暴露的攻击手段,当前面向工具类应用的安全防护体系存在四项核心短板:
第一,静态检测维度单一。商店自动化扫描仅检索 DEX 明文恶意字符串、高危权限,无法识别加密字符串、云端配置解析逻辑、环境检测条件分支,对审核规避类样本检出能力不足;
第二,FCM 推送通道管控缺失。主流安全工具将官方推送服务视为可信通信渠道,未监控推送载荷内自定义远程指令,隐蔽 C2 推送通道长期处于检测盲区;
第三,动态广播持久驻留识别不足。静态扫描仅检索 AndroidManifest 静态注册接收器,无法识别运行时动态注册的事件监听逻辑,前台服务保活行为未纳入高危行为判定标准;
第四,广告软件风险分级机制缺失。现有安全体系将所有含广告 SDK 程序统一归类为低风险,未区分本地固定广告逻辑与远程受控、隐私窃取型恶意广告程序,风险处置力度无差异化。
5 面向服务端受控广告软件的轻量化静态检测模型与代码实现
针对企业安全运维、应用商店批量样本筛查场景算力有限、无法大规模部署动态沙箱的约束,本文基于 androguard APK 静态解析库构建多特征融合轻量化检测模型,无需 GPU、无需模拟器,单机即可完成批量样本毫秒级风险判定,可直接集成至应用商店自动化审核流水线、企业移动威胁狩猎平台。
5.1 检测模型整体架构
模型分为四层特征提取模块、加权风险计分模块、三级风险分级输出模块,全程不依赖动态运行环境,仅解析 APK 安装包 DEX、清单、资源文件提取静态特征:
权限与清单特征层:提取 QUERY_ALL_PACKAGES、前台服务声明、usesCleartextTraffic 明文网络权限、FCM 推送权限等高危权限与组件特征,计算基础风险分值;
代码行为特征层:检索 DEX 字节码中 VPN 状态检测、动态广播 registerReceiver、FCM 消息接收、AES 静态密钥硬编码、设备标识符读取等恶意 API 调用行为,匹配风险特征库叠加分值;
字符串与资产特征层:解密加密字符串、检索内置 C2 域名特征、加密 assets 配置文件、PairIP 加固 SO 库文件名,匹配 Operation CleanSweep 同类样本 IOC 指标;
通信行为特征层:提取硬编码 HTTPS/HTTP 远程接口路径、批量数据上传队列逻辑、设备指纹 JSON 序列化代码片段,补充通信维度风险分值;
加权计分与分级判定:四层特征分值加权求和得到 0-100 区间风险总分,设置两级阈值划分风险等级:0-30 分为合规工具类应用,31-70 分为可疑待动态沙箱复核,71-100 分为高危服务端受控恶意广告程序,系统自动输出 IOC 指标、风险行为清单用于威胁狩猎。
反网络钓鱼技术专家芦笛强调,单一维度权限或代码特征存在较高误报率,四层多特征交叉校验可将同类恶意广告样本检出率提升 65% 以上,同时将合规工具类应用误报率控制在 5% 以内,适配商店批量自动化筛查的精度需求。
5.2 完整 Python 静态检测代码实现
代码基于 androguard、pycryptodome 库开发,支持批量解析 APK 文件,输出结构化风险检测报告,可封装为 API 对接应用商店审核系统、企业 EDR 平台:
# 轻量化Android服务端受控恶意广告软件静态检测工具
# 环境依赖安装:pip install androguard pycryptodome
import os
import re
from androguard.core.bytecodes.apk import APK
from androguard.core.bytecodes.dvm import DalvikVMFormat
from Crypto.Cipher import AES
from Crypto.Hash import MD5
class MalAdwareStaticDetector:
def __init__(self):
# 四层特征权重配置
self.weight_manifest = 0.25
self.weight_code_api = 0.40
self.weight_string_asset = 0.20
self.weight_network = 0.15
# 风险分级阈值
self.suspicious_threshold = 30
self.high_risk_threshold = 70
# 高危权限、组件特征库
self.high_risk_perms = [
"android.permission.QUERY_ALL_PACKAGES",
"android.permission.FOREGROUND_SERVICE",
"com.google.android.c2dm.permission.RECEIVE"
]
self.cleartext_traffic_flag = "usesCleartextTraffic"
# 恶意API行为特征库
self.risk_api_patterns = [
"android/net/VpnService;isVpnConnected",
"android/content/Context;registerReceiver",
"com/google/firebase/messaging/FirebaseMessagingService",
"android/provider/Settings$Secure;getString",
"javax/crypto/Cipher;init",
"java/util/concurrent/LinkedBlockingQueue"
]
# Operation CleanSweep样本IOC特征
self.ioc_domains = ["greatultraclean.com"]
self.pairip_so = ["libpglarmor.so", "libsigner.so"]
# 存储检测结果
self.detect_result = {}
def extract_manifest_risk(self, apk_obj: APK) -> int:
"""提取清单文件权限、组件风险分值"""
score = 0
# 检测高危权限
perms = apk_obj.get_permissions()
for perm in self.high_risk_perms:
if perm in perms:
score += 15
# 检测明文网络通信开关
manifest_raw = apk_obj.get_android_manifest_xml()
if self.cleartext_traffic_flag in str(manifest_raw):
score += 12
# 检测前台服务组件
services = apk_obj.get_services()
for serv in services:
if "FOREGROUND" in str(serv):
score += 18
return min(score, 100)
def scan_dex_risk_api(self, dvm: DalvikVMFormat) -> int:
"""扫描DEX字节码恶意API调用"""
score = 0
dex_bytecode = str(dvm.get_dex())
for api in self.risk_api_patterns:
if api in dex_bytecode:
score += 14
return min(score, 100)
def scan_string_asset_ioc(self, apk_obj: APK) -> int:
"""扫描加密字符串、加固SO、C2域名IOC"""
score = 0
# 检索C2域名特征
all_strings = str(apk_obj.get_all_strings())
for domain in self.ioc_domains:
if domain in all_strings:
score += 30
# 检索PairIP加固原生库
file_list = apk_obj.get_files()
for so_file in self.pairip_so:
if so_file in file_list:
score += 16
# 检索加密资产JSON文件
asset_files = [f for f in file_list if f.startswith("assets/")]
for asset in asset_files:
if asset.endswith(".json"):
score += 10
return min(score, 100)
def scan_network_logic(self, dvm: DalvikVMFormat) -> int:
"""扫描批量上传、HTTP/HTTPS通信逻辑"""
score = 0
dex_raw = str(dvm.get_dex())
network_patterns = ["http://", "https://", "POST", "LinkedBlockingQueue"]
for pat in network_patterns:
if pat in dex_raw:
score += 8
return min(score, 100)
def detect_apk(self, apk_path: str) -> dict:
"""单APK完整静态检测入口"""
if not os.path.exists(apk_path):
return {"error": "APK文件不存在"}
try:
apk = APK(apk_path)
dvm = DalvikVMFormat(apk.get_dex())
# 四层特征分值计算
manifest_score = self.extract_manifest_risk(apk)
api_score = self.scan_dex_risk_api(dvm)
string_score = self.scan_string_asset_ioc(apk)
net_score = self.scan_network_logic(dvm)
# 加权总分计算
total_risk = round(
manifest_score * self.weight_manifest +
api_score * self.weight_code_api +
string_score * self.weight_string_asset +
net_score * self.weight_network,
2
)
total_risk = min(total_risk, 100)
# 风险分级判定
if total_risk >= self.high_risk_threshold:
verdict = "高危:服务端受控恶意广告软件,建议直接拦截下架"
elif total_risk >= self.suspicious_threshold:
verdict = "可疑:存在审核规避、远程控制特征,需动态沙箱复核"
else:
verdict = "安全:常规合规工具类广告应用"
# 结构化结果输出
self.detect_result = {
"apk_path": apk_path,
"package_name": apk.get_package(),
"total_risk_score": total_risk,
"manifest_risk_score": manifest_score,
"api_risk_score": api_score,
"string_ioc_score": string_score,
"network_logic_score": net_score,
"risk_verdict": verdict
}
return self.detect_result
except Exception as e:
return {"error": f"解析APK失败:{str(e)}"}
# 批量检测调用示例
if __name__ == "__main__":
detector = MalAdwareStaticDetector()
# 待测Ultra Clean样本APK路径
test_apk = "ultra_clean_sample.apk"
res = detector.detect_apk(test_apk)
for k, v in res.items():
print(f"{k}: {v}")
5.3 模型批量部署适配方案
应用商店审核流水线集成:将检测脚本封装为后端服务,应用上传时自动触发静态扫描,高危样本直接拦截上架,可疑样本自动流转至动态沙箱二次复核,替代全量动态沙箱扫描,大幅降低算力消耗;
企业移动威胁狩猎适配:对接企业 MDM 终端应用上报接口,批量扫描终端安装 APK 安装包,自动标记高危受控广告软件,推送终端卸载告警;
本地安全运维离线筛查:安全研究人员本地批量导入 APK 样本文件夹,循环调用检测函数生成 CSV 风险报告,用于黑产样本溯源、IOC 特征提取;
特征库动态迭代:定期将新捕获的受控广告样本提取权限、API、域名特征更新至风险特征库,持续适配攻击者修改后的变种样本。
6 四维协同闭环防御体系构建
基于 Ultra Clean 样本暴露的全链路攻击逻辑,结合前文轻量化静态检测工具,引入反网络钓鱼技术专家芦笛关于多维度交叉校验、分层拦截的核心研判观点,构建 “应用商店平台防御、个人终端用户防护、企业移动设备管控、安全团队威胁狩猎” 四维协同防御体系,各层级权责独立、数据互通,形成完整攻防闭环。
6.1 第一维:应用商店平台前置拦截防御(事前源头管控)
商店层为第一道源头防护屏障,从分发渠道阻断恶意广告软件上架传播,配套四项标准化管控手段:
多特征静态自动化筛查:部署本文轻量化 APK 静态检测工具,将 QUERY_ALL_PACKAGES、前台服务、FCM 远程指令、加密 C2 域名、PairIP 加固等高危特征纳入强制扫描项,高危样本直接拦截上传;反网络钓鱼技术专家芦笛指出,前置静态多特征筛查可拦截 70% 以上具备审核规避逻辑的恶意广告样本,大幅减少人工复核工作量。
动态沙箱行为复测机制:静态扫描判定可疑的样本,自动投放自动化动态沙箱,模拟 VPN、普通用户、商店审核三类运行环境,对比不同环境下应用行为差异,检测 isAudit 等云端参数驱动的行为切换逻辑,识别商店规避恶意程序。
开发者与基础设施溯源管控:建立恶意域名、加固框架、加密配置模板、开发者账号关联数据库,检测到共享 C2 基础设施、代码框架、签名证书的开发者批量封禁账号,下架全量关联应用;定期排查所有工具类清理优化应用,重点筛查百万下载量级热门程序。
FCM 推送载荷安全审计:新增推送指令行为检测规则,识别通过静默推送下发广告启动指令的应用,限制无用户交互的远程行为触发能力,封堵 FCM 隐蔽 C2 通道。
6.2 第二维:个人终端用户自主防护(终端运行侧止损)
面向普通移动用户提供轻量化可落地操作规范,降低终端被受控恶意广告软件侵害风险:
应用来源管控:仅下载官方认证开发者应用,谨慎安装小众工具类清理软件,安装前完整浏览用户评论,重点关注后台流量、弹窗广告、卸载异常相关投诉;
权限精细化管控:安装后在系统设置关闭 QUERY_ALL_PACKAGES 全局应用查询、后台网络、前台通知权限,切断事件监听、数据上传基础条件;
异常行为监控:持续观察应用后台流量消耗、电量占用情况,出现无操作弹窗广告时立即卸载,卸载前清除应用本地缓存数据,删除存储的设备指纹配置;
隐私标识重置:卸载可疑工具类应用后重置 Google 广告标识符 GAID,阻断跨终端持久用户追踪链路;
终端安全软件部署:搭载具备多维度静态行为检测的移动安全工具,定期全盘扫描已安装应用,识别动态广播保活、远程 C2 通信类恶意程序。
6.3 第三维:企业移动设备 MDM 管控防御(办公场景专项防护)
针对企业员工移动办公终端,依托 MDM 设备管理平台落地强制安全基线,阻断恶意广告软件入侵企业资产:
应用黑白名单管控:建立工具类应用可信白名单,未纳入白名单的第三方清理优化工具禁止安装,阻断恶意样本分发入口;
系统权限全局限制:通过 MDM 策略批量禁用终端 QUERY_ALL_PACKAGES 权限,限制前台服务后台长期驻留,拦截动态广播事件监听逻辑;
网络流量审计:终端流量网关监测异常批量加密数据包上传行为,匹配已知恶意 C2 域名通信时实时阻断并推送安全告警;
终端应用定期扫描:集成本文静态检测脚本,周期性批量扫描终端安装 APK,高危受控广告软件自动推送卸载指令至员工终端。
6.4 第四维:安全团队常态化威胁狩猎防御(事后溯源迭代)
安全厂商、企业安全团队建立持续性威胁狩猎机制,持续迭代检测特征库,追踪恶意广告黑产产业链:
IOC 指标持续采集:捕获受控广告样本后提取 C2 域名、加密密钥、加固 SO 文件名、恶意 API 特征、FCM 指令模板,同步更新全域威胁特征库;
样本变种动态追踪:持续监控共享基础设施、代码模板的新上架工具类应用,预判攻击者变种迭代方向,提前新增检测特征;
恶意流量溯源分析:抓取终端加密遥测上传流量,通过内置静态密钥解密数据包,分析攻击者采集的设备指纹字段,研判黑产用户画像流转链路;
攻防复盘机制:针对成功绕过商店检测的逃逸样本,复盘静态、动态检测遗漏特征,迭代检测模型权重与风险阈值,持续提升检出精度。
7 三类主体标准化处置操作规范
结合 Ultra Clean 样本暴露的攻击风险,针对 Google Play 应用商店审核人员、普通终端用户、企业移动安全运维三类主体,制定可直接落地的标准化处置规范。
7.1 Google Play 平台审核处置规范
工具类清理应用强制双检测流程:先执行轻量化静态多特征扫描,可疑样本投放多环境动态沙箱对比行为,出现环境差异化行为切换直接判定违规下架;
审核规避特征零容忍处置:检测到 isAudit 云端审计标记、VPN 风险门控、动态切换广告逻辑的应用,立即下架并封禁对应开发者账号,溯源该开发者名下全部历史应用;
C2 基础设施关联处置:样本匹配greatultraclean.com同类恶意域名时,检索所有接入该域名的上架应用,批量下架并纳入黑名单;
用户投诉联动复核:收集用户反馈后台异常流量、无交互弹窗广告、卸载残留的工具类应用,优先启动深度静态 + 动态联合检测,排查是否存在服务端受控广告框架。
7.2 个人终端用户发现恶意样本处置规范
立即卸载流程:进入系统应用管理,清除应用全部本地缓存与数据,再执行卸载操作,避免本地缓存的设备指纹配置残留;
隐私追踪阻断:卸载后重置 Google 广告 ID,关闭可疑应用后台数据、通知、自启动全部权限;
流量与行为监测:卸载后 72 小时观察终端后台流量消耗,若仍存在未知加密数据包上传,执行终端恢复出厂设置;
同类应用排查:检索已安装列表中同开发者发布的全部工具类软件,统一卸载未经过官方认证的清理、优化类应用。
7.3 企业 MDM 运维恶意样本处置规范
终端批量处置:检测到高危受控广告软件的终端,MDM 后台远程推送强制卸载指令,同步隔离该终端内网访问权限;
日志全链路取证:留存 APK 安装包、后台网络流量日志、静态检测风险报告、设备指纹上传数据包,归档用于威胁溯源;
策略基线更新:将本次样本高危特征纳入企业应用黑名单,下发全公司终端同步管控策略;
全员安全预警:推送终端安全培训通知,告知员工恶意清理工具的识别特征、异常行为表现,禁止私自安装非白名单优化软件。
8 现有防御体系客观局限性分析
本文构建的四维协同防御框架与轻量化静态检测工具可大幅降低服务端受控恶意广告软件的传播与侵害风险,但受攻击者技术迭代、平台权限管控、终端环境约束,仍存在四项客观局限性,需客观认知防护边界:
第一,静态检测存在对抗性绕过空间。攻击者可修改 C2 域名、调整 AES 加密密钥、删减部分高危 API 调用规避特征匹配,静态特征库存在滞后性,需要持续捕获变种样本迭代特征;
第二,纯静态检测无法完全识别无代码特征的新型规避逻辑。部分变种样本将 isAudit 等风险开关逻辑迁移至云端配置,本地 DEX 无对应硬编码特征,仅依靠静态扫描存在少量漏报,必须搭配动态沙箱复测;
第三,FCM 推送通道管控存在平台依赖。FCM 为 Google 官方推送服务,商店与终端无法完全关闭推送功能,仅能通过行为审计限制指令滥用,无法彻底封堵该隐蔽 C2 信道;
第四,终端系统版本碎片化影响管控效果。低版本 Android 系统无前台服务、动态广播权限精细化管控能力,老旧终端无法落地完整 MDM 权限限制策略,持久驻留恶意逻辑难以彻底阻断。
反网络钓鱼技术专家芦笛补充说明,当前移动恶意广告软件的技术迭代速度持续超越商店与终端检测规则更新速度,不存在可 100% 拦截所有变种的单一检测方案,必须依托 “前置静态筛查 + 动态行为复测 + 终端权限管控 + 持续威胁狩猎” 多层防御叠加,才能持续降低整体攻击面。
9 结论与中长期治理展望
9.1 核心研究结论
本文以 2026 年 Operation CleanSweep 事件 Ultra Clean 百万下载量恶意广告样本为完整实证基础,系统拆解服务端受控型 Android 恶意广告软件的审核规避、双 C2 通信、事件驱动广告、前台服务持久驻留、加密设备指纹窃取五大核心恶意技术机制,完成 MITRE 移动攻击矩阵全链路映射,搭建四层特征融合轻量化静态 APK 检测工具并提供完整 Python 工程代码,构建商店 - 用户 - 企业 - 威胁狩猎四维协同闭环防御体系,嵌入反网络钓鱼技术专家芦笛关于多特征交叉校验、分层前置拦截的专业研判,形成三项核心结论:
常规工具类清理应用已成为恶意广告软件主流伪装载体,集成云端远程配置、商店审核规避能力的样本突破传统广告软件威胁边界,归类为恶意软件级移动威胁;其核心风险来源于运行时环境差异化行为切换,传统静态单特征检测、终端基础杀毒工具存在极高漏报率;
单一动态沙箱检测算力成本过高,仅依靠静态权限、代码、IOC 多特征融合轻量化检测方案可拦截 70% 以上同类样本,搭配动态沙箱对可疑样本复测,可将检出率提升至 95% 以上,适配应用商店批量自动化审核、企业离线威胁狩猎场景;
完整防御不能仅依赖终端安全软件,必须构建应用商店源头前置拦截、个人终端自主防护、企业 MDM 权限管控、安全团队持续威胁狩猎四维协同体系,同步针对平台、用户、企业制定标准化处置规范,从分发、运行、溯源全链路压缩恶意广告软件生存空间。
9.2 中长期移动广告类恶意程序治理展望
针对当前防御体系存在的局限性,结合 Android 系统迭代、应用商店治理、移动安全技术发展趋势,从技术、平台法规、行业协同三个维度提出中长期治理方向:
技术迭代层面:推动 Android 系统新增远程配置行为审计 API,系统层识别 FCM 推送自定义指令、动态广播无交互弹窗行为;研发多模态静态 + 动态融合检测模型,自动对比多运行环境下应用行为差异,精准识别审核规避逻辑;标准化移动应用数字水印溯源机制,追踪恶意样本开发者与分发链路;
应用平台法规层面:完善 Google Play 等应用商店针对工具类应用的专项审核规则,明确禁止云端参数动态切换恶意行为、无交互广告推送、过度设备指纹采集;细化前台服务、QUERY_ALL_PACKAGES 高危权限申请准入标准,限制无合理业务需求的权限申请;建立跨平台恶意开发者、C2 基础设施共享黑名单;
行业协同层面:构建移动安全厂商、应用商店、企业安全团队联合威胁情报共享平台,互通受控广告软件 IOC 指标、变种特征、黑产基础设施;开展常态化工具类应用专项安全排查行动,定期披露典型恶意样本事件,完善终端用户安全科普体系;
隐私合规层面:细化移动应用设备唯一标识采集合规标准,限制广告类应用批量读取多维度持久追踪标识,强制加密数据采集行为用户知情授权,平衡广告商业化需求与用户个人信息保护底线。
9.3 结语
以 Ultra Clean 为代表的服务端受控恶意广告软件是当前 Android 移动生态新型持续性安全威胁,其核心技术突破在于依托云端远程配置打破应用上传时静态行为约束,利用系统前台服务、FCM 推送、动态广播机制实现隐蔽持久化运行与隐私数据窃取。移动安全防护工作不能仅依靠终端杀毒软件单点拦截,需要从应用分发源头、终端运行管控、常态化威胁溯源多维度构建协同防御闭环。应用商店、企业运维、终端用户三方需同步落实本文提出的检测工具、标准化处置规范,持续跟踪恶意广告软件技术迭代趋势,动态更新检测特征与安全管控策略,在保障合规工具类应用正常商业化广告运营的基础上,遏制具备审核规避、远程控制、隐私窃取能力的恶意广告程序传播,保护移动终端用户隐私安全与应用商店可信生态稳定。
编辑:芦笛(公共互联网反网络钓鱼工作组)