前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ATM机渗透测试的攻防实践

ATM机渗透测试的攻防实践

作者头像
FB客服
发布2018-02-09 12:14:50
1.2K0
发布2018-02-09 12:14:50
举报
文章被收录于专栏:FreeBufFreeBuf

ATM自动柜员机为人们提供了便捷,现在大家不必去银行就能进行现金交易。用户使用它可以对资金进行敏感操作,当然其中脆弱的通信环节也引来了大量黑客的觊觎。

在过去的许多年里,黑客已经发现了多种入侵ATM机的方式,其中不乏暗中进行读卡扫描等物理攻击。同时,他们也在试图探索新的方法来破解ATM软件。

在本文中,我们将了解到ATM的工作原理、那些用于ATM机的安全解决方案、渗透ATM机的各种奇技淫巧,以及抵御ATM机黑客的最佳解决办法。

ATM机是如何工作的

大部分的ATM机都有2个输入点和4个输出点:

输入点是读卡器和键盘 输出点则是屏幕、收据打印器、现金出纳器和扬声器

通常情况下,ATM机会直连到后端的服务器(主机开关),主机开关又会跟银行网络进行交互,然后返回消息给ATM机。那么,当用户插入银行卡取现金的时候,会发生点什么呢?

用户的账户信息储存在卡背面的磁条里,当他们把卡插入读卡器时,ATM机就会开始读取卡磁条里的信息。这张卡的数据会被发送到主机开关,最后再被转发到银行网络。

在这种银行卡通过认证后,用户就需要通过键盘输入密码,接着密码就会被加密然后发送到主机开关。最后,那张卡的信息和密码会同时被发送到银行网络供系统验证,一旦验证成功,主机开关就会将响应码返回给ATM机。

接着用户就得输入需要操作的现金数额,然后请求会被发送到主机开关,最后再被转发到银行网络去验证资金账户是否充足。一旦后端账户的资金转移完成,主机开关会发送批准码给ATM机,命令它给予用户现金。

ATM机系统里的应用会指示机器提供现金,它自身的机制也会让它在提款时进行计数。至于那些交易相关数据,如账户号、交易ID、交易时间、交易额、钞票面额等等,都会被计入日志文件中,这个日志文件通常被称为EJ日志。

在检测程序执行的过程中,ATM机的传感器会去扫描钞票的厚度,防止有折叠或者粘在一起的钞票。如果发生了这种情况,这类钞票会被转移到隔离地带。

ATM机的安全

随着ATM机个体的增加,它们更加容易遭到不怀好意的人觊觎。同时,许多ATM机仍在使用windows xp,众所周知它们是非常容易被黑的。电子账户资金的转移会经过通信链路、电脑和ATM终端,这三个组件都需要接受安全防护措施。

我们需要对它们进行调查评估,以分析ATM机的整体安全。

漏洞评估和网络渗透测试

这两个工作在保证ATM机安全时非常重要的,我们在网络渗透测试会检查ATM机的网络层面的漏洞。由于ATM机会与后端服务器进行通信,所以它必须接入网络。通过获取ATM机的IP地址,我们可以开始网络渗透测试之旅。

由于ATM网络一般会与银行网络隔离,所以测试人员需要与ATM网络一个段才能开始测试。我们可以通过nessus去扫描ATM机上开放的端口和运行的服务,以及相关服务的存在的漏洞。

同样,我们可以运行全端口扫描器NMAP去确定ATM机上开放的TCP和UDP端口和相应的服务。此外,nessus认证扫描可以用来识别ATM机上安装的脆弱组件,比如Adobe、IE浏览器等等。

同时,我们还需要对操作系统做好安全配置。由于大部分ATM机都运行的是windows操作系统,它们必须按照最佳的配置来减少黑客的攻击面。比如,我们可以做以下的配置:

补丁和更新:经常检查操作系统更新和安全补丁 系统访问和身份验证:检查密码和账户锁定相关策略、用户的权限策略等等 审计和日志:检查相关事件、应用和安全日志、审计策略,以及事件日志的权限 用户账户配置:检查管理组的用户、默认用户、guest账户、密码要求和过期时间

应用程序安全审计

在这里,我们可以分为两类:

1.胖客户端渗透测试:

多数ATM应用是胖客户端,我们可以在上面执行对应用的渗透测试:

敏感信息一般存储在应用配置文件中,认证信息会存在注册表内,还有部分敏感信息会被硬编码到代码之中 通过拦截流量,可以篡改操纵服务器和应用之间传递的敏感信息 检查应用和数据库之间是否存在明文通信协议 反逆向的保护措施

2.应用设计审查:

在这一点中,我们可以检查应用中的一些安全实践内容:

记录到日志文件中的事件类型 ATM应用运行使用的特权 软件是否会将不同等级的用户进行限制,根据不同的用户ID展示不同的内容 访问应用相关文件夹的权限 没有密码或者使用老旧密码是否能够成功交易 操作系统是否能在应用运行时对其进行访问 与后端组件的交互情况 检查网络隔离是否有效 是否用户输入了无效密码也会进行记录 是否每个事务都会强制性需要密码 软件是否会泄露输入的密码

ATM机的安全解决方案

