黑掉ATM的机会:编写恶意程序黑掉后台系统

20091004093614f933f《新知客》9月刊报道 要黑银行的ATM有两条路:编个恶意程序,直接骗过柜员机上那个漏洞百出的Windows系统;或者先黑银行的后台系统,盗取客户信息之后再大模大样到ATM取钱。这两条路,现在都有得走。

网络安全研究人员杰克(Barnaby Jack)在美国拉斯维加斯的黑帽安全会议(Black Hat)上原本有一个精彩的演讲,他准备演示如何入侵ATM(自动柜员机),以证明多种不同型号的ATM存在安全隐患。“我一直很喜欢《终结者2》的一个场景,约翰·康纳走到一台自动柜员机前,将Atari接入读卡器并从机器中取出大量现金。我认为已经找到了这样做的关键。”

杰克为自己的演讲取名为“自动柜员机让你发财”,但他最后并没有“美梦成真”,因为这次演讲最后被取消了。作为计算机网络公司瞻博(Juniper)的雇员,杰克被公司告知停止这次演讲,理由是ATM生产厂商对公司施压。

美国密歇根大学研究网络安全的哈德曼(J. Alex Halderman)教授在接受记者采访时对瞻博的这一行为表示理解,“ATM生产厂商可以以泄漏秘密为由将瞻博告上法庭,因为杰克善意的演讲可能会被人利用。在找到修补漏洞的办法之前,ATM不能冒这么大的风险。”美国黑客曾经入侵花旗银行的ATM网络,让花旗蒙受至少200万美元的损失,而这仅仅是ATM漏洞所致巨额损失中的九牛一毛。

ATM的“自动”机制

1967年6月27日,世界上第一台自动取款机在伦敦附近的巴克莱银行分行亮相。时至今日,据汇丰银行估计,95%的取款是通过ATM机而不是柜台出纳办理的。数亿人习惯了在墙上的“洞”里存钱、取钱。

“洞”的核心秘密在看不见的地方。

“ATM分为硬件和软件两部分,人们看到的只是操作台。”从事“迪宝”ATM机销售工作超过十年的蔡戬告诉记者,我国现在有大约20万台ATM机。如果有机会拆开穿着厚重盔甲的ATM机,会看到这样的情景:上下两层的布置里,上层有一台普通的电脑主机、屏幕对外的显示器(也就是外露的部分)、读卡器,打印机、打印卷纸等。下层是几个金属小箱子(钞箱和废钞箱),此外,就是一些金属杠杆等机械设备。

对用户(持有银行卡的人)来说,为了取款,从插卡到取卡的过程可能只需要60秒,但这1分钟里ATM机已经高速运转。以银行卡(确切的说是磁条)为钥匙,在输入个人核心信息之后,ATM机会通过安全微控制器启动一套程序。与其他数据终端一样,ATM必须连接到一个主处理机并与其通信。主处理机类似一个互联网服务提供商(ISP),它是用户可以访问各种自动柜员机网络的入口。

简单地说,自动柜员机是具有读卡器和键盘两个输入装置,以及扬声器、显示屏、凭条打印机和出钞口四个输出装置的数据终端。“输入装置可以让用户对ATM机发送命令。通过读卡器,ATM机获取银行卡背面磁条中的信息,通过RS232、RS485USB协议与外界(比如后台数据中心)通信的接口传送给主处理机。主处理机根据此信息将交易路由到用户的银行。用户再通过键盘输入告诉银行需要进行何种交易(取款、查询等)以及交易金额,在此过程中,银行需要用户输入个人密码(PIN)以进行身份验证。”

嵌入式软件工程师金飞告诉记者,ATM机将输入装置的信息发送到主处理机,主处理机将交易请求发送到用户的银行或发卡机构。如果用户要提取现金,主处理机在客户银行账户和主处理机账户之间执行一个电子资金转账。资金转账到主处理机账户后,处理机向ATM机发送一个批准代码,授权ATM机来支付现金,这时候,ATM机的输出装置就协助用户完成取款任务。

取款的风险

从ATM机的工作原理可以看到,ATM机通过主处理机验证了用户的身份,就会根据口令从钞箱中“吐”钱给用户。“出钞口连接了ATM机的钞箱,这是ATM的核心,大多数小型ATM机的整个底部都是容纳现金的钞箱。”蔡戬说,大的ATM机一般有4〜5个钞箱,每个钞箱里容纳20〜25万不等的钞票,而小的ATM机也能容纳10万左右的钞票。

按照这个程序运作,对用户来说有一个潜在的风险,特别是对ATM取款机而言。“ATM取款机本身没有钞票识别功能,所以放入钞箱里的钞票和白纸没有区别,ATM都会默认为是真钞。在验证了用户的身份之后,哪怕钞箱里放的是假币乃至牛皮纸,ATM机也会像傻瓜一样如数吐给用户。”但蔡戬认为这种可能性很小,因为钞箱里的钞票都是经过银行反复清点的,除了偶尔疏忽造成的小概率假币事件,大规模取到假币基本可以断定是清点不力,这就说明这家银行有问题,而不是ATM机有问题。

