M11 · CTF
FileVault 全卷加密的真實威脅模型
在情境面板裡判斷三種攻擊下 FileVault 到底防不防得住:(1) 關機後硬碟被拔走離線讀取、 (2) 裝置失竊但停在登入畫面、(3) 使用者已登入、本機跑著惡意程式。說清楚 FileVault 防的是哪一類(靜態資料、離線/未登入),不防哪一類(已解鎖 session 上的本機惡意程式), 並指出 macOS 為何不是 iOS 那種逐檔 class key 模型。
APFS clone / COW
檔案 A
共享 extentCOW 私有 extent邏輯大小 6 塊 · 實體佔用 6 塊(共享只算一次)
clonefile 複製=兩檔共享同一批 extent,不佔額外空間;改寫某塊才 copy-on-write 出新 extent(只有那塊變私有)。snapshot 同理:對「當下狀態」釘一份共享參照,之後的改動才分裂——M05 的 SSV seal 就是蓋在這種 snapshot 上。教學抽象,非真實 APFS 結構。
過關目標
- 讓 filevault.scenario.offlineDiskPull.protected 達到 true
- 讓 filevault.scenario.loggedInMalware.protected 達到 false
- 讓 filevault.model.perFileClassKey.macosDesktop 達到 false
- 用自己的話解釋:FileVault 防什麼、不防什麼?為什麼「未開 FileVault」不等於「沒加密」(Apple Silicon 一律硬體加密、SEP 管金鑰)? macOS 的全卷加密和 iOS 的逐檔 class key 在威脅模型上差在哪?
解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。
提示
卡住時
FileVault 把 VEK 包進使用者密碼派生的 KEK。沒密碼 → 登入前拿不到 VEK。所以它防的是離線/未登入的靜態資料。
走錯方向時
一旦登入、卷被解鎖,資料對作業系統就是明文可讀。FileVault 不是 anti-malware,不防已解鎖 session 上的本機惡意程式——那是 DAC/Sandbox/TCC 的事。
想更深入
macOS 多數檔案只受 FileVault(volume 級 XTS-AES)保護;iOS 那種逐檔 class key(鎖屏即不可讀)在 macOS 桌面多數情況不啟用。別把 iOS 模型套過來。
相關指令
diskutilfdesetup