要黑銀行的ATM有兩條路:編個惡意程序,直接騙過柜員機上那個漏洞百出的Windows系統;或者先黑銀行的后臺系統,盜取客戶信息之后再大模大樣到ATM取錢。這兩條路,現在都有得走。
網絡安全研究人員杰克(Barnaby Jack)在美國拉斯維加斯的黑帽安全會議(B lack Hat)上原本有一個精彩的演講,他準備演示如何入侵ATM(自動柜員機),以證明多種不同型號的ATM存在安全隱患。“我一直很喜歡《終結者2》的一個場景,約翰#8226;康納走到一臺自動柜員機前,將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#12316;5個鈔箱,每個鈔箱里容納20#12316;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所遭遇的攻擊都來自互聯網,一個可能的解決辦法是,銀行系統專網專用,購買或者參股網絡安全公司,建立專用的金融網絡。“任何和外部接觸的網絡都可能被外部攻擊,同理,如果你是局域網絡,那被攻擊也是自己人作祟。銀行的網絡在大眾看來穿上了隱身衣跑在公共網絡上,但黑客有鑒別隱身衣的眼睛。”金飛說。