iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0

今天開始做SOC團隊版流程的逐步介紹,包含設計時每個流程Node的功能與為何要如此設定,重要的幾條線的意義與作用。

值得注意的是,三個SOC流程中,反而是個人版的設計最複雜,因為一個人的時間精神有限,所以要透過更多的Node協助判斷,預先處理/後處理,更多的判斷,所以反而更複雜

流程代碼:SEC_IR_FLOW_SOC_TEAM
表單代碼:SEC_IR_SOC_TEAM

項目 說明
流程名稱 資安事件處置流程(SOC 團隊版)
流程代碼 SEC_IR_FLOW_SOC_TEAM,綁定表單 SEC_IR_SOC_TEAM(資安事件處置(SOC 團隊版))
適用編制 3 到 8 人、有輪班的監控中心
一句話用途 高危案件同時開「人工簽核」與「SLA 計時」兩條並行的路;逾時只催辦與升級通報,處置永遠由人決定
用到的節點 開始、寫入欄位、分支、簽核、防禦決策、緊急廣播、暫停、設定變數、結束,共 9 種
簽核角色 一線:資安人員 SECURITY_STAFF;二線:資安主管 SOC_SUPERVISOR
本文用途 與外部人士討論 SOC 運作方式時的共同底稿:流程怎麼走、每條線為什麼這樣拉、目前做不到什麼

1. 這個流程解決什麼問題

處置流程的形狀取決於「有沒有人在看」,不是事件量。SOC 團隊版的前提是:組織有 3 到 8 位資安人員輪班,案件進來時通常有人在線。這種編制的失敗模式不是「沒有人」,而是「漏看」:案件掛在清單上,每個人都以為別人會處理。

所以這個流程選擇的介入強度是催辦與升級通報,而不是替人做決定。高危案件(嚴重度 4 以上)進來時,流程同時走兩條路:

  • 人工處置軌:交給一線資安人員簽核,四個決策各有去向(封鎖、放行、升級二線、誤判結案)。
  • SLA 計時軌:等 15 分鐘,檢查有沒有人簽;沒有就發催辦,再等 15 分鐘仍沒有就通報資安主管。

計時軌從頭到尾不寫任何防禦決策、不動簽核任務。它跑完自己的路就安靜結束;封鎖或放行只會從人按下的那一顆按鈕產生。

版本 一句話 逾時的時候
標準版 SEC_INCIDENT_FLOW 有人隨時在線、先跑起來再說;SLA 只是處置中心清單上的顯示 什麼都不會發生,全靠人盯清單
SOC 團隊版(本篇) 有輪班但會漏看;用計時軌把「沒人動」變成看得見的事件 15 分催辦、30 分通報主管,處置仍由人決定
小企業單人版 SEC_IR_FLOW_SOLO 只有一位資安人員、每天 16 小時沒人看;先自動短期封鎖、上班後再複核 流程自己寫入有期限的封鎖決策

三個流程各自綁一張表單,可以同時存在,由事件路由規則決定哪些案件走哪一個

2. 流程全貌圖

下圖由建置腳本中的流程定義直接產生:節點位置取自流程設計器畫布上的座標(等比放大),20 個節點與 28 條出線全數畫出。為了讓線不重疊,出線在圖上改走水平與垂直折線;在流程設計器裡它們是直線,連接關係完全相同。
https://ithelp.ithome.com.tw/upload/images/20260921/20184261qFFr7KvlaQ.png

讀圖順序:先看左邊的主幹分流(所有案件都會經過),再看下方的人工處置軌(人在這裡做決定),最後看上方的 SLA 計時軌(只有高危案件會啟動)。整張圖只有一個「結束」,而且只有人工處置軌與低危歸檔會走到它。

3. 案件怎麼進到這個流程

案件不是人填表單產生的,而是偵測器送進來的事件自動建立的。從事件到流程啟動之間有五個步驟:

