開放原始碼軟體如何變成木馬程式?如何成目標式攻擊武器?

開放原始碼軟體如何變成木馬程式?我們又該如何偵測這類程式?要回答這些問題,讓我們來看一下最近我們針對這類檔案所做的一份研究。

木馬化的開放原始碼軟體很不容易被發掘,因為它們看起來就跟正常的軟體一樣,所以這類程式毫不起眼,因此特別適合用於目標式攻擊。但其實若深入追查,還是可以看到一些可疑的行為,並揭發它的不肖意圖。

研究過程


趨勢科技在分析一起資安事件時發現了一個名為「notepad.exe」的檔案相當可疑。因為,大家都知道 notepad.exe 是 Windows 系統內建的「筆記本」程式,而有些惡意程式作者就是喜歡偽裝成這類程式來躲避偵測。

Fig-1-Telemetry-Data
圖 1:監測資料顯示某個名為「notepad.exe」的檔案相當可疑。

這個 notepad.exe 檔案是經由 ntoskrnl.exe (Windows NT 作業系統核心執行檔) 進入系統。它很可能是經由 ntoskrnl.exe 的漏洞或是網路共用資料夾進入系統,不過根據我們得到的監測資料顯示比較可能是後者。接著,我們又利用根源分析 (Root Cause Analysis,簡稱 RCA) 發現,這個不肖的 notepad.exe 檔案會呼叫以下幾個工具來執行一些可疑動作:

執行檔功能
ipconfig.exe取得 Windows IP 組態設定。
net.exe 列出本地端與網域內的全域群組。列出伺服器與工作站的服務設定。找出所有本地端與網域中的所有網路共用資料夾。列出本地端使用者與網域使用者帳號。
reg.exe將系統登錄機碼與數值匯出到某個檔案。
systeminfo.exe蒐集本地端或遠端電腦的作業系統組態設定資訊,包括 Service Pack 版本。
tasklist.exe列出某台本地端或遠端電腦上正在執行的處理程序。

表 1:執行檔名稱與功能。

「notepad.exe」檔案竟然會呼叫這些程式來執行這些功能,證明它就是一個典型的後門程式,而且還會接收來自遠端駭客的指令。不過還有另一點引起我們的注意,那就是這個 notepad.exe 檔案的屬性資訊:

Fig-2-Notepad-properties
圖 2:Notepad.exe 的檔案屬性資訊。

其檔案敘述、產品名稱以及原始檔名都提到了「Notepad++」,這是一個開放原始碼的程式編輯器,但我們覺得就連這些屬性資訊也很可疑,因為,Notepad++ 的檔案名稱通常叫作「notepad++.exe」而不是此處的「notepad.exe」。而且版本 v7.8.6 是早在 4 月就發表,目前已經有點老舊,最新的版本是 11 月初所發表的  v7.9.1 版。

可疑的 notepad.exe 執行起來的畫面如下:

Fig-4-config-file
圖 3:可疑的 notepad.exe 執行起來的畫面。

其使用者介面和功能看起來都跟正常的 Notepad++ 如出一轍,乍看之下沒甚麼可疑之處。但如果仔細研究它的行為,就會發現此樣本會做出一些正常 Notepad++ 不會做的事,例如:搜尋「c:\windows\debug」資料夾下一個名為「config.dat」的檔案,此行為可從該樣本的程式碼分析中看到。

圖 4:搜尋 config.dat 檔案。

程式碼分析

這個惡意的 Notepad++ 檔案經過反組譯之後的程式碼如下圖所示:

Fig-5-Code-snippet-malicious-notepad
圖 5:惡意 Notepad++ 的程式碼片段。

同樣的程式碼片段,在正常的 Notepad++ 檔案中長這樣:

Fig-6-Code-snippet-non-malicious-notepad
圖 6:正常 Notepad++ 的程式碼片段。

這兩段程式碼有許多相似之處,但惡意 Notepad++ 檔案含有載入某個加密二進位檔案 (config.dat) 的程式碼,這個二進位檔案會在記憶體中解開來執行,因此很可能含有後門行為。這讓我們想起了較早的一些惡意程式家族,如: PLUGX

我們發現兩者都使用相同的載入器,只是載入的惡意檔案不同。其中一個惡意檔案就是我們偵測到的「TrojanSpy.Win32.LAZAGNE.B」,另一個則是「Ransom.Win32.EXX.YAAK-B」(也就是 Defray 勒索病毒)。在深入調查後,我們還發現同樣的載入器還用來載入其他惡意檔案。

我們懷疑本案例中的檔案是經由目標式水坑式攻擊進入被攻擊的企業。駭客在感染了第一台電腦之後,就能輕易地透過系統管理共享資料夾散布惡意的 Notepad++ 程式與 config.dat 檔案。不過我們研究中使用的 notepad.exe 檔案來自某個惡意來源,而且與 Notepad 與 Notepad++.exe 檔案的官方來源無關。

將開放原始碼軟體變成攻擊武器

由於惡意的 Notepad++ 檔案與原本正常的檔案非常相似,因此很容易被誤認為是正常軟體,尤其是一些對電腦不熟的員工。歹徒經常會使用木馬化的開放原始碼軟體來掩人耳目。由於Notepad++ 的原始程式碼可以從網路上公開下載,所以任何人 (包括駭客) 都能拿到。

