跳至內容

區塊鏈惡意軟體的無盡創新

似曾相識,一遍又一遍又一遍…

10 分鐘
區塊鏈惡意軟體的無盡創新

加密貨幣圈最近熱議 EtherHiding——一種新穎的攻擊手法,惡意行為者將惡意程式碼藏入智能合約,透過區塊鏈散布惡意軟體。MetaMask 的 Taylor Monahan 分享她的觀點:為何每一波所謂的「區塊鏈惡意軟體」都能登上頭條,以及為何防禦者在被這些新奇手法帶著走之前,應該先把基本功做好。

無限迴圈

每當一份關於鏈上惡意軟體的新報告出爐,資安研究人員就會再次宣告:「史上第一個去中心化、不可竄改、無法阻止的威脅降臨了!」 LinkedIn 瞬間沸騰。部落格文章大量湧現。充滿恐慌的標題被反覆優化。AI 驅動的端點偵測與回應解決方案趁機大肆行銷。

隨之而來的是一片附和聲:「我早說過了!區塊鏈就是詐騙者的完美傳播媒介!」 然後,一如既往,這波攻擊活動悄然熄火。分析師轉向下一個閃亮的漏洞——並在準備明年報告的過程中,忘記「第一個去中心化、不可竄改、無法阻止的威脅」曾經出現過。

關於區塊鏈惡意軟體的頭條並非全錯。它確實是惡意軟體,也確實利用了區塊鏈。但也僅此而已。這些攻擊活動在各方面都平淡無奇,唯一值得稱道的就是那個小聰明,這也是它們很快就被遺忘的原因。

如果這些攻擊既新穎又影響深遠——真正具有突破性或毀滅性——情況或許會不同。但說實話,資安研究人員就是喜歡新奇事物,那是我們的貓薄荷。任何稍微不尋常的東西,例如殭屍網路從 OP_RETURN 擷取不到 80 位元組的資料,或惡意軟體透過智能合約更新設定,都能讓我們興奮不已。我們忍不住沉浸其中,幻想一個充滿去中心化、無法阻止的惡意軟體的世界。

平心而論,確實有一部分威脅行為者也有同樣的毛病。那些在發動攻擊的同時還要塑造敘事的網路犯罪「作者」,會精心設計戲劇性訊息來吸引媒體目光,並在惡意軟體上留下簽名,確保所有人都知道是他們所為。他們的行動華麗、引人入勝,卻可預見地曇花一現。他們往往忙著爭奪關注度,根本沒注意到今天只賺了 13 美元(或者 FBI 昨天已接管了他們的群組聊天)。

是的,這些行動確實有值得學習之處。但「如何成為一個無法阻止的不可竄改威脅行為者」絕對不是其中之一。

真正造成重大損害的威脅行為者是務實的。投資報酬率(ROI)是他們的北極星。隱蔽性、規模化與可持續性是他們達成目標的方式。他們也不斷根據阻礙因素調整技術手法。

  • 沒有人在看電子郵件 → 轉移到 Telegram

  • GitHub 下架儲存庫 → 轉移到私人儲存庫

  • 私人儲存庫不尋常、容易引起懷疑 → 轉移到 Bitbucket 或 GitLab

  • MetaMask 一出現就標記惡意前端 → 改用 Google Docs 或 GitHub 儲存庫,而非登陸頁面

因此,每當我看到另一個威脅行為者使用區塊鏈,我總會問:區塊鏈為他們解決了什麼問題?它如何在將失敗的攻擊活動轉化為成功的攻擊活動方面發揮作用?

惡意軟體,遇上區塊鏈

惡意軟體是惡意程式,是程式碼。它不會從天而降,也不會憑空出現。程式碼本身必須先進入受害者的裝置,然後執行,才能完成其目的。

一般軟體的運作方式是:你造訪網站或應用程式商店,下載應用程式,然後在裝置上安裝並執行。安裝過程會解壓縮實際的軟體,再執行其中包含的程式碼。它可能會執行諸如將檔案移至正確位置、設定個人偏好設定、向某個伺服器查詢可用更新,或設定為每次開機時自動啟動等操作。

