优化提取量
本指南介绍了如何通过重点配置 Google Security Operations 数据处理流水线来优化提取量。借助此功能,您可以统一过滤、转换和隐去数据,然后再完全提取数据,无论数据来源如何。此方法可提高数据质量和威胁检测效率。
本指南面向负责将日志提取到 Google SecOps 的安全工程师、Google SecOps 分析师和云管理员。
提取大量未经过滤的日志可能会给您的预算和资源带来压力。这会导致费用增加、搜索和分析能力下降,并且安全分析师更有可能在大量无关数据中错过关键提醒。有效的过滤对于经济高效的 Google SecOps 部署至关重要。
准备工作
请确保您拥有或执行以下操作:
- Identity and Access Management (IAM) 角色:预定义的 Chronicle API
Admin角色 (roles/chronicle.admin) 或包含以下任一权限的自定义角色:chronicle.logProcessingPipelines.*chronicle.logTypes.getchronicle.logTypes.listchronicle.feeds.getchronicle.feeds.listchronicle.logs.list
- Bindplane 版本:您需要 Bindplane Server 控制台版本 1.96.4 或更高版本。
- 对于 Bindplane Cloud,支持使用工作负载身份联合 (WIF) 进行身份验证。自行托管的 Bindplane 部署需要服务账号 JSON 密钥凭据。
- 有权访问 Bindplane 管理控制台或 Google SecOps 数据流水线 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 提取的数据
- 通过提取 API 发送的自定义日志
如需了解详情,请参阅本指南中的特定于方法的过滤策略部分。
使用数据处理流水线实现过滤
第 1 步:设置流水线
您可以通过 Bindplane 管理控制台或使用公开的 Google SecOps 数据流水线 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 日志类型和提取方法,即直接 或 Cloud Native 。定义过滤处理器以根据内容舍弃不必要的日志。
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 界面中的 SIEM 设置 > 数据处理 下查看所有配置。
- 外部管理:您可以搜索配置,然后点击 “在 Bindplane 中打开” 以直接跳转到 Bindplane 控制台进行高级管理。
限制
- 服务限制 :过于复杂的正则表达式或每个流水线的大量处理器可能会影响性能,或者可能会受到限制。您应查看服务限制中的 Google SecOps 限制。
- Google SecOps 软件包 :请确保您了解 Google SecOps 软件包中的功能。如需了解详情,请参阅 Google SecOps 软件包。
- 可重用性 :虽然功能强大,但一种日志类型或来源的流水线配置可能无法直接重用于另一种日志类型或来源,而无需进行调整。
- 处理器数量上限 :每个流水线最多定义 10 个处理器。
- 正则表达式性能 :避免过度使用正则表达式匹配,因为这可能会因超时而导致流水线创建或部署失败。最好将数据解析为 JSON,并按特定字段进行过滤。
- 流关联限制 :虽然可以为同一日志类型的不同 Feed 创建不同的流水线,但完全相同的流定义(例如,相同的 Feed 或相同的日志类型全包)不能与多个活跃流水线关联。将日志类型设置为所有提取方法 充当全包,并阻止为该日志类型的特定 Feed 配置其他流水线。