設定計算欄位

支援的國家/地區:

本指南適用於想在資安營運中自動擴充資料的資安分析師和 SOC 管理員。本文說明如何使用邏輯公式建立及管理計算結果欄位,從現有案件和快訊資料衍生新值。採用這種方法可免除手動輸入資料的麻煩,並確保重要指標即時更新。成功完成後,平台分析能力會有所提升,並透過自動填入欄位加速事件分類。

您可以在 Google Security Operations 案件和快訊中,透過計算結果欄動態衍生新的資料點。定義邏輯公式後,您就能根據現有的系統或自訂欄位計算值。系統會自動評估計算出的值,並即時儲存在使用者選取的現有自訂欄位 (標示為「目標欄位」)。

常見用途

以下情境說明機構最常運用計算欄位的方式,以提升營運效率和資料清晰度。

自動風險評分

  • 目標:根據事件量或優先順序分類案件。
  • 價值:標準化分類程序,確保團隊能立即掌握高風險事件。

資料正規化

  • 目標:根據命名慣例,將快訊標示為「測試」或「正式」
  • 價值:讓分析師從主要檢視畫面中篩除不重要的測試資料,減少雜訊。

重要術語

  • 公式:您定義的文字型邏輯運算式,使用函式、運算子和欄位參照來計算值。
  • 目標欄位:現有的自訂欄位 (「任意文字」類型),用於儲存公式結果計算。
  • 依附元件:公式中參照的欄位。當依附欄位的值變更時,系統會同步重新評估「計算欄位」

事前準備

建立計算前,請確認環境符合下列技術規定:

  • 權限:您必須具備「設定」選單的管理員存取權,以及管理案件資料的權限。
  • 環境檢查:請確認您有現有的有效自訂欄位 (任意文字類型),可做為目標欄位。

請確認系統中已有可做為目標欄位的自訂欄位。如否,請執行下列步驟:

  1. 依序前往「設定」 >「案件資料」 >「自訂欄位」
  2. 建立新的自訂欄位,並將類型設為「任意文字」

如要進一步瞭解自訂欄位,請參閱「建立自訂欄位」。

技術限制和驗證規則

定義計算前,請確認目標欄位和邏輯符合下列系統限制。這些規則會控管 Google SecOps 引擎驗證及保存公式結果的方式。

欄位驗證條件

對於指定為「目標欄位」的任何欄位,計算引擎會嚴格執行下列規定:

  • 資料類型:欄位必須為「任意文字」類型。
  • 運作狀態:這個欄位必須為「有效」,系統無法寫入已刪除或無效的欄位。
  • 依附元件對應:為避免循環邏輯,如果欄位已是其他計算結果欄位的依附元件,就不能做為目標。

欄位範圍

建立 Both 範圍的自訂欄位時,系統會為每個情境產生專屬項目。這樣一來,您就能在同一邏輯類別中,為案件和快訊分別維護邏輯。

在「目標欄位」選單中,您必須選取與公式相關的特定範圍:

  • 案件範圍:標示為 CaseCustom.YourField (例如 CaseCustom.RiskLevel)
  • 快訊範圍:標示為 AlertCustom.YourField (例如 AlertCustom.RiskLevel)

建立及管理計算欄位

本節將說明如何定義新的計算,以及在設定過程中解決常見問題。

建立新的計算

如要建立新的計算,請按照下列步驟操作:

  1. 依序前往「設定」 >「案件資料」 >「計算欄位」
  2. 按一下「新增」
  3. 在「Calculated Field Name」(計算欄位名稱) 欄位中,輸入計算的專屬名稱和說明。
  4. 在「目標欄位」區域中,選取現有的「自訂欄位」來儲存結果。

    1. 預期失敗:選取的欄位不會顯示在選單中。
    2. 修正步驟:確認「自訂欄位」處於有效狀態,設為「任意文字」,且尚未成為其他計算的依附元件。
  5. 在文字編輯器中,使用支援的函式、運算子和語法建立公式。建立邏輯運算式 (例如 IF ([case.priority] == "High") THEN "Urgent" ELSE "Standard")。詳情請參閱「公式語言和語法」。

  6. 按一下 [儲存]

    1. 預期失敗:系統會拒絕儲存,並以紅色醒目顯示錯誤。
    2. 修正步驟:檢查語法錯誤,例如缺少 IF 條件周圍的括號,或關鍵字為小寫。

