ATM 惡意程式是一項存在已久的數位威脅,第一個已知的變種,最早可
追溯至 2009 年。由於它可以帶來龐大的現金,因此一直是許多網路犯罪
集團的重要武器之一,這一點不令人意外。
我們一而再、再而三看到網路犯罪集團在 ATM 提款機上加裝磁條盜拷裝
置,甚至大剌剌地安裝在公共場所的提款機上,也看到他們所犯下的一
些大型的 ATM 提款機盜領案。
但是,由於這項犯罪獲利相當驚人,因此歹徒朝網路化發展,經由銀行
內部網路來攻擊 ATM 提款機,只能說是一項自然而然的演變。畢竟,如
果能夠找到金融機構的漏洞,然後避開安全機制並滲透到金融機構的內
部網路,其回報必定更加驚人。
再加上,許多 ATM 提款機目前依然還在使用一些老舊過時的作業系統,
因此 ATM 惡意程式未來勢必仍是網路犯罪集團的主要犯罪工具。這類老
舊的作業系統,由於廠商已經不再提供支援,因此任何漏洞都不會再有安
全修補與更新。所以,仍在使用這類老舊作業系統的電腦,很容易遭到攻
擊。
本文將詳細探討目前已知的各種 ATM 惡意程式家族與攻擊型態 (臨機攻
擊或網路攻擊),以及駭客如何滲透目標的基礎架構並且在內部遊走。
2016 年,趨勢科技發表了一份非公開的研究報告,詳細介紹了一些已知專門攻擊 ATM 提款機的惡意程式家族。該份報告的主要重點在說明這些惡意程式家族如何利用 ATM 應用程式開發介面 (API) 與金融服務延伸功能 (eXtensions for Financial Services,簡稱 XFS) 的 API,來與 ATM 的相關硬體溝通,其中最主要的是讀卡機和吐鈔機。
當時,我們發現駭客感染 ATM 提款機主要是靠臨機攻擊:駭客實際打開提款機外殼,在裸機的情況下使用USB 隨身碟或 CD 光碟將提款機系統重新開機。這樣的攻擊方式雖然至今仍然可見,不過,最近已開始出現上次報告曾經暗示過的一種新式攻擊,那就是:網路攻擊。
儘管當時我們只是推測這樣的情況有可能發生,並未料到我們竟然一語成讖。隨著銀行開始對 ATM 提款機的臨機攻擊有所警覺,並且採取一些必要的防範措施,駭客也跟著開始另闢途徑,也就是 ATM 網路攻擊。
要經由網路感染 ATM 提款機,駭客需要更多的事前規劃與準備,其最大的困難在於從銀行內部網路進入ATM 網路。因為,在一個規劃良好的網路架構中,這兩個網路通常會分開獨立,因此要從某個網路進到另一個網路必須穿越防火牆和其他可能的安全機制。不幸的是,某些銀行並未實施網路分割。就算兩者分開獨立,在某些已知的案例當中,歹徒還是能夠經由銀行內部網路將惡意軟體安裝到 ATM 提款機上。
為了讓讀者有個大致的概念,以下我們將所有已知的攻擊分成兩大類:
- 經由臨機操作方式進入 ATM 提款機的攻擊:在這類案例當中,歹徒通常利用一把萬能鑰匙或用暴力的方式打開提款機外殼。
- 經由網路進入 ATM 提款機的攻擊:這類攻擊通常需要先駭入銀行內部網路。
在介紹過這兩種攻擊之後,我們會在第三節當中再介紹兩種較為特殊且較為罕見的攻擊型態。我們相信這兩種攻擊雖然較不常見,但仍值得注意,因為只要是之前曾經發生過的案例,之後還是可能會再出現。為了力求完整,我們也將介紹一個用來測試上述攻擊方式的工具。儘管該工具不會用在攻擊當中,但卻顯示歹徒在實際行動之前如何測試其攻擊手法。
在這份報告的最後,我們將探討 ATM 攻擊背後的犯罪集團。然而,追溯攻擊源頭是件棘手的問題,因此我們主要將著眼於整體的威脅情勢,並約略分析一下歹徒在這類攻擊當中的獲利模式。
最後請記住,在所有已知的攻擊案例當中,歹徒使用 ATM 惡意程式的最終目標都是為了在提款機上安裝一個程式來吐光提款機內的鈔票,或是盜取提款機內保留的金融卡資料,或兩者都有。
ATM 基本構造:
如何進入 ATM 提款機內部
ATM 惡意程式的主要目標就是連上並操控提款機內的周邊裝置,進而讓提款機吐鈔,或者/並且蒐集銀行客戶的金融卡資料。因此,要了解 ATM 惡意程式如何攻擊提款機,首先必須認識提款機的內部構造。以最簡單明瞭的方式來看,ATM 提款機基本上就是一台電腦再加上一個小金庫,然後外面用一個機殼加以包覆。此外,ATM 提款機還可連接一些周邊裝置來為客戶提供多樣化服務,例如:提款、存款、轉帳、付款等等。儘管 ATM 提款機有各種外觀樣式和體型,但內部構造其實大同小異。下圖示範 ATM 提款機的基本構造與各部分元件:
ATM 提款機主要由以下單元所構成:
- 中央處理器 (CPU):負責控制使用者操作介面、通訊、管理周邊裝置、處理交易。
- 讀卡機:磁條或晶片卡讀卡機,負責讀取金融卡。
- 數字鍵盤:具備加密功能的數字鍵盤 (EPP),可將鍵盤上輸入的 PIN 碼加密。
- 安全加密晶片:負責通訊的加密與解密,所有交易皆採用 AES 或 3DES 加密演算法。
- 螢幕:負責顯示 ATM 的操作介面,某些較新的 ATM 會採用觸控螢幕和虛擬功能鍵。
- 功能鍵:螢幕或觸控螢幕旁邊的按鍵,用來選擇螢幕上的選項或常用功能。
- 收據列印機:用來列交易記錄,某些 ATM 還可補登存摺。
- 金庫:這是 ATM 最重要的元件,採用高張力鋼板打造。金庫內包含了吐鈔機制、支票和現鈔存款機制、鈔票進出登記系統、鈔票箱以及安全鎖。
- 內層機殼:這是一層客製化的金屬機殼,外層機殼基本上是採用高硬度熱成形 ABS 塑膠製造,並且貼有銀行的標誌。
- 保全設備:ATM 提款機同時也會配備監視攝影機,以及 (磁鐵、溫度、地震、瓦斯等等) 安全感應裝置、喇叭、指示燈等等。
今日的 ATM 提款機再也不像以往採用特殊規格的硬體,而是一般標準的 PC 與 USB、乙太網路、IP 通訊協定以及 Windows® 作業系統等等。最主要的原因應該是成本的考量,除了零件更便宜之外,軟體的支援度以及互通性也更好。
目前全球安裝的 ATM 提款機絕大多數都仍在使用 Windows XP 或 Windows XP Embedded 作業系統。某些更老舊的提款機甚至還在使用 Windows NT®、Windows CE® 或 Windows 2000。Microsoft® 早在 2014 年4 月 8 日就已終止 Windows XP 的支援。Windows XP Embedded 的延長支援也在 2016 年 1 月 12 日截止。此外,Windows Embedded Standard 2009 的延長支援也預計在 2019 年 1 月 8 日截止。這意味著,至少有數十萬台 ATM 提款機所使用的作業系統,早已不再或者即將不再收到安全更新,無法修補新發現的漏洞。ATM 上的應用程式會使用 XFS 中介軟體來和周邊裝置溝通 (後面會再進一步深入探討 XFS 中介軟體的問題)。
ATM 會透過 ADSL 或撥號連線數據機,經由電話線或專線連上網路。ATM 所使用的低階網路通訊協定為SNA over SDLC、TC500 over Async、X.25, 以及 TCP/ IP over Ethernet1。ATM 會連上一些跨行網路(NYCE、PULSE、PLUS、Cirrus、AFFN、Interac、STAR、LINK、MegaLink 及 BancNet) 並且經由「ISO8583:Financial transaction card originated messages – Interchange message specifications」金融卡交易訊息交換規格來溝通2、3。ISO 8583 並未包含路由資訊,因此需搭配一個 TPDU 標頭4。交易訊息內容會以 AES 或3DES 加密。為了提高安全性,ATM 提款機與跨行網路之間的所有通訊,也可能會再經過 SSL 加密。