惡意軟體也做同樣的事,只是必須偷偷摸摸地進行。惡意軟體無法執行惡意行為,如果終端使用者或任何其他人發現它是惡意的。

而人們始終在努力保護終端使用者免受惡意軟體侵害。Google Chrome 會對惡意網址和下載顯示紅色警告頁面。作業系統會阻止惡意程式碼安裝,尤其是在你不知情的情況下。社群媒體平台、網路主機、網域註冊商和程式碼儲存庫都採取措施,偵測並防止惡意軟體操作者利用它們達成惡意目的。

因此,惡意軟體傳遞給終端使用者的方式隨著時間大幅演進。惡意軟體的創作者和操作者費盡心思,將惡意酬載拆分為多個階段、混淆網址,並建立備用機制,以防某些部分被下架。

等等,區塊鏈在哪裡?

多年來,不同的威脅行為者以不同的方式使用區塊鏈。

即使確切機制和技術細節有所不同,區塊鏈所扮演的角色通常是相同的:

  • 惡意程式碼需要與各種資源通訊,以取得或維持對受害者裝置的控制。

  • 這些資源經常變動(例如當伺服器被下架時)。

  • 如果一段惡意程式碼無法更改(例如惡意軟體已在受害者裝置上,或程式碼已部署在數千個被入侵的 WordPress 網站上),那麼當它所依賴的資源被下線時,它就會失效。

於是他們把區塊鏈加進去,現在什麼都無法被下架,一切都變得神奇、隱形且匿名,去中心化、不可竄改、無法阻止的威脅降臨了!

時間

內容

區塊鏈元素

區塊鏈優勢

2016-2017、2023

Cerber 勒索軟體勒索軟體即服務(RaaS)模式,允許非技術性攻擊者部署勒索軟體,而技術開發者負責創建和維護。從勒索受害者獲得的任何金錢都在攻擊者和開發者之間分配。

受感染的機器使用四個比特幣 API 查詢硬編碼的錢包地址,直到成功從區塊鏈擷取資料。惡意軟體隨後解密此資料,以取得用於指揮與控制通訊的伺服器 IP。

韌性: 硬編碼的網址/IP 容易被封鎖,導致惡意軟體無法運作。Cerber 勒索軟體利用比特幣區塊鏈上的交易資料與其擁有者協調,可即時動態更新伺服器位置。

2010 年至今高峰期:2019-2021 年

Glupteba 殭屍網路取得受感染機器完整後門控制權的惡意軟體,竊取憑證和 Cookie、部署代理伺服器進行流量匿名化、促進信用卡詐騙和廣告濫用,以及(自 2019 年起)甚至包含加密貨幣挖礦程式。

比特幣的 OP_RETURN 操作碼被用於在交易中嵌入加密的備用 C2 網域。每當主要 C2 伺服器下線時,受感染的機器可以循環遍歷比特幣 Electrum 伺服器列表,直到成功擷取區塊鏈資料。該字串隨後被解密以取得最新 C2 伺服器的網址。

韌性: 增加了一層韌性,確保受感染的機器保持受感染狀態,即使原始 C2 被下線也不例外。

2023 年 9 月至 2025 年 7 月

Etherhiding - CLEARSHORTUNC5142多階段 JavaScript 下載器,用於促進惡意軟體散布。首先,一個 JavaScript 酬載被注入易受攻擊的網站,從惡意智能合約擷取第二階段酬載。智能合約從攻擊者控制的伺服器取得 CLEARSHORT 登陸頁面。該登陸頁面利用 ClickFix——一種流行的社會工程技術,誘騙受害者在本地使用 Windows Run 執行惡意命令。

惡意行為者並非將整個攻擊鏈嵌入被入侵的網站,而是使用智能合約將元件儲存在 BNB Smart Chain 上,以儲存短小的酬載。最初放在區塊鏈上的資料是加密的酬載(而非字面上的網址字串),但此酬載是一個非常短的程式碼片段,會向指定網址發出請求,然後 eval() 該網址返回的任何內容。隨著時間推移,機制演進為涉及多層合約,每層合約執行一些檢查後再指向下一個合約。最終合約包含託管加密酬載和解密金鑰的網址,以及託管第二階段酬載的網址。

