iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
自我挑戰組

一鍵完成六套開源防禦系統整合系列 第 7 篇

系統預設處理 vs 與 BeakPlatform 整合後

  • 分享至 

  • xImage
  •  

同一批開源元件,單獨裝起來會怎麼反應?接上 BeakPlatform 之後多了什麼、沒有改變什麼?本篇先給一張總表,再用六個具體情境走一遍。

今天這篇很多要對照/比較的,我覺得製表是最直接的呈現,所以就簡化說明,都在表中。
有一些會特別呈現時段或階段,如果您是校長兼撞鐘的一個人的SOC,可以多了解無人時自動處置案件的做法。

一、先說清楚:整合沒有改變的事

WAF 擋不擋、Suricata 抓不抓,與平台無關。平台不會讓 CRS 多擋一種攻擊,也不會讓 ET 規則多抓一條。攻擊當下的即時阻擋 100% 由 WAF 自己完成,403 早在平台收到事件之前就回給攻擊者了。

平台改變的是「擋掉之後」與「沒擋到但看到了之後」:這些告警有沒有人負責、要不要進一步封鎖來源、封多久、由誰決定、怎麼解除、事後查不查得到。單獨使用時,這些問題的答案全部是「沒有」。

二、總表

面向 系統預設(單獨使用各元件) 與 BeakPlatform 整合後
攻擊當下 WAF 回 403;Suricata 寫一行告警;CrowdSec 依情境計數 完全相同
告警去哪 躺在 audit.log、eve.json;EveBox/Grafana 可以看,但要有人去看 正規化為同一格式,篩過後推進平台成為案件;全量仍在 ClickHouse
誰負責 沒有指派概念。log 沒有「這筆歸誰」 案件依角色進入資安人員的待辦;簽核授權依角色、單位與代理判定;二線可升級到資安主管
時限 無 高危 15 分鐘、中危 60 分鐘 SLA;團隊版逾時催辦再升級;單人版逾時自動處置
累犯 WAF 與 Suricata 都無跨請求記憶;每次都當第一次 60 分鐘內同 IP 同規則併案並計數;24 小時內重複數與歷史封鎖次數進風險分數
封鎖來源 IP CrowdSec 可以下決策,但本安裝包沒有 bouncer,決策不落地;nftables blocklist 是空的,沒有人會往裡面寫 人一鍵或流程自動寫決策 → od-bridge 5 秒內落地到 nftables blocklist、CrowdSec LAPI、EDL 檔
封鎖多久、怎麼解 CrowdSec 預設 4 小時;手動 nft 加的元素若沒帶 timeout 就是永久,得有人記得去刪 每筆決策帶 TTL(1h/24h/7d 依流程);kernel timeout 與平台 cron 雙層到期,到期自動產生 unblock 落地;可人工撤銷、可改判
誤封自家設備 沒有防護。反向代理後面的偵測器看到的來源常是代理自己,照封 服務層保護清單:RFC1918、回送、CGNAT、平台可信代理等命中即拒寫;企業可加自訂與豁免;覆寫要留痕
給外部防火牆用 無 兩份 EDL:防禦端 :8500/edl(只含標了 edl 執行點的決策)與平台端每企業一份(該企業所有有效封鎖)。純 IP 一行一個,防火牆定期抓
通知 無(Grafana 可另設 alert) 流程內建緊急廣播;可接 Email/Telegram 節點;封鎖完成通報、SLA 催辦、夜間自動處置通報
跨系統關聯 要自己在 ClickHouse 或 EveBox 裡用 IP 查 案件頁「跨系統關聯」分頁即時查 ClickHouse,列出同一 IP 在時間窗內被各系統各自看到的紀錄
稽核與證據 log 輪替後就沒了;誰做過什麼沒有紀錄 案件、簽核歷程(含以誰的身分、代理誰)、決策、執行結果、覆寫痕跡全部落 DB;原始事件整包保留
多租戶 不適用,一台一套 每個企業各自的金鑰、路由、案件、決策、EDL;防禦端每家一台,租戶歸屬取自驗簽後的金鑰
事件量控制 log 有多少寫多少;EveBox 靠人翻 Vector 三道閘門在源頭壓量;平台再併案。代價是平台上的數字不代表攻擊總量(第 5 篇)
誰被平台入侵影響 不適用 決策是防禦端拉的,平台不能主動對防禦端下指令;狀態流轉受限,執行端無法偽造 expired;保護清單在平台端,流程怎麼寫都繞不過

三、同一次 SQL injection 的兩條時間軸

https://ithelp.ithome.com.tw/upload/images/20260921/20184261hv65gB7Lx5.png

四、六個情境逐一對照

情境 A:從 Internet 打 SQL injection(經 Cloudflare Tunnel)

- 預設 整合後
即時 WAF 403 WAF 403
之後 audit.log 一行,一小時後輪替 案件 OD-…,攻擊者 IP 是 CF-Connecting-IP(因為直連 WAF 的是可信的 cloudflared),國別一併帶入。SOC 在處置中心看到 payload、規則、UA;按「封鎖攻擊來源」後 5 秒內落地,TTL 1 小時
封鎖效果 — nftables 只擋該 IP 直連主機 B 的封包;經 Cloudflare 進來的請求封包來源是 Cloudflare,nftables 不會擋,仍由 WAF 逐請求擋。要在邊界擋掉,得讓外部防火牆抓 EDL,或未來實作 Cloudflare 執行點