步驟 平台做什麼 對流程的意義
step 1 接收 偵測器(WAF、入侵偵測等)以 API 金鑰與簽章把事件送到平台。平台接受兩種格式:平台定義的標準事件格式,以及搭配「原生格式設定檔」的來源系統原始格式。同一個事件編號重送不會重複處理。 金鑰上設有允許的偵測來源清單,清單外的來源會被拒絕。
step 2 正規化 不論哪種格式,都會整理出六個共同欄位:severity_id(嚴重度)、actor_ip(來源位址)、target_host(目標主機)、source_system(偵測來源)、finding_rule_id(規則 ID)、occurred_at(發生時間)。 流程的分流條件、封鎖目標、聚合降噪、處置中心的 SLA 顯示都讀這一組欄位。
step 3 路由 「開放防禦 / 事件路由設定」的規則依優先序由大到小評估,第一條命中的規則決定這個事件用哪一張表單;表單決定流程(取該表單最新的已發行版本)。沒有任何規則命中,事件會被拒收。 要讓案件走 SOC 團隊版,就要有一條規則把它導向表單 SEC_IR_SOC_TEAM。示範企業 DemoSOC 的規則是「嚴重度 3 以上走 SOC 團隊版,其餘走標準版」。
step 4 聚合降噪 60 分鐘內,同一個來源位址加上同一個規則 ID 的事件,會併進既有案件,不另開新案。一般只併進「仍在進行中」的案件;嚴重度 2 以下的事件連已結案的案件也併。 併案時案件的聚合事件數加一、嚴重度取較高者、風險分數重算,但流程不會重新分流。
step 5 建案 把事件欄位與情報欄位寫進表單,建立案件並從「開始」節點啟動流程。案件跑的是建案當下那一版已發行流程的快照。 之後再修改流程,不影響已經在跑的案件。

流程會讀的表單欄位

欄位(表單上的名稱) key 流程哪裡用到
嚴重度 severity_id 「嚴重度分流」的三條規則;低危歸檔註記的文字
攻擊者 IP actor_ip 兩個防禦決策節點的目標值;封鎖完成通報的標題與內文
事件標題 finding_title 防禦決策的理由、三則廣播的標題或內文
規則 ID finding_rule_id 封鎖決策的理由
情報摘要 intel_summary 由流程寫入(情報摘要、低危歸檔註記兩個節點),給簽核者看
風險分數、建議處置、本案件聚合事件數、24 小時內同源事件數、該 IP 歷史封鎖次數 risk_score、recommended_action、od_event_count、od_repeat_count、od_history_block_count 「情報摘要」節點把這五個值組成一段文字

情報欄位從哪裡來

五個情報欄位都是建案當下由平台用自己的資料算出來的,不查外部情資:

  • 24 小時內同源事件數:過去 24 小時,本企業收到、來源位址相同的事件筆數(不分偵測器;同一個位址被不同偵測器看到,本來就是風險升高的訊號)。
  • 該 IP 歷史封鎖次數:本企業曾經對這個位址寫過幾筆封鎖決策。
  • 本案件聚合事件數:建案時是 1,之後每併進一筆事件加一。
  • 風險分數(0 到 100):嚴重度乘以 15,加上同源事件數(最多算 6 筆)乘以 5,加上歷史封鎖次數(最多算 3 次)乘以 10,上限 100。
  • 建議處置:風險分數 60 以上為 block,否則為 observe。它只是給人看的建議,這個流程沒有任何節點依它自動行動。

4. 三種案件各走一遍

以下的「T+0」是事件進到平台的時間。流程的每個節點由背景執行器逐一執行,從建案到簽核任務出現大約 20 秒;暫停節點的 15 分鐘從它自己開始執行的那一刻起算,所以下表的分鐘數都是近似值。範例來源位址為 203.0.113.45。

4.1 高危案件(嚴重度 4 以上)

三種情境的前半段相同:

時間 流程做什麼 誰看到什麼
T+0 開始 → 情報摘要(把五個情報欄位組成一段文字寫進表單)→ 嚴重度分流命中「高危雙軌」規則,兩條出線同時往下走:「一線簽核(高危)」進入等待、「SLA 計時 15 分」開始倒數。 案件出現在「資安案件處置中心」,持有資安人員角色的人都看得到、都可以簽。清單上這件案子顯示 15 分鐘的 SLA 倒數(這是清單自己的顯示,與流程的計時軌各算各的)。
情境甲:15 分鐘內簽完(例:T+6 分選「封鎖攻擊來源」)
時間 人工處置軌 SLA 計時軌
T+6 分 一線填寫處置意見(至少 10 個字)並按下「封鎖攻擊來源」。決策值 block 寫入流程變數 soc_decision → 寫入封鎖決策(目標 203.0.113.45、期限 1 小時、執行點 nftables 與 edl)→ 封鎖完成通報 → 結束。流程終態為「已完成」。 仍在倒數。
T+15 分 (已結束) 暫停節點到期,執行器發現流程已經結束,把這個節點標為取消。「檢查是否已簽核」不會執行,不發任何廣播,也不會留下「準時完成」的標記。