韌性:在面對偵測和下架行動時提高了韌性。針對 Web3 流量的網路防護機制更難實施。鑑於區塊鏈的不可竄改性,查封和下架行動也受到阻礙。隱蔽性:將惡意程式碼儲存在智能合約中,使其更難被傳統網路安全工具偵測。對合法端點的呼叫有助於惡意流量融入正常活動。靈活性:透過使用多個合約,攻擊者擁有一個穩定的入口點,可以根據需要指向不同的位置(和酬載)。

2025 年 2 月至今

EtherhidingUNC5342 / DPRK / Contagious Interview此攻擊活動針對開發者,尤其是加密貨幣和科技領域的開發者,以竊取敏感資料/加密貨幣並持續存取企業網路。該活動採用多階段惡意軟體感染流程,在 Windows、macOS 和 Linux 系統上入侵受害者的系統。

利用 EtherHiding 從 BNB Smart Chain 和以太坊上的智能合約擷取、解密並執行惡意酬載。受害者執行的程式碼會啟動一個初始 JavaScript 下載器,該下載器隨後與惡意智能合約互動並下載第二階段酬載。通常使用 eth_call 或 eth_getStorageAt(從鏈上讀取資料的讀取操作)。

韌性: 沒有中央伺服器可以下架。一旦智能合約部署,除合約擁有者外,任何人都無法輕易移除或修改它。隱蔽性:攻擊者可以使用不留下可見交易歷史的唯讀呼叫來擷取惡意酬載。靈活性:攻擊者可以隨時更新惡意酬載,以改變攻擊方式、更新網域或部署不同類型的惡意軟體。

2025 年

跨鏈 TxDataHiding在 TRON、Aptos 和 BSC 區塊鏈之間跳轉,以進一步混淆追蹤路徑。一條區塊鏈充當索引或指標系統,儲存對第二條區塊鏈(通常是 BSC)上交易雜湊的參照,該交易最終包含惡意酬載。

採用任意區塊鏈作為指向 BSC 交易雜湊的指標。然後使用 eth_getTransactionByHash 取得該 BSC 交易的資料,其中最終包含用於傳遞惡意軟體下一階段的混淆酬載。TRON 呼叫使用 raw_data.data,Aptos 呼叫使用 payload.arguments[0]——兩者都是從鏈上擷取資訊的讀取呼叫。任何支援交易中自訂資料欄位的區塊鏈都可以作為指標層。

韌性: 傳統 C2 伺服器可以被執法機構查封或被主機提供商關閉,但儲存在區塊鏈上的資料會在數千個節點上複製。隱蔽性: 連接到 api.trongrid.io、aptoslabs.com、binance.org 的流量看起來像是對合法服務的一般 HTTPS 請求,沒有明顯的惡意指標。傳統 C2 會留下伺服器日誌、TLS 憑證、主機記錄、IP 地理位置,但「區塊鏈 C2」只會產生假名地址和交易雜湊,沒有伺服器或日誌。靈活性: 可以隨時透過發布新的區塊鏈交易來修改酬載,而惡意軟體的硬編碼地址永遠不會改變。機器可以自動擷取更新的酬載,無需修改程式碼。

先別急

將惡意軟體植入受害者裝置需要多個階段、多種資源,以及這些資源之間的某種程度通訊。其中一些階段純粹是為了規避偵測,另一些則是為了長期維持控制。

理解這一點很重要,因為惡意軟體從未「在區塊鏈上執行」。 區塊鏈甚至無法取代整個感染鏈。

例如,以下是 Glupteba 感染鏈在 2019 年前後的(簡化)對比:

之前

之後

投放器落在受害者裝置上

投放器落在受害者裝置上

惡意軟體建立包含硬編碼 C2 網址列表的登錄檔並安裝元件。

惡意軟體建立包含硬編碼 C2 網址列表的登錄檔並安裝元件。

定期將受害者裝置的資訊傳送至 C2 伺服器。

定期將受害者裝置的資訊傳送至 C2 伺服器。

定期向 C2 查詢進一步指令,通常包括以新的 C2 網址更新登錄檔。

