這篇分析將帶領大家了解近期發現的 macOS 惡意軟體 CrashStealer。對於許多工程師來說,可能會認為 macOS 的安全性很高,尤其是有了 Gatekeeper 等機制,但這次的攻擊案例展示了攻擊者如何利用系統的信任鏈來達成目的。
首先我們需要理解兩個關鍵概念:Gatekeeper 與 Notarization。Gatekeeper 是 macOS 的安全門衛,負責檢查下載的軟體是否經過簽名且安全。而 Notarization(公證)則是 Apple 提供的一種機制,開發者將軟體上傳給 Apple 掃描,確認沒有已知惡意程式後,Apple 會給予一個公證標記。當一個程式既有有效的開發者簽名又有公證標記時,Gatekeeper 會認為該軟體是可信的,從而允許執行。
CrashStealer 的高明之處就在於它使用了經過 Apple 公證的 Dropper(下載器)。Dropper 是一種小型程式,其本身不承載主要攻擊功能,目的是在目標機器上建立立足點並下載真正的惡意載荷(Payload)。由於這個 Dropper 擁有合法的開發者 ID 並通過了 Apple 公證,它能輕易地繞過系統的安全檢查,讓使用者在不知情的情況下執行。
在配送鏈的實務操作上,攻擊者採取了精準投放的策略。他們將惡意軟體偽裝成名為 Werkbit.app 的磁碟映像檔,並將下載頁面設置在一個需要會議 PIN 碼才能進入的門檻之後。這種做法可以有效過濾掉安全研究人員或自動化掃描工具,確保只有特定的目標受害者能獲取安裝檔。
一旦使用者被誘導執行該程式,惡意軟體會採取多層次的加載流程。它首先會從 GitHub 獲取配置檔案,隨後透過 shell 腳本下載真正的核心 payload。為了在系統中長期生存,它會將自己註冊為 LaunchAgent(一種 macOS 的啟動代理機制),確保電腦每次重新啟動後,惡意程式都能自動執行。
在技術實現上,CrashStealer 與一般的 macOS 惡意軟體有所不同。大多數資訊竊取軟體使用 AppleScript 或 Objective-C 編寫,但 CrashStealer 是使用原生 C++ 實作的。這不僅提升了執行效率,更重要的是它能實施更強的分析對抗技術。例如,它使用了控制流平坦化(Control-flow Flattening),這是一種混淆技術,將原本清晰的程式邏輯打散成複雜的跳轉結構,讓安全分析師在反組譯時極難理解程式的真實意圖。此外,它還對字串進行加密,並內建多層反偵錯(Anti-debugging)機制,防止被放入沙箱或除錯器中分析。
在竊取資料的階段,CrashStealer 採取了非常狡猾的作法。它不會直接暴力破解,而是會彈出一個偽造的密碼輸入視窗,誘導使用者輸入登入密碼。一旦取得密碼,它會在本地驗證正確後,直接用該密碼解鎖系統的 Keychain(鑰匙圈,macOS 儲存密碼與憑證的核心元件)。
解鎖成功後,它會大規模掃描並竊取以下資料: 第一是 Chromium 系瀏覽器(如 Chrome, Edge, Brave)的儲存憑證。 第二是超過 80 種加密貨幣錢包擴充功能(如 MetaMask, Phantom)。 第三是 14 種主流密碼管理工具(如 1Password, Bitwarden)。 第四是使用者文件與下載資料夾中的敏感檔案。
最後,為了防止資料在傳輸過程中被網路監控設備(如 IDS/IPS)攔截,CrashStealer 使用了 AES-GCM 加密演算法對收集到的資料進行加密,再透過 libcurl 庫將壓縮後的加密包傳送到攻擊者的遠端伺服器。
總結來說,CrashStealer 的威脅不在於它竊取了什麼,而是在於它如何突破防線。它利用了開發者信任鏈(公證機制)、社交工程(PIN 碼門檻)以及高階的 C++ 混淆技術,將一套完整的攻擊流程工業化。這提醒我們,即便軟體通過了系統的安全性檢查,只要其行為模式異常,依然不能掉以輕心。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。