在 YARA-L 2.0 中使用参考列表和数据表

支持的平台:

借助参考列表和数据表,您可以通过将事件字段与自定义数据集进行比较来构建逻辑。您可以使用这些对象在搜索、信息中心和检测中管理大批量指标(例如已知不良 IP 或获批的主机名),而无需修改底层语法。

您可以在规则的 eventsoutcome 部分中使用参考列表或数据表。如需详细了解参考列表和数据表的行为和语法,请参阅参考列表使用数据表

应用参考列表和数据表语法

参考列表和数据表的语法类似,由对象 ID 和操作所需的匹配类型(stringregexCIDR)定义。本部分展示了使用各种类型的参考列表的语法示例。

在 Google Security Operations 中,参考列表和数据表用于 YARA-L 规则的 eventsoutcome 部分,以将事件数据与上传的数据集进行比较。这些函数在规则评估过程中执行,用于过滤事件或丰富检测结果。

当您需要检查单个字段是否与预定义列表(例如已知恶意 IP 的列表)中的任何值匹配时,请使用参考列表。

  • STRING:$e.principal.hostname in %string_list_name
  • 正则表达式:$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

  • 正则表达式:$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 列表兼容。

出于性能方面的考虑,检测引擎会限制参考列表的使用。

  • 规则中最多可包含的 in 语句(无论是否包含特殊运算符):10 个
  • 使用 regex 运算符的 in 语句数上限:5
  • 使用 cidr 运算符的 in 语句数上限:5

如需详细了解参考列表行为和参考列表语法,请参阅参考列表

为了在搜索、信息中心和检测方面保持最佳性能,YARA-L 引擎强制执行以下限制:

  • 查询中 in 语句的最大数量(无论是否包含特殊运算符):7
  • regex 运算符的 in 语句数上限:4
  • 使用 cidr 运算符的 in 语句数上限:2

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。