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

支援的國家/地區:

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

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

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

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

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

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

  • 字串:$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

範例:not 和 nocase 運算子

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 專業人員尋求解答。