情境 B:掃描器一分鐘打 300 個路徑

- 預設 整合後
即時 WAF 擋掉命中 913/920/930 的那些,其餘(存在的路徑)放行到後端 相同
之後 audit.log 幾百行;放行的那些到後端時 Suricata 可能另有 ET SCAN/WEB_SERVER 告警 Vector 封頂:同 IP 同規則 5 分鐘只放 5 筆、全域每分鐘 8 筆;平台再把同 IP 同規則併成一案。SOC 看到的是「一個 IP、幾條規則、事件數」而不是三百張單。ClickHouse 仍有全部 300 筆可查
差異重點 人翻 log 才知道是同一個人 風險分數因 24 小時內重複數加成而上升,建議處置變 block

情境 C:後端網站掛了

- 預設 整合後
即時 WAF 對每個請求回 502 相同
之後 audit.log 記下 5xx 交易(RelevantOnly 包含 5xx) 建案,但沒有規則編號、actor 是正常訪客。這是刻意保留的:後端異常也是事件,可用性也是 C.I.A. 的一環。量由封頂控制,SOC 看到的是「很多不同 IP 對同一 host 的 502」
注意 — 這種案件不該封 IP,訪客是無辜的。單人版的自動封鎖條件要求 severity ≥ 4,5xx 事件的嚴重度來自 ModSecurity 等級對映,通常到不了門檻

情境 D:有人對主機 B 的 SSH 暴力破解

- 預設 整合後
即時 sshd 逐次拒絕;開了 --ssh-guard 的話 nftables 直接 drop 非白名單來源 相同
偵測 CrowdSec ssh-bf 情境命中,LAPI 產生一筆 ban;沒有 bouncer,不落地。Suricata 可能有 ET SCAN SSH 告警 Suricata 那條告警若通過 Vector 篩選(來源是公網、嚴重度 ≥ 2)會進平台建案;CrowdSec 的決策不會進平台(Vector 不讀 CrowdSec)
差異重點 走 tunnel 部署時攻擊者根本碰不到主機 B 的 22 埠,這個情境只在內網或主機 B 有公網 IP 時成立 同左;整合沒有補上「CrowdSec 決策進平台」這條線,這是目前的缺口

情境 E:內網某台機器自帶 CF-Connecting-IP 標頭直打 8080,想陷害第三方 IP

- 預設 整合後
第一道 nftables ingest_guard_forward:來源不在平台主機與 ADMIN_IPS 內 → drop,連 WAF 都到不了 同左
第二道(來源在白名單內時) WAF 正常處理;Suricata 的 XFF 覆寫會把 src_ip 換成標頭裡的第三方 IP(Suricata 沒有「信任代理」概念) Vector 對 WAF 事件比對 client_ip 是否為可信直連來源(只有 cloudflared 的 172.18.0.250);不是,就「誰打的記誰」,第三方 IP 不會被歸因。Suricata 那條線 Vector 補不了(eve.json 已無原始來源),所以 8080 的來源管制是這條線的唯一防線;即使歸因錯了,保護清單也擋得住封到內網,但擋不住封到外部關鍵服務

情境 F:凌晨三點的高危案件,公司只有一位資安人員

- 預設 整合後(小企業單人版流程)
即時 WAF 403(如果是 WAF 抓到的) 相同
之後 沒有人看,也沒有東西會做任何事 分流:severity ≥ 4 且 actor 是公網 IP → 判斷非上班時段 → 立即寫 block 決策 TTL 24 小時 → 落地 → 發「待複核」提示。若 actor 是內網 IP 或缺 IP → 改走人工,不自動處置
早上 — 複核任務在待辦:確認是攻擊 → 延長到 7 天;誤判 → 立即解除;不確定 → 什麼都不做,24 小時後自動解封
週末 — 時間變數沒有星期幾,週六日會被判成上班時段;靠「上班時段 30 分鐘無人處理也自動封鎖」補上

五、整合帶來的代價

代價 說明
多一台主機與一條依賴 平台掛了,防禦端照常擋(WAF 與 nftables 現有元素不受影響),但新決策不會產生、到期的 unblock 不會產生。kernel timeout 仍會自己剔除,所以最壞情況是「封鎖只會少不會多」
平台上的數字不是全量 Vector 封頂是丟棄。要回答「今天被打幾次」一律查 ClickHouse,不要看案件數
自動處置需要人設定邊界 保護清單、豁免、TTL、上班時段(UTC)都是設定值,第一次導入要逐一確認,尤其時區
需要企業與角色 平台側必須另建一家企業(不能用系統預設企業)、至少一位持 SECURITY_STAFF 角色的成員、一條路由規則、一個已發行的流程,缺一件事件就進不來,症狀是處置中心永遠是 0

上一篇
資安[事]件如何變成[案]件與決策--(三種SOC運作範例)
下一篇
信任邊界與盲區
系列文
一鍵完成六套開源防禦系統整合 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言