很多ATM机都会运行windows xp,正因为微软不再对它们进行支持,故而许多ATM机供应商会采用一些安全解决方案来减轻攻击和漏洞带来的威胁。

这些安全解决方案会限制ATM应用,让它们运行在非常严格的环境下,系统后台只能运行非常有限的服务。这里举两个安全解决方案的例子:Mcafee Solidcore和Phoenix Vista ATM。

Mcafee Solidcore

Mcafee应用控制器会运行在ATM机操作系统上,用于限制那些未授权的可执行文件。这个解决方案适用于白名单策略,比如那些应用、进程和服务。

它通过Integrity Monitor去跟踪项目代码和配置的更迭情况,保护那些不能更改的配置和密码。当然,ATM应用和应用相关文件会首先列入白名单进行执行。

Phoenix Vista ATM

Phoenix Vista ATM是Phoenix Interactive Design公司的产品,后来被Diebold收购,这个解决方案集成入了ATM应用。该应用会检查文件的完整性,任何对系统相关的重要文件的篡改都会导致系统关闭,从根本上杜绝了未授权应用的修改行为。

该架构包括3层:

OS <–> XFS <–> Vista ATM

XFS(金融服务扩展)为windows平台提供了客户机-服务器体系结构,特别是那些金融行业特有的外部设备(如ATM)。

这是一个由欧洲标准化委员会搞出的一套东西,缩写为CEN/XFS。XFS提供了一个通用的API,目的是方便各制造商的金融设备进行访问。

Vista ATM和XFS层通信,它会给硬件发布命令,让其进行现金出纳。任何未授权的对XFS文件的修改,都会触发Vista ATM应用将机器强制重启。在重启4-5次后,它会自动进入维护模式,不允许用户执行任何事务。

安全解决方案

ATM机中的安全测试解决方案也是相同的,它最终的目标是获取操作系统的权限,或者调试应用相关文件来查看应用行为。攻击者可以创建一个恶意软件,使用XFS组件向系统硬件发出命令。

部分测试用例如下:

检查USB功能是否启用,使用Konboot去USB启动 插入USB设备,通过它去引导系统 因为大多数安全解决方案会在引导时接管系统,我们需要在系统引导的时候按住“Shift”键不放开。这会打破ATM系统的原本的节奏,最终停在windows登陆界面。 如果你知道有效的用户名,输入并按下“Enter”键,就能无密码访问系统。 但是如果你不知道用户名,你可以试试默认的“Administrator”用户,因为大多数ATM并没有禁用它。 还有种方法,你可以使用Hiren引导USB启动,这可以不需要windows登陆直接访问文件系统。

运行代码授权的测试:

检查是否启用USB功能,试着直接从USB设备运行未授权的代码,或者使用USB的自动运行功能

代码保护的相关测试:

将应用程序相关文件移动到另一个位置,对其修改或者删除

检查相关流程是否修改:

将未经授权的文件重命名为一个安全软件的进程名,这可能导致应用程序启动时会执行那个未授权文件

通过注册表进行未授权威胁检测:

检查是否重要的注册表键可以被修改,或者未授权软件是否可以在windows启动目录执行

ATM的最佳安全实践

银行可以通过进行安全最佳实践来减少攻击者的攻击面,这部分也可以分为三类:

对物理攻击的防护

防止对银行卡的扫描窃读 检测和防止伪造的ATM接口对银行卡的截取 防止肩窥(偷瞄)攻击 实现DV捕捉ATM用户面部特征和记录时间戳 防止火灾爆炸 防止纸币和账单的未授权访问。 电力和网络入口的保护 禁用未使用的网络和电源端口 ATM需要固定在地板上防止抢劫,使用传感器识别是否机器受到冲击。 使用闭路摄像头+保安监控

逻辑攻击保护

设置难猜测的引导和BIOS密码,防止黑客进行未授权的系统引导,大多数ATM都会默认配置启动密码 对USB功能和未授权硬盘的保护 强化系统和打上最新的补丁 给ATM机上的应用、服务、进程加白名单 ATM机系统上需要用最小特权的用户运行 文件完整性检查 确保事务日志的安全 使用安全信道进行通信交易 在ATM应用上配置安全最佳实践 进行防病毒保护 ATM网络和其他网络隔离 防止tyupkin/ploutus等恶意软件的侵害

防止欺诈攻击

限制卡的使用地域 芯片卡+密码来减轻卡复制+读卡攻击的危害 实施行为检测,甄别不寻常的交易

结论

随着技术的发展,黑客可能会想出越来越多的方法来入侵ATM机。银行需要保证ATM机的安全,维护客户的信任,保持部署最新的安全解决方案,尽量减少黑客的攻击面。笔者建议,通过增强物理安全和逻辑安全,有助于提升ATM机通信的安全性。

* 参考来源:infosec,FB小编dawner编译,转载请注明来自FreeBuf(FreeBuf.COM)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ATM机是如何工作的
  • ATM机的安全
    • 漏洞评估和网络渗透测试
      • 应用程序安全审计
      • ATM机的安全解决方案
        • Mcafee Solidcore
          • Phoenix Vista ATM
          • 安全解决方案
          • ATM的最佳安全实践
            • 对物理攻击的防护
              • 逻辑攻击保护
                • 防止欺诈攻击
                • 结论
                相关产品与服务
                网站渗透测试
                网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档