存取進階素材資源和參考資料

公式必須遵守嚴格的文法和大小寫區分規則,才能使用所有內建運算子和函式。請使用下列技術規格,確保計算結果有效。

公式範例

下列範本示範如何結合函式和運算子,自動擴充資料。您可以複製並調整這些程式碼片段,配合特定欄位名稱和機構需求。

範例 1:設定風險等級

使用這項公式,根據案件標題中找到的特定關鍵字分類案件。

  • 目標欄位CaseCustom.risk_level (文字)
  • 目標:自動將緊急事件指派為「高」狀態
  • 公式

    IF (CONTAINS([case.name], "urgent")) THEN "High" ELSE "Medium"

範例 2:標記測試快訊

這項邏輯會識別並標記測試資料,協助分析師篩選主要檢視畫面,專注處理實際環境事件。

  • 目標欄位AlertCustom.is_test (文字)
  • 目標:在快訊名稱中偵測 -TEST 後置字元或 TEST 字串
  • 公式

    IF (CONTAINS([alert.name], "TEST") OR ENDS_WITH([alert.name], "-TEST"))
    THEN "TRUE"
    ELSE "FALSE"
    

範例 3:合併條件

這個範例展示巢狀邏輯,可根據事件量和現有優先順序層級,排定評論優先順序。

  • 目標欄位CaseCustom.review_status (文字)
  • 目標:只有在記錄長度顯著且優先順序不是 Low 時,才觸發人工審查。
  • 公式

    IF (LENGTH(\[AlertCustom.event\_details\]) \> 100 AND NOT IS(\[case.priority\], "Low"))
    THEN "Needs Review"
    ELSE "Auto-Closed"
    

公式語言和語法

計算引擎會區分大小寫,適用於所有內建運算子、關鍵字和函式。您必須以大寫形式撰寫關鍵字 (例如 IF, THEN, ELSE, AND, OR, NOT) 和函式名稱 (例如 CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN)。不過,函式和等號運算子中的字串測試不區分大小寫。舉例來說,搜尋「網路釣魚」時,系統會比對「網路釣魚」或「網路釣魚」。

資料型別和常值

常值是運算式中使用的固定值。建議您確認作業和函式引數使用相容的型別。

類型 語法和規則 範例
STRING 以雙引號括住的文字。 「critical」、「N/A」
NUMBER 整數或小數。 100、3.14
BOOLEAN 必須為大寫。 TRUE、FALSE
NULL 代表空值。 空值

欄位參照

如要使用其他欄位的值,請在欄位名稱前後加上方括號,例如 [object.field_name]

  • 語法規則:您必須在欄位參照中使用前置字元。您必須使用前置字元 (例如 case.AlertCustom.),後面加上半形句號和欄位名稱。欄位名稱本身可以包含英文字母數字底線空格。例如:[case.name][alert.priority][AlertCustom.my_custom_field]
  • 可用的系統欄位包括:case.namecase.stagecase.priorityalert.namealert.priorityalert.rule_generator
  • 您可以參照所有使用者定義的自訂欄位。
  • 計算結果欄位公式無法參照其他計算結果欄位

運算子

使用運算子進行比較和邏輯運算。使用括號 () 覆寫預設優先順序並將運算式分組

  • 比較運算子==!=>>=<<=
  • 邏輯運算子ANDORNOT
  • 運算子優先順序NOT>>=<<=ANDOR

條件運算式

系統支援使用 IF (condition) THEN expression1 ELSE expression2 語法的條件邏輯。ELSE 部分為選用項目;如果省略此部分且條件為 FALSE,結果預設為 NULL

條件必須是評估結果為 TRUEFALSE 的運算式。

例如 IF ( [CaseCustom.score] > 75 ) THEN "High Risk" ELSE "Low Risk"

函式

函式是預先定義的作業,必須全部大寫。下表列出支援的資料操控和評估函式。

