Black Hat Europe 2025 | Silence On macOS: What 70K Binaries Reveal About The macOS Malware Ecosystem
三句話摘要
macOS生態系統中80,000個惡意軟體樣本的大規模分析,介紹Catalina分析工具與Mallet數據集的開發成果。 macOS惡意軟體威脅已從邊緣問題演變為與Windows相當的成熟生態,組織應透過Catalina與Mallet等開源資源加強防禦投資,並建立基於結構特徵的主動檢測與預防機制。 研究障礙與突破:macOS恶意软件研究長期被忽視,因為傳統分析需要macOS硬體、缺乏大規模數據集(Windows有Sorrel 2,000萬樣本、Android有100萬樣本),Catalina打破了這個限制,使研究人員可在Linux或任何平台進行跨平台特徵提取。
重點整理
重點- 1
研究障礙與突破:macOS恶意软件研究長期被忽視,因為傳統分析需要macOS硬體、缺乏大規模數據集(Windows有Sorrel 2,000萬樣本、Android有100萬樣本),Catalina打破了這個限制,使研究人員可在Linux或任何平台進行跨平台特徵提取。
- 2
平台級發現的嚴重性:93%的macOS惡意軟體無簽名,證書平均被濫用182天才撤銷,DPRK Apple Juice活動中單個證書被利用721天。這揭示了macOS安全機制(Gatekeeper、X-Protect、AMFI、TCC、SIP)在實際防禦中存在顯著時間差。
- 3
檢測與防禦的失效:通過結構相似度聚類發現同一活動的變種樣本檢測率差異極大(14個vs.0個引擎),自動生成的Yara規則能找到82個Cobalt Strike/Geektin樣本中5個完全未被檢測,說明傳統AV/EDR對macOS威脅防禦不足。
- 4
實戰防禦策略:由於stealers主要竊取keychain、Chrome cookies與加密錢包,防禦應使用Santa框架進行檔案訪問控制、二進制授權與CEL表達式規則;針對AppleScript社會工程攻擊應阻止虛假系統提示;持久化機制(Launch Agent/Daemon)需透過MDM持續監控與執行。
實用技巧與重點
乾貨- 核心數據集與統計:
- Mallet:89,000個樣本(44,000惡意、44,000未檢測、25,000高置信度良性)
- 93%macOS惡意軟體無簽名
- 平均證書撤銷時間(MTTR):182天
- DPRK Apple Juice活動:721天證書滥用→首次撤銷→7天後首次檢測
- 開發者macOS使用率:30-32%(Stack Overflow調查)
- 工具與技術:
- Catalina:Go語言開源工具,支援MD5查詢、目錄批量提取
- Mallet:特徵級數據集(非二進制文件集合)
- Santa:開源macOS安全框架(二進制授權、檔案訪問授權、CEL表達式)
- 檢測工具:VirusTotal (VT)、Virus Share、VT retrohunt
- 對標系統:Windows Sorrel(2,000萬樣本)、Android Base(100萬樣本)
- 惡意軟體家族與趨勢:
- Amos, Nuke Speed, Stilaire, Stealer(上升趨勢)
- DPRK Apple Juice活動、Thomas Parfum活動
- Cobalt Strike、Metasploit、Geektin、Banshee
- 分類:Stealers、勒索軟體、後門、灰色軟體、鍵盤記錄器、黑客工具
- Catalina特徵提取(100+特徵):
- 向量特徵:熵分布、字符串n-gram、操碼頻率、段統計
- 文本/分類特徵:Bundle ID、團隊ID、證書序列號、證書頒發者組織、UUID、符號雜湊、函數相似度
- 支援檔案格式:Mach-O、DMG、pkg、zip、通用二進制(universal binary)
- macOS安全機制:
- Code Signing:CD hash + LC_CODE_SIGNATURE內嵌簽名識別符、證書、團隊ID、權限聲明
- Notarization:Apple對未通過App Store發布應用的惡意軟體檢查
- Gatekeeper:簽名驗證、完整性檢查、公證狀態檢查
- X-Protect:類似Yara規則的預執行惡意軟體檢測
- AMFI(Kernel Entitlement Enforcer):驗證應用是否有權限要求敏感訪問
- TCC(Transparency, Consent, Control):使用者同意層
- SIP(System Integrity Protection):保護系統目錄修改
- 防禦規則示例:
- Chrome cookie存取阻止規則(檔案路徑與binary名稱組合)
- OSA腳本對話框檢測(檢查系統提示模擬)
- Launch Agent/Daemon持久化監控
- 雲端基礎設施流程:
- 構建階段:GitHub CI/CD→服務部署
- 下載階段:任務調度器→VT/Virus Share/清潔macOS系統→對象存儲(GCS/S3)
- 特徵提取階段:Catalina解析→JSON輸出
- 存儲階段:SQL數據庫(BigQuery)→ML聚類與YARA規則生成
結論
結論“macOS惡意軟體威脅已從邊緣問題演變為與Windows相當的成熟生態,組織應透過Catalina與Mallet等開源資源加強防禦投資,並建立基於結構特徵的主動檢測與預防機制。”
完整解析
詳細macOS長久以來被誤認為是無惡意軟體的安全操作系統,但這個認知存在根本性破綻。Obina Igbe與Godwin Otiga在三年前發現了一個矛盾現象:雖然大多數開發者使用macOS,但安全研究會議上卻鮮少談論macOS威脅,反而集中在Windows、Android與Linux。這個研究空白的根本原因是macOS惡意軟體分析的高進入門檻——傳統工具必須在實際macOS硬體上運行,無法像其他平台那樣在虛擬機或雲環境中執行分析。更嚴重的是,macOS完全缺乏大規模研究數據集,而Windows有Sorrel提供2,000萬個樣本、Android有Base提供100萬個樣本。與此同時,Reddit上充斥著被資訊竊取惡意軟體入侵且經濟損失的用戶求助帖,而macOS的市場地位已非小眾——約30-32%的開發者使用macOS進行開發,企業級基礎設施與雲端訪問亦越來越依賴這個平台。
為解決這個研究盲點,兩位研究者開發了Catalina——一個用Go語言編寫的開源工具,其革命性特點在於完全的跨平台支援。使用者無需macOS硬體,只需將Catalina指向一個二進制檔案或樣本目錄,工具即自動提取超過100個特徵。這些特徵可分為兩類:機器學習模型需要的向量特徵(熵分布、字符串n-gram、操碼頻率、段統計等),以及用於威脅情報的文本特徵(Bundle ID、團隊標識符、證書序列號、證書頒發者等)。Catalina還能智能識別並解析macOS生態中的多種檔案格式,包括Mach-O二進制、DMG映像、pkg安裝包、zip檔案,甚至能逐一解析通用二進制中多個架構的組件。為實現規模化分析,研究團隊在雲平台構建了完整的處理管道:任務調度器定期從VirusTotal、Virus Share下載樣本並掃描清潔的macOS系統實例,下載的二進制存儲到對象存儲(如GCS或S3),隨後由Catalina進行特徵提取並輸出為JSON,最後批量存儲到BigQuery等SQL數據庫。
這套分析流程最終生成了Mallet——一個包含89,000個macOS樣本的特徵級數據集,首次填補了macOS大規模研究數據的空白。其中44,000個被確認為惡意軟體,44,000個為未檢測樣本(在VirusTotal上零檢測),經過啟發式分析後確認了25,000個高置信度的良性樣本。Mallet涵蓋了Stealers(信息竊取軟體)、勒索軟體、後門、鍵盤記錄器等豐富的惡意軟體類型,其中尤其值得關注的是Stealers在2024-2025年間的快速增長趨勢。
基於Mallet數據集的深入分析揭示了令人警醒的現實。首先,93%的macOS惡意軟體竟然無簽名,這打破了許多人對macOS代碼簽名機制的信心。其次,他們提出了一個關鍵指標——平均證書撤銷時間(MTTR)為182天,意味著攻擊者獲取的合法證書可以被濫用超過半年而不被吊銷。在DPRK Apple Juice活動中,一個證書被用於簽名惡意軟體達721天才最終被撤銷,而首次被反病毒產品檢測則是撤銷後7天——這個時間差充分展示了macOS安全防護的脆弱性。第三個重要發現來自聚類分析:同一攻擊活動中的變種樣本檢測率差異驚人——一個樣本被14個反病毒引擎檢測,另一個竟完全未被檢測,但它們共享相同的團隊ID、證書、符號雜湊與功能相似性。研究團隊進一步開發了基於Catalina特徵的自動化Yara規則生成管道,能動態構建惡意軟體集群並生成通用檢測規則;例如針對Cobalt Strike與Geektin樣本的規則在VirusTotal回溯搜索中識別出82個樣本,其中5個完全未被檢測,即使被檢測的樣本也往往只有單個安全廠商識別,反映出防禦的分散性與不足。
為應對這些威脅,研究者提供了實戰防禦方案。由於macOS上的Stealers主要目標是盜取keychain(存儲所有身份認證證書)、Chrome瀏覽器cookies與加密錢包憑證,從而實現橫向移動與雲端訪問,防禦應採用開源Santa框架進行多層控制:通過二進制授權阻止已知惡意軟體的執行雜湊與團隊ID;透過檔案訪問授權限制哪些binary可以訪問Chrome cookie目錄與keychain;使用CEL表達式語言編寫複雜的防禦規則。此外,由於macOS缺乏Windows上的AMSI(反惡意軟體掃描界面),攻擊者傾向於使用AppleScript與OSA腳本設計虛假的系統凭证提示,誘導用戶輸入密碼。防禦方可在Santa中配置規則檢測OSA腳本binary並驗證其顯示的對話框內容是否模擬系統提示,從而阻止這類社會工程攻擊。針對持久化機制(占數據集約23-24%),APT組織偏好Launch Agent與Launch Daemon,防禦團隊應使用Knock Knock或Santa對這些目錄進行持續監控與阻止。最後,不同職能部門的責任各異:防禦人員與事件應急團隊應將Mallet數據導入SIEM或數據湖,搜索CD雜湊、簽名者郵箱與權限聲明的執行記錄;基礎設施團隊應通過MDM執行安全控制的持久化,確保即使endpoint tools被篡改也能自動恢復;紅隊應進行恶意軟體仿真來驗證防禦有效性。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

