函式到預留位置的指派

支援的國家/地區:

在 YARA-L 中,使用函式處理資料並儲存結果的程序稱為「函式至預留位置指派」。預留位置變數 (以 $ 表示) 用於代表從 UDM 事件和其他資料來源擷取的特定資料點。函式隨後可對這些事件欄位或欄位組合執行運算,並將運算結果指派給預留位置變數,供查詢的其他部分使用,例如 matchconditionoutcome 區段。

  • 函式:YARA-L 提供指標函式,可對事件欄位執行計算或資料轉換。

  • 預留位置變數:這類變數以錢幣符號開頭 (例如 $user$ip),可保留從事件欄位或函式輸出內容衍生的值。這些變數是在 events 區段中定義,可在整個規則中使用。

  • 指派:函式的輸出內容會指派給預留位置變數。

限制

使用函式指派預留位置時,有兩項限制:

  1. 函式中每個預留位置的預留位置指派項目,都必須指派給含有事件欄位的運算式。

    有效範例

    $ph1 = $e.principal.hostname
    $ph2 = $e.src.hostname
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.concat($ph2, ".com")
    
    $ph1 = $e.network.email.from
    $ph2 = strings.concat($e.principal.hostname, "@gmail.com")
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.to_lower($ph2)
    

    無效範例

    $ph1 = strings.concat($e.principal.hostname, "foo")
    $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.
    
  2. 函式呼叫應依據一個事件。不過,您可以在函式呼叫引數中使用來自同一事件的多個欄位。

    有效範例

    $ph = strings.concat($event.principal.hostname, "string2")

    $ph = strings.concat($event.principal.hostname, $event.src.hostname)

    無效範例

    $ph = strings.concat("string1", "string2")

    $ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)

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