每次打完电话就弹出广告?你的Android手机可能被安装了"挂羊头卖狗肉"的诈骗应用

每次打完电话就弹出广告?你的Android手机可能被安装了"挂羊头卖狗肉"的诈骗应用
Diebug每次打完电话就弹出广告?你的Android手机可能被安装了”挂羊头卖狗肉”的诈骗应用
想象一下:你挂完一个商务电话,正准备打开日历查看下一个会议——屏幕上毫无预兆地弹出了一整页广告。你关掉它,再过十分钟接完另一个电话,同样的广告又回来了。
你打开最近使用的应用列表想看看是谁在弹广告——但什么都没有。没有可疑的应用进程,没有你能对号入座的App图标。广告的来源消失了。
这不是一个bug。这是一种精心设计的广告欺诈机制——而且源头是一个你主动从Google Play下载的、看起来完全无辜的”实用工具”。
攻击机制:一个完全合法的功能被武器化
第一步:伪装成无害的工具应用
攻击的起点是一个Google Play中的”实用工具”——日历App、闹钟App、记事本App、二维码扫描器。这些应用本身确实提供它们表面承诺的功能,这也是它们能通过Google Play审核的关键原因。
但它们在提供表面功能的同时,还在静默运行着一个额外的子系统:一个在特定事件触发后呈现广告的脚本。
第二步:获取叠加层(Overlay)权限
这是整个攻击链中最关键的一步。
叠加层权限(SYSTEM_ALERT_WINDOW)是Android系统中一个特殊的权限——它允许应用在其他应用的顶部绘制内容。这个权限的设计初衷是合法的:悬浮窗、屏幕截图工具、聊天头像(Facebook Messenger的泡泡头像)都需要这个权限。
但这个权限不能通过安装时的标准弹窗来获取——它是一种”特殊权限”,需要用户主动进入系统设置中逐项开启。攻击性的工具应用通常会这样引导用户:
- 弹出一个看起来是”功能引导”的对话框,暗示”开启这个权限才能使用完整功能”
- 将”进入设置开启悬浮窗权限”伪装成正常的使用流程
- 叠加层权限的描述文字对大多数用户来说难以理解——他们不会将其与”恶意弹广告”建立联系
第三步:监听通话状态,触发出栈广告
一旦获得了叠加层权限,这个应用就拥有了在任何时刻、任何界面上弹窗的能力。
触发机制非常巧妙:电话通话结束后的状态变更。Android提供了一个系统广播——TelephonyManager状态从”通话中”变为”空闲”——攻击应用只要注册这个广播,就能精确地在挂断电话后立即弹窗。
选择这个时机的设计非常精妙:
- 上下文错位:用户很难把”电话结束”和”那个三周前下载的日历App”联系到一起
- 归因困难:因为广告在几毫秒内弹出,用户看到的正好是从电话界面切换到桌面时的过渡画面,自然以为是系统广告
- 难以追踪:这些工具应用不会出现在最近使用的应用列表中(因为它们没有在前台打开新的Activity),用户无法通过在最近应用里查找来定位罪魁祸首
风险影响分析
对普通用户:表面上是骚扰,但风险远不止于此
这些应用目前的行为模式主要集中在广告弹窗——对用户来说是烦人的骚扰,但不算是直接的恶意数据窃取。但这个判断基于一个危险的假设:攻击者今天只在弹广告,明天会不会做更危险的事?
拥有叠加层权限的应用可以做的不只是弹广告:
- 点击劫持(Tapjacking):在银行App的上方覆盖一个透明层,记录用户点击的位置——推断密码
- 窗口钓鱼:在真正的登录页面之上绘制一个完全相同但归攻击者所有的大输入框——用户看到的是真实App的背景,但在假输入框中输入的是真正的密码
- 权限叠加:在系统权限确认对话框上叠加一个假的确认按钮——用户以为自己在”允许日历访问”,实际在”允许读取联系人”
任何被赋予了不应该有的权限的应用,都是一个潜在的威胁载体。今天弹广告,明天可能就在偷你的验证码。
对企业安全
企业场景下的威胁更直接:
- 员工的Android手机上安装了这些应用后,在通话后弹出的广告可能包含企业内部的品牌元素(伪装成内部系统的通知)
- 如果攻击应用利用了点击劫持,可能在企业App的登录界面上获取到员工的凭证
- BYOD(自带设备)策略中,这类应用的检测和清除难度比传统恶意软件更高
对Google Play生态的信任侵蚀
这些应用能通过Google Play审核的事实——它们在审核期间完全看不出来有恶意行为——在持续侵蚀用户对官方应用商店的信任。当用户发现”连Google Play都不能信任”时,他们要么放弃安全检查(无力改变),要么被推向第三方应用商店(更不安全)。
检测和清除方法
第一步:检查叠加层权限
这是定位问题最快的方法。进入Android设置:
设置 → 应用 → 特殊应用权限 → 在其他应用上层显示内容(Display over other apps)
仔细检查这个列表中每一个被授权了该权限的应用。问自己:
- 这个应用有合理的理由需要在其他应用上层显示内容吗?(比如聊天App的悬浮头像——合理;一个闹钟App——不合理)
- 这个应用是我最近一个月内安装的吗?
- 我不记得主动授予这个权限——它是如何获得这个权限的?
任何在”日历”、”闹钟”、”笔记”、”二维码扫描”这类类别中并且拥有这个权限的应用,都值得高度警惕。
第二步:检查通话记录权限
进入设置:
设置 → 应用 → 特殊应用权限 → 通话记录(Phone)
查看哪些应用有权限读取你的通话状态。一堆工具类应用通常没有理由需要读取你的通话记录。
第三步:按安装时间排序查看最近安装的应用
设置 → 应用 → 全部应用 → 排序方式:最后更新/安装时间
当广告开始出现的时间,与某个应用的安装时间吻合,就是强有力的线索。
第四步:卸载并重启
找到了罪魁祸首后,直接卸载。卸载后重启手机,确保所有残留进程完全终止。重启后打一个测试电话(可以打给自己的语音信箱),确认广告不再出现。
预防措施
安装应用前做的三件事
- 看权限:在Play商店的应用详情页往下滑,找到”应用权限”区域。一个闹钟App需要读取通话记录/获取安装应用列表/在其他应用上层显示内容——不装
- 看评价:没有完美的应用,但如果评价里有人提到”广告””诈骗””弹窗”,多信一点
- 看开发者:点击开发者名称,看看他们还发布了什么应用。如果开发者有30个看起来类似的功能性应用但每个都很轻量——大概率是广告网络的操作
定期做的一件事
每两个月花五分钟做一次”权限巡检”:打开特殊应用权限设置,逐一审查。你可能会发现半年前给某个应用开的权限现在已经没有存在的理由了。
AISOC视角:移动设备恶意应用在企业安全中的盲区
在大多数企业的安全运营体系中,移动设备是一个显著的盲区。不像PC上有EDR(端点检测和响应)覆盖,ESM(企业移动管理)通常只能做到设备注册和远程擦除,对应用行为的深度检测几乎是空白的。
为什么这类应用难被传统安全方案检测到
- 不是传统恶意软件:它们不执行shellcode,不进行进程注入,不使用已知的C2通信模式。它们用的是完全合法的Android API——叠加层、通话状态广播——这两种能力都是系统设计给的
- 沙箱检测绕过:Google Play的自动化审核系统会将应用在沙箱中运行,但沙箱中不会有真实的电话呼入事件,恶意行为的触发条件永远不满足
- 延迟激活:很多这类应用在安装后会静默数天甚至数周才激活,这使得用户更难追溯到”问题应用 = 最近安装的应用”这个关联
防御建议
SOC团队在移动设备安全方面可以考虑的策略:
- 检测能力建设:对Android设备部署MTD(移动威胁检测)解决方案——Lookout、Zimperium、Microsoft Defender for Endpoint的移动模块等
- 权限基线:在MDM策略中设置”高风险权限”的安装前审批——包括叠加层权限和通话记录权限。当员工尝试安装请求这些权限的应用时,IT管理员需要审批
- 自动化合规检查:定期扫描所有注册设备的”特殊应用权限”列表,对非预期的授权发出告警
总结
这类利用叠加层权限的Android广告诈骗应用,最危险的地方恰恰是它们看起来不够危险——没有屏幕锁定的勒索界面,没有明显的病毒行为,没有被Google Play自动检测为恶意。
但这种”低调的恶意”恰恰是最持久的——用户可能容忍了几个月的广告骚扰都没有定位问题来源,而在这段时间里,一个拥有你通话记录和屏幕叠加权限的应用一直在后台运行。
核心机制:伪装工具应用 → 引导用户开启叠加层权限 → 监听通话状态 → 通话结束弹广告 → 难以追踪来源
核心检测方法:
- 检查”在其他应用上层显示内容”权限列表
- 检查”通话记录”权限列表
- 按安装时间排序查找与广告出现时间吻合的应用
管理建议:
- 安装前:检查权限、评价和开发者信息
- 安装后:每两个月做一次权限巡检
- 企业中:通过MDM策略限制高风险权限的安装,对叠加层和通话权限实施审批制
- 安全培训:向员工普及”特殊权限”的概念——它不是”关了某个功能就不能用”,而是”开了就给了应用在你所有界面上做任何事的能力”
