Auditing Frameworks Need Resource Isolation: A Systematic Study on the Super Producer Threat to System Auditing and Its Mitigation 2023 論文解析以及相關論文
背景知識
什麼是 Audit
Audit 是系統安全中的「監視錄影機」,它負責追蹤作業系統內發生的一切關鍵活動,例如:誰打開了 /etc/shadow、哪個進程發起了網路連線、或是誰修改了系統權限。
其核心目標在於提供可追蹤性 (Accountability)。當攻擊發生時,安全專家可以透過審計日誌進行「數位鑑識」,還原攻擊者的操作路徑。
Audit 基本上由以下組件組成:
- Producer: 每個 Process 會做自己的事情,會有不同事件
- Kernel: 捕捉到不同的 Process 做了什麼事件,把事件 Log 傳給 Audit daemon
- Audit Daemon: 開始處理 Log,可能寫到文件或者特殊處理。
所以可以看成是一種集中式的架構,所有東西都由 Log 處理。
我們可以看一些論文提到的 Audit 框架
- Sysdig: 容器監控 (Container Monitoring):它是 Kubernetes 和 Docker 環境下的監控霸主
- Linux Audit (Auditd): Linux 核心內建的「官方」審計子系統。你不用安裝,它就在 Kernel 裡面,雖然是標準,但架構老舊(單執行緒)
- LTTng (Linux Trace Toolkit: next generation),一個專注於「極致效能」的追蹤工具。它的設計目標是對系統的干擾降到最低 (Low Overhead)
- CamFlow: 一個學術界的「全系統資訊流 (Whole-system Information Flow)」捕捉系統。它可以畫出非常完整、沒有斷點的溯源圖
- KennyLoggings:專注於微服務與容器環境的溯源分析
- Hardlog:利用專用硬體(把日誌寫到獨立的存儲裝置)來保護日誌不被竄改
- QuickLog:專注於 User-space 的日誌分析效能優化
Super Product 問題
論文提到,所有提到的框架,都採用集中式框架,都會有一個問題,就是當一個 Process 送太多 Log,會塞爆 Kernel,他們叫做 Super Product 問題。
並且通常遇到塞爆,Audit 只會採取兩種處理方式:
- 直接丟棄 Log,這會造成 Audit 失效
- 盡全力處理,但會導致機器壓力太大,可能會壞掉
所以都不是很好的處理方式,本篇論文說他是第一個提出這個問題的人,在 2023 年,並且提出對應的處理方式。
解法 NODROP
簡單的方法像是:
- 閾值 (Threshold) 難設:設太低會誤殺正常的高負載程式;設太高則擋不住攻擊。而且攻擊者可以用「多個」進程來分攤流量,繞過單一進程的閾值
- Collector 內部隔離太複雜:如果在 Collector 內部寫邏輯來區分不同 App 的 Log,會增加開銷,而且可能會跟作業系統本身的排程策略 (Scheduling Policy) 打架,導致兩邊都沒效率
- 結論:需要徹底重新設計架構(即後來的 NODROP),而不是修修補補
所以 NODROP 就是改成「每個人(Thread)自己處理自己的垃圾」,以前是「所有人的垃圾都丟給一個清潔工(Collector)處理」,產生 Log 的那個執行緒,必須負責消耗自己的 CPU 時間來處理這些 Log。
基本上就是寫一段程式叫做 Threadlet,它是一段注入到應用程式記憶體空間中的程式碼,就是負責送 Log,運作流程就是:
- 攔截:Kernel 攔截系統呼叫,將資料寫入該執行緒專屬的 Buffer
- 緩衝區滿了:當 Buffer 滿水位的瞬間,Kernel 暫停 應用程式原本的邏輯
- 切換模式:Kernel 強制 CPU 跳轉去執行 Threadlet (Consumer) 的程式碼,如圖中 5 - 7
- 處理資料:Threadlet 使用該應用程式自己的 CPU 時間,把 Buffer 裡的資料壓縮、加密、寫入硬碟
- 恢復:處理完後,清空 Buffer,CPU 跳回去繼續執行應用程式原本的邏輯
這樣可以減少 Context Switch:不需要切換到另一個 Process (auditd),直接在當前 Context 處理,速度更快。
我們把警察 (Threadlet) 放在小偷 (惡意程式) 的家裡 (記憶體空間) 辦公,要怎麼確保警察的安全?
既然 Threadlet 是在惡意程式的記憶體空間內執行,惡意程式可能會試圖篡改 Threadlet 的程式碼或破壞 Buffer。作者使用了多層防禦機制:
- Intel MPK: 保護 Threadlet 區域
- ASLR: 隨機放位置
- Trampoline: 規定只能從特定的「入口大門」進入 Threadlet。
並且Threadlet 需要寫入 Log 檔案(需要高權限),但原本的 App 可能權限很低。
NODROP 設計了一種機制,讓 Threadlet 在執行時暫時獲得必要的 Capability(如寫入特定 fd 的能力),但嚴格限制它不能做其他壞事。
Future Work
- Direct Process Hijacking:如果攻擊者直接 hijack 進程,仍可能影響效能(這屬於系統安全範疇,非審計框架責任)
- Architecture Support:目前基於 Intel MPK,未來可移植到 ARM, RISC-V 等支援類似保護機制的平台
- Windows Porting:將此概念應用於 Windows
最新相關論文
截至 2026/2/8 有 18 個引用它,來看一下 2026 最新研究生產者問題的論文,大概真的有關的就這些:
- Nitro (2024/2025):雖然它是針對防竄改,但它提出利用 eBPF 在核心態直接過濾和預處理數據,減少傳輸到用戶態(Userspace)的負擔,從而提高系統對 Super Producer 攻擊的耐受度
- Rethinking Provenance Completeness with a Learning-Based Linux Scheduler:這篇論文的作者群(Jinsong Mao, Shiqing Ma 等人)認為 NODROP 雖然提出了資源隔離,但有兩大缺陷:
- 硬體依賴 (Hardware Dependencies):NODROP 依賴 Intel MPK 等硬體特性,換個平台(如 ARM 或舊處理器)就可能失效或變得很難實作
- 效能天花板 (Performance Limitations):強硬的資源隔離在面對極端負載時,依然會導致性能大幅下降,且無法靈活應對不同類型的任務。
- Aegis 是一個基於學習的 Linux 調度器。它會觀察哪些進程是「生產者」(產生日誌的人),哪些是「消費者」(處理日誌的審計進程)。當 Super Producer 出現時,傳統調度器(如 Linux 的 CFS)會公平地分給它 CPU。但 Aegis 會發現:「嘿!這個進程產生的日誌快把緩衝區撐爆了!」 於是 Aegis 會主動減少該生產者的 CPU 時間,並將資源撥給「審計進程」,讓後者趕快把 Log 處理完。
- ProvAudit: Enhance High-Level Privacy Inference Through System Provenance Data
- 它利用 DPU (Data Processing Unit)。DPU 像是一個獨立的小電腦,插在伺服器上。DPUaudit 讓 DPU 主動去主機的記憶體裡「抓」資料,主機端完全不需要跑任何發送日誌的代碼。
- 因為主機 CPU 根本不處理日誌(不拷貝、不加密、不切換權限),所以不論 Super Producer 產生日誌多快,都不會搶佔主機的 CPU 資源。
- RT-NODROP: 這篇 RT-NODROP (2025) 是由 NODROP 原班人馬(或是極度相關的團隊,如 Peng Jiang)針對 「即時系統 (Real-Time Systems)」 提出的進化版本
- RT-NODROP 的切入點:它不只要防禦 Super Producer,還要保證審計動作本身是「可預測的」
- FA-SEAL (2024, ACSAC) —— 日誌加密效能:當你偵測到速率過高時,除了「停下它」,另一種策略是「加快處理速度」。FA-SEAL 提出了一種可鑑識分析的對稱加密方法,專門處理大量審計日誌。這能幫助你在面對 Super Producer 時,即便日誌很多,加密動作也不會成為系統的絆腳石。
其他相關的:
- Aquila: Efficient In-Kernel System Call Telemetry for Cloud-Native Environments:這篇論文直接對標了 eBPF 監控器的效能瓶頸(High per-event overhead)
- The HitchHiker’s Guide to High-Assurance System Observability Protection with Efficient Permission Switches: 類似處理 Log 問題,但不是處理生產者問題,他是處理假設攻擊者已經成功入侵了作業系統(OS Compromise)並取得了最高權限(Root)。在這種情況下,攻擊者第一件會做的事就是修改或刪除日誌(Logs),讓管理員看不出他是怎麼進來的,這個問題
- A survey on intelligent detection for APT attacks: Survey 的一部分