在應對手冊中使用流程
支援的語言:
本文說明 Flow 元件如何使用分支系統做出決策,引導劇本的後續步驟。
條件流程可讓應對手冊根據收到的快訊資料、先前動作的結果或使用者輸入內容,決定案件的處理路徑。
可用的流程選項如下:
- 條件:根據預留位置、現有案件資料和「先前的動作」流程建立的複雜條件。
- 選擇題:分析師必須手動回答的問題。
新增條件式流程
本節說明如何使用條件流程,在劇本中建立動態分支邏輯。
新增單一條件流程
如要新增單一「條件」流程,請按照下列步驟操作:
- 在「Response」>「Playbooks」頁面,按一下「Open Step Selection」。
- 在「步驟選取」中,選取「流程」部分。
- 視應對手冊的建構方式而定,將條件拖曳至步驟或兩個動作之間。
- 按兩下條件即可開啟對話方塊。
- 選取所需實體。如果您使用預留位置,則預留位置的範圍會限定在這個實體群組。
- 決定要建立多少個分支版本。每個分支之間都有 OR。
- 為每個分支版本選取並新增參數,如下所示:
- 從現有預留位置清單中,選取要評估的相關預留位置。如果是新使用者,如果尚未擷取任何快訊,這個欄位會是空白。
- 選取所需運算子 (例如「等於」、「不包含」)
- 選擇值。
- 定義「備用分支」,避免條件失敗。如果條件是根據先前的動作,且其中一個動作失敗 (並略過),條件會繼續前往備用分支,而不是停止。如要選取備用分支版本,請參閱「定義備用分支版本」。
- 按一下 [儲存]。教戰手冊現在有三個分支:1、2 和 E (Else)。
- 為 (至少) 一個分支設定結果,將劇本標示為完成。
新增選擇題流程
- 將「選擇題」條件拖曳至「最後步驟」方塊。
- 按一下「選擇題」開啟對話方塊。
- 視需要新增問題和答案。
- 按一下 [儲存]。劇本會開啟四個分支。
- 為至少一個分支設定結果,將其標示為完成。
新增「條件」流程
如要新增「條件」流程,請按照下列步驟操作:
- 將「條件」拖曳至「最後步驟」方塊。
- 按一下「條件」開啟對話方塊。
- 決定要建立多少個分支版本。每個分支之間都有 OR。
- 新增參數:選取所需參數。這份清單只會顯示此劇本的動作指令碼結果。
- 選取所需運算子:「等於/不等於」、「包含/不包含」、「開頭為」或「大於/小於」。
- 選擇值 (動作結果)。
- 您可以為每個分支新增更多參數,並選擇邏輯運算子:「AND」或「OR」。
- 按一下 [儲存]。應對手冊會開啟三個分支:1、2 和「Else」。
- 為至少一個分支設定結果,即可完成 Playbook。
定義備用分支
- 在其中一個流程 (條件) 中,選取要做為備用分支的分支。本範例使用「Branch – not risky」(分支版本 - 無風險)。您不一定要新增備用分支。
- 執行應對手冊時,如果先前的動作失敗,應對手冊會選擇備用分支並繼續執行。
管理步驟失敗
執行應對手冊步驟時可能會失敗。根據預設,劇本會在步驟失敗時停止,這是重要的安全機制,可防止使用不完整或不正確的資料繼續執行。不過,有時即使步驟未傳回預期結果,您仍希望劇本繼續執行。對於擴充動作來說,這點尤其重要,因為您要尋找的資料可能並非每個案件都有。您可以決定是否要停止應對手冊,或跳至下一個步驟。如果失敗的步驟對決策至關重要,您可以在下一個步驟中檢查上一個步驟是否失敗,並據此決定如何繼續 (例如,如果某個步驟失敗,則前往備援分支)。
失敗時略過
您可以設定在動作失敗時略過該步驟。啟用這項設定後,即使動作無法執行或傳回錯誤,劇本仍會繼續執行下一個步驟。
如要啟用這項設定,請按照下列步驟操作:
- 按兩下動作方塊,開啟設定抽屜。
- 在「設定」分頁中,前往「如果步驟失敗」部分。
- 選取「略過步驟」。
使用條件進行進階錯誤處理
「失敗時略過」選項適用於基本情況,但更穩健的方法是使用「條件」流程建立專用的錯誤處理路徑。這樣一來,當步驟失敗時,應對手冊就能採取不同的動作,例如通知分析師或記錄錯誤。
如要建立錯誤處理路徑,請按照下列步驟操作:
- 在可能失敗的動作之後,以及要定義特定失敗路徑的動作之後,新增「條件」流程區塊。
- 按兩下「Condition」方塊,開啟對話方塊。
- 前往「設定」分頁,然後在「如果先前的動作失敗」部分,選取要將流程導向哪個分支。重要事項:「如果前一個動作失敗」條件並非只是檢查是否有任何先前的失敗動作,而是檢查先前動作是否失敗,且該動作的結果正用於評估目前的條件。如果該項依附動作失敗,系統就無法判斷條件,並將流程導向所選分支。這樣一來,您就能處理依附元件失敗的情況,避免條件無法解決。
- 在這個失敗分支中,您可以新增傳送通知電子郵件、建立工作或記錄失敗等動作。
舉例來說,假設某個劇本嘗試解決使用者的擁有者問題。如果「Resolve User Owner」動作失敗 (例如 Active Directory 中沒有該使用者),劇本不會停止。條件區塊會偵測到失敗,並將流程導向另一個分支,在該分支中,條件區塊可以傳送電子郵件給安全團隊,說明資料遺失情形,確保應對手冊持續執行,不會中斷。<
移除流程
從劇本中移除流程時,系統會提示您移除整個分支,或只移除其中一個部分。
合併分支
您可以將劇本的不同分支合併為一個分支。如要這麼做,請從其中一個分支拖曳動作,然後放到另一個分支的「最後步驟」方塊中。您可以繼續執行應對手冊,也可以在此結束。
條件中的邏輯運算子運作方式
本節將說明劇本中的條件運算子如何評估具有單一或多個項目的欄位 (例如快訊中的實體或事件)。瞭解欄位是字串還是清單,對劇本邏輯至關重要。
資料類型在條件評估中的角色
運算子行為 (Equals、Contains) 會因資料類型而異:
- 單一項目內容:如果警報只有一個實體,
[Entity.Identifier]等欄位會視為單一字串。 - 多個項目內容:如果快訊有多個實體,則同一欄位會是字串清單。
equals 和 contains 的運算子行為
以下各節將說明這些運算子的運作方式。
Equals 運算子
Equals 運算子會直接比較兩個值。
- 單一項目欄位 (字串) 會檢查是否完全相符。
- 假設
[Entity.Identifier]為"Tom"。 - 則條件
if [Entity.Identifier] equals "Tom"為 True。
- 假設
- 多個項目欄位 (清單) 會檢查整個清單是否等於指定的字串。清單絕不會等於單一字串。
- 假設
[Entity.Identifier]是清單(Tom, Kai) - 那麼條件
if [Entity.Identifier] equals "Tom, Kai"一律為 False。這是因為[Entity.Identifier]是清單,「Tom, Kai」則是字串。
- 假設
Contains 運算子
Contains 運算子也會依資料類型而異:
- 單一項目欄位 (字串) 會執行子字串搜尋。如果字串包含該值,則傳回
True。- 假設
[Entity.Identifier]為"user-1234"。 - 然後條件
if [Entity.Identifier] contains "user"為 True。
- 假設
- 多個項目欄位 (清單) 會檢查清單中的項目是否完全相符。系統不會執行子字串搜尋。
- 假設
[Entity.Identifier]是清單 ("UserA@corp.com", "UserB@corp.com")。 - 然後條件
if [Entity.Identifier] contains "corp"為 False。
- 假設
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。