优化注入量

支持范围:

本指南介绍了如何通过重点配置 Google Security Operations 数据处理流水线来优化注入量。此功能提供了一种统一的方法,可在数据完全注入之前对其进行过滤、转换和隐去,无论数据来源如何。这种方法可以提高数据质量和威胁检测效率。

本指南面向负责管理 Google SecOps 日志注入的安全工程师、Google SecOps 分析师和云管理员。

提取大量未经筛选的日志可能会给您的预算和资源带来压力。这会导致成本增加、搜索和分析功能变慢,并且安全分析师在大量无关数据中错过严重警报的可能性更高。有效的过滤对于实现经济高效且高效的 Google SecOps 部署至关重要。

准备工作

请确保您满足以下条件或执行以下操作:

  • Identity and Access Management (IAM) 角色:预定义的 Chronicle API Admin 角色 (roles/chronicle.admin) 或包含以下任一权限的自定义角色:
    • chronicle.logProcessingPipelines.*
    • chronicle.logTypes.get
    • chronicle.logTypes.list
    • chronicle.feeds.get
    • chronicle.feeds.list
    • chronicle.logs.list
  • Bindplane 版本:您需要 Bindplane Server 控制台 1.96.4 版或更高版本。
  • 对于 Bindplane Cloud,支持使用工作负载身份联合 (WIF) 进行身份验证。自托管 Bindplane 部署需要服务账号 JSON 密钥凭证。
  • 有权访问 Bindplane 管理控制台或 Google SecOps Data Pipeline API,以便配置处理器节点。
  • 确定配置过滤、转换和隐去处理器以减少数据量所需的精确字段、日志类型和条件。
  • 通过匹配与提取方法关联的特定日志类型、收集器 ID(对于 Bindplane 来源)或 Feed 名称(对于数据 Feed)来定义流水线流输入。
  • 如果您要提取 Google Cloud 日志,请定义所需的 Logging 导出过滤条件,以便在数据到达 SecOps 流水线之前实施上游过滤,从而最大限度地节省费用。
  • 了解日志数据:
    • 识别用量大或价值低的日志:分析当前的提取指标,找出哪些日志类型和来源对用量和费用的影响最大。如需了解详情,请参阅注入指标概览。
    • 确定过滤条件:确定可可靠识别要丢弃、转换或隐去日志的具体字段、值、模式(正则表达式)或条件。
    • 了解提取方法:了解每个目标日志来源的提取方式(直接、Bindplane、Feed、API),因为这会影响流水线流的配置方式。

主要术语

  • 数据处理流水线:一种用于在日志数据到达后、存储和编入索引之前对其进行过滤、转换和隐去的功能。
  • 过滤:数据量优化的主要功能,用于定义条件,以选择性地丢弃安全分析不需要的事件。
  • 转换:一种用于修改日志格式以提高易用性的能力,例如剥离完全限定域名 (FQDN) 或删除事件中的详细字段。
  • Redact:在存储日志之前,遮盖或完全移除日志中的敏感信息,有助于确保合规性和隐私性。
  • Bindplane 代理:一种用于从本地系统或其他云系统收集日志的注入方法。
  • Feed:一种提取方法,用于从 Cloud Storage、Amazon S3 或第三方 API 等来源导入数据。
  • 注入 API:一种发送自定义日志数据的方法,允许使用数据处理流水线进行服务器端过滤。
  • 上游过滤:建议的最佳实践,即使用 Logging 导出过滤条件在来源处过滤 Google Cloud 日志,以最大限度地节省费用。
  • 数据流:由日志类型和提取来源(例如 Feed 或 API)定义的特定数据流,用作数据处理流水线的输入。
  • 处理器节点:流水线中的一个组件,包含一个或多个按顺序操作数据的处理器(过滤、转换或隐去操作)。
  • 目标:数据处理流水线的端点,通常是 Google SecOps 实例,处理后的数据会发送到该实例进行最终注入和分析。

使用数据处理流水线进行优化

Google SecOps 中的数据处理流水线可对数据注入过程进行强大的预解析控制。借助这些功能,您可以定义规则和操作,以便在日志到达时、存储和编入索引之前应用。如需了解详情,请参阅设置和管理数据处理流水线。

主要功能

  • 过滤:这是音量优化的主要关注点。您可以使用原始日志内容、属性或正则表达式来定义条件,从而选择性地丢弃安全分析不需要的事件。这是减少干扰和降低成本的关键。
  • 转换:修改日志格式以提高可用性,或移除事件中不必要的数据。例如,从主机名中剥离 FQDN、解析和重构 JSON 载荷,或删除冗长但不相关的字段。
  • 隐去:在存储日志之前,遮盖或完全移除日志中的敏感信息(例如个人身份信息 [PII]),以帮助满足合规性和隐私权要求。

普遍适用性

数据处理流水线的一个关键优势是,它们可以应用于通过任何注入方法获取的数据。这为以下各项提供了一致的过滤层:

  • Google Cloud 内置日志
  • 使用 Bindplane 代理收集的日志
  • 通过 Feed 导入的数据
  • 通过 Ingestion API 发送的自定义日志

如需了解详情,请参阅本指南中的特定于方法的过滤策略部分。

使用数据处理流水线实现过滤

