概觀

OWASP CRS(核心規則集)是一套免費、開源的通用攻擊偵測規則,專為 Web 應用防火牆設計。它為 Web 應用提供第一道防線,聚焦 OWASP Top Ten 與其他常見威脅,並力求在最少誤判的前提下達成防護。CRS 同時採用特徵碼與行為偵測,且不依賴特定應用,因此幾乎可部署在任何服務之前。

儘管許多人仍以舊名「ModSecurity 核心規則集」稱呼它,此專案如今已不綁定特定引擎:同一份規則可在 ModSecurity(Apache、Nginx、IIS)以及以 Go 撰寫的 Coraza 引擎上運行。CRS 4 新增了外掛架構、提前封鎖(early-blocking)選項、Web shell 偵測、改良的 UTF-8 處理與 HTTP/3 支援,並透過漏洞獎勵計畫修補了 500 多個規則繞過問題。

偵測範圍

涵蓋的攻擊類別

  • SQL 注入(SQLi)以及 NoSQL/MongoDB 運算子注入
  • 跨站腳本攻擊(XSS)
  • 本地與遠端檔案引入(LFI/RFI)
  • 遠端程式碼執行(RCE)與作業系統/shell 命令注入
  • PHP 與 Java 注入,以及伺服器端樣板注入(SSTI)
  • HTTP 協定違規、異常與強制檢查(方法、標頭、編碼)
  • 掃描器、機器人與爬蟲偵測;Session 固著;常見應用層攻擊
  • 回應中的對外資料外洩與錯誤訊息洩漏偵測

核心概念

CRS 如何做出判斷

  • 異常評分(Anomaly Scoring):將偵測與封鎖解耦;每條命中的規則累加分數,超過閾值時才由單一封鎖規則觸發,有別於傳統各規則自行封鎖的做法。
  • 區分入向(請求)與出向(回應)分數,預設閾值入向為 5、出向為 4;嚴重度對應加分(CRITICAL 5、ERROR 4、WARNING 3、NOTICE 2)。
  • 偏執等級 PL1–PL4:PL1 為僅需少量調校的預設基準;等級越高,規則越嚴格、可攔下更多攻擊,但誤判也越多(PL4 用於守護「皇冠寶石」)。
  • 執行偏執等級(Executing PL):讓較高 PL 的規則僅進行評分/偵測,可在影響封鎖前先測試更嚴格的偵測。
  • 取樣模式(Sampling):僅讓一定比例的流量(例如從 1% 逐步提升到 100%)經過 CRS,以低風險方式漸進上線。
  • 透過排除規則(exclusion rules)進行誤判調校;規則採用結構化的 ID 區段(例如 9xxxxx),使分類與調校可預期。

部署與調校

CRS 部署於應用之前,作為縱深防禦的一層,由 ModSecurity(搭配 Apache、Nginx 或 IIS)或 Coraza 等 WAF 引擎載入,也被許多雲端與 CDN WAF(AWS、Azure、Cloudflare、Fastly 等)內建採用。典型導入流程為:先以偵測模式在 PL1 啟用,透過取樣與日誌檢視找出誤判,再撰寫針對性的排除規則並提高偏執等級,最後才切換為封鎖模式。

在未充分調校誤判的情況下,於封鎖模式啟用高偏執等級是非常危險的。

歷史沿革

核心規則集始於 2006 年的 Breach Security,後由 Trustwave SpiderLabs 維護,最終成為獨立的 OWASP 旗艦專案。3.x 系列確立了異常評分與偏執等級此一現代模型。CRS 4.0 於 2023 年推出,新增外掛系統並讓規則跨 ModSecurity 與 Coraza 不再綁定引擎。如今開發以快速的次版本節奏推進;最新版本為 4.27.0(2026 年 6 月),而 4.25.0 為首個長期支援(LTS)版本;舊有的 CRS 3.3.x 系列支援將於 2026 年第三季結束。

資源