定期向 C2 查詢進一步指令,通常包括以新的 C2 網址更新登錄檔。

如果無法連接任何 C2,稍後再試。

如果無法連接任何 C2,循環遍歷比特幣 API 端點列表,從交易雜湊擷取資料 → 解密資料 → 將新的 C2 網址加入登錄檔。

以下是 UNC5142 的 Etherhiding 初期演進的前後對比:

之前

之後

入侵 WordPress 網站

入侵 WordPress 網站

在所有文章/頁面中注入簡單的 JavaScript

在所有文章/頁面中注入簡單的 JavaScript

使用者造訪被入侵的網站

使用者造訪被入侵的網站

注入的 JavaScript 從 Cloudflare Workers 擷取第二階段酬載

注入的 JavaScript 從儲存在 BNB 區塊鏈交易中的資料擷取第二階段酬載

酬載 eval() 指定網址,將頁面轉換為「您需要更新瀏覽器」的覆蓋層。

酬載 eval() 指定網址,將頁面轉換為「您需要更新瀏覽器」的覆蓋層

使用者點擊更新按鈕

使用者點擊更新按鈕

從俄羅斯 IP 地址擷取並下載惡意酬載

從俄羅斯 IP 地址擷取並下載惡意酬載

從這個角度來看,區塊鏈元素不過是嫁接在一個本質上傳統的感染鏈之上。這是現有行動的演進,有時甚至是對遭受干擾的直接回應。

這種差異對需要將新奇性與風險分開的防禦者而言至關重要。阻止這些攻擊活動的主要控制措施最終仍然相同。 威脅行為者在知道攻擊活動仍然有效的情況下,總會繞過 C2 被下架等干擾。個人和組織必須努力減少初始入侵、根據行為而非靜態指標偵測威脅,並確保有控制措施在入侵後遏制端點。區塊鏈的存在對此毫無改變。

區塊鏈的優勢

有了這些認識,讓我們重新審視研究人員多年來在表格中強調的區塊鏈優勢。

韌性

  • 「硬編碼的網址容易被封鎖,從而使惡意軟體安裝失效。」 來源:Cerber 勒索軟體

  • 「確保受感染的機器保持受感染狀態,即使原始 C2 被下線也不例外。」 來源:Glupteba

  • 「在面對偵測和下架行動時提高了韌性。鑑於區塊鏈的不可竄改性,查封和下架行動也受到阻礙。」 來源:UNC5142 的 EtherHiding

  • 「沒有中央伺服器可以下架。」 來源:UNC5342 的 EtherHiding

  • 「傳統 C2 伺服器可以被執法機構查封或被主機提供商關閉,但儲存在區塊鏈上的資料會在數千個去中心化節點上複製。」 來源:跨鏈 TxDataHiding

  • 「一旦智能合約部署,除合約擁有者外,任何人都無法輕易移除或修改它。」 來源:UNC5342 的 EtherHiding

現實檢驗:區塊鏈最常被用作指標,存在於兩段傳統基礎設施之間。

多年來,惡意軟體作者採用了各種各樣的「指標」機制,這些機制隱藏在顯眼之處、防彈主機上,或合法內容平台上。這些機制也可能非常難以偵測和/或下架,甚至根本不可能。

從區塊鏈擷取資料的呼叫仍然透過傳統基礎設施服務提供商託管的傳統 API 端點進行,有時甚至使用傳統 API 金鑰。雖然你無法下架整個系統(因為它最終是一個以善意運營且主要服務合法使用者的企業),但資安研究人員可以向這些公司說明此類活動,並與他們合作採取行動。

這與惡意行為者利用合法基礎設施傳遞酬載的任何其他情況並無不同。當你知道某個實體本可採取行動卻沒有時,總是令人沮喪。區塊鏈產業尤其有自己的資安研究人員網絡,與傳統資安研究網絡尚未完全整合。然而,這並不意味著它不存在。如果你需要引薦或分享此類情報,區塊鏈領域有一些人非常關心這件事,認識所有人,並且隨時樂意提供協助。這包括我們 MetaMask Security 的所有人,以及 SEAL 等組織。歡迎聯繫我們。

