【技术分享】针对ATM机的渗透测试

阅读量233693

|

发布时间 : 2016-11-09 11:40:26

x
译文声明

本文是翻译文章,文章来源:infosecinstitute

原文地址:http://resources.infosecinstitute.com/atm-penetration-testing/

译文仅供参考,具体内容表达以及含义原文为准。

http://p0.qhimg.com/t01b67fb86bffcdaa5f.png

翻译:WisFree

稿费:200RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

写在前面的话

自从有了自动取款机(ATM),我们在进行取款、存款、以及汇款等银行交易时,就再也不需要去银行营业厅排队了。我们可以通过ATM来进行存取现金、访问银行账户或信用账户、账单支付、修改密码、以及更新个人信息等操作。由于ATM机涉及的通常是现金交易,因此它也成为了黑客和犯罪分子们的首要攻击目标。多年以来,黑客已经找到了各种各样的方法来入侵ATM机。现在,黑客们的攻击手段已经不仅限于物理形式的攻击了,他们正在开发新的方法来入侵ATM机。

在这篇文章中,我们不仅会给大家讲解ATM机的工作机制和它所采用的安全防护策略,而且还会告诉大家如何通过渗透测试来分析ATM机的安全性。除此之外,我们也会给大家提供一些避免ATM机遭到攻击的最佳实践方案。


ATM机的工作机制

绝大多数的ATM机配备有两个输入口四个输出口。通常情况下,读卡器和键盘为输入口,屏幕、凭条打印机、出钞口和扬声器为输出口。具体如下图所示:

http://p4.qhimg.com/t015053ed0638dfcf61.png

ATM机需要与后台服务器(即通信主机)进行数据通信,这台主机服务器则需要与银行的网络系统进行通信并响应ATM机的请求。当用户插入了银行卡并进行取款操作时,ATM机会怎样处理这种请求呢?处理流程如下图所示:

http://p6.qhimg.com/t016fdcceeb42a2abc7.png

1. 用户的账户数据存储在银行卡背面的磁条中,当用户插入银行卡后,ATM机的读卡器会从磁条中读取用户的数据。接下来,用户的账户数据将会被发送至后台主机,然后再由后台主机将用户数据转发给相应的银行。

2. 银行确认了这张卡片的有效性之后,会要求用户输入银行卡的密码。用户需要使用键盘来输入密码,密码在加密处理完成之后会被发送至主机服务器。接下来,主机服务器便会向银行验证用户卡号和密码是否能够匹配。银行验证成功之后,主机服务器会将相应的响应码发送给ATM机。

3. 验证成功后,用户需要输入取款金额,然后取款请求将会发送至主机服务器来进行处理。主机服务器会将交易请求发送至客户的银行,银行将会对取款金额和取款限制进行确认。如果一切正常的话,客户所在的银行将会向主机处理器的账号转账。转账成功之后,主机处理器会将许可码发送给ATM机,然后再由ATM机向用户提供现金。

4. 负责管理出钞任务的是运行在ATM机中的应用程序,ATM机的出钞器会记录下每一笔交易的详细数据,例如进行交易的银行账号、交易ID、交易时间、以及交易金额等等,这些数据将会记录在ATM机的日志文件中。

5. 在出钞的过程中,ATM机中的传感器会扫描每一笔交易现金的厚度。如果有纸币粘在一起,或者纸币的某个角折起来了,这个传感器都可以检测到。如果检测到两张纸币粘在一起的话,那么这两张纸币都不会被分发出去。


ATM机的安全保护机制

随着技术的不断发展,ATM机中的功能单元数量也在逐渐增加,而这也使得ATM机更加容易受到黑客和犯罪分子的攻击了。目前,绝大多数的ATM机仍然运行的是Windows XP,而这也使得这些ATM机在面对黑客的攻击时毫无还手之力。电子资金转账的过程由三个部分组成,即通信链路计算机终端设备(ATM)。如果要避免受到攻击,那么这三个组件就必须得到有效的保护。在对ATM机的整体安全性进行分析时,我们应该对哪些因素进行评估呢?接下来,让我们一起来看一看。

1. 漏洞评估和网络渗透测试