函式 說明 語法 傳回類型
CONTAINS(field, substring) 檢查文字欄位是否含有子字串 (不區分大小寫) CONTAINS([case.name], "phishing") BOOLEAN
DOES_NOT_CONTAIN(field, substring) 檢查文字欄位是否不含子字串 (不區分大小寫) DOES_NOT_CONTAIN([case.name], "test") BOOLEAN
LENGTH(field) 傳回欄位中的字元數 LENGTH([case.name]) NUMBER
STARTS_WITH(field, prefix) 檢查欄位是否以特定前置字元開頭 (不區分大小寫) STARTS_WITH([CaseCustom.hostname], "srv-") BOOLEAN
ENDS_WITH(field, suffix) 檢查欄位是否以後置字串結尾 (不區分大小寫) ENDS_WITH([AlertCustom.filename], ".exe") BOOLEAN
IS(field, literal) 檢查欄位值是否等於字面值 (不區分大小寫) IS([alert.priority], "High") BOOLEAN
IS_NOT(field, literal) 檢查欄位值是否「不等於」字面值 (不區分大小寫) IS_NOT([alert.priority], "Low") BOOLEAN

保留的關鍵字和 ID

計算引擎會保留特定字詞,用於邏輯運算和函式。您無法在公式中將這些字詞做為自訂欄位名稱或其他 ID:

  • 邏輯AND, OR, NOT, IF, THEN, ELSE
  • NULL, TRUE, FALSE
  • 函式CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN

資料類型相容性

為確保評估作業順利完成,請確認所有作業和函式引數都使用相容的型別。支援的類型包括 STRINGNUMBERBOOLEANNULL

公式的最終輸出內容必須符合「目標欄位」的預期類型。由於目標欄位僅限「任意文字」,公式最終必須解析為字串或可隱含轉換為目標格式的值。

格式和空白字元

雖然權杖之間的空格、定位點和換行符號通常會遭到忽略,但這些符號是分隔關鍵字和 ID 的必要條件。善用空白字元,將複雜的多行公式分段,方便維護及同儕審查。

撰寫有效的公式

雖然計算引擎可彈性處理空白字元,但請遵循下列格式標準,避免發生邏輯錯誤,並簡化疑難排解程序。

  • 明確分組:使用括號清楚定義運算順序,即使是依賴標準優先順序也一樣。這有助於避免邏輯上的模糊不清。
  • 視覺結構:在運算子 (==, AND, OR) 周圍套用空格,並為巢狀 IF/THEN 陳述式插入換行符,讓邏輯可掃描。
  • 類型驗證:請務必驗證公式的最終輸出內容是否與目標欄位的預期類型相符,以免發生評估錯誤。

    IF (
        (IS([CaseCustom.event_count], "100") AND NOT IS([case.priority], "Low"))
        OR CONTAINS([case.name], "Critical")
    )
    THEN "Needs Immediate Review"
    ELSE "Standard Review"
    

疑難排解

本節將說明預期成效,並提供自助式修正方法,解決建構或管理公式時遇到的常見部署問題。

延遲和限制

每當依附欄位變更時,計算欄位就會同步評估。為維持系統效能,計算結果欄位無法參照其他計算結果欄位;系統會封鎖這些鏈結的依附元件,避免遞迴和處理延遲。

錯誤修正

手動編寫公式時,可能會因語法或資料型別不符而發生錯誤。請參閱下表,將特定旅程相關錯誤代碼對應至確切的修正措施。

錯誤類型 問題 修正
語法 公式違反文法規則,例如括號不相符或關鍵字為小寫。 將所有 IF 條件包在 () 中,並確認所有關鍵字都是大寫。
驗證 公式參照不明欄位 (例如 [\case.typo]) 或導致類型不符。 驗證方括號中的欄位名稱,並確認輸出內容與目標欄位類型相符。
評估 公式有效,但執行時失敗,通常會顯示 #ERROR!。 檢查是否有執行階段問題,例如將非字串值傳遞至 LENGTH() 等函式。

修改或刪除目標欄位

系統會主動保護公式所依據的欄位,確保資料完整性。如果您嘗試刪除或修改做為目標欄位的自訂欄位,系統會封鎖該動作,並顯示警告訊息,指出該欄位目前用於計算欄位

驗證和測試

儲存新的計算公式後,請前往案件或快訊並更新依附元件欄位,確認結果是否正確。確認「目標欄位」會即時填入預期值。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。