导语:近日Positive Technologies发布了《ATM逻辑攻击:场景2018》的报告,其中介绍了ATM工作原理,攻击场景等。报告显示大多数攻击可以在15分钟完成,有些漏洞和攻击覆盖的范围为100%。
近日Positive Technologies发布了《ATM逻辑攻击:场景2018》的报告,其中介绍了ATM工作原理,攻击场景等。报告显示大多数攻击可以在15分钟完成,有些漏洞和攻击覆盖的范围为100%。
ATM工作原理
ATM包含两个主要的部分:cabinet和safe。Cabinet也就是ATM的主体部分包括ATM计算机,这是与网络设备、读卡器、键盘、现金出口等设备相连的。Safe部分是由钢筋做成的,含有吐钞口和钞票入口等模块。计算机一般运行的都是Windows系统,不过是一种专门为ATM所设计的嵌入式版本。只有管理员可能访问Windows系统,其他用户是不能访问的。所以用户看到的应用是运行在kiosk模式下的。
这些应用提供给用户必要的功能:也就是我们日常看到的ATM使用的接口。应用还要与ATM的其他部分进行通信踩你完成ATM的功能,包括从读卡器获取卡信息,从键盘获取用户输入,发送命令给吐钞模块。通信使用的是XFS(extensions for financial services),一个简化的中心化的设备控制标准。有了XFS,硬件管理器就可以将API开放给所有的Windows应用并转发请求到设备。到每个XFS互联的设备的命令都是通过相应的服务提供商发送的。硬件管理器将API函数翻译为SPI函数,并将结果转发给服务提供商。每个ATM厂商都有自己实现XFS的方式。
ATM提现时并不是单机运行的。在处理交易时,首先联系银行的处理中心,联系所需的连接可以是有线的,也可以是无线的。因此,确保连接的安全性非常重要。一般情况下,都会有软件或硬件VPN客户端来执行这一任务。与处理中心的数据交换一般都是通过NDC/DDC协议来完成的,偶尔也会使用其他的方法。除了处理中心,ATM还会连接到银行的内部网络和软件更新服务器。
图1. ATM组件之间的交互
犯罪分子最感兴趣的是ATM模块就是计算机、网络设备和主要的外部设备。对这些设备的攻击可以拦截卡数据,干扰处理中心对交易的处理,或让体现模块吐钞。对于这样的攻击,犯罪分子需要对ATM的cabinet有物理访问或与ATM所在的网络建立连接。
图2. 针对ATM设备的潜在攻击类型
漏洞类型
研究人员测试发现,ATM的漏洞类型可以分为4类:
· 网络安全漏洞
· 外部安全漏洞
· 系统或设备配置不当
· 应用控制漏洞或配置不当
网络安全漏洞
犯罪分子可以访问ATM网络,攻击可用的网络服务,拦截和伪造流量,并攻击网络设备。犯罪分子可以伪造来自处理中心的响应,获取ATM的控制权。
外部安全漏洞
在许多实际应用场景中,外部安全漏洞存在的原因是外部设备和ATM操作系统之间缺乏认证。因此,犯罪分子可以感染访问设备或者直接连接设备到读卡器或吐钞的恶意软件。然后就可以提现或拦截卡数据。
系统或设备配置不当
配置不当是指保护和攻击能力之间的差距,缺乏硬件驱动加密、认证错误、也有的kiosk模式保护不当、连接任意设备的能力。
应用控制漏洞或配置不当
包括应用控制(Application Control)漏洞。这种解决方案可以预防ATM上的不想要的代码执行漏洞,但事实上会效果并不好。漏洞可能出现在应用控制代码或不适当的配置结果中。
攻击分析
研究人员测试了26款ATM,部分测试的ATM型号和配置如下:
研究人员将攻击场景按照目标分为两大类:第一类是从ATM safe中提现,第二类是从客户端银行卡中复制信息。
网络攻击
网络级攻击需要能够访问ATM连接的网络,其中测试中有85%的ATM受到该攻击的威胁,而攻击只需要15分钟就可以完成。如果攻击者是银行的雇员或网络提供商,那么就可以远程访问网络。否则攻击者不需要在ATM跟前,插入网线,连接恶意设备到光猫上。然后就可以连接到设备并攻击可用的网络服务,进行中间人攻击等等。有时候光猫位于ATM cabinet以外,所以攻击者甚至不需要打开ATM就可以执行修改。
图3. ATM网络攻击
处理中心伪造
如果不能确保ATM和处理中心之间的数据是不安全的,攻击者就可以处理交易确认过程。处理中心模拟器同意ATM接收的所有请求,并发送命令来吐钞作为回应。模拟器是通过以太网接口连接到ATM cabinet或放置网络设备。
图4. 处理中心伪造
如果同时满足以下条件,就可以伪造处理中心:
· ATM和处理中心之间的数据没有加密。因为NDC/DDC协议本来没有应用数据加密,攻击者就可以拦截和修改信息。
· VPN保护不充分。在测试的ATM中,所有的软件和硬件VPN方案都没有开启。如果VPN客户端在ATM之外,或攻击者可以访问ATM cabinet,那么攻击者就可以安装在ATM和VPN硬件之间安装自己的设备。
· 交易请求和响应中没有使用消息认证码(Message Authentication Codes),这样就可以在未经检测的情况下修改流量。
在测试期间,专家发现了另一个攻击场景,那就是来自处理中心的响应可以伪造。ARP欺骗是一种中间人攻击,通过发送伪造的ARP响应消息来修改ARP表。这样,流量就会被重定向到攻击者的设备。如果流量没有加密,攻击者就可以修改响应的内容来使ATM吐钱。
图5. ARP污染攻击示例
图6. 来自处理中心的响应的伪造
攻击网络设备
另外一种获取网络访问的方式就是攻击连接ATM的网络设备。攻击者可以控制这些设备,然后开始攻击相同网络中的ATM,甚至银行IT基础设施。
下面是一个例子,研究人员在分析用来创建移动数据网络的GSM猫固件时发现,网络可以处理与处理中心、视频材料、事件通知、远程访问相关的流量。网络上的主机可以使用一个特殊的协议来与其他人进行交互。协议支持获取主机的信息、读取配置文件、运行操作系统命令等特殊消息。
消息流量是用session key加密的,其中session key是根据host key生成的。而host key是根据猫的固件中保存的另一个key加密的。对猫对物理访问权限的攻击者可以读取固件。在测试过程中,专家从固件中提取出了key并连接到了网络。
网络上的主机的配置文件含有银行内部网络的服务器地址。这些服务器是可以从手机数据网络访问的,并写支持前面提到的协议消息。所以从猫固件中获取key后,攻击者就可以控制银行的内部基础设施,测试人员可以在攻击发起之前获取支付网关、数据库、视频服务器的访问权限。
图10. GSM猫攻击场景
Black Box攻击
其中测试中有69%的ATM受到该攻击的威胁,而攻击只需要10分钟就可以完成。前面提到过,cash dispenser位于safe中,是有物理保护的。但cash dispenser与ATM计算机的连接位于safe之外,因此很容易就可以访问。有犯罪分子在ATM的前面板上挖洞来访问dispenser cable。这样,犯罪分子就可以直接连接到cash dispenser到他们自己的设备,他们的设备一般是一个运行修改过的ATM诊断工具的单片机,可以发送提现命令。一般来说,诊断工具会检查验证访问是不是合法的,但攻击者知道怎么样去绕过检查和其他安全机制。这些技术加起来就叫做black Box攻击。
图11. Black Box组件;图12. A Black Box
图13. A Black Box攻击
为了预防Black Box攻击,ATM厂商建议使用最新的XFS对OS和dispenser之间进行强加密和物理认证。如果有物理认证,加密密钥就只会在确认了对safe的合法访问后才会发送。但是攻击者也有一些应对的方式,比如墨西哥的犯罪分子在攻击者就用endoscope模拟了物理认证。而且在最新的软件版本中加密也没有很好的实现。2018年Positive Technologies就发现了可以在dispenser控制器上安装修改版的固件和绕过物理认证的方法。
而且有一半的ATM中使用的都是有漏洞的NCR保护系统。而且有19%的ATM一点点应对Black Box攻击的保护措施也没有。
退出kiosk模式
测试的ATM中有76%的ATM易被受到该攻击,攻击所需时间为15分钟。一般的ATM用户只设计了与一个应用交互,这个应用就可以接收来自用户的输入并在屏幕上展示信息。应用运行在kiosk模式,也就是说用户不能运行其他程序或访问OS函数。如果推出kiosk模式,攻击者就可以绕过这些限制,在ATM OS中运行命令了。
下面是几个潜在的攻击场景:
1.攻击者用一个设备来模拟用户键盘输入,并将该设备连接到ATM的USB或PS/2接口上。攻击的下一步就可以完全自动化,或远程完成。
2.攻击者获取对OS的访问权限。在hotkey的帮助下推出kiosk模式,对输入的限制就没有了。
3.最后一步是绕过应用控制(Application Control),获取发送命令到cash dispenser的能力。
图14. 连接到攻击者设备
图16.退出kiosk模式:攻击场景
大多数测试的ATM都允许自由连接USB或PS/2设备。因此,犯罪分子可以连接键盘或其他模拟用户输入的设备。预防对任意信息的输入是非常重要的,比如特定的字符串组合可以推出kiosk模式,获取对OS函数的访问权限。大多数测试的ATM都运行着特殊的软件来有选择地禁用key组合。但85%的安理中,标准key组合仍然是可用的,包括Alt+F4,Win+Ctrl, Alt+Tab, Alt+Shift+Tab等。这些技术允许关闭STM kisok应用窗口,关闭负责拦截任意键盘输入的应用。
连接硬盘
测试的ATM中有92%易受此类攻击,而且攻击只需要20分钟时间。连接ATM硬盘后,就可能绕过安全机制并且获得cash dispenser的控制权。有以下可能的攻击场景:
图21. 连接到ATM硬盘
直连硬盘
最简单的方法就是直接连接硬盘。如果硬盘没有加密,那么攻击者就可以复制一个含有取钱命令的恶意软件到硬盘中。然后攻击者可以简单修改一下配置文件将该程序加入应用控制白名单。如果随后ATM以secure模式重启,安全软件就会启动和工作,但攻击者仍然可以运行任意代码和恶意软件。攻击者可以完全关闭安全软件,比如从硬盘中删除文件。从硬盘复制敏感信息,然后修改用于之后的攻击。
从外部硬盘启动
攻击者可以从外部硬盘启动ATM来获取对文件系统的访问权限。启动顺序设置是在BIOS中设置的,对启动顺序的设置应该是密码保护的。但是有23%的ATM,BIOS密码很容易就可以猜到;还有8%的ATM都没有BIOS密码。在测试中,研究人员还发现可以在Intel Boot Agent的帮助下覆写BIOS启动顺序。
从另一个硬盘启动ATM,攻击者可以连接到原来的硬盘并实现前面提到的一些攻击场景。
图22. 重命名McAfee Solidcore
图23. 连接硬盘写入恶意软件
启动模式修改
以特殊模式启动ATM操作系统提供了一种绕过安全机制的方法。测试的ATM中有42%易受到此类攻击,攻击只需要15分钟时间。测试的ATM一般有三种启动模式:
· Kernel debug mode
· Directory Service Restore Mode
· Safe modes (Safe Mode, Safe Mode with Networking, Safe Mode with Command Prompt)
在这些模式中,一些服务和保护机制是不能用的,也就有机会退出kiosk模式。在debug模式下启动ATM并连接到COM端口后,攻击者可以用winDbg工具获取ATM的完全控制权。设置了不同启动模式的ATM有大概88%,42%的ATM中测试人员发起了攻击并最终成功取现了。
图25.修改启动模式
卡数据窃取
银行卡磁条中含有执行交易所需的信息。虽然磁条有三个磁道,但一般都只用2个(Track1和Track2)。Track1含有卡号、过期时间、服务码、所有者姓名。也可能含有PIN Verification Key Indicator, PIN Verification Value,和Card Verification Value。Track2有Track1中除所有者以外的所有信息。在POS机上刷磁条付款或从ATM上提现只需要读取Track2。所以攻击者会尝试从Track2拷贝信息。这些信息可以用于创建复制卡,用于在暗网出售。
过去这些年,有犯罪分子在读卡器上放了一个物理垫片来直接从磁条读取信息。银行注意到犯罪分子的这一行为,现在开始使用各种方式来预防物理垫片。但没有这种物理垫片也可以窃取信息,那就是使用拦截的方式。拦截一共分为2个阶段:
· ATM和处理中心进行数据传输时;
· ATM操作系统和读卡器进行数据传输时。
图26. 针对卡数据窃取的攻击
ATM和处理中心之间的数据拦截
因为Track2的所有值都是明文发送的,并且ATM和处理中心在应用级的流量没有加密,所以拦截是可能的。连接到ATM网络,并监听网络,攻击者就可以获取银行卡的相关信息。
图27. 拦截明文的Track2信息
图28. 拦截ATM和处理中心之间的数据
拦截OS和读卡器之间的数据(USB/com端口)
在ATM和读卡器之间放一个特殊的设备来拦截银行卡磁条的内容。因为与读卡器的通信也是没有认证和加密的,而且卡数据是以明文发送的,所以攻击也是可能实现的。研究发现在所有的测试ATM中都存在这样的问题。
拦截OS和读卡器之间的数据(恶意软件)
如果攻击者可以在ATM上安装恶意软件,那么读取卡数据就不需要恶意硬件了。安装恶意软件可以通过修改启动模式,从外部硬盘启动,直接连接到硬盘,执行网络攻击等多种方式执行。
在与读卡器进行数据交换时没有ATM会执行认证,因此所有的设备都可以访问。攻击者需要做的就是在ATM OS中运行任意代码。
图29. 拦截读卡器和ATM OS之间的数据
总结
逻辑攻击在ATM攻击中越来越常见,造成了数以百万美元计的损失。本文总结了ATM的工作原理以及两种针对ATM的攻击,以及若干攻击场景,其中大多数的攻击都可以在15分钟内实现,有的攻击甚至只需要10分钟就可以完成。