駭客經常尋找一些熱門軟體的原始程式碼,然後在程式當中插入一些惡意功能 (例如載入加密過的二進位檔案) 來將它們木馬化。這意味著,這些程式本身並不含惡意程式碼,而是在執行時才載入惡意檔案,但這樣的行為很難被認定為可疑。不但如此,加密過的二進位檔並沒有檔案標頭,所以惡意程式防護軟體很難偵測,就連具備 AI 和 ML 技術的解決方案也難以做到,更何況那些只針對單一防護層的解決方案。要防範這類威脅,可涵蓋多重防護層的資安解決方案也許能發揮作用,因為資安團隊可交叉關聯整個環境內的所有資料與行為。

建議


使用者務必只從可信賴的合法來源下載檔案、應用程式及軟體 (如開放原始碼軟體),以免遇到這類威脅,例如使用者可到 Notepad++ 的 官方網站下載所有相關檔案。此外,企業也可以建立一個經過核准的下載網站清單以供員工遵守。若要保險一點,企業可要求員工必須經過 IT 部門核准才能在公司電腦上安裝任何軟體。此外,我們也強烈建議資安及 IT 團隊在下載二進位檔案之後務必核對檔案的總和檢查碼 (checksum) 是否正確,因為好的開放原始碼專案通常會在釋出二進位檔案時一併提供總和檢查碼供使用者比對。

除此之外我們也推薦企業採用 Trend Micro™ XDR 來蒐集並交叉關聯來自端點、電子郵件、雲端工作負載以及網路的資料,這樣不僅能提供更完整的背景資訊,同時也將調查工作彙整到同一地點,而這將有助於資安團隊提早發掘進階威脅與目標式攻擊。

入侵指標資料

檔案名稱SHA-256趨勢科技病毒碼偵測名稱趨勢科技機器學習偵測名稱
notepad.exe (同名的惡意檔案)bacc02fd23c4f95da0fbc5c490b1278d327fea0878734ea9a55f108ef9f4312eTrojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002  
config.dat64ba94000e2815898fb17e93deaa44ac0e1b4c55316af727b908dfe74c3b7ef6Trojan.Win32.VATET.ENC
config.dat33234dc94d926f1fc2831f40e27080739b415d485aa457d14a83617a3996089bTrojan.Win32.VATET.ENC
release.exe09c99e37121722dd45a2c19ff248ecfe2b9f1e082381cc73446e0f4f82e0c468TrojanSpy.Win32.LAZAGNE.BTroj.Win32.TRX.XXPE50FFF038
virus2.dll1c3331b87dc55a8cc491846f2609d6226f66eb372716df349567ed619dd1b731Ransom.Win32.EXX.YAAK-BTroj.Win32.TRX.XXPE50FFF038

其他相關雜湊碼:

SHA-256趨勢科技病毒碼偵測名稱趨勢科技機器學習偵測名稱
0b42bf15b77cfe9f9e693f2776691647e78a91be27f5bdb8d1a366be510a773fTrojan.Win32.VATET.ATroj.Win32.TRX.XXPE50FFF038
10c4067908181cebb72202d92ff7a054b19ef3aada939bf76178e35be9506525Trojan.Win32.VATET.ABKDR.Win32.TRX.XXPE50FFF038E0002
19938becb018e3459b49381c7efffabbe44a6450362b769ba85a3f1240b068d0Trojan.Win32.VATET.ATroj.Win32.TRX.XXPE50FFF038
2f149a79f721bb78eb956f70183b531fb6a1b233ceb4a3d6385759a0b0c16fd3Trojan.Win32.VATET.SMTroj.Win32.TRX.XXPE50FFF038
37e8d3ae4c34441b30098d7711df8ef0bcc12c395f265106b825221744b956bcTrojan.Win32.VATET.ABKDR.Win32.TRX.XXPE50FFF038E0002
382d9bf5da142d44de5fda544de4fffe2915a3ffc67964b993f3c051aa8c2989Trojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002
42f5f1b08c9cee876bafdb6dc4188e8e29d26a07951e1083e08e2a4b0cb6d0ffTrojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002 (GENERIC:Hit Bad Auto Shield)
4421720e0321ac8b3820f8178eb8a5ff684388438b62c85f93df9743a1d9fdb9Trojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002
4fb94877cc150f591e5b61dc5641f33e93e67ae1912c2e122e7ef2a236046f1aTrojan.Win32.VATET.ABKDR.Win32.TRX.XXPE50FFF038E0002
52d3ebe824ad60a939d64e73336e790884e3674b2d22dbe6e3c6b22061124161Trojan.Win32.VATET.SM
57eea67e3eebde707c3fb3473a858e7f895ae12aad37cc664f9c0512c0382e6aTrojan.Win32.VATET.SMTroj.Win32.TRX.XXPE50FFF038
6ac07424e5c9b87d76645aa041772ac8af12e30dc670be8adf1cf9f48e32944bBackdoor.Win32.VATET.CFHBKDR.Win32.TRX.XXPE50FFF038E0002
bacc02fd23c4f95da0fbc5c490b1278d327fea0878734ea9a55f108ef9f4312eTrojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002
ea6c3b993d830319b08871945cf2726dd6d8e62e8fed8fc42bcb053c38c78748Trojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002
e5ce1c1b69bd12640c604971be311f9544adb3797df15199bd754d3aefe0a955Trojan.Win32.VATET.ABKDR.Win32.TRX.XXPE50FFF038E0002
ef7e21d874a387f07a9f74f01f2779a280ff06dff3dae0d41906d21e02f9c975Trojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002
f0a25444cf58b61ff6cdd86ff1cfa53a51ad426817a33bd0e098f4f0ff286f22Trojan.Win32.VATET.SMBKDR.Win32.TRX.XXPE50FFF038E0002

原文出處:Weaponizing Open Source Software for Targeted Attacks 作者:Abraham Camba、Bren Matthew Ebriega 與 Gilbert Sison