隱蔽性

  • 「將惡意程式碼儲存在智能合約中,比直接掃描網站內容的傳統網路安全工具更難偵測。」 來源:UNC5142 的 EtherHiding

  • 「BNB Smart Chain 是一個合法平台。使用它可以幫助惡意流量融入正常活動,作為規避偵測的手段。」 來源:UNC5142 的 EtherHiding

  • 「攻擊者可以使用不留下可見交易歷史的唯讀呼叫來擷取惡意酬載。」 來源:UNC5342 的 EtherHiding

  • 「連接到區塊鏈 API——api.trongrid.io、aptoslabs.com、binance.org 等——看起來像是對合法服務的一般 HTTPS 請求,沒有明顯的惡意指標。」 來源:跨鏈 TxDataHiding

  • 「傳統 C2 會留下大量證據(伺服器日誌、TLS 憑證、主機記錄和 IP 地理位置),但區塊鏈 C2 只會產生假名地址和交易雜湊,沒有伺服器或日誌。」 來源:跨鏈 TxDataHiding

  • 「與傳統網路流量相比,針對 Web3 流量的網路防護機制更難實施,因為缺乏傳統網址的使用。」 來源:UNC5142 的 EtherHiding

現實檢驗:與「區塊鏈」互動就像與任何其他雲端服務提供商互動一樣

區塊鏈不過是一個龐大的公開資料庫,記錄所有歷史交易,並附帶每約 10 秒必須發生一次的複雜密碼學驗證。它幾乎總是運行在傳統的專用基礎設施上,具備各種負載平衡、API 和其他協調機制。每個服務提供商記錄和保留的內容,完全取決於其使用情況、使用者、歷史、隱私政策、位置、與使用者的關係,以及所提供的服務。

舉例來說,如果一個區塊鏈服務需要月費,它通常像 Web2 公司一樣透過信用卡收費。如果它接受加密貨幣支付,其鏈上地址廣為人知,你可以看到威脅行為者的付款記錄。與傳統支付不同,任何人都可以看到 DPRK 向 Namecheap 支付網域費用,以及向 Debank 支付 API 點數。這是以前無法獲得的高可信度、可操作情報。

一般終端使用者的電腦不會隨機 ping 任何與加密貨幣相關的內容。如果你的沙箱在執行一個神秘酬載時突然這樣做,你絕對應該直接關注它。即使在正常情況下,區塊鏈呼叫也遠不如對 Microsoft、GitHub、AWS、Google 或 Cloudflare 的呼叫那樣合法。而這些服務都定期傳遞惡意酬載。

當然,加密貨幣公司無法封鎖所有加密貨幣流量作為預防手段。「幸好加密貨幣公司沒有任何監控,所以沒關係!」我當然是在開玩笑。每家認真的加密貨幣公司都有認真的安全資訊與事件管理(SIEM)和端點偵測與回應(EDR),這些系統能夠成功偵測和遏制真實的 Lazarus 酬載。Contagious Interview 或 MaaS 酬載——即使是那些使用區塊鏈的——也以與使用區塊鏈之前完全相同的方式被偵測到。

靈活性

  • 「雖然智能合約本身是不可竄改的,但他們部署了一個包含指向第二層智能合約指標的第一層智能合約。第一層合約充當穩定的入口點,其地址在被入侵的網站上永遠不會改變,引導注入的 JavaScript 從第二層合約擷取程式碼,使攻擊者能夠在不修改被入侵網站的情況下更改目標。」 (UNC5142 的 EtherHiding)

  • 「攻擊者可以隨時更新惡意酬載,以改變攻擊方式、更新網域或部署不同類型的惡意軟體。」 (UNC5342 的 EtherHiding)

  • 「攻擊者可以隨時透過發布新的區塊鏈交易來修改酬載,而惡意軟體的硬編碼地址永遠不會改變,這意味著受感染的機器可以自動擷取更新的酬載,無需修改程式碼。」(跨鏈 TxDataHiding)

現實檢驗:這也是網際網路的運作方式

威脅行為者將酬載藏在圖片中,更新圖片,惡意軟體就神奇地變了樣。網址是指向 IP 地址的指標,IP 地址是指向伺服器上託管內容的指標。如果你無法下架實際內容,就下架用於存取內容的路由。如果你無法下架路由,就讓負責路由的人封鎖它們。

