上周四晚上十一点,威胁情报面板弹出一条新样本告警,投递到公共沙箱的是一个名为Oblivion的Android安装包。我一开始以为又是某个换皮远控,随手把包丢进分析队列,直到第二天跑完动静分析,回到群里看到一堆人在讨论一个“300美元就能买到”的新款Android RAT,我才意识到就是它。这个叫Oblivion的东西,宣传卖点很粗暴:自动权限绕过、图标隐藏、远程控制一条龙,配合相对便宜的价格,正在把移动远控的门槛进一步拉低。这篇东西我想以从业者的身份把它的技术拆解一遍,同时把“300美元接管手机”这个说法里的水分挤一挤。文章会从样本特征、黑产定价逻辑、权限绕过原理、隐蔽控制手法和防御对策几个角度展开。无论你是移动安全工程师、企业管理员,还是单纯关心自己安卓手机安全性的普通用户,这篇文章都会给你一套可复用的判断标准和防护动作。
1. 从公共沙箱里的那条告警说起:Oblivion在RAT家族里是什么位置
1.1 一句话定义,以及它和传统远控的坐标差异
广义上的Android远控,我大致分成三类:传统RAT、银行木马、以及现在越来越流行的“综合型移动控制工具”。传统RAT偏重信息收集,常驻后台,偷联系人、短信、通话记录,翻文件;银行木马则把精力放在金融类App上,用覆盖攻击和界面劫持骗账号密码。Oblivion不属于其中任何一类,它更像把两者的能力缝到了一起,再叠加上一套自动化授权引擎。
从静态代码看,这个样本的核心模块并不复杂,复杂的是它把这些旧手法编排成了一个更完整的流水线。比如它内置了无障碍服务监听、节点查找与自动点击逻辑,还会在拿到辅助功能权限之后,把短信、联系人、地理位置、通话记录这些危险权限一次性“顺手”通过系统弹窗授权。你很难用“技术领先”来形容它,但你会很直观地感觉到:一个对Android内部机制不怎么了解的人,拿到这套东西之后也能完成一次相当专业的攻击。
所以我会把Oblivion定义为:一个面向低门槛攻击者的商业化Android综合远控。它解决的主要问题是“如何让不会写代码的人,也能完成从投递、授权、隐蔽到窃取的全链路操作”。对个人用户来说,它比任何一个新出现的零日漏洞都更值得警惕,因为零日漏洞需要定向和成本,而这种商品化工具走的是量。
1.2 横向对比:Oblivion与常见Android远控的参数差异
为了说清楚它和上一代远控的差距,我拉了一张对比表,维度不算全面,但能覆盖日常分析最关注的点:
| 能力项 | 传统RAT | 银行木马 | Oblivion类综合远控 |
|---|---|---|---|
| 窃取联系人/短信 | 支持 | 部分支持 | 支持 |
| 金融App覆盖攻击 | 少见 | 重点能力 | 支持 |
| 辅助功能自动化授权 | 不支持 | 少数支持 | 核心卖点 |
| 图标隐藏 | 部分支持 | 支持 | 支持 |
| 设备管理器防卸载 | 一般 | 支持 | 强支持 |
| C2通信伪装 | 弱 | 中 | 较强 |
| 一键出包/面板管理 | 少见 | 部分支持 | 标配 |
| 使用门槛 | 高 | 中 | 低 |
这张表能看出一个趋势:威胁能力正在从“单一功能”走向“全家桶”。更值得注意的不是它多了一个图标隐藏,而是“辅助功能自动化授权”和“面板管理”这两个东西被放到了一起。以前要让受害者授权无障碍服务,需要编写大量交互逻辑,还要处理各种厂商ROM的差异;现在面板上点一下,样本自己会去“引导”受害者完成。这大大缩短了攻击者在运营阶段的依赖。
1.3 所谓“代际突破”,突破的是门槛不是技术
圈子里讨论Oblivion时用了不少夸张词,比如“横空出世”“下一代远控”。我个人认为“代际突破”这个说法,落在技术上有失偏颇,落在威胁生态上倒是成立的。代码层面它没有使用未知漏洞,核心还是那套无障碍服务、覆盖窗口、设备管理器的组合拳;真正的突破在于把攻击能力产品化,并且给这套产品定了一个大多数人负担得起的价格。
以前一个黑产新人想搞移动远控,要自己看开源代码、配VPS、写面板,还要能处理不同Android版本和厂商ROM的兼容性问题,光是过这一关就能劝退大半人。现在冒出来一个三百美元的全家桶,包含生成器、面板、免杀更新和一些运营建议,等于把过去需要半年的学习成本压缩成“付款后照文档操作”。所以我会说,Oblivion这类工具真正改变的是攻击者的门槛,而不是Android平台的安全机制本身。理解这一点很重要,它决定了我们后面所有防护思路的优先级。
2. 300美元定价背后的黑产商业逻辑:便宜不等于低端
2.1 为什么恰好是300美元
先从价格说起。威胁情报圈子里,高端定制远控卖到几千美元并不稀奇,低端套件也常见在几十到两百美元之间。300美元正好落在一个微妙的价位:比垃圾脚本贵,比定制服务便宜,属于可以“冲动下单”的范畴。对这个价位感兴趣的人,很多并不是专业黑产团伙,而是刚刚入行、想试试水的小角色。
这背后其实是典型的消费级软件定价策略。卖家把Oblivion包装成“开箱即用”的解决方案,而不是单纯卖代码。300美元换回来的是整个运营闭环:恶意APK生成、受害者管理面板、指令下发、日志回传,甚至还有客服答疑。买家买完之后不需要再找人帮忙部署,服务器的配置流程也被简化成“填个地址生成APK”这么简单。价格锚点在这里起到了很大作用——跟动辄上千美元的定制服务比,300美元会让人觉得风险低、回本快。
但便宜不等于低端。从我们拿到的样本看,代码做过混淆,字符串做了加密,部分关键逻辑在云端或运行期动态解密。至少在自己动手做免杀这件事上,作者是用了心的,否则这款产品也不可能在渠道里持续被讨论。
2.2 商品套件里到底包含哪些模块
把商品拆开看,大致有这么几个模块:
- APK生成器:输入C2地址、面板地址、恶意App伪装名称,自动生成一个加固后的安装包。
- 投递模板:内置了“系统工具”“电池优化”“阅读器”等伪装场景,也会引导使用者修改图标和包名。
- 核心载荷:真正干活的DEX,运行时解密,包含辅助功能滥用、短信窃取、屏幕录制、设备管理器接管等逻辑。
- 控制面板:基于网页的受害者管理界面,能看到在线状态、通知记录,能下发指令。
- 客户支持:这是最麻烦的,意味着这款工具在持续维护,作者会根据杀软查杀情况更新特征码。
控制面板的逻辑值得多说一句。它不只是显示“谁在线”,还能展示受害者手机的型号、Android版本、已授权权限列表。攻击者可以针对不同机型下不同指令,比如对小米系机型走A方案,对其他机型走B方案。这种精细度在过去很难想象,因为传统远控通常只给一个简洁的指令框。
2.3 隐藏成本:服务器、免杀迭代与投递渠道
300美元这个数字看似不贵,但“总拥有成本”并不仅仅是买工具的钱。买家拿到软件之后,至少要准备一台服务器用来跑C2和控制面板,还要注册一个看着不那么可疑的域名。服务器和域名的费用按月算不贵,但一旦被安全厂商封堵,重新上线的成本就会累积。
更花钱的地方在于免杀迭代。主流杀毒引擎和手机厂商自带的安全引擎都会给这类样本建特征,一旦样本被标记,作者就需要更新加密壳或混淆方式,然后重新出包。有些渠道是按“订阅制”卖的,一次买断的版本则往往不带后续更新,过几周就可能失效。对于攻击者来说,这部分的持续投入才是大头。
还有一块隐藏成本是投递渠道。你有了工具和服务器,还得想办法把APK送到受害者手机上。常见的做法是发钓鱼短信、在论坛贴吧发链接、伪装成仓库或下载站资源。这些都需要被攻击者自己运营,哪怕有各种“一键分发”服务配合,也免不了被系统强制校验、被用户举报。300美元买来的是“进攻工具”,但进攻机会还得自己制造。
3. 自动化权限绕过的核心机理:无障碍服务不只是辅助功能
3.1 Android权限模型留下的两根“拐杖”
Android 6.0之后,危险权限要在运行时弹窗授权,用户至少会看到一次“允许/拒绝”的界面。这套机制在防普通恶意软件时是有效的,但它没法覆盖两类特殊入口:无障碍服务和设备管理器权限。这两类权限不走标准运行时权限弹窗,必须在系统设置里手动开启,因此也更容易被社会工程利用。
无障碍服务本来就是给视力障碍用户设计的一套辅助接口,能让应用读到屏幕上显示的内容、模拟用户点击、监听窗口变化。它拥有解释“屏幕上在发生什么”的能力,也拥有触发“屏幕上发生了什么”的能力,这两者一组合,基本就是完整的人机交互操作权限。另一个“拐杖”是悬浮窗权限,恶意软件拿到它之后,可以在任何应用之上叠加伪造界面,把受害者的操作劫持到自己的逻辑里。Oblivion把这两根“拐杖”绑到了一起。
安卓系统对无障碍服务的限制并不少,比如它要求必须由用户在设置列表中手动开启。挑战在于,“手动开启”这件事本身可以被诱导,而且一旦开启,恶意软件就能把后续授权流程“自动化”掉。这是问题的核心:系统用一道用户确认的锁防住了程序直接开启无障碍服务,却没有考虑到用户自己会被人骗着去开门。
3.2 入口:无障碍服务是如何被“诱导”授权的
从样本行为看,Oblivion会在启动后弹出一个伪装成“安全检测”或“系统更新”的界面,画面中央放着一个按钮,文案大概意思是“需要启用辅助服务才能继续”。点击按钮后,系统跳转到辅助功能设置页,这时候恶意App是无能为力的,必须由用户拨动开关。
所以你会看到很多攻击者花大力气做“话术”而不是做“漏洞”。Oblivion的伪装界面会故意把无障碍服务和“信任该应用”“保证系统稳定运行”混在一起。很多用户并不清楚什么是辅助功能,看到系统设置里出现这个服务的名字,就直接开启了。这个步骤只要有一个人完成,后面整个授权链就打开了。
一旦辅助功能开关打开,系统会立即回调恶意服务的onCreate和onAccessibilityEvent。恶意服务开始接收全局事件,包括窗口状态变化、点击位置、文本变更、通知栏变化,等等。攻击者不需要再让用户手动去操作任何东西,样本自己就能完成剩下的大部分工作。
3.3 拿到无障碍权限之后:自动点击授权和动态劫持
获取无障碍权限之后,样本就具备了一个通用能力:监听系统中弹出的任何窗口,找到“允许”“确定”“下一步”这类按钮,并自动执行点击。这相当于用户自己在屏幕上操作,但动作是由恶意代码发出的。
实际的自动化授权可以这样描述:样本先发起短信或定位权限的申请请求,系统弹出权限对话框;无障碍服务监听到窗口状态变化,遍历当前节点的文本内容,找到标记为“允许”或者“ALLOW”的按钮,调用performClick()完成点击。一个权限通过后,它继续申请下一个权限,整个过程不需要任何人参与。而且为了应对不同手机厂商的权限弹窗样式,样本通常会给文本匹配规则做多语言和关键词冗余,匹配不到时还可以退回到坐标点击模式。
“动态劫持”则更为隐蔽。恶意应用拿到悬浮窗权限后,能在目标App启动时绘制一层透明或接近真实的覆盖层。比如把银行App的登录界面覆盖成相似的钓鱼页面,用户输入账号密码时,数据直接进入攻击者的后门。这种覆盖攻击不是新玩意,但和自动化授权组合在一起,攻击效率就完全是另一个量级。
3.4 第二道保险:设备管理器权限与防卸载
搞定无障碍服务之后,样本通常还会尝试激活设备管理器权限。这一步仍然可以让无障碍服务自动完成:系统弹出“激活设备管理器”的确认框,恶意代码自动点击“激活”。刚激活的那几十毫秒,用户可能正盯着屏幕,但往往来不及反应。
设备管理器权限给攻击者提供了三个额外能力:重新锁屏、修改锁屏密码、远程擦除数据。Oblivion也把“防卸载”绑定在这个机制上,用户想进入设置卸载应用时,恶意代码可以立刻弹出叠加界面锁住设置页面,或者直接执行锁屏操作,把用户挡在外面。说白了,只要能拿到设备管理器,受害者就很难进入系统设置去撤销权限。
“防卸载”并不是绝对无敌的,通过安全模式或专业工具仍然可以清理,但对普通用户来说,这种阻力已经足够大。很多受害者遇到手机被锁屏、密码被改的情况,第一反应是刷机或恢复出厂,而不会去分析到底是什么App干的。
3.5 为什么官方安全机制对这种玩法反应慢半拍
从官方的角度看,无障碍服务和设备管理器都是合法的系统机制,系统无法简单地把它们一刀切禁掉。Android近几个版本确实加强了对辅助功能滥用的约束,比如限制一键重启辅助服务的设置、在用户开启高危服务时弹出额外警告,但攻击者只需要换个话术,让受害者确认警告弹窗,就能绕过所有提醒。
另外,这类样本大量通过“侧载”进入设备,也就是绕过官方应用商店的安装来源。官方安全组件能把检查范围覆盖到商店内应用,却很难顾及用户在浏览器里下载的APK。样本又做了多轮加固混淆,静态检测引擎在未运行前很难看出真实行为。整个检测链条里,任何一个环节出现延迟,样本都已经完成了设备接管。
这就是为什么我不太建议把希望完全寄托在“安卓会自动拦截”上。平台层的努力值得肯定,但威胁更愿意利用人的疏忽和生态的开放。防护的重点必须落到用户行为和企业策略上。
4. 隐蔽控制实战拆解:图标隐藏、流量伪装与无人值守
4.1 安装后的“隐身术”细节
授权完成后的第一步,样本通常会把自己从桌面上藏起来。做法很简单:通过包管理接口把MainActivity组件设置为不可用,这样系统启动器中就再也找不到这个App的图标。受害者如果不去应用列表里翻,基本不会发现刚才安装的“系统工具”已经消失。
这还不够。样本发起启动的Activity时,会带上FLAG_EXCLUDE_FROM_RECENTS标志,从最近任务列表里也把自己移除。于是受害者既不能在桌面看到它,也不能在最近的App列表里瞥见它。能发现它的地方只剩设置里的应用管理、权限管理和无障碍列表,可大多数用户根本不会主动检查这几个页面。
更隐蔽的位置在存储权限和通知栏权限:样本可能长期在后台监听通知,读取验证码短信后把通知标记为已读;也可能申请位置权限,周期性上报受害者轨迹。这些动作对用户来说没有任何可见表现,系统电池统计里的耗电项又很容易被误认为是“正常后台”,隐蔽性很强。
4.2 C2通信信道的多层伪装
隐蔽控制离不开稳定的控制信道。Oblivion的C2通信不会用一个裸IP频繁连,它会在客户端和服务端之间协商出看似正常的HTTPS流量。请求走443端口,证书可以配置成自签或普通域名的证书,从网络侧观察像是一次普通的业务接口调用。
样本还会在请求里做二次加密,通常是自定义密钥加密后的JSON体。密钥由设备信息和时间戳动态生成,同一时间不同设备密文各不相同。这意味着即使抓到了流量,短时间内也不好直接还原指令内容。心跳包也会做噪音处理:有的样本会随机延迟到30到60秒一次,有的会混合多条无意义请求来稀释检测特征。
部分版本还会借用公共即时通讯服务作为“指令下发的信标”,客户端周期性去拉取某个公开频道里的加密短消息。这样攻击者省去了自建服务器的费用,也把流量混入正常的通讯软件流量中。对有网络检测能力的企业来说,反而是个麻烦:就算识别出设备在和公共即时通讯服务通信,也很难判断这到底是正常用户操作还是远控信标。
4.3 屏幕内容抓取与模拟点击的实战危害
“看屏幕”和“点屏幕”是这类远控最恐怖的两个能力。XPath式的辅助功能节点遍历可以让恶意代码读取当前界面上的文本内容,比如金融App里的余额、转账确认页的收款人信息。如果目标应用把密码框设置成明文模式,恶意代码甚至不需要截图就能直接拿到密码。
模拟点击的用途更广泛:它可以替攻击者在受害者手中完成“确认购买”“确认订阅”“授权转账”等动作。很多App用“长按确认”或“滑动画拼图”来防机器人,但这些交互在真实设备里由无障碍服务执行时,会被系统当作真实用户操作,校验几乎全部通过。
屏幕抓取通常走两条路:一是无障碍接口,文本节点和触控行为都能拿到;二是媒体录制接口,只要用户授权了屏幕录制,恶意代码就能把整个操作过程录成视频。Oblivion的做法是两者都用,抓不到图像就抓文本,文本不全时就用视频补位。对攻击者来说,一台已经授权的手机基本等同于一台有人看着你屏幕的远程桌面的“受害者端”。
4.4 无人值守转账:一个典型的攻击链路
把上面这些能力串起来,就能理解为什么很多人会把它和“接管手机”画等号。典型链路是这样的:受害者无意中通过聊天链接安装了伪装成办公工具的APK,并顺手开启了无障碍服务。攻击者没有马上动手,而是先收集联系人、短信和已安装应用列表,确认目标手机里装了哪些银行或支付类App。
等到深夜,受害者手机可能正在充电,屏幕也没锁。C2面板下发指令,恶意代码启动目标支付应用,读取登录账号和密码。如果应用需要短信验证码,样本早已在后台同步读取短信;如果应用需要人脸或数字证书,样本会通过模拟点击触发“下次再录”或“使用备用验证方式”。最后攻击者把转账金额改成小额,通过无障碍服务自动完成所有的点击确认。
整个过程中,受害者可能在看电视或已经睡着,手机只会偶尔亮一下。第二天早上醒来看到的,是银行发来的转账通知和一堆被标记为已读的验证码短信。这就是所谓“无人值守”的真正含义,攻击者要的不是在手机上完成一次即时的按键操作,而是利用手机代替受害者完成业务系统里所有需要真人参与的环节。
5. 我在隔离环境里复现的一次“接管手机”实验
5.1 实验场景:模拟器、样本和隔离网络
为了验证标题里“接管手机”的描述到底几分真几分假,我在隔离环境里搭了一套最小实验。没有用真实手机,而是起了一个Android 9的模拟器,因为这类样本在低版本Android上的兼容性更好,也更容易观察权限弹窗的自动化过程。网络层面完全独立,C2地址指向我本地搭建的假控制端,避免内网设备被真实攻击影响。
样本来自一个威胁情报平台提交的脱壳版本,包名伪装成一个带有系统更新字样的工具。我在分析机上把样本装进模拟器,同时开着日志抓取和屏幕录制。整个过程严格记录每个事件的触发时间,后面复盘时能精确看到哪个操作是系统弹的,哪个操作是被恶意代码点掉的。
这里要说明一下,我的实验只复现了“授权辅助功能后”的行为,并没有诱导任何真实用户去开启服务。辅助功能开启这一步是我手动拨动的,因为自动绕过这一步没有实际意义,恶意代码无法在没有辅助功能的情况下凭空获得辅助功能。
5.2 复现链路:从授权到指令执行的完整记录
实验从授权辅助功能开始,记录结果如下:
- 第1秒:安装APK完成,桌面出现“系统更新”图标。
- 第4秒:打开应用,弹出全屏伪造界面,要求点击“开始安全检查”。
- 第15秒:点击后跳到系统辅助功能设置页,我手动打开恶意服务开关。
- 第28秒:恶意服务回调触发,同一个服务开始监听窗口变化。
- 第42秒:样本依次请求短信、定位、通讯录权限;每个系统权限弹窗弹出的1到3秒内,节点文本被匹配并自动点击“允许”。三条权限全部在约5秒内到账。
- 第90秒:桌面图标消失,应用从启动器和最近任务列表里同时隐藏。
- 第180秒:C2面板收到设备上线通知,能看到型号、系统版本和已授权限列表。
- 第300秒:我向该设备下发“读取通讯录”指令,约2秒后C2收到加密的通讯录数据包,解密后联系人列表完好导出。
之后我又依次测试了屏幕截图、短信转发、锁屏和远程卸载指令。锁屏指令生效最快,几乎毫秒级完成,设备直接进入了一个由攻击者设置的PIN码锁屏界面。这组时间线很清楚地说明了同一件事:一旦用户开启了辅助功能,剩下的所有“接管”动作都不再需要用户参与。
5.3 结果分析:“接管手机”这个说法要打几个折扣
先说结论:标题里的“接管手机”没有彻底说错,但要加两个限定词。“可以在已授权设备上,以用户身份完成绝大多数操作”这句是准确的;而“不接触设备即可任意控制设备”这句则过于夸张。模拟器和真机实验都说明,它没有拿到系统底层权限,也没有植入到系统分区,更做不到在重启后自动持久化到最底层。
具体来说,以下说法需要打折:
- 它不能跳过设备解锁密码。锁屏状态下能收到指令,但要在解锁后才能操作界面内容。
- 它不能直接读取受硬件隔离保护的内容,比如某些应用的安全键盘、硬件级Keystore里的密钥。
- 如果受害者发现异常并恢复出厂设置,恶意App会一并被清除(前提是没有额外的系统应用或Root持久化机制)。
- 它的“权限绕过”建立在用户已经授权辅助功能的基础上,所以本质上是“自动授权”,不是“零点击漏洞”。
但这并不意味着威胁可以小看。对一笔最终的银行转账来说,设备级验证码、应用锁、小额免密这些手段都挡不住一个已经拥有辅助功能权限的客户端。攻击者需要用户动手做的事情只有一件:打开那个无障碍开关。这恰恰是大量普通用户最容易做错的事。
6. 防御视角:普通用户、企业管理员、检测工程师各该怎么做
6.1 普通用户:三个五分钟内完成的自查动作
对普通用户来说,不需要去理解漏洞原理,只需要养成三个习惯:
第一,定期检查“无障碍服务”列表。打开系统设置,找到“无障碍”或“辅助功能”,看看里面有没有你不认识的应用在开启状态。凡是不是系统自带、也不是你明确知道用途的服务,一律关闭。这是阻断这类恶意软件的第一道闸门。
第二,检查“设备管理器应用”。在安全或密码设置中,查看设备管理器列表,每一条都要是自己认识的应用。对“系统工具”“清理大师”这类授权了一堆危险权限的App,直接移除并卸载。
第三,检查“通知访问权限”列表。远程远控想要读取验证码,往往依赖通知监听权限;一旦发现有不认识的应用在这里面,立即收回授权。
我还会额外建议:尽量不要在浏览器里点击任何来源不明的APK链接。即使你正在寻找某个软件,也应该去官方应用商店或官网下载,而不是从聊天群里拿安装包。很多人觉得“我没装没用的软件”,但这类样本的伪装名称往往是“工资查询”“办公审批”“网络优化”,用户会误以为它是工作必需品,然后顺手给了权限。
6.2 企业移动安全:策略侧和检测侧的双管齐下
企业环境比个人手机更复杂,因为一台被测设备可能同时连着企业邮箱、办公文档和即时通讯工具。移动设备一旦失陷,泄露的不只是个人信息,还可能成为进入内网的第二跳板。因此在策略层面,至少要管控三个点。
第一个点是禁止侧载。通过统一终端管理强制关闭“允许安装未知来源应用”的开关,或者至少限制只有在受信任的应用商店上方可安装。第二个点是限制高危权限。企业设备可以设置合规策略,禁止非白名单应用启用无障碍服务或设备管理器,如果检测到,立即从企业应用库中隔离设备访问权限。第三个点是高价值业务的多重验证。银行、财务系统可以推送到独立的硬件安全密钥或企业专用应用上,缩短移动端暴露面。
检测侧也要跟上。移动安全网关和端点产品能上报“安装来源”“辅助功能列表变化”“设备管理器变更”等事件。把这些事件接入现有安全信息与事件管理系统后,可以设置规则:同一个设备在短时间内新增多个高风险权限,则触发告警并要求重新认证。手动日志审核永远跟不上自动化恶意软件的节奏,规则自动化才是企业侧的稳定解药。
6.3 检测工程落地:基于行为特征与静态规则
做检测的人都知道,这种样本换壳很快,光靠特征码不可持续。比较实用的思路是把静态特征和行为信号结合起来,先用静态规则筛出可疑样本,再用行为规则确认是否真的在干坏事。
静态规则可以参考以下维度:是否声明了无障碍服务;无障碍服务的实现是否包含节点查找和自动点击;是否申请了悬浮窗权限;是否申请了设备管理器权限;是否调用了隐藏图标相关的包管理接口。单一维度都有大量正常应用会命中,但组合起来之后,命中范围会迅速缩小。下面给出一条规则示例,用来做初步分诊:
rule Android_A11y_Overlay_Abuse { meta: author = "某安全分析团队" description = "组合特征识别辅助功能滥用型远控,仅用于分诊" strings: $ax = "AccessibilityService" ascii $find = "findAccessibilityNodeInfosByText" ascii $click = "performClick" ascii $overlay = "TYPE_APPLICATION_OVERLAY" ascii $compset = "setComponentEnabledSetting" ascii condition: $ax and 2 of ($find, $click, $overlay) and $compset }行为侧,可以重点采集几个指标:无障碍服务回调事件里是否频繁出现窗口状态变化后的节点遍历;performClick调用是否与系统权限弹窗的出现时间高度重合;应用是否在获得辅助功能后的短时间窗口内申请了多个危险权限;网络层是否定期向低信誉域名或公共即时通讯服务发送心跳请求。把这些指标输入到行为检测模型里,就能有一个相对完整的判定框架。即便无法百分百命中,也足够把这类样本的风险等级提上来。
最后提一个我自己的习惯。每次拿到新样本,我都会先检查它的无障碍服务配置和启动入口,而不是着急脱壳。因为对移动远控来说,入口和授权路径往往决定整个攻防逻辑。多掌握这些路径,你才能在权限弹窗跳出来的时候,第一眼看出它到底是一个正常应用,还是暗地里准备接管你手机的可疑程序。