Suzu macOS Playground

M04 · CTF

誰附了 quarantine?

用實驗室切換下載通道,找出哪些通道會附 com.apple.quarantine、哪些不會, 並解碼一條 quarantine 字串的四個欄位,說明為何「沒有旗標」就不觸發 Gatekeeper。

← 先讀 M04 章節

Gatekeeper 評估實驗室

① 下載通道

瀏覽器啟用 LSFileQuarantineEnabled,下載即附 com.apple.quarantine。

② com.apple.quarantine 解碼
flags
0x0081 · 未評估
時間
2020-04-05T17:58:24.000Z
agent
Safari
UUID
A1B2C3D4-0000-4000-8000-000000000001
旗標位
0x0001 LaunchServices 內部旗標(下載來源/類型相關)。0x0080 LaunchServices 內部旗標(常見於瀏覽器下載)。

UUID 是 LaunchServices QuarantineEventsV2 資料庫的鍵,存原始下載 URL/來源。

③ 情境(首次執行)

quarantine:有(由①通道決定)

判定擋下
  1. quarantine有 com.apple.quarantine 且為首次執行 → 觸發 Gatekeeper 評估。
  2. code signing簽章有效。
  3. notarization未經 Apple 公證(notarize)→「Apple 無法驗證其不含惡意軟體」。

被 Gatekeeper 擋下。

XProtect(簽章式惡意程式掃描,yara)在執行時比對;XProtect Remediator 週期掃描。 模型邊界:本流程為教學決策模型,非真實 syspolicyd 逐位元;quarantine flags 部分位元為 LaunchServices 內部、標為推測。驗證於 macOS 26.3.1(見章末真機卡)。

過關目標

解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。

提示

卡住時

瀏覽器/Mail/AirDrop(sharingd) 會附旗標;curl/wget/git 不會。

走錯方向時

com.apple.quarantine 四欄是 flags;時戳(hex);agent;UUID。UUID 是 QuarantineEventsV2 的鍵。

想更深入

沒有 quarantine 旗標 → 首次執行不觸發 Gatekeeper 評估。這是常見繞過的起點,也是偵測訊號。

相關指令

xattrspctl
← 回 CTF 場