KeyFrame內部研究專用

Black Hat Europe 2025 | Silence On macOS: What 70K Binaries Reveal About The macOS Malware Ecosystem

Black Hat·6月27日週六·40 min英文

三句話摘要

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 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。