两年前,卡巴斯基发现了一款新型恶意软件,可直接从 ATM 机上盗取资金,至少有 140 家银行和企业的网络被此类恶意软件感染。遭遇攻击的银行和企业分属 40个不同国家,其中,美国、法国、肯尼亚、厄瓜多尔、英国的大兄弟受到的攻击最严重。
万万没想到,攻击核设施的恶意软件还能用来搞垮 ATM,黑客为了挣钱,条条大路通罗马。黑客还挺狡猾,使用了常见的系统管理软件和安全软件伪装这款恶意软件,大大降低了它被发现的几率。
美国时间 10 月 11 日,外媒又报道,上次揪出了伪装的 ATM 恶意软件,这次卡巴斯基又发现了一个新恶意软件,还给它取了个名字叫“ATMii”。意思很明白了:ATM 2.0 版本!
这个恶意软件的安装很简单:直接物理访问或网络访问目标 ATM,安装恶意代码。
卡巴斯基拿到这个恶意软件的样本后进行了分析:注入器是不受保护的命令行应用程序,以 Visual C 语言编写,还在上面搞了个四年前的假编译时间戳混淆视听。恶意代码适用于 Windows XP 以及更高版本的系统,而这些正是大部分 ATM 的运行系统。
同行相轻,黑客界也不例外。
卡巴斯基的研究员一边分析一边吐槽:针对 atmapp.exe(专有ATM软件)进程的注入器写得相当烂,因为它取决于几个参数。如果没有给出来,应用程序就会捕获异常。
下面就是可能只有安全人员才看得懂的 blabla了:
支持的参数包括:
/ load,它试图将dll.dll注入atmapp.exe。
/ cmd,它创建或更新C:\ ATM \ c.ini文件,将命令和参数传递给受感染的库。
/ unload,它尝试从atmapp.exeprocess卸载注入的库,同时恢复其状态。
可用的命令允许分配所需数量的现金,检索有关ATM现金卡的信息,并从ATM中完全删除C:\ ATM \ c.ini文件。
注入DllMain函数后,dll.dll 库加载 msxfs.dll,并使用函数mWFSGetInfo替换WFSGetInfofunction。
注入的模块尝试找到 ATM 的 CASH_UNIT 服务 ID 并存储结果。
如果成功,所有连续的调用将重定向到mWFSGetInfofunction,该函数从C:\ ATM \ c.inifile中解析并执行命令。
卡巴斯基的研究人员提出了两个措施:默认拒绝和设备控制。
第一个措施可以防止黑客在 ATM 的内部 PC 上运行自己的代码,而第二个措施将阻止黑客连接新的设备,比如 U 盘。
让 ATM 吐钱其实很简单
这句话绝对不是雷锋网宅客频道(微信公众号:letshome)瞎编的,但请注意,这是有水平的黑客自己说的。
事实上,今年9月,卡巴斯基还曝光了一款ATM 恶意软件“ATMitch”,这个恶意软件可让攻击者非法取款,然后可自行删除记录。
ATMitch 恶意软件攻击的第一阶段需要获取银行系统的访问权限,然后使用开源或其他公开可用的公用程序来控制系统以及攻击其他 ATM 。由于它在内存中运行,这种无文件恶意软件会在受感染系统重启后消失。
早在 2016年,卡巴斯基实验室渗透测试专家就在题为《采用恶意软件(和非恶意软件)方式攻破ATM机》的演讲中,深度剖析了 ATM 机易受攻击的原因。
卡巴斯基给出的原因不多不少,有七条:
1.ATM 机本质是一台电脑。就算装了工业控制器,在 ATM 机系统里说了算的还是传统的 PC 电脑。
2.在 2016年的演示中,卡巴斯基称,演示的那台 PC 电脑有很大可能是由非常老旧的操作系统所控制,例如:Windows XP。由于微软不再提供技术支持,所有零日漏洞将永久存在且没有任何补丁修复。不少黑客对雷锋网(公众号:雷锋网)表示:就算微软常常发补丁,大家打补丁的速度还是跟不上,尤其是工控设备,一次更新你以为闹着玩哦!
上述也提到,ATMii 针对的还是Windows XP 和更高版本的系统。
3.ATM 机里运行了很多有漏洞的软件。系统有漏洞还不算,安装的软件继续补刀。
4.卡巴斯基称,ATM 机生产商似乎一厢情愿地认为 ATM 机 总是”正常工作”,且永远不会出错。因此,没有任何软件的完整性控制,也未安装任何反病毒解决方案,更不用提对向自动提款机发送命令的应用程序的安全认证。
5.安全人员吐槽:ATM 机看上去做得那么坚固,用的材料也是极好的,但为什么 ATM 机的电脑外壳却是由塑料造的?最好的也只有薄金属保护,这个锁就更简单了,这不是轻易让人就能破掉吗?
6.ATM 会与处理中心联网。
7.ATM 机模组通常连有各种标准接口,比如,COM和USB端口。有时这些接口就按在机柜外部,任何人都能轻松访问。即使未按在外部,犯罪分子也能想出各种办法连接这些端口。