2016年8月23日,FireEye公司的安全研究人员检测到了一个针对ATM机的新型恶意软件样本,这款恶意软件使用了一些非常有意思的技术,这些技术是此前从未有人使用过的。更有意思的地方在于,就在曼谷邮报正式对外报道“泰国银行ATM机被攻击,一千两百万泰铢被盗”这一事件的几分钟之前,该恶意软件样本就被一位身份不明的人上传到了VirusTotal平台上,而这个人使用的IP地址位于泰国境内
在这篇文章中,我们将会对这款新型的ATM机恶意软件进行深入分析,我们暂且将其命名为“RIPPER”。在对该恶意软件进行了分析之后,我们发现其代码中的某些标识和信息都在暗示着,这款恶意软件很有可能就是在上周从泰国银行的ATM机中盗取一千两百万泰铢的罪魁祸首。
能就是在上周从泰国银行的ATM机中盗取一千两百万泰铢的罪魁祸首。
RIPPER与之前的ATM恶意软件有何相同之处?
(Padpin(Tyupkin),SUCEFUL和GreenDispenser)
-针对的是同一品牌的ATM设备。
-用于盗取现金的攻击技术遵循相同的策略。
-与SUCEFUL类似,它可以控制银行卡读写设备,并通过命令控制卡片的读取或弹出。
-可以禁用本地网络接口,Padpin也有类似的功能。
-使用了安全删除工具“sdelete”,该工具可以删除恶意软件在设备上留下的操作痕迹,GreenDispenser也有类似的功能。

-首先,它可以对目前全球主要的三大ATM设备提供商所制造的设备进行攻击。
-攻击者可以通过向ATM机插入一张带有EMV芯片的特制ATM卡片来使目标设备感染RIPPER恶意软件。虽然Skimmer恶意软件家族早就已经在使用这项技术,但是这一攻击机制仍未普及。
深入分析RIPPER恶意软件

RIPPER的持久化机制:RIPPER可以通过以下两种模式来实现持久化:以单独服务的形式,或者伪装成一个合法的ATM系统进程。
如果攻击者在感染过程中调用了以下参数,那么RIPPER将会以服务的形式进行安装:
service install
在创建服务之前,它会通过下面这条命令终止进程“dbackup.exe”的运行(该步骤针对的是特定的ATM提供商):
cmd /c taskkill /IM dbackup.exe /T /F
接下来,它会将原始的dbackup.exe代码(如果该文件存在的话,将位于“c:\Windows\system32\”目录下)替换成自己的恶意代码。
最后,它会在目标设备中安装一个持久化服务,配置参数如下图所示:

service remove
除此之外,RIPPER还可以通过下列参数来开启或停止“DBackupService”服务:
service start/service stop
RIPPER还支持下列终端控制命令:
/autorun:该命令执行后,RIPPER进程将会睡眠十分钟,十分钟后将会自动在系统后台运行,并等待用户交互。
/install:这条命令可以让RIPPER替换ATM机系统中运行的软件,运行机制如下:
开始运行后,RIPPER将会通过Windows系统的本地工具“taskkill”来终止目标ATM系统中运行在内存空间里的进程。
RIPPER会根据目标ATM机的品牌和型号来查询系统目录中的内容,然后将合法的可执行程序替换成恶意程序。这种感染技术可以让恶意软件使用合法进程的程序名称,并以此来躲避检测。
RIPPER可以通过将其自身添加进注册表项“\Run\FwLoadPm”之中,然后在该注册表键的数据值中设置“/autorun”参数,RIPPER可以识别这个参数,具体如下图所示:

无参数运行
如果在不提供任何参数的情况下运行RIPPER,它将会进行下列操作:
(1)首先,它会尝试连接现金出钞设备、银行卡读卡器、以及密码输入键盘。由于每一个品牌的ATM机都有单独的设备名称,所以RIPPER需要通过下列注册表键来枚举出每一款ATM机的名称,然后识别出当前设备的名称和型号:
HKEY_USERS\.DEFAULT\XFS\LOGICAL_SERVICES\
(2)RIPPER需要通过查询ATM机的运行情况来确保设备正处于可用状态,如果设备不可用,那么就终止恶意软件的运行。RIPPER可以通过WFSGetInfo()这一应用程序编程接口(API)来查询并获取设备的运行状态,具体如下图所示:

(4)最后,它会开启两个线程:第一个线程可以监视ATM机的运行状态,以确保目标设备处于可用状态。除此之外,该线程还可以读取用户在密码输入键盘上的按键动作,并等待攻击者与该线程进行通信,如下图所示:

(6)当一个带有恶意EMV芯片的卡片插入ATM机之后,RIPPER将会初始化一个定时器,攻击者可以在这段时间内控制ATM机。下图显示的即为恶意软件中的定时器函数:


b. HIDE:通过调用ShowWindow()函数来隐藏恶意软件的图形界面。
c. NETWORK DISABLE:关闭ATM机的本地网络接口,以防止其与银行的网络系统进行通信。如果需要的话,还可以重新开启目标ATM机的联网功能。
d. REBOOT:可以在无需发送WM_QUERYENDSESSION消息的情况下调用ExitWindowsEX()接口,并在不需要进行确认的情况下重启系统。
e. BACK:通过调用WFSExecute()接口弹出用于感染设备的ATM卡片,该功能的控制命令为:WFS_CMD_IDC_EJECT_CARD。安全研究人员发现,SUCEFUL恶意软件家族同样也使用了这一功能,具体信息如下图所示:

目前,我们已经对这一恶意软件进行了详细地分析,攻击者很有可能在近期的ATM机现金被盗案件中使用了这款恶意软件,而且该恶意软件中的许多功能和特性与我们目前已知的恶意软件家族非常相似。这款恶意软件可以用来攻击多家设备制造商的ATM机,而且还利用了很多罕见的技术来获取目标ATM设备的物理访问权。除此之外,从近期泰国银行所发生的ATM机被入侵的事件来看,这种类型的攻击不仅需要十分复杂的技术做支撑,而且还需要软件和硬件之间相互配合才可以实现。这也足以说明,现在的网络犯罪分子真是越来越难对付了。












暂无评论内容