03月30, 2021

FluBot:一场席卷欧洲的移动银行木马攻击活动

概述

3月初,西班牙加泰罗尼亚警方破获一起网络金融诈骗案,作案团伙通过Android恶意软件盗取了1100万用户的电话号码,约占西班牙人口的25%,目前四名犯罪嫌疑人已被警方逮捕。该团伙通过名为“FluBot”的Android恶意软件,发送带有恶意软件下载链接短信的方式,发送至少71,000条垃圾短信,感染60,000台设备,其中97%受害用户是西班牙公民。360烽火实验室追踪发现,尽管犯罪嫌疑人已经被逮捕归案,但“FluBot”恶意软件仍在继续运营,我们发现最新版本已经更新到3.7。

“FluBot”最早于2020年底曝光,属于银行木马家族。在功能上“FluBot”可以在合法应用程序顶部显示伪造的登录屏幕,以从设备所有者那里收集电子银行凭证和信用卡详细信息;在技术上“FluBot”采用了多种代码保护手段给分析和检测带来困难,其使用DGA算法建立僵尸网络,随机生成C&C隐藏了真实C&C地址。在传播方面,“FluBot”具有短信蠕虫机制,将包含恶意软件下载链接的短信群发给受害者的联系人列表。而链接背后托管这些恶意软件的站点都是一些被入侵的合法网站,从而使得传播更加顺畅。

载荷投递

“FluBot”通过向受害者发送含有恶意软件下载链接的短信诱导受害者者下载安装,短信内容通常是与仿冒应用相关的内容。托管这些恶意软件的站点都是一些被入侵的合法网站,无形中增加了受害者的识别难度,从而使得传播过程更加顺畅。下图为部分受害者在社交平台上展示的他们收到的带有钓鱼链接的短信内容。

image.png

图1:带有钓鱼链接的短信

伪装方式

“FluBot”伪装的应用名称主要以运输物流类应用为主要仿冒对象,另外还发现这些伪装的应用的包名集中在com.tencent.mm和com.tencent.mobileqq,而这俩款包名软件具有明显的地域特征,所以我们猜测这种伪装方式是为了进一步排除掉该地区,重点针对非该地区用户。

image.png

图2:伪装的应用图标

根据我们对仿冒的应用名称统计,占比依次为FedEx(联邦快递)58%、DHL(DHL物流公司)21%、Correos(西班牙邮政)20%。

image.png

图3:仿冒的应用名称占比

样本分析

基于样本证书及代码特征,我们发现“FluBot”最早于20年10月开始研发测试版本,目前我们已经发现正式版最高版本为3.7版本。从实际情况看,并没有因为西班牙警方的执法行动而停止研发更新。

运行流程

基于“FluBot”最新版本,样本主要通过三个服务后台运行,其中“MyNotificationListener”用于监听通知栏,“MyAccessibility”继承自“AccessibilityService”在其回调函数中执行相应功能,“ForegroundService”主要用于处理C&C的指令,运行流程如下图:

image.png

图4:执行流程图

恶意功能

“FluBot”的大部分功能通过Accessibility去实现,包括取消电池优化,弹出信用卡钓鱼页面,关闭Google Play Protect服务,覆盖虚假WebView页面,阻止卸载操作,替换默认短信接收器,自动授予权限申请。

image.png

图5:电池优化

image.png

图6:关闭GP

image.png

图7:替换默认短信应用

image.png

图8:WebView虚假界面覆盖

image.png

图9:阻止卸载

image.png

图10:确认权限申请

指令控制

“FluBot”通过DGA算法生成域名计算出其固定种子数Seed样本会随机生成5000个域名,报文(RSA(BotID+随机数)+base64(xor(发送内容+随机数)))加密后遍历域名向每个域名发包,最后根据与域名数据返回结果(返回加密信息包含BotID+随机数)来确认准确C&C域。

image.png

图11:计算种子

image.png

图12:获取种子域名集合

下图为C&C指令及相关功能

image.png

图13:C&C指令集

版本差异

目前我们共捕获“FluBot”样本近500个,通过分析发现“FluBot”最早于20年10月开始研发测试版本,在20年年底捕获其正式版本。我们基于功能差异、运行方式以及代码特征,将其分为多个版本,目前最高版本已经迭代到3.7版本。下图为不同版本时间轴及功能差异:

image.png

图14:不同版本时间轴及功能差异

“FluBot”采用动态加载恶意代码的形式来执行恶意行为,不同版本间加载方式存在区别,比如使用MulitiDex形式、使用assets下的资源文件形式以及经过加密后伪装成其他文件的形式。

image.png

图15:子包加载方式

“FluBot”不同版本对代码使用了多种保护技术,如开源工具Paranoid和StringFog来实现代码字符串加密、混淆、填充无效类、填充无效变量等,以达到对抗分析与检测手段的目的。下图为部分代码片段。

image.png

图16:Paranoid代码片段

image.png

图17:StringFog混淆

image.png

图18:无用类填充

image.png

图19:无用变量赋值

影响范围

分析发现,“FluBot”在其提示文本内容上除了西班牙语以外还匹配了包括德语、波兰语、匈牙利语以及英语等多个语种。结合受感染的设备信息,还发现来自葡萄牙,丹麦的受害者,从受影响国家看,集中在欧洲国家且这些国家主流支付方式都是以信用卡为主,由于支付习惯的不同目前我国尚未受到“FluBot”影响,但对于我国部分地区仍需持续关注,提高警惕。

image.png

图20:默认字符串

image.png

图21:受影响国家

总结

近年来金融科技快速兴起,为金融发展持续提供了创新的活力,同时也应该意识到金融科技发展过程中本身的风险,包括自身系统性的风险。从本次由于西班牙移动银行基础设施不足,造成的实际影响看,反映出健全金融科技基础设施建设的重要性,要不断提升金融交易过程中的安全性,降低安全风险。

附录攻击目标包名

*西班牙银行相关 *

com.bankinter.launcher
com.bbva.bbvacontigo
com.cajasur.android
com.grupocajamar.wefferent
com.imaginbank.app
com.kutxabank.android
com.rsi
com.tecnocom.cajalaboral
es.bancosantander.apps
es.cm.android
es.evobanco.bancamovil
es.ibercaja.ibercajaapp
es.lacaixa.mobile.android.newwapicon
es.liberbank.cajasturapp
es.openbank.mobile
es.pibank.customers
es.univia.unicajamovil
net.inverline.bancosabadell.officelocator.android
www.ingdirect.nativeframe

*电子货币相关 *

com.binance.dev
com.coinbase.android
piuk.blockchain.android

本文链接:https://blogs.360.net/post/analysis-of-FluBot.html

-- EOF --

Comments