儲存在網站上的任意資料與區塊鏈之間的關鍵差異在於,向區塊鏈寫入任意資料需要花錢,而且每次發生時都會產生一個公開事件。交易費用可能從 1 美元到 100 美元以上不等,具體取決於網路狀況。某些區塊鏈更便宜,使這個問題不那麼嚴重。但它仍然有成本,而這些支付會留下痕跡。

區塊鏈畢竟是公開的。服務提供商和交易所擁有關聯終端使用者活動、IP 地址、裝置指紋,有時甚至是完整 KYC 文件的資料庫。即使是基本交易也需要與傳統網際網路元素進行某種程度的互動,這些元素顯然有某種程度的傳統網際網路資料。資料量完全取決於威脅行為者如何與區塊鏈互動。但區塊鏈並非匿名。

最終目標

理論上,一個抗審查、不可逆轉的去中心化儲存系統是威脅行為者夢寐以求的。但現實中,這些「區塊鏈驅動」的惡意軟體變種似乎從未像其他攻擊手法那樣廣泛流行。

例如,CLICKFIX 很快就被大量不同的威脅組織採用。讓終端使用者直接複製貼上到命令列以繞過前線防護的想法,確實是一個改變遊戲規則的突破。與此同時,七年後,區塊鏈上的惡意軟體仍然足夠新奇,每次有人發現新的實作方式,都能讓資安界為之沸騰。

部分原因在於,區塊鏈無法(也不能)取代整個感染鏈,甚至無法取代其中的大部分。社群媒體帳號、網路主機、網域註冊商,以及一個或多個 C2 伺服器,都被用於傳遞惡意軟體的各個階段、指向下一個階段,或在某個階段失效時作為備用。區塊鏈是在所有現有流程之上增加了另一個工作流程和另一個步驟。

這也是因為區塊鏈本身帶來了自身的成本和風險。

當有防彈主機、被入侵的 WordPress 網站和免費內容平台都急著充當一次性基礎設施時,為何要冒著在公開帳本上永久留下行動安全(OpSec)痕跡供任何人發現的風險?當你知道所有公共 WiFi、飯店、郵輪、學校和/或工作場所預設封鎖一切遠端「區塊鏈相關」內容時,為何要冒著讓原本未被偵測的行動立即被偵測的風險?

部分答案很簡單:因為他們可以。這很有趣、很聰明、很新奇、很獨特。也許這會讓他們更成功——或者至少讓他們感覺自己是來自未來的詐騙者。威脅行為者也是人。他們有目標和動機,並不總是理性行事。

然而,我認為真正的答案在這些機制的公開報告中自然顯現。看起來它確實能規避偵測。不知為何,僅僅使用區塊鏈就能讓他們的 C2 隱藏更長時間。不知為何,當沙箱找不到惡意軟體時,因為它藏在區塊鏈 API 呼叫中,沙箱就會感到困惑。

諷刺的是,這個優勢並非因為它無法被偵測(它可以被偵測),也不是因為它比他們所做的其他一切更匿名、更隱蔽或更私密(真的,完全不是)。這個優勢幾乎完全來自於資安研究人員認為它是那樣的。

因此,我們應該預期威脅行為者會繼續以這種方式進行實驗。資安研究人員也應該繼續追蹤和發布關於這些攻擊活動的文章。但至少就目前而言,「區塊鏈惡意軟體」仍然是一個更龐大、更嚴峻故事中相對有趣的注腳。

我們大部分的時間和精力必須花在對人們和機構有真正影響的事情上——那些能夠防止損失並保護人們安全的事情,即使他們堅持僅僅因為網路上的陌生人告訴他們就把隨機命令貼入黑色視窗。

如果出於某種原因,這些攻擊活動的區塊鏈面向確實是任何資安公司在更好地偵測、去匿名化和干擾這些攻擊活動方面的阻礙,Web3 資安界非常樂意提供協助。請透過 MetaMask Security 與我們聯繫。

AI 翻譯。可能包含錯誤。請務必核實資訊。

評價此翻譯

本文作者: