設定計算結果欄位

支援:

本指南適用於想在資安營運中自動充實資料的資安分析師和 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) 必須使用大寫。不過,測試函式和等號運算子中的文字字串時,不區分大小寫。舉例來說,搜尋「phishing」會成功比對出「PHISHING」或「Phishing」。

資料型別和常值

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

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

欄位參照

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

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

運算子

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

  • 比較運算子:==、!=、>、>=、<、<=
  • 邏輯運算子:AND、OR、NOT
  • 運算子優先順序:NOT、>、>=、<、<=、AND、OR

條件運算式

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

條件必須是評估結果為 TRUE 或 FALSE 的運算式。

例如 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

資料類型相容性

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

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

格式和空白字元

雖然權杖之間的空格、定位點和換行符號通常會遭到忽略,但這些符號是分隔關鍵字和 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 專業人員尋求解答。