收集 ChromeOS XDR 日志
解析器版本:4.0
本文档介绍了如何使用 Google Cloud Pub/Sub 将 ChromeOS XDR 日志注入到 Google Security Operations。
ChromeOS XDR 会将受管理的 ChromeOS 设备中的操作系统级安全遥测数据转发到您拥有的 Google Cloud Pub/Sub 主题。此遥测数据包括登录和退出活动、设备启动状态、进程执行、网络流和敏感文件修改。您可以在 Google 管理控制台中将 ChromeOS XDR 提供方配置指向您的 Pub/Sub 主题,然后 Pub/Sub 推送订阅会将事件传递到您的 Google SecOps Feed 端点。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例。
- 与您的 Google SecOps 实例绑定的 Google Cloud 项目。Pub/Sub 主题和推送订阅必须位于此项目中。
- 对相应 Google Cloud 项目中的 Identity and Access Management (IAM) 和 Pub/Sub 的特权访问权限。
- 具有超级用户权限的 Google Workspace 管理员账号。
- 已注册到您的 Google Workspace 组织的受管理的 ChromeOS 设备。
- 包含您要从中收集遥测数据的 ChromeOS 设备的目标组织部门 (OU)
- 在 Google 管理控制台中访问 Google Cloud Pub/Sub XDR 提供方配置。
将 Google Cloud 项目绑定到您的 Google SecOps 实例
在创建 Pub/Sub 推送 Feed 之前,请将托管主题的 Google Cloud 项目绑定到您的 Google SecOps 实例。绑定可让推送订阅通过服务账号进行身份验证。
检查项目是否已绑定
- 在 Google SecOps 实例中,前往 SIEM 设置 > 项目。
- 检查您的 Google Cloud 项目是否已列出。
- 如果列出了该项目,则表示该项目已绑定。继续前往下一部分。
绑定项目
- 前往 SIEM 设置 > 项目。
- 点击添加项目。
- 在项目 ID 字段中,输入您的 Google Cloud 项目 ID。
- 点击 Add(添加)。
- 等待绑定完成,然后刷新页面,验证项目是否显示为有效状态。
验证 Chronicle API 是否已启用
- 前往 Google Cloud 控制台的“API 和服务”库。
- 选择绑定项目。
- 在搜索框中,输入 Chronicle。
- 点击 Chronicle API。
- 如果该 API 尚未启用,请点击启用。
创建 Pub/Sub 主题
创建用于接收 ChromeOS XDR 事件的主题。主题属于您,是您稍后在 Google 管理控制台中输入的值。
使用 Google Cloud 控制台
- 前往 Pub/Sub 主题。
- 选择绑定项目。
- 点击创建主题。
- 提供以下配置详细信息:
- 主题 ID:输入一个描述性名称(例如
chromeos-xdr-secops) - 添加默认订阅:清除此复选框
- 主题 ID:输入一个描述性名称(例如
- 点击创建。
复制完整的主题路径。其格式如下所示:
projects/<PROJECT_ID>/topics/<TOPIC_ID>
使用 gcloud 命令行工具
使用以下命令:
gcloud pubsub topics create chromeos-xdr-secops \ --project=<PROJECT_ID>- 将
<PROJECT_ID>替换为绑定 Google Cloud 项目的 ID。
- 将
向 ChromeOS XDR 发布者授予发布权限
ChromeOS XDR 使用 Google 代管式服务账号发布事件。在您授予访问权限之前,此服务账号无法访问您的主题,并且 Google 管理控制台的测试连接检查会失败。
使用 Google Cloud 控制台
- 前往 Pub/Sub 主题。
- 点击您创建的主题。
- 打开权限标签页,然后点击添加主账号。
- 提供以下配置详细信息:
- 新的主账号:输入
cloud-pub-sub-publisher@chromeos-xdr.iam.gserviceaccount.com - 角色:选择 Pub/Sub > Pub/Sub Publisher
- 新的主账号:输入
- 点击保存。
使用 gcloud 命令行工具
使用以下命令:
gcloud pubsub topics add-iam-policy-binding chromeos-xdr-secops \ --member="serviceAccount:cloud-pub-sub-publisher@chromeos-xdr.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher" \ --project=<PROJECT_ID>
在 Google SecOps 中创建 Pub/Sub 推送 Feed
创建 Feed
- 在您的 Google SecOps 实例中,依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如
ChromeOS XDR events)。 - 选择 Google Cloud Pub/Sub 推送作为来源类型。
- 选择 ChromeOS XDR 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 拆分分隔符:将此字段留空。ChromeOS XDR 会针对每条 Pub/Sub 消息发布一个事件。
- 资源命名空间:资源命名空间
- 注入标签:要应用于此 Feed 中事件的标签
- 点击下一步。
- 在“Finalize”界面中检查 Feed 配置,然后点击提交。
获取推送端点网址
- 在 Feed 详情页面上,验证 Feed 状态是否为有效,以及启用 Feed 开关是否处于开启状态。
在 Endpoint Information(端点信息)字段中,复制推送端点网址。格式为:
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs保存此网址以用于推送订阅。
为 Pub/Sub 推送创建服务账号
创建服务账号
- 前往 Google Cloud 控制台的服务账号页面。
- 选择绑定项目。
- 点击 + 创建服务账号。
- 提供以下配置详细信息:
- 服务账号名称:输入一个描述性名称(例如
chromeos-xdr-push) - 服务账号说明:输入
Pub/Sub Push to Google SecOps for ChromeOS XDR
- 服务账号名称:输入一个描述性名称(例如
- 点击创建并继续。
- 在向此服务账号授予对项目的访问权限部分中,将角色字段留空。
- 依次点击继续 > 完成。
复制服务账号电子邮件地址。格式为:
chromeos-xdr-push@<PROJECT_ID>.iam.gserviceaccount.com
使用 gcloud 命令行工具
使用以下命令:
gcloud iam service-accounts create chromeos-xdr-push \ --display-name="ChromeOS XDR Push" \ --description="Pub/Sub Push to Google SecOps for ChromeOS XDR" \ --project=<PROJECT_ID>
服务账号权限
此服务账号不需要额外的 IAM 角色。您之前配置的项目绑定可启用服务账号身份验证,推送订阅使用服务账号的 OIDC 令牌向 Google SecOps Feed 端点进行身份验证。您可以在推送订阅中启用身份验证时选择此服务账号。
创建 Pub/Sub 推送订阅
使用 Google Cloud 控制台
- 前往 Pub/Sub 订阅。
- 点击创建订阅。
提供以下配置详细信息:
设置 值 订阅 ID 输入一个描述性名称(例如 secops-chromeos-xdr)选择 Cloud Pub/Sub 主题 选择您创建的主题 配送类型 推送 端点网址 粘贴来自 Feed 详情页面的推送端点网址 启用身份验证 已选择 服务账号 选择您创建的服务账号 受众群体 留空 启用载荷解封 已清除 写入元数据 已清除 确认截止期限 600 秒 失效期限 永不过期 点击创建。
使用 gcloud 命令行工具
使用以下命令:
gcloud pubsub subscriptions create secops-chromeos-xdr \ --topic=chromeos-xdr-secops \ --push-endpoint=<PUSH_ENDPOINT_URL> \ --push-auth-service-account=chromeos-xdr-push@<PROJECT_ID>.iam.gserviceaccount.com \ --ack-deadline=600 \ --expiration-period=never \ --project=<PROJECT_ID>替换以下内容:
<PUSH_ENDPOINT_URL>:推送端点网址(来自 Feed 详情页面)<PROJECT_ID>:绑定 Google Cloud 项目的 ID
验证订阅是否已创建
使用以下命令:
gcloud pubsub subscriptions describe secops-chromeos-xdr \ --project=<PROJECT_ID>验证输出是否显示以下内容:
pushConfig.pushEndpoint:Feed 端点网址pushConfig.oidcToken.serviceAccountEmail:您的服务账号电子邮件地址ackDeadlineSeconds:600
添加 Google Cloud Pub/Sub XDR 提供程序配置
将 ChromeOS XDR 提供程序配置指向您的 Pub/Sub 主题,以便受管理的 ChromeOS 设备将其遥测数据发布到该主题。
使用超级用户账号登录 Google 管理控制台。
如果您使用的不是超级用户账号,则无法完成这些步骤。
依次点击菜单 > 设备 > Chrome > 连接器。
(可选)如果您是首次配置 Chrome 企业版接口设置,请按照提示启用 Chrome 企业版接口。
点击顶部的 + 添加新提供商的配置。
找到 Google Cloud Pub/Sub XDR,然后点击设置。
系统会打开 Google Cloud Pub/Sub XDR 配置对话框。
输入以下配置详细信息:
- 配置名称:输入一个描述性名称。例如
ChromeOS XDR to Google SecOps。 - 主题完整路径:输入您创建的主题的完整路径,格式为
projects/<PROJECT_ID>/topics/<TOPIC_ID>。
- 配置名称:输入一个描述性名称。例如
点击测试连接以验证配置详细信息。
如果验证失败,请验证以下内容:
- 主题完整路径正确,并且主题存在于绑定的 Google Cloud 项目中
cloud-pub-sub-publisher@chromeos-xdr.iam.gserviceaccount.com拥有相应主题的 Pub/Sub Publisher 角色- 项目已启用 Pub/Sub API
在此配置允许接收的事件下,展开 XDR 事件,然后选择启用 XDR 事件。
点击 Save configuration(保存配置)。
系统会为整个组织添加配置。如需为要监控的 ChromeOS 设备启用此功能,请选择包含这些设备的组织部门,然后选中相应配置旁边的复选框。
启用 ChromeOS XDR 报告功能
在设备设置中启用 ChromeOS XDR 报告,即可开始从受管 ChromeOS 设备收集操作系统级安全遥测数据。
- 在 Google 管理控制台中,依次点击菜单 > 设备 > Chrome > 设置 > 设备设置。
- 如要将设置应用于所有 ChromeOS 设备,请将顶级组织部门保持为已选中状态。否则,请选择包含您要收集遥测数据的设备的下级组织部门。
- 前往用户和设备报告。
- 在报告扩展检测和响应 (XDR) 事件旁边,选择报告扩展检测和响应 (XDR) 事件的相关信息。
点击保存。
针对组织部门点击覆盖。如果之后要恢复继承的值,请点击继承。
对于包含您要收集遥测数据的 ChromeOS 设备的任何其他组织部门,请重复执行上述步骤。
验证数据流
如需验证 ChromeOS XDR 日志是否已注入到 Google SecOps 中,请执行以下操作:
- 打开 Google SecOps 实例。
- 依次前往菜单 > 搜索。
运行以下搜索查询,查找 ChromeOS XDR 事件:
metadata.log_type = "CHROMEOS_XDR"配置完成后,您应该会在几分钟内看到事件。如果未显示任何活动,请执行以下操作:
- 在 Google Cloud 控制台中,打开相应主题,然后查看指标标签页中的已发布消息。没有已发布的消息意味着管理控制台端未进行传送。
- 在 Google Cloud 控制台中,打开相应订阅,并检查其推送请求数和错误数指标。推送错误表示端点网址、服务账号或项目绑定有误。
- 验证是否已在 Google 管理控制台中为正确的组织部门启用 ChromeOS XDR 报告
- 验证提供方配置是否已应用于包含设备的组织部门
- 验证目标 ChromeOS 设备是否已在贵组织中注册并受管理
- 验证推送订阅上是否已清除启用载荷解封和写入元数据
支持的日志类型
ChromeOS XDR 报告会将以下 ChromeOS 设备安全遥测数据转发给 Google SecOps:
| 事件类别 | 说明 |
|---|---|
| 登录和退出 | ChromeOS 设备上的用户登录、退出和身份验证因素活动 |
| 设备启动状态 | 设备启动状态、固件安全启动状态和内核版本报告 |
| 流程执行 | 进程和父进程执行,包括命令行和映像详细信息 |
| 网络流 | 网络连接,包括本地和远程端点、端口、协议和传输的字节数 |
| 敏感文件修改 | 敏感文件的创建和修改,包括路径和哈希详细信息 |
UDM 映射表
下表显示了 ChromeOS XDR 日志字段与 Google SecOps Unified Data Model (UDM) 字段的映射关系:
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
application_protocol_label |
additional.fields |
已合并 |
attributesBefore_canonicalGid_label |
additional.fields |
已合并 |
attributesBefore_canonicalUid_label |
additional.fields |
已合并 |
attributesBefore_mode_label |
additional.fields |
已合并 |
authFactor_label |
additional.fields |
已合并 |
bindAddr_label |
additional.fields |
已合并 |
bindPort_label |
additional.fields |
已合并 |
communityIdV1_label |
additional.fields |
已合并 |
fileAfter_inodeDeviceId_label |
additional.fields |
已合并 |
fileAfter_inode_label |
additional.fields |
已合并 |
fileAfter_mntNs_label |
additional.fields |
已合并 |
fileAfter_mode_label |
additional.fields |
已合并 |
firmwareSecureBoot_label |
additional.fields |
已合并 |
image_canonicalGid_label |
additional.fields |
已合并 |
image_canonicalUid_label |
additional.fields |
已合并 |
image_mode_label |
additional.fields |
已合并 |
inodeDeviceId_label |
additional.fields |
已合并 |
inode_label |
additional.fields |
已合并 |
inode_process_label |
additional.fields |
已合并 |
linuxKernelVersion_label |
additional.fields |
已合并 |
local_timezone_label |
additional.fields |
已合并 |
metaFirstAppearance_label |
additional.fields |
已合并 |
modifyType_label |
additional.fields |
已合并 |
networkFlow_direction_label |
additional.fields |
已合并 |
process_image_canonicalGid_label |
additional.fields |
已合并 |
process_image_canonicalUid_label |
additional.fields |
已合并 |
process_image_mode_label |
additional.fields |
已合并 |
process_inodeDeviceId_label |
additional.fields |
已合并 |
process_metaFirstAppearance_label |
additional.fields |
已合并 |
process_relStartTimeS_label |
additional.fields |
已合并 |
rel_start_time_label |
additional.fields |
已合并 |
sensitiveFileType_label |
additional.fields |
已合并 |
socketType_label |
additional.fields |
已合并 |
spawnProcess_canonicalUid_label |
additional.fields |
已合并 |
spawnProcess_image_inodeDeviceId_label |
additional.fields |
已合并 |
spawnProcess_image_inode_label |
additional.fields |
已合并 |
spawnProcess_image_mode_label |
additional.fields |
已合并 |
spawnProcess_metaFirstAppearance_label |
additional.fields |
已合并 |
spawnProcess_relStartTimeS_label |
additional.fields |
已合并 |
has_principal |
metadata.event_type |
已映射:true → NETWORK_CONNECTION、true → STATUS_UPDATE |
has_user |
metadata.event_type |
已映射:true → USER_UNCATEGORIZED |
schemaVersion |
metadata.product_version |
直接映射 |
app_protocol_output |
network.application_protocol |
直接映射 |
ip_protocol_out |
network.ip_protocol |
已重命名/已映射 |
networkFlow.rxBytes |
network.received_bytes |
已重命名/已映射 |
networkFlow.txBytes |
network.sent_bytes |
已重命名/已映射 |
deviceName |
principal.asset.asset_id |
直接映射 |
localIp |
principal.asset.ip |
已合并 |
sensitiveModify.attributesBefore.pathname |
principal.file.full_path |
直接映射 |
localIp |
principal.ip |
已合并 |
networkFlow.localIp |
principal.ip |
已合并 |
osVersion |
principal.platform_version |
直接映射 |
networkFlow.localPort |
principal.port |
已重命名/已映射 |
spawnProcess.commandline |
principal.process.parent_process.command_line |
直接映射 |
spawnProcess.image.pathname |
principal.process.parent_process.file.full_path |
直接映射 |
spawnProcess.image.sha256 |
principal.process.parent_process.file.sha256 |
直接映射 |
spawnProcess.canonicalPid |
principal.process.parent_process.pid |
直接映射 |
spawnProcess.processUuid |
principal.process.product_specific_process_id |
直接映射 |
devicePermanentId |
principal.resource.product_object_id |
直接映射 |
event_log |
security_result.summary |
直接映射 |
sensitiveModify.fileAfter.pathname |
target.file.full_path |
直接映射 |
sensitiveModify.fileAfter.sha256 |
target.file.sha256 |
直接映射 |
networkFlow.remoteHostName |
target.hostname |
直接映射 |
networkFlow.remoteIp |
target.ip |
已合并 |
networkFlow.remotePort |
target.port |
已重命名/已映射 |
process.image.pathname |
target.process.file.full_path |
直接映射 |
process.image.sha256 |
target.process.file.sha256 |
直接映射 |
parentProcess.commandline |
target.process.parent_process.command_line |
直接映射 |
process.commandline |
target.process.parent_process.command_line |
直接映射 |
parentProcess.image.pathname |
target.process.parent_process.file.full_path |
直接映射 |
parentProcess.image.sha256 |
target.process.parent_process.file.sha256 |
直接映射 |
parentProcess.canonicalPid |
target.process.parent_process.pid |
直接映射 |
parentProcess.processUuid |
target.process.parent_process.product_specific_process_id |
直接映射 |
process.canonicalPid |
target.process.pid |
直接映射 |
process.processUuid |
target.process.product_specific_process_id |
直接映射 |
deviceUser |
target.user.email_addresses |
已合并 |
| 不适用 | metadata.event_type |
常量:NETWORK_CONNECTION |
| 不适用 | metadata.product_name |
常量:CHROMEOS XDR |
| 不适用 | metadata.vendor_name |
常量:CHROMEOS XDR |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。