安全案件與劇本(SOAR)
Security Events 會把偵測規則、威脅情資和已連線的安全性產品所發現的問題轉為案件:每件值得調查的事對應一個案件,與同一使用者、主機或位址有關的所有偵測都會歸入其中。分析師在佇列中處理案件,劇本則會自動或一鍵對案件做出回應。
運作方式
從偵測到已關閉的案件
開啟 產品 → Security Events → 安全案例 → 未結案例 查看佇列。指派給我、無人認領、已關閉案例 和 全部案例 是旁邊各自獨立的頁面,分別列出其名稱所指的案件。
開始之前
案件和劇本遵循三個 Security 角色的權限。Project Owner 和 Project Admin 可以執行所有操作。
| 角色 | 能做什麼 |
|---|---|
| Security Admin | 一切操作,包括刪除案件和設定劇本 |
| Security Member | 開啟、指派、變更和關閉案件,撰寫備註,執行劇本,以及核准或拒絕劇本的步驟 |
| Security Viewer | 讀取案件、偵測、備註、劇本及其執行記錄 |
其中每一項權限也都可以單獨授予,從建立案件到核准劇本的步驟皆然;請參閱 權限參考。
案件從何而來
| 來源 | 何時開啟案件 | 停用方式 |
|---|---|---|
| 偵測規則 | 規則符合時 | 規則的 符合時 步驟中的 Open a Case on Match |
| 威脅情資 | 某個事件提到已知指標時 | 情資來源的 符合時 步驟中的 Open a Case on Match |
| 已連線的產品 | 匯入的產品本身警示達到或高於連線的閾值時 | 在連線的 Polling 步驟中,把 Open Cases From 設為 從未 |
| 人員 | 有人從 安全案例 開啟案件,或在事件面板中使用 Open Case 時 | 無 |
所有來源預設都是開啟的。除非你選擇其他等級,否則連線會為 高及以上 的警示開啟案件;低於該等級的警示仍會匯入為事件。
偵測如何分組
每個偵測都與某個實體有關:也就是其規則分組所依據的值,例如暴力破解規則中的 IP 位址,或威脅情資符合項目所提到的指標。沒有實體的偵測會單獨存在,不與其他偵測合併。
- 如果已有與該實體有關的未關閉案件,偵測就會併入其中。案件的實體和 ATT&CK 對應會隨之擴充,其優先順序會提升到該偵測的優先順序,但絕不會降低。
- 如果沒有這樣的案件,就會開啟一個新案件,以該偵測命名,優先順序與該偵測相同。
- 再次觸發的偵測會在它所在的列上累加計數,而不是新增一列。
案件的優先順序取決於偵測的嚴重程度:
| 嚴重程度 | 優先順序 |
|---|---|
| Critical 或 Fatal | Critical |
| High | High |
| Medium、Unknown 或 Other | Medium |
| Low | Low |
| Informational | Informational |
處理案件
案件會依序經歷四種狀態。它可以略過某個狀態,例如直接從 New 關閉的誤判,也可以重新開啟。
| 狀態 | 意義 |
|---|---|
| New | 還沒有人查看過 |
| Investigating | 有人正在釐清發生了什麼事 |
| Contained | 威脅已無法再造成危害,但仍有清理工作要做 |
| Closed | 已處理完畢,並對其性質給出了結論 |
案件頁面上有處理它所需的一切:
- 頂端:Assign to Me、Run Playbook、宣告事件 和 Close Case 按鈕,狀態步驟,以及它們旁邊選單中的優先順序。
- Status200 AI:Status200 AI 對案件的研判、它建議的優先順序和劇本,以及背後的證據。請參閱 安全性中的 Status200 AI。
- Detections:觸發後開啟或併入此案件的偵測、觸發次數,以及最新的符合事件。
- 實體:案件涉及的使用者、主機和位址,以及它們最近 7 天在你所有安全性事件中的活動。每個實體都可以在 關聯分析 中開啟。
- MITRE ATT&CK:案件的偵測所對應的戰術和技術,每一項都連結到 attack.mitre.org 上的對應頁面。
- 劇本執行記錄:每個劇本在此案件上逐步做了什麼,以及等待核准的步驟。
- 備註 和 時間軸:團隊寫下的內容,以及發生過的一切和操作者。
若要同時處理多個案件,請在佇列中選取它們,然後使用 Assign to Me、Change Status 或 Change Priority。
關閉案件
Close Case 會要求填寫結論和一則選用的結案備註:
| 結論 | 意義 |
|---|---|
| True Positive | 確實發生了惡意或未經授權的活動 |
| Benign Positive | 活動確實存在但在預期之內,例如滲透測試或管理工作 |
| False Positive | 偵測有誤:規則或資料誤判了正常活動 |
| Undetermined | 沒有足夠的資訊可以判斷 |
概覽頁面會統計這些結論。如果某條規則的案件總是以 False Positive 關閉,就表示這條規則需要調校。
從 Google SecOps 警示開啟的案件,如果其連線開啟了 案例關閉時關閉其警示,也會在 Google SecOps 中關閉這些警示,並附上結論和關閉說明:請參閱 Google SecOps。
宣告事件
宣告事件 會以你選擇的嚴重程度為此案件開啟一個 Status200 事件(incident),並在兩者之間建立雙向連結:事件的描述會寫明此案件,案件的頁首會連結到該事件。接下來就由待命、狀態頁面和事後分析接手。此操作需要一個既能處理案件、又能建立事件的角色。
通知
Status200 會就案件上的三件事通知相關人員。不需要任何人做任何設定:一個只點選了 開啟推薦設定 的專案,也會透過電子郵件和推播收到其 High 和 Critical 案件的通知。
| 通知 | 通知誰 | 預設方式 |
|---|---|---|
| 新的安全案例 | 所有能檢視專案案件的人:當案件以他們所選的優先順序或更高的優先順序開啟,或提升到該優先順序或更高時 | 電子郵件和推播,針對 High 和 Critical 案件 |
| 指派給我的安全案例 | 案件被指派給的人,以及案件被指派給的團隊成員 | 電子郵件和推播 |
| 等待我核准的劇本步驟 | 案件相關人員中能核准該步驟的人:案件被指派給的人及其團隊的成員。如果他們都無法核准,則通知專案中所有能核准的人 | 電子郵件和推播 |
- 只有能檢視案件的人才會收到相關通知:Project Owner、Project Admin,以及 Security Admin、Security Member 和 Security Viewer 角色。僅限於某些標籤的角色,只會收到帶有這些標籤的案件的通知。
- 沒有人會因為自己做的事而收到通知:手動開啟案件、指派案件或啟動執行的人不會收到相應的通知。
- 每個人對一個案件只會收到一次通知。一個以 Medium 開啟、之後提升到 Critical 的案件,會在提升時通知選擇了 High 或 Critical 的人,而不會再次通知選擇了 Medium 的人,因為他們在案件開啟時就已經收到通知。
- 透過 傳送測試攻擊 發起的測試攻擊會開啟一個不通知任何人的案件。
- Critical 案件和等待核准的步驟會立即傳送,絕不會被壓在 郵件彙總 中延後傳送。
- 案件的 時間軸 會顯示通知了誰以及何時通知。
選擇你會收到的通知
每個人都可以在 使用者設定 → 通知設定 → 安全性 下自行選擇:每種通知的管道(電子郵件、簡訊、電話、推播、Telegram、Slack、Microsoft Teams 或 Webhook),以及在 新的安全案例 下選擇會通知自己的優先順序:
| 選項 | 通知哪些優先順序的案件 |
|---|---|
| 僅嚴重 | Critical |
| 高和嚴重 | High 和 Critical(預設) |
| 中及以上 | Critical、High 和 Medium |
| 低及以上 | 除了 Informational 以外的所有優先順序 |
| 所有案例 | 所有優先順序 |
安全案件不會傳送 WhatsApp 訊息。推播通知會開啟 Status200 應用程式,其中的連結會在瀏覽器中開啟該案件。
張貼到 Slack 和 Microsoft Teams 頻道
若要張貼到頻道,請在 產品 → Security Events → 工作區 → Slack(或 Microsoft Teams)下新增一條規則。兩者都未連線時,該區段只有一個項目:連線 Slack 或 Teams。規則會指定要張貼到的頻道(在 Microsoft Teams 中還包括聊天),並可視需要指定它適用於哪些案件:
| 條件 | 符合內容 |
|---|---|
| 安全案例優先順序 | 嚴重、High、Medium、Low 或資訊 |
| 安全案例標題、安全案例描述 | 案件標題或描述中包含的文字,或其開頭、結尾的文字 |
| 安全案例狀態 | 新增、調查中、Contained 或已關閉 |
| 安全案例來源 | Detection Rule、Threat Intel、Connected Product 或 Manual |
| 安全案例標籤 | 案件的標籤 |
這三種通知都會張貼到案件當時所符合的每條規則的頻道。一條 安全案例優先順序 包含 嚴重 和 High 中任一項的規則,會在 High 和 Critical 案件開啟時張貼它們,並在 Medium 案件提升到 High 時張貼它。安全案件永遠不會有專屬的頻道。
劇本
劇本是在案件上執行的一系列步驟。請在 產品 → Security Events → Playbooks 下從範本或空白建立劇本,然後在它的頁面上新增步驟。
劇本何時執行
| 觸發方式 | 執行時機 |
|---|---|
| Case Opened | 案件開啟時執行一次 |
| Detection Added | 每當有新的偵測併入未關閉的案件時 |
| 研判為可能惡意 | 當 Status200 AI 的研判把案件判讀為 可能為惡意 時,執行一次 |
| Manual | 只有在有人從案件執行它時 |
任何已啟用的劇本也可以透過案件上的 Run Playbook 手動執行。自動執行的劇本可以用下列設定縮小範圍:
- For Cases At Least:只針對此優先順序或更高優先順序的案件。
- Only For Detections From:只在案件背後的偵測來自此來源時執行。
- Only For These Detection Rules:只在該偵測來自這些規則之一時執行。
已停用的劇本既不會自動執行,也無法手動執行。
步驟
| 類別 | 步驟 | 作用 |
|---|---|---|
| 案件 | Assign the case | 把案件指派給某個人、某個團隊或兩者 |
| 案件 | Set the priority | 提高或降低案件的優先順序 |
| 案件 | Set the status | 把案件移到 Investigating、Contained 或 Closed,並附上你選擇的結論 |
| 案件 | Add a note | 在案件上寫一則備註,例如給分析師的檢查清單 |
| 案件 | Add labels | 為案件加上標籤 |
| 調查 | Check entities against threat intel | 在你的威脅情資中查詢每個實體,符合時可以提高優先順序 |
| 調查 | Look up entity activity | 統計每個實體在最近一段時間內的安全性事件,並記錄在案件上 |
| 通知 | Email people | 以電子郵件傳送案件摘要及其連結給使用者和團隊 |
| 通知 | Post to Slack | 把案件摘要張貼到某個 Slack 頻道 |
| 通知 | Post to Microsoft Teams | 把案件摘要張貼到某個 Microsoft Teams 頻道 |
| 呈報 | Page on-call | 執行一個待命策略 |
| 呈報 | Declare an incident | 開啟一個與案件連結的 Status200 事件 |
| 圍堵 | Suspend the user in Okta | 在 Okta 中暫停案件涉及的使用者 |
| 圍堵 | End the user's Okta sessions | 將案件涉及的使用者登出 Okta,並撤銷其權杖 |
| 圍堵 | Contain the host in CrowdStrike | 透過 CrowdStrike Falcon 對案件涉及的主機進行網路圍堵 |
| 圍堵 | Isolate the device in Microsoft Defender | 透過 Microsoft Defender for Endpoint 隔離案件涉及的主機 |
| 圍堵 | Unsuspend the user in Okta | 在 Okta 中取消暫停案件涉及的使用者 |
| 圍堵 | Lift containment in CrowdStrike | 解除 CrowdStrike Falcon 對案件涉及的主機施加的網路圍堵 |
| 圍堵 | Release the device in Microsoft Defender | 在 Microsoft Defender for Endpoint 中將案件涉及的主機解除隔離 |
| 自動化 | Send a webhook | 把案件以 JSON 格式 POST 到某個 URL |
| 自動化 | Run a workflow | 以案件作為輸入,啟動一個 Status200 工作流程 |
一個劇本最多有 25 個步驟。它們會依序執行,每個步驟在前一個完成後才開始。每個步驟還可以設定:
- Needs Approval:在執行到此步驟之前暫停,直到有人在案件上核准它。切斷某人存取的四個步驟一律如此,除非 Security Admin 將其關閉。
- Only If Threat Intel Matched:除非本次執行中先前的 Check entities against threat intel 步驟找到了已知指標,否則略過此步驟。
- Carry On If It Fails:即使此步驟失敗,也繼續執行下一個步驟。關閉此項時,失敗的步驟會停止本次執行。
圍堵
圍堵類步驟會透過與該產品的 安全性事件連線 執行動作,這個連線需要的不只是讀取權限:
| 步驟 | 連線 | 所需權限 |
|---|---|---|
| Suspend the user in Okta、End the user's Okta sessions、Unsuspend the user in Okta | Okta System Log | 一個有權管理使用者的 API 權杖 |
| Contain the host in CrowdStrike、Lift containment in CrowdStrike | CrowdStrike Falcon | 一個具有 Hosts 寫入範圍的 API 用戶端 |
| Isolate the device in Microsoft Defender、Release the device in Microsoft Defender | Microsoft Defender XDR | 一個具有 Machine.Isolate 權限的應用程式 |
圍堵類步驟只會作用於案件涉及的使用者或主機,絕不會作用於案件提到的所有使用者或主機:
- 案件中某個偵測分組所依據的值,例如「不可能的旅行」規則分組所依據的帳戶,或已連線產品的警示中提到的主機。
- 案件中被你的威脅情資列為指標的使用者或主機。
依位址分組的案件,例如針對你的 VPN 的暴力破解,並不涉及上述任何一種:它的圍堵類步驟會被略過,它嘗試過的帳戶和它攻擊的閘道都不會被動到。一個步驟最多作用於 10 個使用者或主機。它會依名稱在產品中找出每一個,並在執行上說明對每一個做了什麼:已完成、先前已完成、找不到、遭到拒絕或受保護。
受保護的實體
選單中 Playbooks 下的 Protected Entities 列出任何劇本都不會圍堵的使用者和主機,例如緊急存取帳戶、網域控制站和 VPN 閘道。比對值時不區分大小寫,* 代表任意字元序列:svc-* 會保護所有服務帳戶。步驟會將受保護的使用者或主機回報為受保護,並且不會動到它。這份清單由 Security Admin 維護。
核准
切斷某人存取的四個步驟會等待核准。只有 Security Admin 可以為其中某個步驟關閉 Needs Approval,Status200 會記錄是誰關閉的。核准時會在 Act On 下列出該步驟將作用的使用者或主機,每一個都已勾選:取消勾選該步驟不該動到的那些。受保護的使用者或主機不會列為選項。啟動執行的人無法核准它的步驟:要由其他人核准,不過啟動者仍可拒絕該步驟。
復原
復原類步驟和它們所復原的步驟一樣,作用於案件涉及的使用者或主機。執行停止後,被圍堵的使用者或主機在其步驟上還會有一個專屬按鈕:Unsuspend、Lift Containment 或 釋出。已結束的 Okta 工作階段無法復原。每次復原都會記錄在案件的時間軸上和專案的稽核日誌中。
訊息
備註、電子郵件、Slack 貼文和 Teams 貼文都可以使用案件的值:
| 預留位置 | 取代為 |
|---|---|
{{case.number}} | 案件編號,例如 CASE-42 |
{{case.title}} | 案件標題 |
{{case.priority}} | Critical、High、Medium、Low 或 Informational |
{{case.status}} | New、Investigating、Contained 或 Closed |
{{case.assignee}} | 案件指派給了誰 |
{{case.url}} | 指向 Status200 中此案件的連結 |
{{case.entities}} | 案件涉及的使用者、主機和位址 |
{{case.detections}} | 案件包含的偵測數量 |
沒有自訂訊息的電子郵件或貼文會傳送案件摘要。
執行與核准
每次執行都會逐步列在其案件上,以及 產品 → Security Events → Playbooks → 劇本執行記錄 下:
| 執行狀態 | 意義 |
|---|---|
| Queued | 等待工作程序 |
| Running | 正在執行其步驟 |
| Waiting for Approval | 停在需要核准的步驟之前 |
| Succeeded | 每個步驟都已執行或被略過 |
| Failed | 某個步驟失敗,執行已停止 |
| Cancelled | 有人取消了它,或拒絕了某個步驟 |
等待核准的步驟會在執行上顯示 Approve 和 Reject,並可附上一則選用的意見。核准後,執行會從該步驟繼續;拒絕則會結束執行。核准決定、決定者及其意見都會記錄在該步驟上、案件的時間軸上和專案的稽核日誌中。選單中 Playbooks 下的 等待核准 列出等待決定的執行並顯示其數量;劇本執行記錄 列出所有執行。
如果某次執行不再收到工作程序的回應(例如在重新啟動之後),它會被重新接手:佇列中的執行會在 2 分鐘後重新排入佇列,30 分鐘都沒有任何回報的執行會被判定為失敗。
概覽
產品 → Security Events → 概覽 是開啟此產品時進入的頁面:
- 指派給你的未關閉案件、尚無人接手的未關閉案件,以及等待核准的劇本步驟;每個數字都會開啟列出它們的頁面。
- 平均確認時間、平均遏止時間 和 平均關閉時間,以最近 30 天內開啟的案件計算:分別是從案件開啟到有人接手(指派給某個人,或將它移出 New 狀態)、到 Contained、到 Closed 所花的時間。仍在等待中的案件不計入平均值。
- 30 天內每天開啟的案件數(依優先順序劃分),以及 14 天內每天產生的偵測數(依來源劃分)。
- 依優先順序和狀態劃分的未關閉案件、最近 30 天的結論、案件背後的 ATT&CK 戰術、觸發最多的偵測,以及被最多偵測結果提到的實體。
在這些內容上方,一個橫條會顯示安全性的設定情況:來源、偵測、案件和劇本,各自附上數字。還沒有完成設定的專案會在那裡看到 開啟推薦設定 和 傳送測試攻擊;請參閱 安全性入門。沒有任何需要處理的內容時,頁面會顯示 一切正常,有可以呈現的資料時才會顯示圖表。
尋找威脅
- 實體 會依最近一天、一週或一個月內被偵測結果提到的次數,為使用者、主機、位址和雜湊排名,並可在 30 天的事件中查詢任何值。
- Rule Library 提供現成的偵測規則,涵蓋身分識別、端點、雲端、網路、Web 和 Kubernetes 威脅。每一條都是針對所有已連線來源正規化後的欄位所撰寫的 Sigma 規則。新增規則 會把它建立為你自己的偵測規則,處於啟用狀態,並且開啟的是案件而不是警示;之後可以像其他規則一樣在 Detection Rules 下變更它。標記為 推薦 的規則會在 Status200 已有的資料中找出威脅,一個按鈕即可新增您還沒有的那些規則。
- ATT&CK Coverage 會繪製 MITRE ATT&CK 矩陣,點亮已啟用規則所涵蓋的技術,並以外框標出規則庫中的規則可以涵蓋的技術。
自動化
- 工作流程:案件或備註在建立、更新或刪除時可以啟動工作流程。Run a workflow 步驟會啟動一個以 Webhook 為觸發器的工作流程。
- API:與 Status200 的其他部分一樣,案件、備註、偵測、劇本、執行和受保護的實體也都有 REST API,位於
/security-case、/security-case-note、/security-detection、/security-playbook、/security-playbook-run和/security-protected-entity之下。請參閱 API 參考。 - AI 代理程式:MCP 伺服器提供了用於案件、備註、偵測和劇本的工具。請參閱 MCP 伺服器。
疑難排解
規則符合了,但沒有開啟案件
檢查規則 符合時 步驟中的 Open a Case on Match。如果偵測涉及的實體已經有未關閉的案件,該偵測會併入那個案件,而不會另外開啟一個:請在那個未關閉案件的 Detections 下找它。
案件沒有通知到任何人
查看案件的 時間軸,其中會顯示通知了誰。新的安全案例 通知會傳送給案件達到其所選優先順序的人,因此 Medium 案件不會通知任何保留預設 高和嚴重 的人。請檢查應收到通知的人能否檢視安全案件(具有某個 Security 角色,或是 Project Owner 或 Project Admin),以及他們在 使用者設定 → 通知設定 → 安全性 下是否開啟了該通知。
劇本沒有執行
檢查劇本是否已啟用、它的 觸發器 設定是否合適(Case Opened 只在案件開啟時執行一次),以及案件是否符合它的 For Cases At Least、Only For Detections From 和 Only For These Detection Rules 設定。手動開啟的案件沒有偵測,因此限定了來源或規則的劇本不會在它上面執行。
圍堵類步驟失敗
在案件上開啟這次執行:該步驟會針對每個使用者或主機說明產品是拒絕了操作、找不到它,還是無法連線。請檢查連線的認證資訊是否有權進行此變更,並使用連線所在列中的 測試連線。
圍堵類步驟被略過
案件不涉及任何使用者或主機,例如只涉及一個位址,或者它涉及的每個使用者或主機都受到保護。在案件上開啟這次執行:該步驟會說明是哪一種情況。