FireEye的移动研究员近日发现了一系列Android木马程序,这些程序通过模仿33个全球金融管理机构和服务提供商的合法APP(包括31个银行应用和2个移动支付应用)执行一系列恶意行为,称之为“SlemBunk”。目前主要影响范围是美国、欧洲和亚太地区。
SlemBunk程序伪装成常见的、受欢迎的应用程序,首次运行后便隐藏在设备中,当用户打开特定银行或相似应用时,它可以实施钓鱼攻击并收集用户证书。可以确定的是,这些收集信息的服务器仍然活跃。
目前在Google应用商店中尚未发现SlemBunk实例,所以感染的用户可能是从恶意网站拷贝或下载的恶意软件。在很多色情网站中已经发现了新版本,这些网站会不断弹出提示,要求用户下载Adobe Flash观看色情影片,而用户实际下载的是恶意软件。
根据对SlemBunk的全面调查,已经发现了170多个样本,这些样本会表现出一系列特征和行为:
1、根据各种各样的金融管理服务而定制的登陆界面; 2、后台运行,监控正在运行的进程; 3、检测特定的合法应用的启动,智能显示对应的伪造的登录界面; 4、收集用户证书,并发送到远程CnC服务器; 5、收集敏感的设备信息发送到CnC服务器,包括电话号码、应用程序的安装列表、设备型号和操作系统版本。 6、接收并执行短信和网络流量中的命令; 7、借助管理员权限持续感染设备。
另外,根据与之前样本的对比,发现新版本中添加了更加先进的功能来支持其恶意行为,包括:
依靠远程服务器不断更改样本; 列表中添加了更多的金融服务应用,包括它们的登录界面和逻辑; 采用不同级别的模糊机制逃避检测。
技术细节
主要组件
当特定的应用在前台运行时,SlemBunk通过伪造登陆界面获取金融机构的身份验证证书。图一为名为org.slempo.service的样本的Manifest文件,来展示SlemBunk的主要组件。
图一 SlemBunk的主要组件
图二为恶意软件的执行过程。当一个恶意软件首次启动时,它会激活注册接收器,随后开始后台监控进程。在前台,它会弹出伪造的用户界面,请求设备管理权限。获取管理权限后,它会将其图标从启动器中删除,但仍在后台运行。当检测到特定的应用在前台运行时,它会使用响应的用户界面请求身份验证证书。
图二 SlemBunk的工作流
SlemBunk长时间在后台运行的服务(MainService)会执行一系列任务。其中一个就是查询所有运行的进程,检查是否有特定的应用。使用的手法就是匹配当前运行的应用的程序包名称。
远程通信
SlemBunk使用远程通信机制使服务器可以指挥和控制恶意软件,有两种方法与远程服务器进行通信:
1、HTTP:早期样本中,许多远程服务器的IP地址是硬编码在源代码中的,而在新版本中,SlemBunk使用Base64编码来抵御逆向工程。图三为解码的代码片段。
图三 解码的代码片段
恶意软件的客户端发送到服务器端的请求主要有三种:
初始登记:该请求将设备数据上传到服务器,通知服务器恶意软件已经成功安装并运行。
常规状态报告:该请求向服务器报告状态信息,包括监听和拦截的短信状态、电话号码和锁屏状态。图四为捕获的该进程的流量。
图四 捕获的该进程的流量
钓鱼数据上传:恶意软件将获取的用户证书上传到服务器。
2、SMS:远程服务器通过短信控制恶意软件的行为。例如,“intercept_sms_stop”为停止短信拦截,“intercept_sms_start”为开始拦截,“lock”命令减弱设备的音频系统,“wipe_data”命令会擦出设备的所有数据分区。
图五 SMS命令和控制
总结
SlemBunk木马的发展充分地说明了手机恶意软件已经变得越来越复杂和有针对性,并且更加有组织性。为保护自身信息安全,用户可以采取以下措施:
1、不要安装官方应用商店意外的应用程序。
2、随时保持设备的操作系统更新。
3、一旦发现设备存在异常行为,及时检查后台运行的应用程序。
*原文地址: fireeye ,vul_wish编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)