如果 T+6 分選的是「升級二線」,人工處置軌會停在「二線處置」等資安主管。此時流程還沒結束,所以 T+15 分計時軌會真的醒來檢查:soc_decision 的值是 escalate、不是空的,判定為「已簽」,走到「準時完成」(把流程變數 sla_track 設為 signed_in_sla)後安靜結束。二線有沒有處理,計時軌不看。

情境乙:15 到 30 分鐘之間才簽(例:T+22 分)
時間 人工處置軌 SLA 計時軌
T+15 分 簽核任務仍在等待,不受影響。 暫停到期 → 檢查是否已簽核:soc_decision 是空的,走「逾時」→ SLA 逾時催辦(廣播代碼 SOC-SLA-WARN,對象資安人員,不需確認)→ 再等 15 分開始倒數。
T+22 分 一線簽核,依所選決策往下走到結束。 仍在倒數。
T+30 分 (已結束) 第二個暫停節點到期,流程已結束,節點被取消。「二次檢查」不會執行,不會通報主管。若案件此時還在等二線,則會執行二次檢查、判定「已簽」,走到「催辦後完成」(sla_track = signed_after_warn)。
情境丙:30 分鐘仍沒有人簽
時間 人工處置軌 SLA 計時軌
T+15 分 等待中。 發出 SLA 逾時催辦,開始第二段 15 分鐘倒數。
T+30 分 等待中。 二次檢查:仍是空的,走「仍未簽」→ 升級通報主管(廣播代碼 SOC-SLA-ESCALATE,對象資安主管,需要確認)→ 已升級通報(sla_track = escalated)。計時軌到此結束。
T+30 分之後 簽核任務繼續等待,沒有期限。之後任何持有資安人員角色的人簽核,流程照常往下走。 不再有任何自動動作。流程不會自動封鎖、不會自動結案、也不會第三次通知。

4.2 中危案件(嚴重度等於 3)

時間 流程做什麼 誰看到什麼
T+0 開始 → 情報摘要 → 嚴重度分流命中「中危標準簽核」→ 一線簽核(中危)進入等待。不啟動計時軌。 案件出現在處置中心,清單顯示 60 分鐘的 SLA 倒數。
有人簽核時 四個決策與高危完全相同:封鎖、放行各接一個防禦決策節點,升級接二線處置,誤判直接結束。 —
T+60 分仍未簽 流程不做任何事。 處置中心上方統計的「SLA 逾時」數字加一,僅此而已。

4.3 低危案件(嚴重度 2 以下)

時間 流程做什麼 誰看到什麼
T+0 開始 → 情報摘要 → 嚴重度分流命中「低危自動歸檔」→ 低危歸檔註記(把表單的情報摘要欄位改寫成「低危事件(severity N)自動歸檔,未進入人工簽核。」)→ 結束。整個過程在一分鐘內完成。 沒有人會收到簽核任務。案件可在處置中心的「已結案」視角查到。

注意兩件事:低危歸檔註記與情報摘要寫的是同一個欄位,所以低危案件最後留在表單上的是歸檔註記,情報摘要那段文字會被蓋掉(五個情報欄位的數值仍在)。另外,60 分鐘內同來源、同規則的低危事件會併進同一件已結案的案件,只累加聚合事件數,不會灌出大量歸檔案件。

4.4 缺嚴重度的案件(fallback)

嚴重度分流的三條規則都是數值或字串比較;欄位缺值或不是數字時,三條比較都視為不成立,改走 fallback:送到「一線簽核(中危)」交給人判斷,之後的路與中危完全相同。

實務上會走到這裡的,是以「原生格式」接進來、而設定檔沒有對應出嚴重度的事件;平台的標準事件格式規定嚴重度必填且為 0 到 6 的整數,缺值的事件在接收階段就會被退回。另外請留意:嚴重度 0 是合法值,它滿足「2 以下」,會被當成低危自動歸檔。

今天先到此,明天會介紹此流程有使用到的所有節點。
如果您之前已經安裝過,今天發表此篇之後更新版本,請使用 install.sh --update更新


上一篇
先從人-人流程了解基本流程原理
下一篇
資安事件處置流程(SOC 團隊版)page 2
系列文
企業管理自動化與執行框架-以SOC運作為實例 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言