配置自定义解析器

支持的平台:

本文档介绍了在没有预建的解析器或您想要更多控制权的情况下,如何创建自定义解析器。自定义解析器会与预建解析器一起显示在解析器列表中。

常见用例包括:

限制和不支持的操作

创建和管理自定义解析器时,请考虑以下操作边界:

  • 解析器语法与 YARA-L 检测规则:注入解析器和解析器扩展功能在注入时使用 Logstash Grok 和配置语法以及过滤条件(例如 grok、mutate、json、date 和 base64)将原始日志解析为统一数据模型 (UDM)。解析器无法使用 YARA-L 语法、结果块或生成器函数(例如 yield)。YARA-L 2.0 严格来说是一种检测引擎查询语言,可在下游对归一化的 UDM 事件进行评估,以发出威胁提醒,但无法解析原始日志、更改 UDM 字段或丢弃传入的日志流量。
  • 1:1 注入模型:Google SecOps 自定义解析器严格按照 1:1 的关系运行。自定义解析器无法将包含多个嵌入式事件(例如 JSON 数组或串联的字符串)的单个日志条目拆分为单独的 UDM 事件,也无法进行批处理、循环或拆分。您必须先使用日志收集流水线(例如 BindPlane OP、OpenTelemetry 收集器、Fluent Bit 或预提取 Cloud Run 函数)拆分多事件载荷,然后才能进行提取。
  • drop {} 过滤条件行为:解析器中的 drop {} 过滤条件仅抑制 UDM 事件生成。如果解析器舍弃了某个日志,Google SecOps 就不会创建 UDM 记录,检测规则也无法评估相应事件。不过,Google SecOps 会在不可变的原始代码库中保留原始的原始日志,以满足合规性和审核保留要求。原始日志仍可通过“原始日志搜索”功能进行搜索。如需在存储之前舍弃日志,请在转发器或收集器中配置上游过滤。
  • 默认仅向前解析:激活自定义解析器后,它仅适用于自激活时间起新提取的日志。如果出于关键业务需求,需要将自定义解析器映射应用于现有的历史日志,您可以请求后端日志重放任务。如需了解详情,请参阅重新解析历史数据(日志重放)。

根据映射指令创建自定义解析器

您可以编写代码将原始原始日志转换为 UDM 记录,从而创建自定义解析器。

附加阅读材料:

创建解析器时,应尽可能填充更多重要的 UDM 字段。

  1. 转到设置。

  2. 前往 SIEM 设置。

  3. 点击创建解析器。

  4. 从日志源列表中选择合适的日志源。

  5. 选择仅从原始日志开始,以根据您的需求创建新的解析器。

  6. 点击创建。

  7. 在 Parser Code Terminal 中输入代码。如需了解详情,请参阅创建代码段映射指令。

    注意:请确保您的自定义解析器逻辑能够正确映射并生成有效且当前的时间戳。如果自定义解析器错误地将时间戳映射到标准保留期限之外的日期,系统会成功注入数据,但用户界面中将无法搜索到这些数据。由于搜索功能依赖于事件时间戳进行过滤,因此即使成功提取了数据,映射到错误日期的数据实际上也是不可见的。

  8. 可选:点击 修改可修改现有的原始日志或副本。

  9. 可选:点击 加载以加载最新的原始日志。

  10. 点击预览以查看 UDM 输出。如果验证码不正确,系统会显示一条错误消息。

    在预览版中,您可以使用 statedump 过滤插件来验证解析器的内部状态。如需了解详情,请参阅使用 statedump 插件验证数据。

  11. 点击验证以验证自定义解析器。

    验证过程可能需要几分钟时间,因此建议您先预览自定义解析器,根据需要进行更改,然后再验证自定义解析器。

  12. 点击提交。

    解析器会在 20 分钟后激活,以进行规范化处理。

基于现有解析器创建自定义解析器

使用现有解析器作为模板来创建新的自定义解析器。此方法仅支持基于代码的方法。要开始操作,请执行以下步骤:

  1. 在 Application menu(应用菜单)中,依次选择 Settings(设置)> Parsers(解析器)。

  2. 点击创建解析器。

  3. 从日志源列表中选择合适的日志源。

  4. 选择从现有的预构建解析器入手,以使用现有解析器作为基础来创建新的自定义解析器。

  5. 点击创建。

  6. 在 Parser Code Terminal 中修改代码。如需了解详情,请参阅创建代码段映射指令。

  7. 可选:点击 修改可修改原始日志。

  8. 可选:点击 刷新以刷新原始日志。

  9. 在添加代码以构建解析器时,点击预览可查看 UDM 输出。如果验证码不正确,系统会显示一条错误消息。

    在预览中,您可以使用 statedump 过滤插件来验证解析器的内部状态。如需了解详情,请参阅使用 statedump 插件验证数据。

  10. 点击验证以验证自定义解析器。

    验证过程可能需要几分钟时间,因此建议您先预览自定义解析器,根据需要进行更改,然后再验证自定义解析器。

  11. 点击提交。

    解析器会在 20 分钟后激活,以进行规范化处理。

将自定义解析器设为非活跃状态

  1. 在 Application menu(应用菜单)中,依次选择 Settings(设置)> Parsers(解析器)。

  2. 点击要设为无效的解析器旁边的 菜单,然后从列表中选择设为无效。

    系统会显示使解析器处于非活动状态对话框。

  3. 点击设为无效。

20 分钟后,系统会停用自定义解析器并启用当前的预构建解析器版本。预构建解析器现在成为默认解析器。

删除自定义解析器

  1. 在 Application menu(应用菜单)中,依次选择 Settings(设置)> Parsers(解析器)。

  2. 点击要删除的自定义解析器旁边的 菜单,然后从列表中选择删除。 注意:您无法删除预构建的解析器。

    系统会显示删除自定义解析器对话框。

  3. 点击删除。

自定义解析器将在 20 分钟后被删除,并激活当前的预构建解析器版本。

创建扩展程序

解析器扩展功能提供了一种灵活的方式来扩展现有自定义解析器的功能。它们不会取代自定义解析器。相反,它们可实现从原始原始日志到 UDM 记录的无缝提取。解析器扩展程序与自定义解析器不同。

如需创建解析器扩展程序,请参阅使用解析器扩展程序。

验证状态

“验证”列会显示自定义解析器或解析器扩展程序的验证测试状态。

  • 解析器失败:自定义解析器验证失败
  • 解析器已通过验证:自定义解析器验证成功
  • 已跳过:自定义解析器未经过验证
  • 已跳过扩展功能:解析器扩展功能未经过验证

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