MSSP 多租户运营
本指南可帮助托管式安全服务提供商 (MSSP)、安全分析师和突发事件响应人员同时搜索多个 Google Security Operations 客户实例,并调查其中的威胁。本文介绍了如何配置联合实例组、执行跨租户统一数据模型 (UDM) 搜索和统计查询,以及透视到各个受管理的租户。通过此方法,您无需单独登录每个租户,即可集中查看分布式环境中的信息。这有助于减少运营开销,并加快跨租户威胁检测和突发事件响应速度。
联合搜索直接内置在现有的 UDM 搜索页面(调查 > 搜索)中,而不是单独的导航页面。它使用您现有的 Google Cloud Identity and Access Management (IAM) 配置将指定的管理实例连接到多个受管实例。
当您登录到具有关联子租户且具有所需联合 IAM 角色的管理实例时,搜索页面上会显示实例菜单(此菜单不会显示在标准单租户实例上)。当您从此菜单中选择目标实例或群组并发起搜索查询时,Google 会验证您在所有目标实例中的授权,分发查询,并返回按源实例代码标记的匹配事件和汇总统计信息的统一视图。
主要术语
以下条款适用于联合搜索和多租户操作:
- 管理实例:具有管理关联实例、组织联邦组和执行联邦搜索所需权限的中央 Google SecOps 实例。
- 受管实例:已连接的 Google SecOps 实例,可响应从管理实例发起的联合请求。
- “实例”菜单:调查 > 搜索中的下拉选择器,可让您选择要在联邦搜索中包含哪些关联的托管式实例或实例组。只有在您登录的托管实例在 SIEM 设置 > 关联的实例下有已关联的子租户,并且您的账号具有
chronicle.googleapis.com/federationAdmin或chronicle.googleapis.com/federationViewer角色时,系统才会显示此菜单。 - 实例代码:分配给每个受管实例 (
instance_code) 的唯一标识符,用于标记联邦搜索结果中返回的事件和汇总的统计信息行。 - Federation administrator:管理实例项目上所需的 IAM 角色 (
chronicle.googleapis.com/federationAdmin),用于创建联合组和执行联合搜索。 - Federation viewer:IAM 角色 (
chronicle.googleapis.com/federationViewer),授予只读权限以查看联合配置并运行联合搜索,而无需创建或删除群组。 - 联邦统计信息:基于 UDM 的统计信息汇总查询(例如
count或sum),在多个受管理的实例中执行,其中结果会按instance_code进行隐式分组和隔离。
常见使用场景
以下部分介绍了联邦搜索如何解决核心安全工作流中的多租户数据孤岛和运营开销问题。
跨数据孤岛进行多租户威胁搜寻
- 目标:同时在多个客户或子公司实例中执行单个 YARA-L 查询,以检测失陷指标 (IOC) 和全网威胁。
- 价值:无需登录各个租户,即可集中查看组织边界和区域合规性孤岛中的数据。
跨实例组的突发事件响应和分诊
- 目标:将具有类似威胁配置的客户租户(例如金融机构)整理到逻辑实例组中,并在这些组中运行有针对性的搜索或统计汇总。
- 价值:通过将威胁搜寻范围限定为特定客户群,并确定哪些租户需要立即进行补救,缩短调查时间并减少管理开销。
与租户管理员协作共享扫描结果
- 目标:直接从管理实例中的联合搜索结果透视到单个受管租户的界面,并与该租户的本地管理员分享具体发现。
- 价值:简化了中央 MSSP 分析师与本地客户安全团队之间的移交流程,同时保留了租户级数据隔离。
准备工作
在配置实例组或运行联邦搜索之前,请确认满足以下前提条件:
权限:从与管理实例关联的 Google Cloud 项目中,为用户分配以下 IAM 角色之一:
chronicle.googleapis.com/federationAdmin(联邦管理员):授予对所有联邦搜索功能的完全访问权限,包括创建和删除实例组。chronicle.googleapis.com/federationViewer(联合查看者):授予只读权限,以便查看联合配置和执行联合搜索,但无法修改群组。- 用户还必须拥有
chronicle.events.udmSearch权限,才能在受管理的租户中运行 UDM 搜索。
环境检查:
- 区域范围:所有参与的 Google SecOps 实例(管理实例和受管理实例)都必须位于同一 Google Cloud 区域中。
- 组织层次结构:所有参与的实例都必须属于同一 Google Cloud 组织。每个受管实例都必须位于管理实例的 Google Cloud 文件夹的子文件夹中(如果管理实例的项目不属于任何 Google Cloud 文件夹,则它可以管理同一 Google Cloud 组织中的所有实例)。
- 访问权限控制执行:联合搜索会遵循在每个子租户上配置的数据基于角色的访问权限控制 (RBAC) 设置。用户只能访问其获分配的角色允许访问的数据。
限制
联合搜索支持基本的 YARA-L 查询和 UDM 统计聚合,并强制执行以下功能边界:
不支持的单租户搜索功能:
- 原始日志搜索(包括旧版和 RLSv2)
- 实体上下文图 (ECG) 搜索
- 使用 Gemini 生成 YARA-L 2.0 查询以及 Gemini 总结
- UDM 查询
- 使用客户管理的加密密钥 (CMEK) 的租户
- 具有应用于搜索和运行的租户 ID 过滤条件
- 事件查看器面板中的管理解析器透视
- 参考列表和数据表
- 实体和透视到旧版视图的旧版视图(通过 UDM 搜索中的概览面板)
- 概览标签页和提醒标签页
- 对结果进行排序并将结果下载为逗号分隔值 (CSV)
- 在活动表格中透视
- 基于 API 的联合搜索(Chronicle API 不支持联合搜索)
联合统计数据限制:
- 无法进行跨租户合并:您无法将多个租户的数据汇总为一个全局数字。每个统计结果都仅限于其特定租户(例如,您会看到 10 个租户的 10 行结果,而不是代表所有 10 个租户总和的 1 行结果)。
- 不支持联接、数据表或多阶段查询:不支持使用联接的查询、多阶段查询或数据表。
- 范围:联合统计信息严格限制为 UDM 事件。不支持心电图事件。
- 可视化图表:可视化标签页(图形和图表)处于停用状态。结果仅以表格数据格式提供。
配置和管理联邦搜索组
在管理实例中,您可以查看关联的租户,并将其整理为逻辑实例组,以便管理具有类似威胁配置的客户。以下部分介绍了如何查看关联的实例和管理群组。
查看关联的实例
在创建群组或运行搜索之前,请验证您的受管租户是否已关联并对管理实例可见:
- 登录您的管理 Google SecOps 实例。
- 前往 SIEM 设置 > 关联的实例。
查看关联实例表,其中会显示每个租户的以下详细信息:
- 名称:实例的显示名称。
- ID:实例 ID。
- 代码:分配给实例的唯一标识符代码,显示在联合搜索结果中。
- 组:分配用于管理的实例组。
创建联合搜索组
创建逻辑实例组(例如,将银行和信用合作社分组),以便针对特定客户群组运行有针对性的联邦搜索:
- 登录您的管理 Google SecOps 实例。
- 依次点击 SIEM 设置 > 关联的实例。
- 点击管理群组。
- 点击 Add(添加)。
- 在群组名称字段中,输入群组的描述性名称。
- 在分配给实例列表中,选择要包含在组中的受管实例。
点击保存。
跨多个实例运行联邦搜索
您可以从管理实例执行 YARA-L 查询,以搜索所选租户中的事件并检查汇总的 UDM 统计信息。以下部分介绍了如何运行联邦查询和分析结果。
执行跨租户 UDM 搜索
运行联邦搜索,以检索多个受管实例或实例组中匹配的 UDM 事件:
- 登录到您的管理实例。确保您的账号有权访问管理实例和所有关联的受管实例。
- 在导航栏中,依次点击调查 > 搜索。
- 点击实例(显示在搜索页面上,用于管理为联盟配置的实例),然后选择要纳入搜索范围的单个实例或实例组。
- 在搜索字段中,输入 YARA-L 查询,然后点击运行搜索。
根据需要配置结果限制:
- 联合搜索中返回的结果总数取决于搜索设置中配置的结果集大小(默认值为 30,000;可配置的值介于 1 到 1,000,000 之间)。
您还可以在搜索查询中配置
limit关键字,该关键字会单独应用于每个目标实例:ip != "" limit:5000如果您选择 10 个实例,此查询会从每个实例中提取最多 5,000 个事件,总共返回最多 50,000 个事件。
在结果摘要菜单中监控查询执行情况,该菜单会针对每个目标实例显示状态指示图标(正在运行、已完成或失败)。
按实例代码过滤和检查结果:
- 搜索结果中的每个事件都包含一个租户(或实例代码)列,用于标识源受管实例。
- 使用边栏或快照视图中的租户过滤器,将结果范围缩小到特定租户。
- 点击列出的任何事件即可查看完整的 UDM 事件和原始日志。
分析联合统计信息并透视到托管实例
跨多个实例运行统计 UDM 查询(例如 count 或 sum),以验证威胁假设并深入分析特定租户:
- 在管理实例的导航栏中,依次点击调查 > 搜索,然后从实例菜单中选择目标实例或群组。
输入 UDM 统计查询(使用
match和outcome部分),然后点击运行搜索。- 联合查询引擎会协调所有目标实例的聚合,并按
instance_code隐式对结果进行分组。
- 联合查询引擎会协调所有目标实例的聚合,并按
在表格结果视图中查看每个实例的汇总行。
如需详细调查特定租户的事件,请选择以下透视操作之一:
- 点击任意统计结果行中的 Run UDM query,即可在新浏览器标签页中直接在关联的受管实例上启动底层搜索。
- 在结果摘要菜单中,点击实例行旁边的 在新标签页中打开,以打开一个新的浏览器标签页,其中仅显示相应实例的搜索结果。
查看完搜索结果后,点击完成。
示例和参考信息
以下部分提供了 YARA-L 查询示例和多租户调查示例,以简化跨租户威胁搜寻和突发事件响应。
跟踪实例组中的用户登录活动
一位安全分析师想要搜索 纽约和加利福尼亚实例组中的所有 USER_LOGIN 事件:
- 在管理实例导航栏中,依次点击调查 > 搜索。
- 点击实例,然后选择 New York 和 California 实例组。
在搜索字段中,输入以下 UDM 查询:
metadata.event_type = "USER_LOGIN"点击运行搜索。
在结果摘要中查看结果:
- 每个事件都包含一个“租户”列,其中显示源实例代码以及在所选租户中找到的所有
USER_LOGIN事件。 - 使用边栏中的租户过滤条件,将结果范围缩小到所选群组中的特定租户。
- 摘要显示了 New York 和 California 实例组中每个租户的
USER_LOGIN事件数。
- 每个事件都包含一个“租户”列,其中显示源实例代码以及在所选租户中找到的所有
跨租户调查可疑的可执行文件
多租户客户的突发事件响应人员想要调查 instance1 上可疑可执行文件 (malicious.exe) 的提醒:
在 instance1 上,依次前往调查 > 搜索,然后运行以下 UDM 查询来验证结果:
metadata.event_type = "FILE_OPEN" AND target.file.full_path = "<var>FILE_PATH</var>/malicious.exe"验证完成后,打开管理实例,依次前往调查 > 搜索,然后使用实例菜单选择所有相关实例。
使用联合搜索重新运行同一查询,以扫描所选实例。
结果摘要会显示所有租户实例的结果。每个事件都包含一个实例代码,以便响应者识别
malicious.exe在所有租户中的访问位置和时间。
通过联合统计信息识别异常登录行为
以下示例有助于识别异常登录行为,包括来自异常地理位置的登录以及在非典型时间发生的所有联合实例的登录:
在 instance1 上,依次前往调查 > 搜索,然后运行以下 UDM 查询来验证结果:
// Filter for successful logins metadata.event_type = "USER_LOGIN" security_result.action = "ALLOW" $user = target.user.userid $machine = target.hostname $ip = principal.ip $country = principal.ip_geo_artifact.location.country_or_region // Match: Group by Machine match: $machine // Check for affected scope: How many unique IPs hit this machine? // Check for logins from multiple countries // Identify the time window of activity outcome: $total_logins = count(metadata.id) $unique_users = count_distinct($user) $unique_source_ips = count_distinct($ip) $distinct_countries = count_distinct($country) $first_login = min(metadata.event_timestamp.seconds) $last_login = max(metadata.event_timestamp.seconds) // Identify machines with the most unique users order: $unique_users desc验证完成后,打开管理实例,依次前往调查 > 搜索,然后使用实例菜单选择所有相关实例。
使用联合搜索重新运行同一查询,以扫描所选实例。
结果摘要会显示所有租户实例的结果。每行都包含一个实例代码,用于告知威胁搜寻者每个实例的登录异常情况。
点击运行 UDM 查询,专注于特定实例,以便更深入地调查可疑行为。
与租户管理员分享调查结果
此示例展示了调查员如何将跨租户搜索中的调查结果隔离到单个受管理的租户,然后再与该租户的本地管理员分享这些结果。由于管理实例中的联合搜索结果涵盖多个租户,因此您需要透视到特定受管实例 (instance2),以便仅共享与该客户相关的搜索查询和事件:
- 在管理实例的结果摘要中,找到 instance2 的匹配项。
- 点击 instance2 旁边的 在新标签页中打开,以在新浏览器标签页中打开相应租户的 Google SecOps 界面中的搜索结果。
- 在 instance2 页面中,确认搜索结果仅限于该实例。
点击分享或保存即可执行以下某项操作:
- 与有权访问 instance2 的本地用户共享搜索(查询和结果)。
- 将搜索查询保存在 instance2 中,以供日后使用或调查。
问题排查
以下部分概述了架构限制、预期延迟时间,以及针对常见联合搜索问题的自助服务修复方法。
延迟时间、服务配额和限制
联合搜索会强制执行以下服务配额和处理限制,以在多租户环境中保持性能:
- 租户发现延迟时间:新创建或移动的实例在放置到联合范围内的文件夹中后,会在 5 分钟内自动显示在关联的实例列表中。
- 实例限制:每个联合搜索查询最多可以定位到 150 个实例。
- 群组限制:每个租户最多可以创建 100 个实例组。
- 查询速率限制:每个 Google Cloud 组织每小时最多可以运行 30 个联合搜索查询。如果超出此限制,则系统会返回
HTTP 409错误。 - 查询结果限制:联合搜索最多返回 1,000,000 行结果,这些结果会平均分配给查询所针对的 Google SecOps 租户总数。
- 联合统计信息结果限制:联合统计信息查询最多以表格格式返回 60,000 行。
- 查询时间范围:每个联合搜索查询最多可搜索 30 天的时间窗口。
错误修正
您可以使用下表来诊断和解决常见的联合搜索问题:
| 问题或错误代码 | 说明 | 切实可行的修复 |
|---|---|---|
HTTP 409 |
已超出查询速率限制:相应组织每小时的联合搜索查询次数已超过上限 30 次。 | 请等待每小时配额窗口重置,然后再运行其他联合搜索,或者直接在各个受管理的实例上运行定向查询。 |
| 关联的实例中缺少租户 | 租户未显示在联合列表中:新创建或迁移的实例未显示在 SIEM 设置 > 关联的实例下。 | 等待最多 5 分钟,让系统自动发现并同步。如果实例仍然缺失,请验证该实例是否位于同一 Google Cloud 组织和区域中,并且位于管理实例的 Google Cloud 文件夹的子文件夹中。 |
| 权限遭拒或未经授权 | 无法运行联合查询或管理群组:您无法访问管理实例、创建群组或查询受管理的租户。 | 验证您的账号是否在管理项目中拥有 chronicle.googleapis.com/federationAdmin(或 federationViewer)权限、chronicle.events.udmSearch 权限,以及对每个目标子租户的数据 RBAC 访问权限。 |
| 查询编译错误 | 不支持的查询语法:尝试使用联接、数据表、参考列表或 ECG 字段时,查询失败。 | 从联合查询中移除联接、数据表、参考列表和心电图参考,或使用 Run UDM query 透视到单租户实例以执行高级单租户搜索。 |
验证和测试
在最多 150 个受管理实例中运行复杂的 YARA-L 搜索或统计查询之前,请先在单个实例中验证查询语法和字段映射:
- 在单个受管理的实例(例如 instance1)中,依次前往调查 > 搜索,然后在较短的时间范围内运行 YARA-L 查询。
- 确认 UDM 字段、事件类型和统计结果变量能够顺利编译并返回预期结果。
- 在单个实例上验证查询后,前往管理实例上的调查 > 搜索,在实例菜单中选择目标实例组,然后在所有受管理的租户中执行经过验证的查询。
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。