從臨機攻擊到網路攻擊:ATM 惡意程式演化史(內含趨勢科技與歐洲刑警組織-Europol 共同發表研究報告)

 

2016 年,趨勢科技發表了一份非公開的研究報告,詳細介紹了一些已知專門攻擊 ATM 提款機的惡意程式家族。該份報告的主要重點在說明這些惡意程式家族如何利用 ATM 應用程式開發介面 (API) 與金融服務延伸功能 (eXtensions for Financial Services,簡稱 XFS) 的 API,來與 ATM 的相關硬體溝通,其中最主要的是讀卡機和吐鈔機。

當時,我們發現駭客感染 ATM 提款機主要是靠臨機攻擊:駭客實際打開提款機外殼,在裸機的情況下使用USB 隨身碟或 CD 光碟將提款機系統重新開機。這樣的攻擊方式雖然至今仍然可見,不過,最近已開始出現上次報告曾經暗示過的一種新式攻擊,那就是:網路攻擊。

儘管當時我們只是推測這樣的情況有可能發生,並未料到我們竟然一語成讖。隨著銀行開始對 ATM 提款機的臨機攻擊有所警覺,並且採取一些必要的防範措施,駭客也跟著開始另闢途徑,也就是 ATM 網路攻擊。

要經由網路感染 ATM 提款機,駭客需要更多的事前規劃與準備,其最大的困難在於從銀行內部網路進入ATM 網路。因為,在一個規劃良好的網路架構中,這兩個網路通常會分開獨立,因此要從某個網路進到另一個網路必須穿越防火牆和其他可能的安全機制。不幸的是,某些銀行並未實施網路分割。就算兩者分開獨立,在某些已知的案例當中,歹徒還是能夠經由銀行內部網路將惡意軟體安裝到 ATM 提款機上。

為了讓讀者有個大致的概念,以下我們將所有已知的攻擊分成兩大類:

  1. 經由臨機操作方式進入 ATM 提款機的攻擊:在這類案例當中,歹徒通常利用一把萬能鑰匙或用暴力的方式打開提款機外殼。
  1. 經由網路進入 ATM 提款機的攻擊:這類攻擊通常需要先駭入銀行內部網路。

在介紹過這兩種攻擊之後,我們會在第三節當中再介紹兩種較為特殊且較為罕見的攻擊型態。我們相信這兩種攻擊雖然較不常見,但仍值得注意,因為只要是之前曾經發生過的案例,之後還是可能會再出現。為了力求完整,我們也將介紹一個用來測試上述攻擊方式的工具。儘管該工具不會用在攻擊當中,但卻顯示歹徒在實際行動之前如何測試其攻擊手法。

在這份報告的最後,我們將探討 ATM 攻擊背後的犯罪集團。然而,追溯攻擊源頭是件棘手的問題,因此我們主要將著眼於整體的威脅情勢,並約略分析一下歹徒在這類攻擊當中的獲利模式。

最後請記住,在所有已知的攻擊案例當中,歹徒使用 ATM 惡意程式的最終目標都是為了在提款機上安裝一個程式來吐光提款機內的鈔票,或是盜取提款機內保留的金融卡資料,或兩者都有。

ATM 基本構造:

如何進入 ATM 提款機內部

ATM 惡意程式的主要目標就是連上並操控提款機內的周邊裝置,進而讓提款機吐鈔,或者/並且蒐集銀行客戶的金融卡資料。因此,要了解 ATM 惡意程式如何攻擊提款機,首先必須認識提款機的內部構造。以最簡單明瞭的方式來看,ATM 提款機基本上就是一台電腦再加上一個小金庫,然後外面用一個機殼加以包覆。此外,ATM 提款機還可連接一些周邊裝置來為客戶提供多樣化服務,例如:提款、存款、轉帳、付款等等。儘管 ATM 提款機有各種外觀樣式和體型,但內部構造其實大同小異。下圖示範 ATM 提款機的基本構造與各部分元件:

圖 1:ATM 提款機各部分元件。
圖 1:ATM 提款機各部分元件。

 

ATM 提款機主要由以下單元所構成:

  1. 中央處理器 (CPU):負責控制使用者操作介面、通訊、管理周邊裝置、處理交易。
  2. 讀卡機:磁條或晶片卡讀卡機,負責讀取金融卡。
  3. 數字鍵盤:具備加密功能的數字鍵盤 (EPP),可將鍵盤上輸入的 PIN 碼加密。
  4. 安全加密晶片:負責通訊的加密與解密,所有交易皆採用 AES 或 3DES 加密演算法。
  5. 螢幕:負責顯示 ATM 的操作介面,某些較新的 ATM 會採用觸控螢幕和虛擬功能鍵。
  6. 功能鍵:螢幕或觸控螢幕旁邊的按鍵,用來選擇螢幕上的選項或常用功能。
  7. 收據列印機:用來列交易記錄,某些 ATM 還可補登存摺。
  8. 金庫:這是 ATM 最重要的元件,採用高張力鋼板打造。金庫內包含了吐鈔機制、支票和現鈔存款機制、鈔票進出登記系統、鈔票箱以及安全鎖。
  1. 內層機殼:這是一層客製化的金屬機殼,外層機殼基本上是採用高硬度熱成形 ABS 塑膠製造,並且貼有銀行的標誌。
  1. 保全設備: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 加密。

利用 ATM 惡意程式大發利市完整報告

利用 ATM 惡意程式大發利市 完整剖析各種攻擊型態 趨勢科技前瞻威脅研究 (FTR) 團隊、 歐洲刑警組織 (Europol) 歐洲網路犯罪中心 (EC3) 聯合製作
利用 ATM 惡意程式大發利市 完整剖析各種攻擊型態 趨勢科技前瞻威脅研究 (FTR) 團隊、 歐洲刑警組織 (Europol) 歐洲網路犯罪中心 (EC3) 聯合製作