2019年春季,我们发现一款利用Java编写的最新ATM恶意软件样本被从墨西哥上传到多引擎扫描服务,之后又从哥伦比亚上传。经过简要分析,我们可以清楚地确认这款名为ATMJaDi的恶意软件能够从自动提款机(ATM)中盗取现金。但是,这种恶意软件没有使用标准XFS、JXFS或CSC库。 相反,它使用受害者银行的ATM软件Java专有类:这意味着这种恶意软件只能用于一小部分ATM机。这也使得这种恶意软件非常具有针对性。
卡巴斯基产品将这种恶意软件样本检测为Trojan.Java.Agent.rs
技术详情
首先,与大多数其他ATM恶意软件一样,攻击者必须找到办法将恶意软件安装到目标ATM上。这种恶意软件无法通过ATM键盘或触摸屏控制,因为它运行着自造的 HTTP 服务器 Web 界面用于控制。所以,网络罪犯必须对目标ATM具有网络访问权限。这让我们相信网络罪犯已经入侵了银行的基础设施,以获得对ATM所连接的网络的访问权限。
一旦安装和执行,这款以Java归档文件形式存在的被称为“INJX_PRE.jar”的恶意软件会查找控制ATM的进程,并将自身注入其中,从而控制合法的ATM进程。注入完成后,恶意软件会以多种语言同时在终端上打印消息,这些语言包括:俄语、葡萄牙语、西班牙语和中文。但是,恶意软件使用的所有其他信息或字符串都是英文的。输出中显示的不同语言短语可以翻译成英语“自由与荣耀”。后面跟着额外的俄语信息“отдельный”,意思是“分开”。我们认为这种做法是一种伪旗手段,因为母语是俄语的人永远不会在文中使用这个词。
· Свобода и слава
· Liberdade e glória
· Libertad y gloria
· 自由与荣耀
· отдельный
之后,启动HTTP服务器,该服务器使用预定义的URL路径接收命令。 它们是:
· /d 突出钞票或让ATM中的储钞盒执行动作(正确的动作由传递的参数决定);
· /eva 在遭受攻击的ATM上评估(运行)用户提供的代码;
· /mgr 对于管理器,它使犯罪分子能够访问附加的Java虚拟机的所有正在运行的类的列表,以便他们可以调用他们想要的任何函数,并在需要时提供参数;
· /core 能够让网络罪犯从受害者文件系统中载入特定的.jar文件;
· /root path接受POST请求正文并将其作为shell命令传递给cmd.exe,返回结果输出。
出钞动作和“运行shell”路径没有带有表单和按钮的界面页面,而是仅接受预先准备的HTTP POST请求并将原始文本结果打印到页面,省略HTML标记。因此,在出钞请求的情况下,恶意软件响应将是'ok'字符串。 “获取现金单元信息”请求后面将跟一个描述ATM现金单元状态的字符串(参见下面的示例)。
1:1000;5:700;10:100;20:30;
这些字符串由四个组组成,每个组用分号分隔。它是一个与ATM现金盒相对应的列表,由两个值组成,用冒号分隔:代表储钞盒中的面额和纸币的实际数量。在上面的例子中,第一盒存有1000张面额为1的纸币,700张面额为5的纸币,以此类推。
除了“运行shell”,“出钞”和“获取现金单元”之外,“eva”,“mgr”和“core”路径具有界面页面。 以下是评估页面的屏幕截图:
/eva 路径界面截图示例
它允许犯罪分子在受害ATM上粘贴并运行任何JavaScript代码,并查看它返回的内容。为何选择JavaScript? 因为Java允许使用外部引擎,而犯罪分子使用的是JavaScript。以下是恶意软件用于运行传递的JavaScript代码的函数。
结论
ATMJaDi的针对性特征表明,网络罪犯在编写恶意软件之前,很好地研究了受害者。很明显,他们必须能够访问自定义Java类运行的ATM,并且最有可能访问Java程序源代码。
此外,恶意软件的被控制手段表明,犯罪分子计划很可能是通过银行的内部网络获取对受感染ATM的网络访问权限。
银行应该怎样做才能阻止这类攻击:
· 设置专门的反针对性攻击解决方案来保护银行的网络,例如KATA(卡巴斯基反针对性攻击平台),使用其他解决方案来保护ATM不受恶意软件侵害;
· 实施ATM文件白名单;
· 银行的ATM网络必须要隔离,并且必须严格限制对其的访问;
相关报道:
- 卡巴斯基扩大与国际刑警组织在打击网络犯罪方面的合作2019-07-17
- 全球化、透明化和受信任:卡巴斯基成功通过独立SOC 2 审计2019-07-12
- 卡巴斯基受邀参加2019年中国工业信息安全大会2019-06-27
- 卡巴斯基:38%的人愿意放弃社交媒体来保证终身数据隐私安全2019-06-25
- 卡巴斯基引领2019工控安全升级,开创智能+新未来2019-06-20
要闻推荐
今日视点
热点专题
- 新闻排行
- 评测排行