趨勢科技發現了稱為Alice的新ATM 自動提款機惡意程式,這是我們遇到最精簡的ATM惡意軟體。與其他ATM惡意軟體不同,Alice不能透過數字鍵盤控制;也沒有資料竊取功能。它就是設計來清空ATM的錢。我們依照惡意檔案內的版本資訊”Project Alice “,將這新惡意軟體家族偵測為 BKDR_ALICE.A。
趨勢科技在2016年11月首次發現Alice 這隻ATM惡意軟體,這是我們和歐洲刑警組織網路犯罪中心(Europol EC3)的ATM惡意軟體共同研究計畫的成果。我們收集了一份雜湊值清單並從VirusTotal取得對應的檔案作進一步地分析。其中一個程式最初被認為是Padpin ATM惡意軟體的新變種。不過經過逆向工程分析後,我們發現它屬於全新的家族,趨勢科技將其稱之為Alice。
ATM惡意軟體從2007年就一直存在著,但在過去九年間,我們只看到八種ATM惡意軟體家族,包括Alice。這趨勢在過去的二三年間大大地加速,大部分家族都在這時出現。
技術細節
Alice這名稱來自於內嵌在惡意檔案內的版本資訊:
圖1、Alice樣本的檔案屬性
根據執行檔編譯時間和Virustotal提交日期,Alice從2014年10月就已經出現。我們所發現的Alice樣本有用商用加殼/混淆程式VMProtect進行加密。這個軟體會檢查內嵌程式是否執行在除錯器中,如果是就會顯示以下錯誤消息:
圖2、錯誤消息
在執行任何惡意程式碼前,Alice會檢查是否在適當的金融服務擴展(XFS)環境中執行,確保自己真的是在ATM上執行。它的作法是檢查以下註冊表項:
- HKLM\SOFTWARE\XFS
- HKLM\SOFTWARE\XFS\TRCERR
如果這些註冊表項不存在,惡意軟體假定環境不對而將自己終止。Alice還需要系統有安裝以下DLL:
- dll
- dll
- dll
根據XFS檢查成功與否,Alice會顯示認證視窗或一般錯誤訊息框:
圖3和圖4、執行後的訊息框。如果XFS檢查成功會顯示上方的認證視窗。如果檢查得出否定結果則顯示下方的錯誤訊息。
當第一次執行時,Alice會在根目錄建立大小為5MB的空檔案 – xfs_supp.sys和錯誤日誌檔 – TRCERR.LOG。第一個檔案用零填滿而沒有寫入任何資料。第二個檔案(TRCERR.LOG)是惡意軟體用來寫入執行期間所發生任何錯誤的日誌檔案。所有XFS API調用及對應的訊息/錯誤都會被記錄。此檔案在移除時不會從機器中刪除。它會留在系統上以便將來進行疑難排除,也可能是惡意軟體作者忘記清理它。
Alice連接到CurrencyDispenser1周邊,這是XFS環境中出鈔機的預設名稱。Alice不會連接ATM其他的硬體;因此犯罪分子不能透過鍵盤輸入任何指令。如果Alice連接CurrencyDispenser1失敗並不會將自己終止,而只是記錄錯誤。
上圖的PIN輸入提供向Alice惡意軟體發出指令的方法。有三個指令可以輸入:
PIN碼 | 指令說明 |
1010100 | 解密和植入sd.bat到現在目錄。這個批次檔用來清理/移除Alice。 |
0 | 結束程式並執行sd.bat。還會刪除xfs_supp.sys。 |
基於ATM終端ID的特定4位數 | 開啟「操作面板」 |
如果輸入PIN碼時發生多次錯誤會導致出現以下視窗,並且讓惡意軟體自行終止:
圖5、錯誤消息
輸入正確PIN碼可以讓Alice開啟「操作面板」。這是會顯示機器內各個裝錢匣的視窗,讓攻擊者可以找時間偷走。(因為我們是在測試環境執行此惡意軟體,所以示範畫面看不到任何顯示。)
圖6、操作面板
車手可能需要重複操作多次,以吐光裝錢匣內所有的現金。
注意,裝錢匣編號輸入「0」或「9」也會執行sd.bat並刪除xfs_supp.sys。
當車手在操作面板輸入裝錢匣編號時,CurrencyDispenser1周邊透過WFSExecute API送出吐鈔指令將儲存的現金吐出。ATM通常有40張鈔票的吐鈔限制,因此車手可能需要重複操作多次以吐光裝錢匣內所有的現金。每個匣中儲存的現金數目會在螢幕上動態更新,因此車手知道離完全清空還要多久。
犯罪分子手動用Alice替換掉Windows工作管理員
Alice通常在受感染系統上以taskmgr.exe出現。雖然惡意軟體本身並不具備持久性方法,我們相信犯罪分子手動用Alice替換掉Windows工作管理員。任何調用工作管理員的指令也會調用Alice。
Alice惡意程式不使用ATM 機器實體鍵盤
Alice的功能很精簡,跟我們分析過的其他ATM惡意軟體不同,它只具備清空ATM鈔票的基本功能,只連接CurrencyDispenser1周邊,並不嘗試使用機器的實體鍵盤。合理推測是因為Alice的幕後黑手需要實際上去打開ATM,透過USB或CD-ROM感染機器,然後將鍵盤連到機器主機板來操作惡意軟體。
另一種可能性是透過遠端桌面來經由網路操作,類似泰國的駭客攻擊或其他最近的事件。不過我們還沒有看到Alice被這樣使用。輸入PIN碼到吐鈔間的時間長度顯示Alice被用在現場犯案。 Alice也沒有精心設計安裝或移除機制 – 只需在適當的環境中執行程式就可以運作。
Alice的使用者認證跟其他ATM惡意軟體相似。負責行動的車手從犯罪集團那拿到所需的PIN碼。他們輸入的第一個指令會植入清除腳本,輸入機器特定PIN碼可以讓他們使用操作面板來進行吐鈔。
暴力破解密碼會導致惡意程式自行終止
各個樣本的存取密碼不同,以防止車手繞過犯罪集團來共享密碼,也易於追蹤車手。我們的樣本密碼只有4位數,不過這很容易可以改變。想要暴力破解密碼會導致惡意軟體在達到輸入上限後自行終止。
因為Alice只檢查XFS環境且不執行其他硬體檢查,我們相信它被設計成可以在任何使用Microsoft金融服務擴展中介層(XFS)的硬體上執行。
關於使用加殼器:Alice使用商用VMProtect加殼器,但它並不孤單。我們也發現GreenDispenser使用Themida加殼,Ploutus使用Phoenix Protector加殼等等。
加殼會讓分析和逆向工程變得更加困難。一般惡意軟體已經使用這種技術多年,今日的惡意軟體會使用客製化的加殼器。那為什麼ATM惡意軟體作者才剛開始用加殼和混淆技術?
直到最近,ATM惡意軟體都是惡意軟體世界中的小眾,由少數犯罪集團用高度針對性的方式操縱。目前正處於ATM惡意軟體成為主流的分界點。各個ATM惡意軟體家族已經由許多資安廠商加以徹底分析和討論,這些犯罪分子現在已經開始發現需要將自己從資安界前隱藏起來,避免被發現和偵測。今天,他們使用商用加殼器;明天我們預期會看到他們開始使用客製化加殼器和其他混淆技術。
進一步的技術細節及各種ATM惡意軟體比較可以參考附錄。
入侵指標(IOC)
此次分析所用的檔案具備以下SHA256雜湊值:
- 04F25013EB088D5E8A6E55BDB005C464123E6605897BD80AC245CE7CA12A7A70
- B8063F1323A4AE8846163CC6E84A3B8A80463B25B9FF35D70A1C497509D48539
@原文出處:Alice: A Lightweight, Compact, No-Nonsense ATM Malware 作者:David Sancho和Numaan Huq(資深威脅研究員)