近日有研究人员发现,MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。
趋势科技最早是在2023年6月底首次发现了MMRat,它主要针对东南亚用户,在VirusTotal等反病毒扫描服务中一直未被发现。
虽然研究人员并不知道该恶意软件最初是如何向受害者推广的,但他们发现 MMRat 目前是通过伪装成官方应用程序商店的网站进行传播的。
这些应用程序通常会模仿政府官方应用程序或约会应用程序,待受害者下载时会自动安装携带 MMRat 的恶意应用程序,并在安装过程中授予权限,如访问安卓的辅助功能服务等。
恶意软件会自动滥用辅助功能,为自己授予额外权限,从而在受感染设备上执行大量恶意操作。
MMRat 的功能
一旦 MMRat 感染了安卓设备,它就会与 C2 服务器建立通信渠道,并监控设备活动以发现设备空闲时间。在此期间,威胁行为者会滥用可访问性服务远程唤醒设备、解锁屏幕并实时进行银行欺诈。
MMRat 的主要功能可归纳为以下几点:
- 收集网络、屏幕和电池信息
- 窃取用户的联系人列表和已安装的应用程序列表
- 通过键盘记录获取用户输入信息
- 通过滥用 MediaProjection API 从设备上捕获实时屏幕内容
- 记录和实时串流摄像头数据
- 以文本转储形式记录和转储屏幕数据,并将其外泄到 C2
- 从设备上卸载,清除所有感染证据
恶意软件支持的所有命令,图源:趋势科技
MMRat 能够捕捉实时屏幕内容,甚至还能通过更初级的 "用户终端状态 "方法提取需要重构的文本数据,这都要求高效的数据传输。
如果没有这样的效率,其性能将阻碍威胁行为者有效实施银行欺诈,这也是 MMRat 的作者选择开发用于数据外渗的定制 Protobuf 协议的原因。
MMRat攻击链,图源:趋势科技
Protobuf的优势
MMRat 使用基于协议缓冲区(Protobuf)的独特命令与控制(C2)服务器协议来实现高效数据传输,这在安卓木马中并不多见。
Protobuf 是谷歌开发的一种结构化数据序列化方法,类似于 XML 和 JSON,但体积更小、速度更快。
MMRat 使用不同的端口和协议与 C2 交换数据,如 8080 端口的 HTTP 用于数据渗出,RTSP 和 8554 端口用于视频流,8887 端口的自定义 Protobuf 用于命令和控制。
趋势科技的报告指出:C&C协议尤其独特,因为它是基于Netty和上文提到的Protobuf定制的,具有精心设计的消息结构。
对于 C&C 通信,威胁行为者使用一个总体结构来表示所有消息类型,并使用 "oneof "关键字来表示不同的数据类型"。
Protobuf模式,图源:趋势科技
除了 Protobuf 的高效性,定制协议还能帮助威胁行为者躲避网络安全工具的检测,这些工具会寻找已知异常的共同模式。
Protobuf的灵活性允许MMRat的作者定义他们的信息结构,并组织数据的传输方式。同时,Protobuf 的结构化特性还能确保发送的数据符合预定义的模式,从而降低在接收端被破坏的可能性。
MMRat凸显出了安卓银行木马不断发展的复杂性,它巧妙地将隐蔽性与高效数据提取融为一体。
因此,安卓用户最好全部在Google Play里下载应用 ,查看用户评论,并只选择信誉良好的软件发行商。此外,在安装应用程序阶段被要求授予访问权限时须保持谨慎。