在 YARA-L 2.0 中使用參照清單和資料表

支援的國家/地區:

您可以透過參照清單和資料表,比較事件欄位與自訂資料集,建構邏輯。您可以使用這些物件,在搜尋、資訊主頁和偵測功能中管理大量指標 (例如已知不良的 IP 或核准的主機名稱),而不必修改基礎語法。

您可以在規則的 eventsoutcome 區段中使用參照清單或資料表。如要進一步瞭解參照清單和資料表的行為與語法,請參閱「參照清單」和「使用資料表」。

套用參照清單和資料表語法

參照清單和資料表遵循類似的語法,由物件 ID 和作業所需的比對類型 (stringregexCIDR) 定義。本節將說明如何使用各種參考資料清單的語法範例。

在 Google Security Operations 中,YARA-L 規則的 eventsoutcome 區段會使用參照清單和資料表,比較事件資料與上傳的資料集。這些函式會在規則評估程序中執行,用於篩選事件或擴充偵測結果。

如要檢查單一欄位是否與預先定義清單中的任何值相符 (例如已知惡意 IP 清單),請使用參照清單。

  • STRING:$e.principal.hostname in %string_list_name
  • REGEX:$e.principal.hostname in regex %regex_list_name

  • CIDR:$e.principal.ip in cidr %cidr_list_name

如果參照資料具有資料列或資料欄結構,請使用資料表,以便將特定欄位對應至特定資料欄。

  • STRING:$e.target.hostname in %table_name.column_name

  • REGEX:$e.target.hostname in regex %table_name.column_name

  • CIDR:$e.principal.ip in cidr %table_name.column_name

範例:參考清單語法和行為

以下範例說明如何為不同資料集類型建構查詢,以及如何對相符項目套用條件邏輯:

範例:查詢中的參照清單語法

// STRING reference list
$e.principal.hostname in %string_reference_list

// Regular expression reference list
$e.principal.hostname in regex %regex_reference_list

// CIDR reference list
$e.principal.ip in cidr %cidr_reference_list

範例:資料表語法

// STRING data table
$e.target.hostname in %data_table_name.column_name

// Regular expression data table
$e.target.hostname in regex %regex_table_name.column_name

// CIDR data table
$e.principal.ip in cidr %cidr_table_name.column_name

範例:notnocase 運算子

nocase 運算子與 STRING 清單和 REGEX 清單相容。

// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list

// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
    

nocase 運算子與 STRING 清單和 REGEX 清單相容。

基於效能考量,Detection Engine 會限制參考清單的使用。

  • 規則中的 in 陳述式數量上限 (無論是否使用特殊運算子):10
  • 使用 regex 運算子的 in 陳述式數量上限:5
  • 使用 cidr 運算子的 in 陳述式數量上限:5

如要進一步瞭解參照清單行為和參照清單語法,請參閱「參照清單」。

為確保搜尋、資訊主頁和偵測功能維持最佳效能,YARA-L 引擎會強制執行下列限制:

  • 查詢中的 in 陳述式數量上限 (無論是否使用特殊運算子):7
  • 使用 regex 運算子的 in 陳述式數量上限:4
  • 使用 cidr 運算子的 in 陳述式數量上限:2

需要其他協助嗎?向社群成員和 Google SecOps 專業人員尋求答案。