在处理ATM机的安全问题时,这两种方法是最常使用的。在网络渗透测试的过程中,我们需要检测ATM机网络层的安全漏洞。由于ATM机需要与后台服务器进行通信,所以ATM机或者它的某一部件必须处于这个通信网络之中。获取到ATM机的IP地址之后,我们就可以对其进行网络层的渗透测试了。从安全的角度出发,ATM机的网络应该与其他银行的网络隔离开。为了进行测试,仅仅得到ATM机的IP地址还不够,测试者还需要进入ATM机的网络中。进入之后,我们就可以使用Nessus来扫描设备的开放端口、运行中的服务、以及与这些运行服务有关的漏洞了。我们可以使用NMap来扫描设备所有的端口,包括TCP和UDP端口。除此之外,我们也可以利用Nessus来识别ATM操作系统中其他组件的漏洞,例如Adobe和IE浏览器等等。

2. 应用程序安全审计

由于目前大多数ATM机运行的都是Windows操作系统,所以我们可以采用配置审计的方式来提升系统的安全性。在进行配置审计的过程中,我们可以从以下几个方面入手:

补丁与更新:检查系统的更新状态,确定是否安装了最新的安全补丁;

文件系统安全:检查关键目录和文件的访问权限和安全性;

系统访问和身份验证:检查密码锁定策略、账户锁定策略、以及用户权限策略等等;

审计与日志:检查事件日志、应用安全日志、以及审计策略;

账户配置:检查管理员组中的用户、默认用户以及访客账号等等,并且确认账户的有效期;


ATM安全解决方案评估

目前ATM机最常用的两种安全解决方案为Mcafee Solidcore和Phoenix Vista ATM。

Mcafee Solidcore:

McAfee应用控制机制可以防止未经授权的应用程序在ATM的操作系统中运行,这是一种基于白名单的策略。

Phoenix Vista ATM:

这种解决方案已经与ATM应用程序进行了整合,它可以检测系统中的关键文件是否遭到了篡改。这样一来,未经认证的程序就无法修改系统中的特定文件了。

这种体系由三层结构组成,即OS <–> XFS <–> Vista ATM。具体如下图所示:

http://p0.qhimg.com/t019911825c0946a8f5.png

金融服务扩展(XFS)是在Windows开放式系统体系结构(WOSA:Windows Open System Architecture)基础上的开发的一组标准接口,它是由欧洲标准化委员会/信息系统标准化委员会(CEN/ISSS)专题研究组编制的。在XFS的帮助下,我们无需考虑不同金融服务设备之间的区别,因为XFS所提供的通用API接口允许我们直接访问或修改这类设备。


渗透测试安全解决方案

我们的最终目的是为了获取到ATM操作系统的访问权,这样我们就可以了解这些应用到底是如何工作的了。获取到系统访问权之后,攻击者将在系统中安装恶意软件,然后再使用XFS组件来控制系统硬件。

测试实例:

1. 检查USB接口是否已启用,使用“Konboot”(或Hiren Boot)制作USB启动盘;

2. 插入USB启动盘,从U盘启动系统;

3. 大部分安全解决方案会在系统启动的时候就接管整个操作系统,所以请在启动的时候按住“Shift”键;

4. 如果你有用户名的话,直接输入并按下回车键,我们可以在不知道密码的情况下直接访问操作系统;

http://p3.qhimg.com/t0123798575a8e321c0.png

我们在测试的过程中,还可以从以下几个方面着手:

1. 对“运行时代码认证”功能进行测试;

2. 测试代码保护功能:

3. 检测系统注册表项;

4. 防止物理攻击

5. 防止逻辑攻击;

6. 防止欺诈攻击;


总结

随着黑客技术的不断发展,攻击者肯定会继续研究入侵ATM机的新方法。在这场没有硝烟的战争中,银行必须占领先机。银行要部署最新的安全解决方案,并且尽可能地缩小ATM机的受攻击面。希望这篇文章能够给金融领域的安全技术人员提供一种解决安全问题的思路。

https://p4.ssl.qhimg.com/t01f61186d5d54202e2.jpghttps://p0.ssl.qhimg.com/t01cc5d036b04c82003.jpg

本文翻译自infosecinstitute 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
WisFree
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66