AccessibilityService恶意利用攻击
一.AccessibilityService功能分析
AccessibilityService 是Android系统为了帮助提高残障用户体验而设计的一种辅助功能服务。它允许应用监控系统界面变化和用户交互,从而实现辅助操作,比如为视障人士朗读界面、自动点击等。
1. 主要功能与权限
监控界面变化:能监听窗口内容变化、焦点变化、控件被点击、滑动等各类事件。
发现界面元素:可遍历当前界面的所有UI元素(View层次结构)。
模拟交互操作:
执行点击、滑动、输入文本等操作接口(API >= 18)。
与系统层深度结合:无需Root,即可自动操作第三方甚至系统应用。
2. 典型应用场景
无障碍辅助工具:如TalkBack、屏幕阅读、手势控制。
自动化工具:如自动抢红包、自动填表等。
手机助手类App:自动跳过广告,防骚扰电话等。
二.Accessibility被恶意软件滥用案例
由于其强大的“监听+操作”能力,恶意软件经常借助AccessibilityService获取用户隐私或自动完成恶意操作:
窃取隐私:截获验证码、读取聊天内容等。
模拟点击:代替用户点击广告,甚至自动点击支付确认。
劫持操作和安装足控:替用户静默安装其他恶意App,关闭杀毒软件等。
辅助权限提升:与应用挂钩绕过权限弹窗等安全限制。
典型现实案例
安卓“隐私窃取App”假借无障碍服务自动获取短信验证码,用于盗号。
流氓推广App自动启动、点击广告、后台自动授权。
三.AccessibilityService恶意利用防范最佳实践
要防范AccessibilityService被恶意滥用,需从系统、开发者、用户三方面协同管控:
1. 系统/ROM级防护
权限引导:系统安装时需用户主动进入设置明确授权,无静默赋权。
权限分级细化:安卓8.0+已将无障碍权限单独管理,申请须弹窗警示。
行为监测与告警:检测AccessibilityService尝试自动跳转、发短信、后台启动等敏感行为及时报警。
禁止部分高危API调用:如非系统预装应用禁止静默操作支付、输入敏感信息等。
2. 应用开发者防护
定期检测无障碍服务调用者:如在输入框验证码等关键页面,通过
AccessibilityManager
检测有无异常无障碍服务激活,提示用户关闭。切分关键信息:输入界面采用图片验证码或虚拟键盘,规避UI树遍历和自动输入。
操作行为“行为验证”:增加二次确认、冷却等反自动操作机制。
SDK集成审核:研发、上架前严格排查相关SDK模块调用无障碍API的合理性。
3. 用户防护建议
只授权可信App使用无障碍服务:如系统推荐、主流厂商App。
定期检查辅助功能授权记录,发现可疑App及时禁用无障碍权限/卸载。
关注权限弹窗内容,不随意开启与无障碍相关的引导/辅助功能。
不要在电子设备上存储助记词! 一定要避免将助记词保存在手机册、浏览器或云端中。
警惕应用程序要求输入助记词! 任何要求你输入助记词的应用都可能是骗局,务必提高警惕,避免上当。
采用离线存储方式 推荐使用硬件钱包离线存储,或将助记词抄写在纸上、助记词板上,并保存在安全的场所。
四.趋势与参考
新版安卓每次启动AccessibilityService均有显著警告提示,并支持一键查看授权App,提高用户感知。
反诈、金融支付App均已针对Accessibility进行专项风控,加大防护力度。
五.最新案例
表现
作为一种先进的银行木马,Crocodilus可以绕过很多安全检测,具备多种设备接管和数据窃取的功能。 在初始感染阶段,Crocodilus可以绕过 Android 13+ 的安全限制,在目标设备上进行安装。而一旦安装成功,它会请求启用 Android 辅助功能服务,获得更深层次的设备控制权限。
初始侵入后,一旦获得辅助功能权限,Crocodilus 便会连接 C2 服务器,接收攻击指令,远程操控受害者设备。 核心攻击手法:覆盖层攻击! 当受害者启动银行或加密钱包 App,Crocodilus 会立刻在屏幕上覆盖一个伪造的登录界面,骗取用户输入账号密码或 PIN 码,并将这些信息发送回黑客的服务器
惯用伎俩
一旦受害者输入密码/PIN,这些覆盖层会弹出一条警告“请在 12 小时内前往设置备份您的钱包密钥,否则应用将被重置,您可能会失去对钱包的访问权限。” 这正是利用了受害者的恐慌心理,诱导他们主动泄露敏感信息,从而让攻击者彻底控制钱包 。
扩展
远程控制设备攻击的其他手法
监控所有可访问性事件 Crocodilus 侵入设备后,会记录屏幕上显示的所有文本,精准捕获密钥、钱包信息等敏感数据,让受害者在不知不觉间泄露关键信息。
窃取 OTP 代码 Crocodilus 还能监控Google Authenticator(谷歌身份验证器),自动读取并窃取一次性验证码(OTP),让黑客绕过双重验证(2FA)直接控制账户。换句话说,即使用户启用了 2FA 保护,仍然有被盗的风险