Suzu macOS Playground

M14 · CTF

telemetry 盲區——mute inversion 與 event-flooding 下的漏報

延續 lvl1 那條規則。這次拉動 mute-inversion 與 event-flooding 兩支滑桿,觀察惡意 exec 如何從事件流裡「消失」——一個是事件壓根沒被產生(mute),一個是事件被洪泛擠掉(drop)。 你要分辨這兩種盲區的成因不同,並說明為什麼這不是「規則沒寫好」而是 ES 的結構性邊界, 以及該如何用獨立來源(OpenBSM、FSEvents、Time Machine 快照)交叉補洞。

← 先讀 M14 章節

ES 事件流 + 偵測規則

#typekindprocpathplat
1execAUTHTerminal/bin/zsh✓
2execAUTHzsh/tmp/.x/helper✗
3openNOTIFYhelper~/Library/LaunchAgents/com.x.plist✗
4btm_addNOTIFYhelpercom.x.agent✗
5mmapNOTIFYSafari/usr/lib/dyld✓
6execAUTHlaunchd/tmp/.x/helper✗
7openNOTIFYSpotlight~/Documents/a.pdf✓
命中 2 筆

AUTH(黃)事件可即時放行/拒絕(同步、有背壓);NOTIFY 只是事後通知。predicate 太鬆 → 雜訊(FP),太緊 → 漏報(FN)。mute / event-flooding 是真實盲區:被 mute 的程序事件根本不送達 client。純教學合成流。

過關目標

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

提示

卡住時

mute 讓 kernel 不再為某 process/path 送事件——事件「沒產生」,再好的 predicate 也命不中。flooding 是事件「產生了但被丟」。兩者都讓你漏報,但補洞方式不同。

走錯方向時

別在 predicate 上鑽——盲區不在規則層。mute inversion(只看白名單)把白名單外開成全黑洞;flooding 把 AUTH client 拖到 deadline,逾時多半 fail-open 放行。

想更深入

補洞靠獨立軌:OpenBSM trail 攻擊者常忘了清,FSEvents 記得目錄曾被寫,Time Machine 舊快照可能還留著被刪的檔。ES 不是唯一真相來源。

相關指令

esloggerpraudittmutil
← 回 CTF 場