ATM存取款一体机的技术相对复杂一些,加入了验钞模块和识别钞票的技术,但也不是绝对安全。“开通了循环钞票的使用功能之后,谁也不敢说100%没有假钞逃过ATM的法眼,但概率真的很小。”蔡戬说,为了防止点钞错误,ATM设置了电子眼,以及一个估计钞票厚度的传感器,保证ATM机不会吐出比需求更多的钱。

但事情不是没有例外。2 0 0 7年,一个叫许霆的小伙子彻底搅动了ATM机的神经:键入1块钱却吐出了1 0 0 0元。最终,许霆被判有期徒刑5年,并处罚金2万元。ATM机是怎么出错的?

金飞分析,这种情况下ATM机的硬件没有问题,而是它本身的运行程序出错了,“这种错误就像运行的QQ、Office这些跑特定应用的程序出错一样。所谓特定程序,就是在连接了后台银行数据库通信之后,再根据用户操作存钱取钱的实际处理程序。具体是什么错误,这个就需要银行对ATM机进行检查了。”许霆案之后,当事的ATM机生产厂家广电运通宣称“当时ATM机在进行软件的升级”,“就像电脑在升级时发生错误一样,许霆当时用的ATM机也发生错误,吐出的钱和银行发送的支付口令默认的金额发生了偏差,这种偏差只能在银行和ATM机对账的时候发现。”

哈德曼教授同意了金飞的说法,“美国也曾经发生类似的案件,有些人输入100美元,吐出来的是1000美元。但除了ATM自身运行出错,也可以给它安装一个恶意程序欺骗ATM机。”哈德曼分析,在银行主处理机发送支付口令给ATM机的过程中,如果在数据包还未到达ATM机之前,恶意程序以更快的速度拦截口令并修改程序,就可以将修改后的支付口令发送给ATM机,让它乖乖听话,吐出更多的钞票。

最近,安全厂商Trustwave就提示那些运行Windows XP的ATM机银行,再一次检查机器有无受到黑客安装的恶意软件的感染,Trustwave方面警示说,当黑客将一个“触发卡”插入ATM时,被控制的恶意软件通过GUI(图形用户界面)显示,触发卡会打开一个小窗口,显示出10个命令选项,犯罪分子有10秒的时间使用ATM机的键盘从中选择一个命令,包括允许ATM吐出钞箱里的所有现金。

黑客的机会

利用A T M 机的工作特点和系统运行的漏洞,黑客可以抓到许多发财的机会。2008年11月,一个黑客组织利用欺诈程序在30分钟之内便从全球49个城市的130台ATM机上盗走了900万美元。他们是怎么做到的呢?

黑客侵入了RBS WorldPay系统(苏格兰皇家银行的在线支付系统),盗走了上百张工资卡的信息。他们将所盗窃的卡片信息写入数千张空白的磁卡,很容易地就用这些卡取到了钱。

“这和在ATM机周边或者机体上安装摄像头来盗取用户的银行卡信息差不多,只不过它是从后台系统上破解,但关键都是获取用户的关键信息(卡号和PIN密码等),仿造用户的银行卡,对ATM机发出‘正确’的取款口令。”蔡戬说,如果是黑客破解,那就需要加强后台的防护。金飞分析从后台攻击ATM的难度过大。他曾经给一家银行做后台维护,对方显得十分小心,直接利用ATM嵌入式操作系统漏洞会相对容易。

今年年初,黑客破解了ATM厂商Diebold一月份为其基于Windows的产品发布的软件更新补丁,并在其中插入了一个恶意软件,对位于俄罗斯的ATM机发出了攻击。Windows CE是许多ATM机的操作系统,而杰克准备在黑帽大会上演示的ATM机漏洞也正是基于这个系统。

“ W i n d ows最大的好处是操作界面便利,而且用户可以享受更多的服务。但Windows被太多人惦记了,木马、病毒和攻击总是随之而来。一旦出现漏洞,就需要对ATM机打补丁修复。”哈德曼教授说,美国以前采用IBM OS/2等更简单的操作系统,因为简单,所以目标性不强,针对它的病毒攻击并不多,“但ATM生产厂商还是喜欢Windows,因为这样他们可以卖出更多台ATM机。”

因为难以预计木马、病毒等的发生情况,所以最理想的状态是对ATM系统及时修补,但这在现实中不大可能。“成本太高,黑客24小时都可能对网络进行攻击,但对所有的ATM机进行24小时实时监控并提供补丁程序,不大可能。”金飞提到,银行方面对给ATM机打补丁和我们给电脑安装补丁的原理一样,但银行要谨慎许多,正如许霆案中出现的一样,更新可能导致另外的错误。

不过,目前ATM所遭遇的攻击都来自互联网,一个可能的解决办法是,银行系统专网专用,购买或者参股网络安全公司,建立专用的金融网络。“任何和外部接触的网络都可能被外部攻击,同理,如果你是局域网络,那被攻击也是自己人作祟。银行的网络在大众看来穿上了隐身衣跑在公共网络上,但黑客有鉴别隐身衣的眼睛。”金飞说。

原创文章,转载请注明: 转载自 obaby@mars

本文标题: 《黑掉ATM的机会:编写恶意程序黑掉后台系统》

本文链接地址: http://h4ck.org.cn/2009/10/atm-hack/

You may also like

发表评论

电子邮件地址不会被公开。 必填项已用*标注