這篇文章將為大家解析近期被 McAfee Labs 揭露的 Silent Swap 攻擊手法。對於剛接觸資安或開發的工程師來說,這是一個非常典型的組合拳攻擊,它結合了社會工程學、瀏覽器內部機制操縱以及區塊鏈技術來達成盜財目的。
首先我們要理解什麼是 Crypto Clipper(加密貨幣剪貼簿劫持器)。在加密貨幣交易中,使用者通常會複製對方的錢包地址並貼上到轉帳介面。Clipper 類型的惡意軟體會監控系統剪貼簿,一旦發現內容符合錢包地址的格式,就會在毫秒之間將其替換成攻擊者的地址。由於錢包地址是一長串亂碼,使用者很難一眼看出被替換,而區塊鏈交易一旦發出就無法撤回,導致資金永久遺失。
Silent Swap 的入侵路徑與手法
這次的攻擊並非單純的插件安裝,而是透過一個未簽名的安裝程式(分為 .NET 與 Golang 兩種版本)啟動。這個安裝程式會掃描電腦中所有基於 Chromium 核心的瀏覽器(例如 Chrome, Edge, Brave, Vivaldi),接著採取強硬手段:強制關閉瀏覽器進程,直接修改瀏覽器的設定檔(Preferences 與 Secure Preferences 文件),將一個偽裝成 Google Notes 筆記工具的惡意擴充功能強制植入。
這裡涉及一個關鍵的技術繞過。現代瀏覽器為了防止惡意軟體擅自修改設定,會在設定檔中儲存雜湊值(Hash)或 HMAC(訊息鑑別碼)來驗證完整性。如果設定被改動,瀏覽器會發現驗證失效而拒絕啟動或重置設定。然而,Silent Swap 的開發者研究了這套機制,在篡改設定後重新計算並更新這些安全驗證值,欺騙瀏覽器讓其認為該插件是合法安裝的,從而繞過 Web Store 的審核與使用者同意流程。
進階的 C2 控制與隱匿技術
最值得工程師關注的是其 C2(Command and Control,指令控制伺服器)的更新機制。傳統惡意軟體會將伺服器網址寫死在程式碼中,一旦被資安公司封鎖,整個攻擊鏈就斷了。
Silent Swap 採用了一種稱為 EtherHiding 的技術,將區塊鏈當作死信箱(Dead Drop Resolver)。攻擊者將 C2 伺服器的最新網址儲存在區塊鏈的智慧合約中。惡意軟體只需讀取該合約的值,就能知道目前該連線到哪個伺服器。這意味著攻擊者只要發起一次區塊鏈交易更新合約內容,就能在全球範圍內同步更新所有受感染端的控制伺服器,極具韌性且難以被徹底清除。
動態地址替換邏輯
在劫持地址時,它不再使用單一的固定地址,而是採取伺服器端的一對一映射。當它攔截到使用者的地址後,會先傳回後端伺服器,伺服器會根據該地址動態回傳一個對應的攻擊者地址。這樣做可以避免因為單一地址被標記為詐騙而導致所有交易失效。如果伺服器連線失敗,它還準備了硬編碼的備用地址作為保底方案。
此外,它還會嘗試在 Brave 或 Opera 瀏覽器中透過程式碼強制開啟開發者模式,並在安裝完成後自我刪除安裝程式,以抹除入侵痕跡。
延伸警訊:偽裝 VPN 的剪貼簿竊取者
除了 Silent Swap,近期還發現名為 VPN Go 的偽裝插件。這類攻擊採取不同的策略:先上架一個功能正常的 VPN 插件以獲取信任並通過審核,等使用者數量增加後,再透過版本更新(例如從 1.2 更新到 1.3)偷偷加入剪貼簿監控代碼。這種分階段更新的策略能有效規避應用商店的初始審查。
實務上的防禦建議
對於開發者與使用者而言,這次事件提醒我們:
第一,不要隨意安裝來源不明的執行檔,尤其是那些要求開啟瀏覽器開發者模式的工具。
第二,在進行大額加密貨幣轉帳前,務必逐字核對貼上後的地址,而非完全信任剪貼簿。
第三,定期檢查瀏覽器中不認識的擴充功能,並注意那些要求存取剪貼簿、所有 URL 與瀏覽紀錄的權限申請。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。