M15 · CTF
VM 不是真機——把實驗結論錯誤外推到 SEP 的陷阱
你在一台 Virtualization framework 的 guest macOS VM 裡跑了一組實驗,得到四個觀察:FileVault 可開啟、生物辨識註冊「成功」、LocalPolicy 顯示某安全等級、某 keychain item 標記為硬體保護。 你要判斷這四個觀察裡,哪些可以安全外推到真機、哪些不行——因為 guest VM 沒有真正的 SEP, Apple 用 AppleVP*.kext 模擬缺少的 SEP 行為。辨認「信任根錨定在真 SEP 的保證在 VM 裡不等價」 這個研究限制,並說明 VM 該怎麼當隔離場用、哪些結論必須回真機驗證。全程概念推理,不涉及任何逃逸手法。
此關卡對應的模擬器(vm-boundary)尚未提供。
過關目標
- 讓 extrapolation.sepBackedClaims.flaggedAsInvalid 達到 true
- 讓 extrapolation.environmentVerified 達到 true
- 用自己的話解釋:guest macOS VM 沒有真正的 SEP,而是用 AppleVP*.kext 模擬。四個觀察(FileVault、生物辨識、LocalPolicy、硬體保護的 keychain item)中,哪些結論可以外推到真機、哪些不行,為什麼?把 VM 當隔離場(跑可疑樣本、降安全等級實驗)為什麼是對的,但把「真 SEP 行為」的結論留在 VM 裡又為什麼是錯的?
解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。
提示
卡住時
先問每個觀察「它的信任根在哪」。凡是最終錨定回真 SEP 的(生物辨識模板、SEP 管理的金鑰、UCRT、某些 LocalPolicy 語意),在 VM 裡都是被 AppleVP*.kext 模擬出來的——行為「看起來成功」不代表保證等價。
走錯方向時
這題不是要你找 VM escape。escape 是 hypervisor/裝置模擬層的攻擊面類別(🔴,本課只標類別不教手法)。這題要的是研究紀律:分辨哪些觀察能外推、哪些是 VM 模擬產物。
想更深入
sysctl kern.hv_vmm_present 先確認自己在 VM 裡。VM 的 SIP/安全等級取決於你怎麼配置這台 VM,不能假設等同預設真機。涉及真 SEP 的結論一律回真機驗證(接 M14「驗證於環境」紀律)。
相關指令
sysctlcsrutilbputil