當標準 OVAL 定義遇到複雜檢測場景時,Script Check Engine(SCE) 提供了以自訂腳本擴充 SCAP 框架的能力,讓安全稽核不再受限於內建規則。
什麼是 Script Check Engine?
SCE 是 OpenSCAP 生態系中的一種擴充機制,允許在 XCCDF 規則中嵌入外部腳本(Shell、Python 等)作為檢查邏輯。與 OVAL 不同,OVAL 依賴 XML 結構描述系統狀態,而 SCE 直接執行腳本並以回傳碼(exit code)判定合規結果:回傳 0 代表通過,回傳 1 代表不符合,回傳 2 代表無法判定。這使得難以用 XML 表達的檢測邏輯——例如複合條件判斷、動態環境查詢——得以納入自動化稽核流程。
如何在 XCCDF 中整合 SCE 腳本
在 XCCDF 規則定義中,透過 check-system 屬性指定 SCE 命名空間(http://open-scap.org/page/SCE),再以 check-content-ref 指向外部腳本路徑,即可讓 OpenSCAP 在掃描時呼叫該腳本。腳本可接收 XCCDF 變數作為環境變數,實現參數化檢測。執行時 OpenSCAP 會捕捉標準輸出作為稽核紀錄,並依回傳碼自動對應 XCCDF 的 pass / fail / error 狀態,完整保留至 ARF 報告中。
#!/bin/bash
# 檢查 SSH 是否禁用 root 登入
grep -qE '^\s*PermitRootLogin\s+no' /etc/ssh/sshd_config \
&& exit 0 || exit 1
💡 重點整理
- 回傳碼即結果:exit 0 = pass、exit 1 = fail、exit 2 = error,邏輯單純明確。
- 彌補 OVAL 缺口:複合條件、第三方服務狀態等複雜場景,SCE 可直接處理。
- 參數化支援:XCCDF 變數自動注入為環境變數,腳本具備高度可重用性。
- 報告整合:結果完整輸出至 ARF / HTML 報告,符合稽核追蹤需求。
SCE 以最小侵入性擴充了 SCAP 的檢測邊界。當 OVAL 無法覆蓋特定場景時,SCE 是最務實的選擇——只需一支腳本,即可納入合規自動化流程。
📚 參考文獻
⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。
留言
張貼留言