一种典型的安卓端剧本是这样的:用户点击钱包里的确认按钮,屏幕上弹出一个与真钱包样式一致的「二次确认」框,地址显示正确、金额显示正确,用户放心点了确认——但真钱包此刻在后台签下的,是另一笔被覆盖在同一位置的恶意交易。这类攻击不破解钱包、不挖漏洞,它只是用安卓的两项正规权限,在你眼前画了一层假屏幕。
被滥用的是两类权限。一类是「显示在其他应用上层」,也就是悬浮窗:拥有它的App可以在任何应用界面上绘制内容,于是可以精确复刻一个确认弹窗的字体、间距和按钮位置,用户点到的假「确认」,实际把点击事件放行给了下层真钱包里早已预填好的恶意交易。另一类是无障碍服务:为辅助功能设计的读屏与自动操作能力,被恶意软件用来读取屏幕上的一切文字、监控你打开了哪个App、甚至自动完成点击跳转。灰产版本常把自己伪装成钱包辅助工具、抢空投插件、桌面美化工具,安装时正经询问这两项权限,用户出于「总得给权限才能用」的惯性点了允许。
钱包用户的排查清单由此非常明确。打开系统设置,分别检查「显示在其他应用上层」和「无障碍」两个权限列表,逐项问一个问题:这个App需要这项能力吗?绝大多数钱包、交易所和浏览器根本不需要这两项权限——列表里挂着的东西越冷门,越要立刻撤销或卸载。再检查「辅助功能」「设备管理应用」「可访问性服务」的关联入口,卸载可疑应用前先记下包名留证。与iOS对照,安卓的暴露面更大:iOS上的描述文件与远程管理风险有独立路径,但系统层面不存在「任何应用可悬浮绘制到所有应用之上」的常规授权;安卓用户因此要把权限审计当成季度例行。
交易当场也有信号可看:弹窗动画与平时不一致、按钮位置偏移、字体渲染与系统风格违和、确认后有异常延迟;最重要的一条纪律与界面无关——无论弹窗显示什么,签名前核对的对象永远是合约地址、金额、接收方和授权额度这四项真实内容,任何「突然多出来的一条请求」「先签这个才能领」的引导,无论界面做得多真,取消优先。
怀疑中招时按顺序处置:立刻假定这台设备上的全部会话失陷,用另一台干净设备登录交易所和网页钱包,优先迁移动用的私钥对应资产并撤销可疑授权;之后处理病机本身——备份必要证据后卸载可疑应用、检查设备管理器与设备管理员权限、必要时恢复出厂;所有在失陷设备上登录过的账号改密并重绑验证器。最后一句给所有人:正规钱包不会要求悬浮窗和无障碍权限来完成转账,任何以「辅助确认」为名索要这两项权限的钱包相关工具,本身就是攻击信号。
把这套风险放回更大的图景里看:移动端资产安全的竞争从来不在密码学层面,而在「你屏幕上看到的」与「设备真正要签的」是否一致。桌面端靠浏览器扩展和钓鱼域名做这层欺骗,移动端靠悬浮窗和读屏做同样的事,防御思路却完全同构——不信任界面本身,只信任可交叉核验的事实:接收地址逐字符核对、金额与授权额度看数字不看形容词、合约地址用钱包内置的收藏名单而不是复制粘贴。安卓用户还有一条系统级红利可以用:在开发者选项里定期查看「运行中的服务」与「有前台窗口的应用」列表,一个既没打开、又有悬浮窗权限还在运行的App,本身就值得你多点一次卸载。安全从来不是装更多软件,而是让每一项被授权的能力都对得上它声称的用途——对不上时,撤销按钮永远比「应该没事吧」便宜。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。