駭客看上受害電腦的圖形運算晶片(GPU),用於網路犯罪的情況,最常見的手法,是用於挖礦,但也有人用來避免惡意軟體遭到端點防毒系統攔截。

最近資安業者Arctic Wolf揭露名為GPUGate的惡意軟體攻擊手法,就是這種型態的例子。這種攻擊手法在8月下旬發現,鎖定西歐的歐盟成員國,針對開發者及IT專業人士而來,企圖竊取帳密資料、散布勒索軟體、進行滲透及橫向移動,甚至是進行供應鏈攻擊。

攻擊者購買Google廣告,並利用GitHub儲存庫的結構,將使用者引導到特定網域下載惡意軟體。駭客傳送檔案大小達到128 MB的MSI安裝檔案,目的是迴避大部分的沙箱系統偵測,而最特別的策略,就是駭客運用受害電腦的顯示晶片解密惡意酬載,若是在透過虛擬存取、未實際配置硬體GPU的環境,惡意酬載則維持加密的狀態。

針對這起攻擊鏈發生的過程,駭客先購買Google廣告,以便在搜尋引擎結果的最頂端位置投放惡意廣告,聲稱提供GitHub電腦版應用程式(GitHub Desktop),由於該廣告顯示為由GitHub贊助,又出現在搜尋的第一個結果,很容易讓使用者上當。

一旦上當、點選連結,使用者就會被帶往一個網址,這是攻擊者於合法的GitHub儲存庫中,建立的提交(Commit)網頁,駭客在這裡列出的說明(Readme)檔案裡,已預先加入惡意下載連結。雖然GitHub會留存所有提交記錄,以供開發人員比對,但顯然這個說明文件現在也遭到濫用。攻擊者嵌入提交網頁的URL雜湊值,他們就能產生看起來與原本儲存庫相同的網頁。

由於GitHub提交頁面顯示真實、合法的資料,包含儲存庫的名稱、URL、分叉版本數量、得到的星號數量、貢獻者等,唯一的差別是在網頁上方出現黃底的警示訊息,提醒使用者正在檢視提交的內容。使用者往往會忽略上述警示訊息,並點選攻擊者埋入的惡意連結,而被導向惡意網域gitpage[.]app。

使用者此時下載的檔案,是初期的惡意軟體可執行檔GitHubDesktopSetup-x64.exe,以.NET Framework打造,內含171個執行檔,其中超過100個是用於混淆分析的填充檔案,目的是消除噪音並膨脹整體的檔案大小,而真正有問題的檔案是UpdaterClient.dll,檔案大小約為60 MB。此外,為了防止他人透過公用程式分析,攻擊者也修改了檔案的標頭。

有別於其他惡意軟體開發者會盡可能讓程式碼與大部分的電腦相容,但GPUGate並未採取這種策略,而是刻意排除特定硬體環境的電腦。Arctic Wolf指出,原因是未實際配置硬體GPU的電腦,很有可能是虛擬機器(VM)、沙箱環境,或是研究人員用於分析的舊電腦。而駭客判斷的機制有兩個,首先是GPU名稱的字元長度,若是沒有超過10個字元(例如:VMware SVGA),那處理程序就會終止;另一個則是特定的GPU功能,若是沒有,惡意程式也同樣不會運作。

惡意軟體開發者在GPUGate實作了兩個階段的OpenCL解密機制,先透過特定金鑰及XOR演算法,透過GPU進行第一階段解密,目的是產生第二階段解密的AES金鑰。

接著他們透過上述解密金鑰,並透過解密功能的程式碼來解出惡意程式GPUGate。此惡意軟體透過PowerShell隱密執行,並在受害電腦得到權限提升,攻擊者也在受害電腦建立工作排程,而能在電腦重開機後,以管理權限執行。

駭客會根據受害電腦的特徵,下載模組化的有效酬載,這些元件以ZIP檔案打包而成,特別的是,C2伺服器的網域名稱及IP位址橫跨不同的主機代管供應商,目的是避免特定的基礎設施遭到下架而影響活動。

熱門新聞

Advertisement