ATM工作原理
在分析攻击场景之前,我们先了解下什么是ATM以及攻击者对那些部件感兴趣。
ATM包含两个主要的部分:cabinet(柜子)和safe(安全部分)。Cabinet也就是ATM的主体部分含有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上的不想要的代码执行漏洞,但事实上会效果并不好。漏洞可能出现在应用控制代码或不适当的配置结果中。
攻击场景
研究人员将攻击场景按照目标分为两大类:第一类是从ATM safe中提现,第二类是从客户端银行卡中复制信息。
Cash robbery
网络攻击
网络级攻击需要能够访问ATM连接的网络。如果攻击者是银行的雇员或网络提供商,那么就可以远程访问网络。否则攻击者不需要在ATM跟前,插入网线,连接恶意设备到光猫上。然后就可以连接到设备并攻击可用的网络服务,进行中间人攻击等等。有时候光猫位于ATM cabinet以外,所以攻击者甚至不需要打开ATM就可以执行修改。
图3. ATM网络攻击
注:这里不考虑入侵银行IT基础设施的攻击。因为如果攻击者能够入侵银行内网,就可以访问ATM管理,也就可以在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. 来自处理中心的响应的伪造
图7. 漏洞覆盖率
利用可用的网络服务的漏洞
攻击者可以利用可用的网络服务的漏洞来执行任意命令,包括远程控制服务。可以造成的结果包括关闭安全机制和控制取钱模块的输出。攻击向量所需的漏洞是由于防火墙保护不善、使用过时的软件版本、安全工具的不合理配置造成的。
图8. 利用可用的网络服务的漏洞
图9. 漏洞分布
攻击网络设备
另外一种获取网络访问的方式就是攻击连接ATM的网络设备。攻击者可以控制这些设备,然后开始攻击相同网络中的ATM,甚至银行IT基础设施。
下面是一个例子,研究人员在分析用来创建移动数据网络的GSM猫固件时发现,网络可以处理与处理中心、视频材料、事件通知、远程访问相关的流量。网络上的主机可以使用一个特殊的协议来与其他人进行交互。协议支持获取主机的信息、读取配置文件、运行操作系统命令等特殊消息。
消息流量是用session key加密的,其中session key是根据host key生成的。而host key是根据猫的固件中保存的另一个key加密的。对猫对物理访问权限的攻击者可以读取固件。在测试过程中,专家从固件中提取出了key并连接到了网络。
网络上的主机的配置文件含有银行内部网络的服务器地址。这些服务器是可以从手机数据网络访问的,并写支持前面提到的协议消息。所以从猫固件中获取key后,攻击者就可以控制银行的内部基础设施,测试人员可以在攻击发起之前获取支付网关、数据库、视频服务器的访问权限。
图10. GSM猫攻击场景
建议
- 将网络设备放置在ATM之内;
- 使用位于ATM内的软件或硬件VPN客户端;
- 对ATM和处理中心之间的数据进行强加密;
- 在所有的交易请求和响应中加入消息认证码(Message Authentication Code);
- 禁止使用不安全的链路层和网络层协议;
- 配置防火墙只允许对ATM操作必须的访问进行远程访问。关闭所有非必须的网络接口。远程访问只允许来自白名单的管理员地址;
- 对远程访问实施强密码策略;
- 定期对操作系统和应用进行更新;
- 对安全事件进行日志和事件记录。
下篇介绍其他的攻击场景以及卡信息窃取攻击。