第 1 步:设置流水线

您可以通过 Bindplane 管理控制台或使用公开的 Google SecOps Data Pipeline API 来配置和管理数据处理流水线。借助这些 API,您可以定义数据流(输入)、配置处理器节点(过滤、转换、隐去)以及管理流水线部署。

如需查看全面的设置说明,请参阅设置和管理数据处理流水线。

第 2 步:配置处理器以进行过滤

在流水线中,您可以向节点添加处理器。如需减少数据量,您应主要使用过滤处理器。您可以将这些处理器配置为根据条件或正则表达式丢弃日志。您可以使用 OTTL(OpenTelemetry 转换语言)语法配置自定义流水线条件和语句。

  • 条件:评估日志数据中的字段或属性。
  • 正则表达式:匹配原始日志消息中的模式。
  • OTTL 示例:示例语句为 set(attributes["labels.myLabel.value"], "myValue")。

虽然过滤是关键,但您也可以考虑使用转换处理器从保留的日志中移除不必要的大型字段,并使用隐去处理器将敏感数据设为 null。

第 3 步:针对特定方法的过滤策略

以下部分介绍了如何针对每种主要提取类型使用数据处理流水线进行过滤。

Google Cloud 条日志

  • 上游过滤(推荐的最佳实践):为实现最佳成本节省,Google 建议使用 Cloud Logging 导出过滤条件在来源端过滤 Google Cloud 日志。这样可以从源头上防止不必要的日志发送到 Google SecOps。如果需要,您可以使用数据处理流水线进行额外的过滤。如需了解详情,请参阅提取 Google Cloud 数据指南,尤其是自定义导出过滤条件设置部分。

  • 流水线应用:配置数据处理流水线,选择适当的 Google Cloud 日志类型和注入方法(直接或云原生)。定义过滤处理器,以根据内容丢弃不需要的日志。

Bindplane 代理

Bindplane 代理从本地系统或其他云系统收集的日志可以使用数据处理流水线进行过滤。配置数据流,使其与 Bindplane 来源关联的日志类型和收集器 ID 相匹配。如需了解详情,请参阅将 Bindplane 与 Google SecOps 搭配使用。

数据 Feed

对于使用 Feed 注入的数据(例如,来自 Cloud Storage、Amazon S3 或第三方 API 的数据),您可以在配置流水线流时选择 Feed 名称和日志类型,以应用数据处理流水线过滤条件。如需了解详情,请参阅使用 Feed 指南。

Chronicle API 注入方法

如果您使用 Chronicle API 提取方法发送数据,则仍可以利用数据处理流水线。配置流水线流,使其与您在 API 调用中使用的日志类型相匹配。这样,您就可以在服务器端过滤自定义日志流。如需了解详情,请参阅 Chronicle API 注入方法指南。

最佳做法

  • 尽可能在上游过滤:如 Google Cloud中所述,始终尽可能靠近来源过滤日志。这是最具成本效益的方法,因为它减少了数据传输和处理开销。
  • 具体明确:首先使用范围较窄、定义明确的过滤条件,排除已知的大量、低价值日志。避免使用过于宽泛的过滤条件,以免意外丢弃有用数据。
  • 迭代和优化:定期检查过滤器的有效性。它们是否能捕获正确的事件?是否有需要滤除的新噪声?
  • 记录过滤条件:记录已设置的过滤条件及其原因,尤其是复杂的正则表达式或条件逻辑。

验证和测试

  • 测试:您应先在非生产环境中或使用一小部分数据测试过滤条件。
  • 验证过滤条件:使用 Bindplane 控制台流水线编辑器中的测试功能。这样,您就可以输入示例日志,并查看应用处理器后的输出,从而确认过滤条件是否按预期运行。
  • 监控注入:部署流水线后,在 Google SecOps 中监控注入信息中心,观察对数据量和费用的影响。如需了解详情,请参阅注入指标概览。
  • 查看配置:您可以在 Google SecOps 界面中的设置 > 数据管理 > 数据处理下查看所有配置。
  • 外部管理:您可以搜索配置,然后点击“在 Bindplane 中打开”,直接跳转到 Bindplane 控制台进行高级管理。

限制

  • 服务限制:过于复杂的正则表达式或每个流水线中存在大量处理器可能会影响性能,或可能受到限制。您应查看服务限制中的 Google SecOps 限制。
  • Google SecOps 软件包:请务必了解 Google SecOps 软件包中的功能。如需了解详情,请参阅 Google SecOps 软件包。
  • 可重用性:虽然功能强大,但针对一种日志类型或来源的流水线配置可能无法直接重用于另一种日志类型或来源,而需要进行调整。
  • 处理器数量上限:每个流水线最多可定义 10 个处理器。
  • 正则表达式性能:避免过度使用正则表达式匹配,因为这可能会导致流水线创建或部署因超时而失败。最好将数据解析为 JSON,并按特定字段进行过滤。
  • 数据流关联限制:虽然可以为同一日志类型的不同 Feed 创建不同的流水线,但完全相同的数据流定义(例如,同一 Feed 或同一日志类型的全部捕获)不能与多个活跃流水线相关联。将日志类型设置为所有注入方法会起到兜底作用,并阻止为该日志类型的特定 Feed 配置其他流水线。

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