背景
近期,一批伪装成flashlight、vides和game的应用,发布在google play官方应用商店。经钱盾反诈实验室研究发现,该批恶意应用属于新型BankBot。Bankbot家族算得上是银行劫持类病毒鼻祖,在今年年初曾爆发,之前主要针对欧洲国家,可劫持50多家银行应用,而新发酵的BankBot已将攻击目标扩散到全球,可劫持银行增加到145家。
那么新型BankBot是怎么再次入侵用户手机?
能上架应用商店和入侵用户手机,BankBot使用了AVPass技术,包括针对静态分析和动态沙盒的逃逸,这样成功绕过大多数杀毒引擎。可信应用商店+绕过杀毒引擎,这样病毒自然能轻松入侵用户手机。本文接下来的内容将解析BankBot是如何规避杀毒引擎,病毒劫持钓鱼过程可参考《警惕一大波银行类木马正在靠近,新型BankBot木马解析》。
AVPass分析
1、使用成熟的AVPass技术,可绕过反病毒检测系统
病毒AvPass工作流程图如下:
Binary Obfuscation
混淆自身特征,包括类名、函数名、字符串加密、反射调用,并将待劫持应用包名sha1编码,随后使用加固技术,将恶意dex打包加密。处理后的app如下图:
2、对抗动态沙盒
通过自检测运行环境和增加用户行为交互对抗沙盒,新型BankBot只有同时满足以下4条才会触发恶意行为:
- 运行在Android5.0以及以上设备
- 运行设备非俄罗斯、巴西、乌克兰用户
- 检测运行环境,若非真机环境将不会触发恶意行为
- 用户行为交互,点击按钮
下图运行设备检测
3、FCM远控,获取短信验证码
目前,各大银行实施双因素认证即在支付过程中进行身份认证和基于手机动态密码的验证。BankBot在通过钓鱼拿到用户银行身份信息后,还差动态短信,之前BankBot直接使用短信劫持,但这样杀软可通过静态或动态检测出恶意行为。新型BankBot通过集成谷歌提供的Firebase Cloud Messaging(简称FCM)框架,利用FCM向指定设备发送指令数据,从而获取受害者短信验证码,也就是控制端在成功钓鱼后,通过FCM下发获取短信的指令,病毒读取最新短信,通过网络上传至控制端。下图整个攻击流程。
FCM下发的指令数据还包括:更新C&C地址、弹伪造的通知栏、界面劫持数据,其中弹伪造的通知栏和界面劫持都是BankBot的钓鱼手段。下图下发的指令数据。
攻击者一旦成功截获受害者银行账号、密码和短信动态验证码,将绕过银行双因素认证,这样受害者们不仅仅构造成了一个可以被攻击者控制的移动僵尸网络,更成了攻击者的天然提款机。
安全建议
1、建议用户安装钱盾等手机安全软件,定期进行病毒扫描。
2、切勿点击任何陌生链接,尤其是短信、QQ、微信等聊天工具中不熟识的“朋友”发来的链接。
------------------------------
* 作者:钱盾反诈实验室,更多安全类热点信息和知识分享,请关注阿里聚安全的官方博客