将 Google Chronicle 与 Google SecOps 集成
本文档介绍了如何将 Google Chronicle 与 Google Security Operations 集成。
使用场景
Google Chronicle 集成使用 Google SecOps 功能来支持以下用例:
自动钓鱼式攻击调查和修复:自动查询历史电子邮件数据、用户活动日志和威胁情报,以评估电子邮件的合法性。自动修复功能可以防止恶意软件传播或数据泄露,从而帮助您进行分类和控制。
丰富安全提醒:使用历史背景信息(例如过去的用户行为和资产信息)丰富 SIEM 中生成的提醒。这为分析师提供了突发事件的全面视图, 使他们能够更快地做出更明智的决策。
基于 Google SecOps 洞见的威胁搜寻:自动执行查询其他安全工具以获取相关失陷指标 (IOC) 的过程。这有助于您在潜在违规行为升级之前主动识别它们。
自动化突发事件响应 playbook:触发预定义的 playbook,这些 playbook 使用 Google SecOps 数据来隔离受感染的系统、屏蔽恶意 IP 地址并通知相关利益相关方。这可以缩短突发事件响应时间,并最大限度地降低安全突发事件的影响。
合规性报告和审核:自动从 Google SecOps 收集安全数据,以生成合规性报告、简化审核流程并减少手动工作。
准备工作
在 Google SecOps 中配置 Google Chronicle 集成之前,请确保您有权访问活跃的Google Cloud 项目。
将 Backstory API 迁移到 Chronicle API
此集成中的一些新功能和操作仅支持 Chronicle API,因此我们强烈建议所有用户迁移其部署以使用 Chronicle API。
如需从旧版 Backstory API 迁移到 Chronicle API,请执行以下操作:
- 查找 Chronicle API 根,并将其输入到集成配置、连接器和作业的
API Root参数中。 - 验证您的 Google Cloud 项目类型是否支持您的身份验证方法,并在集成配置、连接器和作业中以相同方式应用。
查找 Chronicle API 根
访问 Chronicle API 时,您必须找到环境的唯一 API Root,以便进行集成、连接器和作业配置。
打开浏览器的开发者工具,然后前往 Google SecOps 平台。
依次选择调查>数据表。
在开发者工具中,前往网络标签页,然后点击“名称”列中的某个项,例如
dataTables?pageSize=1000。在详细信息窗格中,选择标头,然后复制 General 下的
Request URL值,不包括端点和任何查询参数(所选项的名称)。例如,如果值为
https://{api_root}/v1alpha/projects/{project_id}/locations/{location}/instances/{customer_id}/dataTables?pageSize=1000,则 API 根不包含/dataTables?pageSize=1000,而是https://{api_root}/v1alpha/projects/{project_id}/locations/{location}/instances/{customer_id}。
身份验证方法和凭据优先级
Google Chronicle 集成、连接器和作业会按以下顺序评估凭证:
- 内置凭证:当您未提供
Workload Identity Email和User's Service Account时,系统会自动使用内置凭证。- 适用场景:最适合从 2025 年第 4 季度开始预配的 Google 管理的项目(默认),或使用旧版 Backstory API 的任何 Google 管理的项目。无需创建服务账号、分配角色或管理密钥。使用 Chronicle API 的自备项目 (BYOP) 部署不支持内置凭据。
- 2025 年第 4 季度之前由 Google 管理的项目:如果您要迁移到 Chronicle API,请与 Google 支持团队联系,以启用内置 Chronicle API 凭据,或使用 Workload Identity 或 JSON 密钥配置服务账号。
- Workload Identity (
Workload Identity Email):在您提供服务账号邮箱时使用。如果同时填充了Workload Identity Email和User's Service Account,则优先使用此字段。- 适用场景:建议在需要服务账号时使用(例如,自带项目 [BYOP] 部署或 2025 年第 4 季度之前未内置 Chronicle API 凭据的 Google 管理的项目)。提供无密钥身份验证,无需下载或轮替 JSON 密钥,并遵守限制服务账号密钥创建的组织政策。
- 服务账号 JSON 密钥 (
User's Service Account):仅在Workload Identity Email为空且您提供了服务账号 JSON 密钥时使用。- 何时使用:仅在需要服务账号且无法配置 Workload Identity 模拟时使用。需要下载和管理静态 JSON 密钥文件。
使用 Workload Identity 进行身份验证(推荐)
如需使用 Workload Identity 进行身份验证,请创建服务账号,分配所需角色,并向 Google SecOps 实例授予模拟权限。
创建服务账号
在 Google Cloud 控制台中,前往凭证页面。
从创建凭证菜单中,选择服务账号。
在服务账号详情下,在服务账号名称字段中输入一个名称。
可选:修改服务账号 ID。
点击创建并继续。系统会显示权限界面。
点击继续。系统会显示具有访问权限的主账号界面。
点击完成。
Chronicle API:服务账号所需的角色
使用 Chronicle API 时,您的服务账号需要 Chronicle API Editor 角色:
在 Google Cloud 控制台中,前往凭证页面。
在服务账号下,选择您的服务账号,然后依次点击权限 > 管理访问权限。
点击添加添加角色,然后选择
Chronicle API Editor角色。点击保存。
向 Google SecOps 实例授予模拟权限
向 Google SecOps 实例授予模拟服务账号的权限:
在 Google SecOps 中,前往内容中心 > 响应集成。
选择您要配置的集成,然后在
Workload Identity Email中输入您的服务账号电子邮件地址。依次点击保存 > 测试。测试预计会失败。
点击测试右侧的 close_small,然后在出错提示中搜索
gke-init-python@PROJECT.iam.gserviceaccount.com或soar-python@TENANT_PROJECT.iam.gserviceaccount.com。复制此唯一邮箱(用于标识您的 Google SecOps 实例)。前往服务账号,选择您的项目,然后选择您的服务账号。
依次选择具有访问权限的主账号 > add授予访问权限。
在添加主账号下,粘贴您复制的值。
在添加角色下,选择
Service Account Token Creator(roles/iam.serviceAccountTokenCreator) 角色。
使用服务账号 JSON 密钥进行身份验证
如需使用服务账号 JSON 密钥(而不是推荐的 Workload Identity 方法)进行身份验证,请创建专用服务账号并下载其 JSON 密钥:
在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号。
选择创建服务账号,然后按照提示操作。
选择新服务账号的电子邮件地址,然后依次前往密钥 > 添加密钥 > 创建新密钥。
选择
JSON作为密钥类型,然后点击创建。JSON 密钥文件将下载到您的计算机上。使用 Chronicle API 时,请将
Chronicle API Editor角色分配给您的服务账号。
集成参数
Google Chronicle 集成需要以下参数:
| 参数 | 说明 |
|---|---|
UI Root |
必填。 Google SecOps 界面的基础网址。 用于从您的案例生成返回 Google SecOps 的直接链接。 默认值为 |
API Root |
必填。 Google SecOps 实例的 API 根网址:
|
User's Service Account |
可选。 用于身份验证的服务账号 JSON 密钥。仅在 将两个凭据字段留空,以便在支持的情况下使用内置凭据(请参阅身份验证方法和凭据优先级)。 |
Workload Identity Email |
可选。 用于 Workload Identity 身份验证的服务账号邮箱(在需要服务账号时推荐使用)。如果两个凭据字段都已填充,则优先使用此字段。 将两个凭据字段留空,以便在支持的情况下使用内置凭据(请参阅身份验证方法和凭据优先级)。 |
Verify SSL |
必填。 如果选中,集成会在连接到 Google SecOps 服务器时验证 SSL 证书。 默认处于启用状态。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。
将条目添加到监控列表
使用将条目添加到监视列表操作,将指定实体添加到 Google SecOps 中的现有风险分析监视列表中。
此操作不会在 Google SecOps 实体上运行。
操作输入
Add Entry To Watchlist 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Watchlist Name |
必填。 要将条目添加到的风险分析监视列表的名称。 |
Entry |
必填。 表示要添加到监视列表的实体的 JSON 对象。 JSON 结构需要实体值、实体类型和可选命名空间。 默认值为:
[
{
"entity": "",
"type": "ASSET_IP_ADDRESS/MAC/HOSTNAME/PRODUCT_SPECIFIC_ID/USERNAME/EMAIL/EMPLOYEE_ID/WINDOWS_SID/PRODUCT_OBJECT_ID",
"namespace": "Optional"
}
]
|
操作输出
向监控列表添加条目操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例展示了使用将条目添加到监视列表操作时收到的 JSON 结果输出:
[
{
"namespace": "Yuriy",
"asset": {
"hostname": "koko"
}
},
{
"namespace": "Yuriy",
"asset": {
"hostname": "koko"
}
}
]
输出消息
Add Entry To Watchlist 操作可能会返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Add Entry To Watchlist". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表列出了使用将条目添加到监视列表操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
向数据表添加行
使用向数据表添加行操作向 Google SecOps 中的数据表添加行。
此操作不会在 Google SecOps 实体上运行。
操作输入
如需配置操作,请使用以下参数:
| 参数 | 说明 |
|---|---|
Data Table Name |
必填。 要更新的数据表的显示名称。 |
Rows |
必填。 一个 JSON 对象列表,其中包含要添加的行的相关信息。 例如:
[
{
"columnName1": "value1",
"columnName2": "value2",
},
{
"columnName1": "value1",
"columnName2": "value2",
}
]
|
操作输出
向数据表格添加行操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| 实体数据分析 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例展示了向数据表添加行操作返回的示例 JSON 结果:
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table/dataTableRows/840d18a85944833e1b97ed6d2fb11377",
"values": {
"columnName1": "asda",
"columnName2": "asdasd",
"columnName3": "zxczxc"
}
}
输出消息
向数据表格添加行操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully added rows to the data table
DATA_TABLE_NAME in
Google SecOps. |
操作成功。 |
Error executing action "Add Rows to Data Table". Reason:
ERROR_REASON |
操作失败。
请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用向数据表添加行操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
向参考列表添加值
使用向参考列表添加值操作可向 Google SecOps 中的参考列表添加值。
此操作不会在 Google SecOps 实体上运行。
操作输入
如需配置操作,请使用以下参数:
| 参数 | 说明 |
|---|---|
Reference List Name |
必填。 要更新的参考列表的名称。 |
Values |
必填。 要添加到参考列表中的值的逗号分隔列表。 |
操作输出
向参考列表添加值操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| 实体数据分析 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了将向参考列表添加值操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"name": "list_name",
"description": "description of the list",
"lines": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"create_time": "2020-11-20T17:18:20.409247Z",
"content_type": "CIDR"
}
以下示例说明了将向参考列表添加值操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
{
"name": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/referenceLists/REFERENCE_LIST_NAME",
"displayName": "REFERENCE_LIST_NAME",
"revisionCreateTime": "2025-01-16T09:15:21.795743Z",
"description": "Test reference list",
"entries": [
{
"value": "example.com"
},
{
"value": "exampledomain.com"
}
],
"syntaxType": "REFERENCE_LIST_SYNTAX_TYPE_PLAIN_TEXT_STRING",
"scopeInfo": {
"referenceListScope": {}
},
"createTime": "2025-01-16T09:15:21.795743Z",
"lines": [
"example.com",
"exampledomain.com"
]
}
输出消息
向参考列表添加值操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully added values to the reference list
REFERENCE_LIST_NAME. |
操作成功。 |
Error executing action "Add Values To Reference List". Reason:
ERROR_REASON |
操作失败。
检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用向参考列表添加值操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
问问 Gemini
使用问问 Gemini 操作向 Google SecOps 中的 Gemini 发送文本提示词。
此操作不会在 Google SecOps 实体上运行。
处理限制和超时
此操作受 Google SecOps 流水线中的处理限制约束。超出这些限制的操作通常会导致 503 Service Unavailable 错误。
为确保成功执行,您的请求必须遵循以下规范:
超时:意图识别的超时时间为 30 秒。如果大型摘要任务或复杂提示超出此处理时间,会导致操作失败。
回答生成上限:生成阶段最多只能生成 28,000 个 token。
操作输入
Ask Gemini 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Automatic Opt-in |
可选。 如果选中此选项,Playbook 会自动让用户选择加入 Gemini 对话,而无需手动确认。 默认处于启用状态。 |
Prompt |
必填。 要发送给 Gemini 的初始文本提示词或问题。 |
操作输出
问问 Gemini 操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| 实体数据分析 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用问问 Gemini 操作时收到的 JSON 结果输出:
{
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/users/me/conversations/db3b0fc2-94f8-42ae-b743-c3693f593269/messages/b58e3186-e697-4400-9da8-8ef252a20bd9",
"input": {
"body": "Is IP 159.138.84.217 malicious? What can you tell me about it?"
},
"responses": [
{
"blocks": [
{
"blockType": "HTML",
"htmlContent": {
"privateDoNotAccessOrElseSafeHtmlWrappedValue": "<p>The IP address 159.138.84.217 is associated with malware and threat actors.</p>\n<ul>\n<li>It is an IPv4 indicator.</li>\n<li>It is associated with BEACON malware.</li>\n<li>It is categorized as malware-Backdoor.</li>\n<li>It has a low confidence, high severity threat rating.</li>\n<li>VirusTotal's IP Address Report indicates the network for this IP is 159.138.80.0/20, and the IP is associated with HUAWEI CLOUDS in Singapore.</li>\n<li>VirusTotal's last analysis on April 22, 2025, showed 8 malicious detections out of 94 sources.</li>\n</ul>\n<p>I might have more details for a question with more context (e.g., what is the source of the IP, what type of network traffic is associated with the IP).</p>\n"
}
}
],
"references": [
{
"blockType": "HTML",
"htmlContent": {
"privateDoNotAccessOrElseSafeHtmlWrappedValue": "<ol>\n<li><a href=\"https://advantage.mandiant.com/indicator/ipv4/159.138.84.217\" target=\"_blank\">Mandiant - indicator - 159.138.84.217</a></li>\n</ol>\n"
}
}
],
"groundings": [
"IP address 159.138.84.217 malicious cybersecurity",
"IP address 159.138.84.217 threat intelligence"
]
}
],
"createTime": "2025-05-16T11:31:36.660538Z"
}
}
输出消息
问问 Gemini 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully executed a prompt in Google SecOps. |
操作成功。 |
Error executing action "GoogleChronicle - Ask Gemini".
Reason: ERROR_REASON |
操作失败。
检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用问问 Gemini 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
丰富化网域 - 已弃用
使用丰富网域操作,通过 Google SecOps 中 IoC 的信息来丰富网域。
此操作在以下 Google SecOps 实体上运行:
URLHostname
操作输入
丰富网域操作需要以下参数:
| 参数 | 说明 |
|---|---|
Create Insight |
如果选择此选项,操作将创建包含实体相关信息的分析洞见。 默认处于启用状态。 |
Only Suspicious Insight |
如果选中,则操作只会为标记为可疑的实体创建数据分析。 默认不启用。 如果您选择此参数,则还必须选择 |
Lowest Suspicious Severity |
必填。 将网域标记为可疑所需的最低严重级别。 默认值为
|
Mark Suspicious N/A Severity |
必填。 如果选择此选项,并且严重程度信息不可用,则该操作会将实体标记为可疑。 |
操作输出
Enrich Domain 操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 可用 |
| 实体分析洞见 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙表格
Enrich Domain 操作提供下表:
名称:ENTITY_IDENTIFIER
列:
- 来源
- 严重级别
- 类别
- 置信度
实体丰富化
Enrich Domain 操作支持以下实体丰富逻辑:
| 扩充项字段 | 逻辑(应用场景) |
|---|---|
severity |
当 JSON 中有可用数据时 |
average_confidence |
当 JSON 中有可用数据时 |
related_domains |
当 JSON 中有可用数据时 |
categories |
当 JSON 中有可用数据时 |
sources |
当 JSON 中有可用数据时 |
first_seen |
当 JSON 中有可用数据时 |
last_seen |
当 JSON 中有可用数据时 |
report_link |
当 JSON 中有可用数据时 |
JSON 结果
以下示例介绍了将丰富网域操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
{
"sources": [
{
"source": "ET Intelligence Rep List",
"confidenceScore": {
"normalizedConfidenceScore": "Low",
"intRawConfidenceScore": 0
},
"rawSeverity": "High",
"category": "Malware Command and Control Server"
}
],
"iocIngestTime": "2021-01-26T17:00:00Z",
"firstSeenTime": "2018-10-03T00:03:53Z",
"lastSeenTime": "2022-02-09T10:52:21.229Z",
"uri": [
"https://INSTANCE/domainResults?domain=example.net&selectedList=DomainViewDistinctAssets&whoIsTimestamp=2022-02-09T11%3A51%3A52.393783515Z"
]
}
}
以下示例介绍了将丰富网域操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
[
{
"Entity": "example.com",
"EntityResult": {
"sources": [
{
"category": "Indicator was published in publicly available sources",
"firstActiveTime": "1970-01-01T00:00:01Z",
"lastActiveTime": "9999-12-31T23:59:59Z",
"addresses": [
{
"domain": "example.com"
}
],
"rawSeverity": "medium",
"confidenceScore": {
"strRawConfidenceScore": "100"
}
},
{
"category": "Phishing",
"firstActiveTime": null,
"lastActiveTime": "2020-11-27T14:31:37Z",
"addresses": [
{
"domain": "example.com"
},
{
"ipAddress": "IP_ADDRESS"
}
],
"rawSeverity": "high",
"confidenceScore": {
"strRawConfidenceScore": "high"
}
},
{
"category": "Indicator was published in publicly available sources",
"firstActiveTime": "1970-01-01T00:00:01Z",
"lastActiveTime": "9999-12-31T23:59:59Z",
"addresses": [
{
"domain": "example.com"
}
],
"rawSeverity": "medium",
"confidenceScore": {
"strRawConfidenceScore": "100"
}
}
],
"feeds": [
{
"metadata": {
"title": "Mandiant Open Source Intelligence",
"description": "Open Source Intel IoC",
"confidenceScoreBucket": {
"rangeEnd": 100
}
},
"iocs": [
{
"domainAndPorts": {
"domain": "example.com"
},
"categorization": "Indicator was published in publicly available sources",
"activeTimerange": {
"start": "1970-01-01T00:00:01Z",
"end": "9999-12-31T23:59:59Z"
},
"confidenceScore": "100",
"rawSeverity": "Medium"
}
]
},
{
"metadata": {
"title": "ESET Threat Intelligence",
"description": "ESET Threat Intelligence"
},
"iocs": [
{
"domainAndPorts": {
"domain": "example.com"
},
"categorization": "Phishing",
"activeTimerange": {
"end": "2020-11-27T14:31:37Z"
},
"ipAndPorts": {
"ipAddress": "IP_ADDRESS"
},
"confidenceScore": "High",
"rawSeverity": "High"
}
]
},
{
"metadata": {
"title": "Mandiant Active Breach Intelligence",
"description": "Mandiant Active Breach IoC",
"confidenceScoreBucket": {
"rangeEnd": 100
}
},
"iocs": [
{
"domainAndPorts": {
"domain": "example.com"
},
"categorization": "Indicator was published in publicly available sources",
"activeTimerange": {
"start": "1970-01-01T00:00:01Z",
"end": "9999-12-31T23:59:59Z"
},
"confidenceScore": "100",
"rawSeverity": "Medium"
}
]
}
]
}
}
]
输出消息
Enrich Domain 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully enriched the following domain in Google Chronicle:
LIST_OF_IDS |
操作成功。 |
Error executing action "Enrich Domain". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用丰富网域操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
丰富实体
使用丰富实体操作,在 Google SecOps 中查询指定实体类型的其他上下文和属性。此操作通过集成外部情报来增强威胁调查数据。
此操作在以下 Google SecOps 实体上运行:
DomainFile HashHostnameIP AddressURL(从网址中提取域名)UserEmail(具有电子邮件正则表达式的用户实体)
操作输入
Enrich Entities 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Namespace |
可选。 要扩充的实体的逻辑分组或范围。 如果未选择,则丰富功能会应用于默认命名空间或所有可访问命名空间中的实体。 实体必须属于此命名空间才能进行处理。 |
Time Frame |
可选。 相对时间范围(例如 此参数的优先级高于 |
Start Time |
可选。 丰富期的开始时间(采用 ISO 8601 格式)。 如果未设置 |
End Time |
可选。 丰富期的绝对结束时间,采用 ISO 8601 格式。 如果未设置 |
操作输出
丰富实体操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
| 扩充项字段 | 来源(JSON 密钥) | 适用性 |
|---|---|---|
GoogleSecOps_related_entities |
related_entities的数量 | 当 JSON 结果中提供时。 |
GoogleSecOps_alert_count_ruleName |
{alertCounts.count},表示每条特定规则 | 当 JSON 结果中提供时。 |
GoogleSecOps_first_seen |
metric.firstSeen |
当 JSON 结果中提供时。 |
GoogleSecOps_last_seen |
metric.lastSeen |
当 JSON 结果中提供时。 |
GoogleSecOps_flattened_key_under_entity |
键的值,从 "entity" 对象下的嵌套结构展平。 |
当 JSON 结果中提供时。 |
JSON 结果
以下示例展示了使用丰富实体操作时收到的 JSON 结果输出:
[
{
"Entity": "HTTP://MARKOSSOLOMON.COM/F1Q7QX.PHP",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/ChFtYXJrb3Nzb2xvbW9uLmNvbRDIAQ",
"metadata": { "entityType": "DOMAIN_NAME" },
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/ChFtYXJrb3Nzb2xvbW9uLmNvbRDIAQ",
"metadata": { "entityType": "DOMAIN_NAME" },
"entity": {
"domain": {
"name": "markossolomon.com",
"firstSeenTime": "1970-01-01T00:00:00Z",
"lastSeenTime": "1970-01-01T00:00:00Z",
"registrar": "NameCheap, Inc.",
"creationTime": "2013-12-06T02:41:09Z",
"updateTime": "2019-11-06T11:48:33Z",
"expirationTime": "2020-12-06T02:41:09Z",
"registrant": {
"userDisplayName": "WhoisGuard Protected",
"emailAddresses": [
"58d09cb5035042e9920408f8bafd0869.protect@whoisguard.com"
],
"personalAddress": { "countryOrRegion": "PANAMA" },
"companyName": "WhoisGuard, Inc."
}
}
}
},
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "npatni-sysops",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cg1ucGF0bmktc3lzb3BzEGYaBVl1cml5IhsKCwiC-OzCBhCAvYMUEgwIqvnnwwYQgMyI4QE",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:00:02.042Z",
"endTime": "2025-07-18T07:50:02.472Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cg1ucGF0bmktc3lzb3BzEGYaBVl1cml5IhsKCwiC-OzCBhCAvYMUEgwIqvnnwwYQgMyI4QE",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:00:02.042Z",
"endTime": "2025-07-18T07:50:02.472Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": { "hostname": "npatni-sysops" }
},
"metric": {
"firstSeen": "2025-06-25T00:00:02.042Z",
"lastSeen": "2025-07-18T07:50:02.472Z"
}
},
"metric": {
"firstSeen": "2025-06-25T00:00:02.042Z",
"lastSeen": "2025-07-18T07:50:02.472Z"
},
"alertCounts": [
{ "rule": "rule_Pavel_test_Risk_score", "count": "329" },
{ "rule": "rule_testbucket", "count": "339" },
{ "rule": "pavel_test2_rule_1749239699456", "count": "332" }
],
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{ "alertCount": 1000 }
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "exlab2019-ad",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CgxleGxhYjIwMTktYWQQZhoFWXVyaXkiGwoMCLv57MIGEMCp7qgDEgsI8PTnwwYQwLD6SA",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:03:07.891Z",
"endTime": "2025-07-18T07:40:32.153Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CgxleGxhYjIwMTktYWQQZhoFWXVyaXkiGwoMCLv57MIGEMCp7qgDEgsI8PTnwwYQwLD6SA",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:03:07.891Z",
"endTime": "2025-07-18T07:40:32.153Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": { "hostname": "exlab2019-ad" }
},
"metric": {
"firstSeen": "2025-06-25T00:03:07.891Z",
"lastSeen": "2025-07-18T07:40:32.153Z"
}
},
"metric": {
"firstSeen": "2025-06-25T00:03:07.891Z",
"lastSeen": "2025-07-18T07:40:32.153Z"
},
"alertCounts": [
{ "rule": "pavel_test2_rule_1749239699456", "count": "319" },
{ "rule": "rule_testbucket", "count": "360" },
{ "rule": "rule_Pavel_test_Risk_score", "count": "321" }
],
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{ "alertCount": 26 },
{ "alertCount": 175 },
{ "alertCount": 185 },
{ "alertCount": 195 },
{ "alertCount": 182 },
{ "alertCount": 168 },
{ "alertCount": 69 }
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "172.30.202.229",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cg4xNzIuMzAuMjAyLjIyORBkGgVZdXJpeSIbCgwIu_nswgYQwKnuqAMSCwjw9OfDBhDAsPpI",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:03:07.891Z",
"endTime": "2025-07-18T07:40:32.153Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cg4xNzIuMzAuMjAyLjIyORBkGgVZdXJpeSIbCgwIu_nswgYQwKnuqAMSCwjw9OfDBhDAsPpI",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-06-25T00:03:07.891Z",
"endTime": "2025-07-18T07:40:32.153Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": { "ip": ["172.30.202.229"] }
},
"metric": {
"firstSeen": "2025-06-25T00:03:07.891Z",
"lastSeen": "2025-07-18T07:40:32.153Z"
}
},
"metric": {
"firstSeen": "2025-06-25T00:03:07.891Z",
"lastSeen": "2025-07-18T07:40:32.153Z"
},
"alertCounts": [
{ "rule": "rule_Pavel_test_Risk_score", "count": "321" },
{ "rule": "rule_testbucket", "count": "360" },
{ "rule": "pavel_test2_rule_1749239699456", "count": "319" }
],
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{ "alertCount": 26 },
{ "alertCount": 175 },
{ "alertCount": 185 },
{ "alertCount": 195 },
{ "alertCount": 182 },
{ "alertCount": 168 },
{ "alertCount": 69 }
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "172.17.0.1",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CgoxNzIuMTcuMC4xEGQaBVl1cml5IhsKCwjOzre-BhDA1rU_EgwI9ZOMwAYQgPn82QM",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-03-09T19:09:02.133Z",
"endTime": "2025-04-19T02:27:01.994Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CgoxNzIuMTcuMC4xEGQaBVl1cml5IhsKCwjOzre-BhDA1rU_EgwI9ZOMwAYQgPn82QM",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-03-09T19:09:02.133Z",
"endTime": "2025-04-19T02:27:01.994Z"
}
},
"entity": { "namespace": "Yuriy", "asset": { "ip": ["172.17.0.1"] } },
"metric": {
"firstSeen": "2025-03-09T19:09:02.133Z",
"lastSeen": "2025-04-19T02:27:01.994Z"
}
},
"metric": {
"firstSeen": "2025-03-09T19:09:02.133Z",
"lastSeen": "2025-04-19T02:27:01.994Z"
},
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "911d039e71583a07320b32bde22f8e22",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CiA5MTFkMDM5ZTcxNTgzYTA3MzIwYjMyYmRlMjJmOGUyMhCwAiIVCgYItrj6ugYSCwi_9ufDBhDAyroV",
"metadata": {
"entityType": "FILE",
"interval": {
"startTime": "2024-12-15T09:07:02Z",
"endTime": "2025-07-18T07:43:59.045Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CiA5MTFkMDM5ZTcxNTgzYTA3MzIwYjMyYmRlMjJmOGUyMhCwAiIVCgYItrj6ugYSCwi_9ufDBhDAyroV",
"metadata": {
"entityType": "FILE",
"interval": {
"startTime": "2024-12-15T09:07:02Z",
"endTime": "2025-07-18T07:43:59.045Z"
}
},
"entity": {
"file": {
"sha256": "bc866cfcdda37e24dc2634dc282c7a0e6f55209da17a8fa105b07414c0e7c527",
"md5": "911d039e71583a07320b32bde22f8e22",
"sha1": "ded8fd7f36417f66eb6ada10e0c0d7c0022986e9",
"size": "278528",
"fileType": "FILE_TYPE_PE_EXE",
"names": [
"C:\\Windows\\System32\\cmd.exe",
"cmd",
"Cmd.Exe",
"C:\\Windows\\system32\\cmd.exe",
"C:\\Windows\\SYSTEM32\\cmd.exe",
"cmd.exe",
"C:\\\\Windows\\\\System32\\\\cmd.exe",
"C:\\windows\\SYSTEM32\\cmd.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\wjxpour4.d0f\\cmd.exe",
"c:\\Windows\\System32\\cmd.exe",
"Utilman.exe",
"c:\\windows\\system32\\cmd.exe",
"System32/cmd.exe",
"UtilityVM/Files/Windows/System32/cmd.exe",
"KerishDoctor/Data/KerishDoctor/Restore/cmd.rst",
"cmd.exe_",
"C:\\WINDOWS\\SYSTEM32\\cmd.exe",
"Cmd.exe",
"Windows/System32/cmd.exe",
"sethc.exe",
"C:\\WINDOWS\\System32\\cmd.exe",
"esRzqurX.exe",
"rofl.png",
"F:\\Windows\\SYSTEM32\\cmd.exe",
"utilman.exe",
"C:\\Windows\\system32\\CMD.exe",
"sys32exe/cmd.exe",
"cmd.txt",
"C:\\WINDOWS\\system32\\cmd.exe",
"cmd2.exe",
"Utilman.exe.sc",
"uhrHRIv8.exe",
"C:\\windows\\system32\\cmd.exe",
"submitted_file",
"C:\\Users\\user\\AppData\\Local\\Temp\\n1qo0bq3.2tn\\KerishDoctor\\Data\\KerishDoctor\\Restore\\cmd.rst",
"J6ff7z0hLYo.exe",
"N:\\Windows\\System32\\cmd.exe",
"Q:\\Windows\\System32\\cmd.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\cmd.exe",
"C:\\Users\\<USER>\\AppData\\Local\\Temp\\cmd.exe",
"test.exe",
"68E2F01F8DE9EFCAE9C0DD893DF0E8C34E2B5C98A6C4073C9C9E8093743D318600.blob",
"8FCVE0Kq.exe",
"cmd (7).exe",
"cmd (8).exe",
"21455_16499564_bc866cfcdda37e24dc2634dc282c7a0e6f55209da17a8fa105b07414c0e7c527_cmd.exe",
"LinX v0.9.11 (Intel)/cmd.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\inbvmkaa.1xd\\LinX v0.9.11 (Intel)\\cmd.exe",
"cmd_b.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\sfd5bhoe.nqi\\cmd.exe",
"cMd.exe",
"Repl_Check.bat__",
"cmd.pdf",
"cmd.EXE",
"C:\\Users\\user\\AppData\\Local\\Temp\\uszjr42t.kda\\cmd.exe",
"LFepc1St.exe",
"firefox.exe",
"3BcnNlWV.exe",
"Utilman.exebak",
"utilman1.exe",
"1.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\ispvscgp.ep2\\sys32exe\\cmd.exe",
"cmd_1771019736291028992.exe",
"C:\\Users\\user\\AppData\\Local\\Temp\\xijgwqvd.54g\\cmd.exe",
"Sethc.exe",
"\\Device\\CdRom1\\DANFE352023067616112\\DANFE352023067616112.EXE",
"DANFE352023067616112.exe",
"file.exe",
"DANFE352023067616112/DANFE352023067616112.exe",
"C:\\Windows\\SYSTEM32\\Cmd.exe",
"pippo.exe",
"C:\\Windows\\System32\\sethc.exe",
"cmd.exe-bws024-windowsfolder",
"whatever.exe",
"sethc.exe.bak",
"S71dbOR1.exe",
"F:\\windows\\SYSTEM32\\cmd.exe",
"L6puhWL7.exe",
"DANFE357986551413927.exe",
"DANFE357666506667634.exe",
"\\Device\\CdRom1\\DANFE357666506667634\\DANFE357666506667634.EXE",
"\\Device\\CdRom1\\DANFE357986551413927\\DANFE357986551413927.EXE",
"\\Device\\CdRom1\\DANFE358567378531506\\DANFE358567378531506.EXE",
"\\Device\\CdRom1\\HtmlFactura3f48daa069f0e42253194ca7b51e7481DPCYKJ4Ojk\\HTMLFACTURA3F48DAA069F0E42253194CA7B51E7481DPCYKJ4OJK.EXE",
"\\Device\\CdRom1\\DANFE357410790837014\\DANFE357410790837014.EXE",
"\\Device\\CdRom1\\DANFE357702036539112\\DANFE357702036539112.EXE",
"winlogon.exe",
"AccessibilityEscalation.A' in file 'utilman.exe'",
"qpl9AqT0.exe",
"C:\\windows\\system32\\CMD.exe",
"C:\\po8az\\2po9hmc\\4v1b5.exe",
"batya.exe",
"nqAwJaba.exe",
"\\Device\\CdRom1\\DANFE356907191810758\\DANFE356907191810758.EXE",
"/Volumes/10_11_2023/DANFE356907191810758/DANFE356907191810758.exe",
"/Volumes/09_21_2023/DANFE357986551413927/DANFE357986551413927.exe",
"\\Device\\CdRom1\\DANFE355460800350113\\DANFE355460800350113.EXE",
"/Volumes/09_19_2023/DANFE355460800350113/DANFE355460800350113.exe",
"DANFE352429512050669.exe",
"/Volumes/04_15_2023/HtmlFacturaeb58f4396e2028a70905705291031e7b3dlvDNyGp3/HtmlFacturaeb58f4396e2028a70905705291031e7b3dlvDNyGp3.exe"
],
"firstSeenTime": "2024-12-15T09:07:02Z",
"lastSeenTime": "2025-07-18T07:43:59.045Z",
"lastAnalysisTime": "2025-07-16T10:06:40Z",
"signatureInfo": {
"sigcheck": {
"verificationMessage": "Signed",
"verified": true,
"signers": [{ "name": "Microsoft Windows" }]
}
},
"firstSubmissionTime": "2025-07-15T16:30:27Z"
}
},
"metric": {
"firstSeen": "2024-12-15T09:07:02Z",
"lastSeen": "2025-07-18T07:43:59.045Z"
}
},
"metric": {
"firstSeen": "2024-12-15T09:07:02Z",
"lastSeen": "2025-07-18T07:43:59.045Z"
},
"alertCounts": [
{ "rule": "pavel_test2_rule_1749239699456", "count": "329" },
{ "rule": "rule_testbucket", "count": "345" },
{ "rule": "rule_Pavel_test_Risk_score", "count": "326" }
],
"timeline": {
"buckets": [
{},
{},
{},
{},
{ "alertCount": 31 },
{ "alertCount": 111 },
{ "alertCount": 109 },
{ "alertCount": 82 },
{ "alertCount": 86 },
{ "alertCount": 98 },
{ "alertCount": 86 },
{ "alertCount": 85 },
{ "alertCount": 92 },
{ "alertCount": 89 },
{ "alertCount": 90 },
{ "alertCount": 41 }
],
"bucketSize": "172800s"
},
"prevalenceResult": [
{ "prevalenceTime": "2025-01-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-29T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-30T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-01-31T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-02-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-29T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-30T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-03-31T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-29T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-04-30T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-29T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-30T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-05-31T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-16T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-17T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-18T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-19T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-20T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-21T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-22T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-23T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-24T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-25T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-26T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-27T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-28T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-29T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-06-30T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-01T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-02T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-03T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-04T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-05T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-06T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-07T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-08T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-09T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-10T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-11T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-12T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-13T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-14T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-15T00:00:00Z", "count": 1 },
{ "prevalenceTime": "2025-07-16T00:00:00Z", "count": 2 },
{ "prevalenceTime": "2025-07-17T00:00:00Z", "count": 2 },
{ "prevalenceTime": "2025-07-18T00:00:00Z", "count": 2 }
],
"relatedEntities": [
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/CgxleGxhYjIwMTktYWQQZhoFWXVyaXkiFQoGCPbso7wGEgsIv_bnwwYQwMq6FQ",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-01-16T12:07:18Z",
"endTime": "2025-07-18T07:43:59.045Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": {
"hostname": "exlab2019-ad",
"firstSeenTime": "2025-01-16T12:07:18Z"
}
},
"metric": {
"firstSeen": "2025-01-16T12:07:18Z",
"lastSeen": "2025-07-18T07:43:59.045Z"
}
},
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cg4xNzIuMzAuMjAyLjIyORBkGgVZdXJpeSIVCgYI9uyjvAYSCwi_9ufDBhDAyroV",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "2025-01-16T12:07:18Z",
"endTime": "2025-07-18T07:43:59.045Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": {
"ip": ["172.30.202.229"],
"firstSeenTime": "2025-01-16T12:07:18Z"
}
},
"metric": {
"firstSeen": "2025-01-16T12:07:18Z",
"lastSeen": "2025-07-18T07:43:59.045Z"
}
}
]
}
},
{
"Entity": "tencent.com",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cgt0ZW5jZW50LmNvbRDIASIQCgYInNyZvAYSBgjo-Jm8Bg",
"metadata": {
"entityType": "DOMAIN_NAME",
"interval": {
"startTime": "2025-01-14T14:01:00Z",
"endTime": "2025-01-14T15:02:00Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/Cgt0ZW5jZW50LmNvbRDIASIQCgYInNyZvAYSBgjo-Jm8Bg",
"metadata": {
"entityType": "DOMAIN_NAME",
"interval": {
"startTime": "2025-01-14T14:01:00Z",
"endTime": "2025-01-14T15:02:00Z"
}
},
"entity": {
"domain": {
"name": "tencent.com",
"firstSeenTime": "2025-01-14T14:01:00Z",
"lastSeenTime": "2025-01-14T15:02:00Z",
"registrar": "MarkMonitor Information Technology (Shanghai) Co., Ltd.",
"creationTime": "1998-09-14T04:00:00Z",
"updateTime": "2024-08-20T08:04:01Z",
"expirationTime": "2032-09-13T04:00:00Z",
"registrant": {
"emailAddresses": [""],
"personalAddress": { "countryOrRegion": "CHINA" },
"companyName": "\u6df1\u5733\u5e02\u817e\u8baf\u8ba1\u7b97\u673a\u7cfb\u7edf\u6709\u9650\u516c\u53f8"
}
}
},
"metric": {
"firstSeen": "2025-01-14T14:01:00Z",
"lastSeen": "2025-01-14T15:02:00Z"
}
},
"metric": {
"firstSeen": "2025-01-14T14:01:00Z",
"lastSeen": "2025-01-14T15:02:00Z"
},
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"bucketSize": "172800s"
}
}
},
{
"Entity": "00:50:56:b6:34:86",
"EntityResult": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/ChEwMDo1MDo1NjpiNjozNDo4NhBlGgVZdXJpeSIKCgASBgjemLzBBg",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "1970-01-01T00:00:00Z",
"endTime": "2025-05-22T11:37:02Z"
}
},
"entity": {
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/entities/ChEwMDo1MDo1NjpiNjozNDo4NhBlGgVZdXJpeSIKCgASBgjemLzBBg",
"metadata": {
"entityType": "ASSET",
"interval": {
"startTime": "1970-01-01T00:00:00Z",
"endTime": "2025-05-22T11:37:02Z"
}
},
"entity": {
"namespace": "Yuriy",
"asset": { "mac": ["00:50:56:b6:34:86"] }
},
"metric": {
"firstSeen": "1970-01-01T00:00:00Z",
"lastSeen": "2025-05-22T11:37:02Z"
}
},
"metric": {
"firstSeen": "1970-01-01T00:00:00Z",
"lastSeen": "2025-05-22T11:37:02Z"
},
"timeline": {
"buckets": [
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{}
],
"bucketSize": "172800s"
}
}
}
]
输出消息
Enrich Entities 操作可能会返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Enrich Entities". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表列出了使用丰富实体操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
丰富 IP - 已弃用
使用扩充 IP 操作,通过 Google SecOps 中 IoC 的信息来扩充 IP 实体。
此操作在“IP 地址”实体上运行。
操作输入
Enrich IP 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Create Insight |
可选。 如果选择此选项,该操作会创建包含实体相关信息的分析洞见。默认处于启用状态。 |
Only Suspicious Insight |
可选。 如果选中,该操作仅会为标记为可疑的实体创建数据分析。默认不启用。 如果您选择此参数,则还必须选择 |
Lowest Suspicious Severity |
必填。 与 IP 地址关联的最低严重级别,用于将其标记为可疑。 默认值为
|
Mark Suspicious N/A Severity |
必填。 如果选择此选项,并且严重程度信息不可用,则该操作会将实体标记为可疑。 |
操作输出
Enrich IP 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙表格
名称:ENTITY_IDENTIFIER
列:
- 来源
- 严重级别
- 类别
- 置信度
- 相关网域
实体丰富化
Enrich IP 操作支持以下实体丰富逻辑:
| 扩充项字段 | 逻辑(应用场景) |
|---|---|
severity |
当 JSON 中有可用数据时 |
average_confidence |
当 JSON 中有可用数据时 |
related_domains |
当 JSON 中有可用数据时 |
categories |
当 JSON 中有可用数据时 |
sources |
当 JSON 中有可用数据时 |
first_seen |
当 JSON 中有可用数据时 |
last_seen |
当 JSON 中有可用数据时 |
report_link |
当 JSON 中有可用数据时 |
JSON 结果
以下示例介绍了将丰富 IP 操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
{
"sources": [
{
"source": "Example List",
"confidenceScore": {
"normalizedConfidenceScore": "Low",
"intRawConfidenceScore": 0
},
"rawSeverity": "High",
"category": "Malware Command and Control Server"
}
],
"iocIngestTime": "2021-01-26T17:00:00Z",
"firstSeenTime": "2018-10-03T00:03:53Z",
"lastSeenTime": "2022-02-09T10:52:21.229Z",
"uri": [
"https://INSTANCE/domainResults?domain=example.net&selectedList=DomainViewDistinctAssets&whoIsTimestamp=2022-02-09T11%3A51%3A52.393783515Z"
]
}
}
以下示例介绍了将丰富 IP 操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
[
{
"Entity": "192.0.2.121",
"EntityResult": {
"sources": [
{
"category": "Indicator was published in publicly available sources",
"firstActiveTime": "1970-01-01T00:00:01Z",
"lastActiveTime": "9999-12-31T23:59:59Z",
"addresses": [
{
"ipAddress": "IP_ADDRESS"
}
],
"rawSeverity": "low",
"confidenceScore": {
"strRawConfidenceScore": "67"
}
}
],
"feeds": [
{
"metadata": {
"title": "Mandiant Open Source Intelligence",
"description": "Open Source Intel IoC",
"confidenceScoreBucket": {
"rangeEnd": 100
}
},
"iocs": [
{
"categorization": "Indicator was published in publicly available sources",
"activeTimerange": {
"start": "1970-01-01T00:00:01Z",
"end": "9999-12-31T23:59:59Z"
},
"ipAndPorts": {
"ipAddress": "IP_ADDRESS"
},
"confidenceScore": "67",
"rawSeverity": "Low"
}
]
}
]
}
}
]
输出消息
Enrich IP 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully enriched the following IPs from Google Chronicle:
LIST_OF_IPS |
操作成功。 |
Error executing action "Enrich IP". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用丰富 IP 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
执行 RetroHunt
使用执行 Retrohunt 操作在 Google SecOps 中执行规则 Retrohunt。
此操作不会在 Google SecOps 实体上运行。
操作输入
执行 Retrohunt 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Rule ID |
必填。 要运行 RetroHunt 的规则的 ID。 对于最新版本的规则,请使用格式 |
Time Frame |
可选。 要检索结果的时间段。 可能的值如下:
如果选择 默认值为 |
Start Time |
结果的开始时间,采用 ISO 8601 格式。 如果 |
End Time |
结果的结束时间,采用 ISO 8601 格式。
如果您未设置值,并为 |
操作输出
Execute Retrohunt 操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| 实体分析洞见 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了将执行 Retrohunt 操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"retrohuntId": "oh_d738c8ea-8fd7-4cc1-b43d-25835b8e1785",
"ruleId": "ru_30979d84-aa89-47d6-bf4d-b4bb0eacb497",
"versionId": "ru_30979d84-aa89-47d6-bf4d-b4bb0eacb497@v_1612472807_179679000",
"eventStartTime": "2021-01-14T23:00:00Z",
"eventEndTime": "2021-01-30T23:00:00Z",
"retrohuntStartTime": "2021-02-08T02:40:59.192113Z",
"state": "RUNNING"
}
以下示例介绍了将执行 Retrohunt 操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
{
"name": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/RetrohuntMetadata",
"retrohunt": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/rules/RULE_ID/retrohunts/RETROHUNT_ID",
"executionInterval": {
"startTime": "2025-01-22T12:16:20.963182Z",
"endTime": "2025-01-23T12:16:20.963182Z"
}
},
"retrohuntId": "RETROHUNT_ID",
"ruleId": "RULE_ID",
"versionId": "VERSION_ID",
"eventStartTime": "2025-01-22T12:16:20.963182Z",
"eventEndTime": "2025-01-23T12:16:20.963182Z"
}
输出消息
执行 Retrohunt 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully executed a retrohunt for the provided rule in Google
Chronicle.
|
操作成功。 |
Error executing action "Execute Retrohunt". Reason:
ERROR_REASON |
操作失败。
检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用执行 Retrohunt 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
执行 UDM 查询
使用执行 UDM 查询操作在 Google SecOps 中执行自定义 UDM 查询。
此操作不会在 Google SecOps 实体上运行。
操作输入
执行 UDM 查询操作需要以下参数:
| 参数 | 说明 |
|---|---|
Query |
必填。 要在 Google SecOps 中执行的查询。 |
Include Raw Log Data |
可选。 如果选择此选项,该操作会检索与 UDM 搜索结果关联的原始日志文件。 此选项仅在使用 Chronicle API 身份验证时可用。 默认情况下,该环境处于停用状态。 |
Time Frame |
可选。 要检索结果的时间段。 可能的值如下:
如果选择 默认值为 |
Start Time |
可选。 结果的开始时间,采用 ISO 8601 格式(例如 如果 时间范围不得超过 90 天。 |
End Time |
可选。 结果的结束时间,采用 ISO 8601 格式(例如 如果您未设置值,并且 时间范围不得超过 90 天。 |
Max Results To Return |
可选。 单次查询要返回的结果数。 最大值为 默认值为 |
操作输出
执行 UDM 查询操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用执行 UDM 查询操作时收到的 JSON 结果输出:
{
"events": [
{
"name": "02c2c701c5bb7e7042701ayyyyyyyyyx,4,16496990275yyyxx,EMAIL,",
"udm": {
"metadata": {
"enrichmentState": "ENRICHED",
"eventTimestamp": "2022-04-11T17:43:47.586Z",
"eventType": "EMAIL_TRANSACTION",
"ingestedTimestamp": "2022-04-11T15:50:21.912562Z",
"productName": "Chronicle Internal"
},
"network": {
"email": {
"from": "test@example.com",
"subject": [
"I did not create this service account"
],
"to": [
"test@example.com"
]
}
},
"principal": {
"asset": {
"assetId": "CS:8973060bcf1d441a8cf10eyyyyyyyyyx",
"hostname": "test-pc",
"ip": [
"10.2.xx.yyy"
],
"mac": [
"b5:1c:8b:xx:xx:xx"
]
},
"assetId": "CS:8973060bcf1d441a8cf10eyyyyyyyyyx",
"hostname": "test-pc",
"ip": [
"10.2.xx.yyy"
],
"location": {
"city": "San Francisco",
"countryOrRegion": "US",
"state": "California"
},
"mac": [
"b5:1c:8b:xx:xx:xx"
],
"user": {
"attribute": {
"labels": [
{
"key": "2FA Enabled",
"value": "false"
}
]
},
"department": [
"Cymbal Investments IT Contractors"
],
"emailAddresses": [
"test@example.com"
],
"groupIdentifiers": [
"Contractors"
],
"productObjectId": "test",
"title": "IT Support Agent",
"userDisplayName": "test test",
"userid": "test",
"windowsSid": "S-1-5-21-2623356yyy-8883713yyy-9684409yyy-yyyxx"
}
},
"rawLogData": {
"agent_id": "yyyyyy",
"aggregate_id": "yyyyyy",
"created_timestamp": "yyyyyy",
"decodedString": "yyyyyy",
"description": "yyyyyy",
"display_name": "yyyyyy",
"filename": "yyyyyy"
},
"securityResult": [
{
"action": [
"ALLOW"
]
}
]
}
},
{
"name": "02c2c701c5bb7e7042701ayyyyyyyyyx,3,16496987245yyyxx,EMAIL,",
"udm": {
"metadata": {
"enrichmentState": "ENRICHED",
"eventTimestamp": "2022-04-11T17:38:44.586Z",
"eventType": "EMAIL_TRANSACTION",
"ingestedTimestamp": "2022-04-11T15:50:21.912562Z",
"productName": "Chronicle Internal"
},
"network": {
"email": {
"from": "test@example.com",
"subject": [
"Did you create this service account"
],
"to": [
"test@example.com"
]
}
},
"principal": {
"asset": {
"assetId": "CS:8973060bcf1d441a8cf10eyyyyyyyyyx",
"hostname": "test-pc",
"ip": [
"10.2.xx.yyy"
],
"mac": [
"b5:1c:8b:xx:xx:xx"
]
},
"assetId": "CS:8973060bcf1d441a8cf10eyyyyyyyyyx",
"hostname": "test-pc",
"ip": [
"10.2.xx.yyy"
],
"location": {
"city": "San Francisco",
"countryOrRegion": "US",
"state": "California"
},
"mac": [
"b5:1c:8b:xx:xx:xx"
],
"user": {
"attribute": {
"labels": [
{
"key": "2FA Enabled",
"value": "false"
}
]
},
"department": [
"Cymbal Investments IT Contractors"
],
"emailAddresses": [
"test@example.com"
],
"groupIdentifiers": [
"Contractors"
],
"productObjectId": "test",
"title": "IT Support Agent",
"userDisplayName": "test test",
"userid": "test",
"windowsSid": "S-1-5-21-2623356yyy-8883713yyy-9684409yyy-yyyxx"
}
},
"rawLogData": {
"agent_id": "yyyyyy",
"aggregate_id": "yyyyyy",
"created_timestamp": "yyyyyy",
"decodedString": "yyyyyy",
"description": "yyyyyy",
"display_name": "yyyyyy",
"filename": "yyyyyy"
},
"securityResult": [
{
"action": [
"ALLOW"
]
}
]
}
},
{
"avg_seconds": {
"values": [
{
"doubleVal": 1755680893.3333333
}
]
},
"event_type_array": {
"values": [
{
"stringVal": "673961a71ba82e0556ef95cb2147e212"
}
]
},
"target.file.vhash": {
"values": [
{
"stringVal": "673961a71ba82e0556ef95cb2147e212"
}
]
}
}
]
}
输出消息
执行 UDM 查询操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Execute UDM Query". Reason:
ERROR_REASON
|
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
Error executing action "Execute UDM Query". Reason: you've reached a
rate limit. Please wait for several minutes and try again. |
操作失败。 请等待几分钟,然后再次运行该操作。 |
脚本结果
下表介绍了使用执行 UDM 查询操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
异步执行 UDM 查询
使用异步执行 UDM 查询操作在 Google SecOps 中执行自定义 UDM 查询。
此操作不会在 Google SecOps 实体上运行。
操作输入
执行 UDM 查询操作需要以下参数:
| 参数 | 说明 |
|---|---|
Query |
必填。 要在 Google SecOps 中执行的查询。 |
Time Frame |
可选。 要检索结果的时间段。 可能的值如下:
如果选择 如果选择 如果选择了 默认值为 |
Start Time |
可选。 结果的开始时间,采用 ISO 8601 格式 ( 如果 |
End Time |
可选。 结果的结束时间,采用 ISO 8601 格式 ( 如果您未设置值,并且 |
Max Results To Return |
可选。 单次查询要返回的结果数。 最大值为 默认值为 |
操作输出
Execute UDM Query Async 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用执行 UDM 查询异步操作时收到的 JSON 结果输出:
{
"events": [
{
"event": {
"metadata": {
"eventTimestamp": "2022-01-20T09:15:15.687Z",
"eventType": "USER_LOGIN",
"vendorName": "Microsoft",
"productName": "Active Directory",
"ingestedTimestamp": "2022-01-20T09:45:07.433587Z"
},
"principal": {
"hostname": "workstation-01",
"ip": [
"192.168.1.50"
],
"mac": [
"00:1A:2B:3C:4D:5E",
"00:1A:2B:3C:4D:5E",
"00:1A:2B:3C:4D:5E"
],
"location": {
"city": "Metropolis",
"state": "New York",
"countryOrRegion": "US"
},
"asset": {
"hostname": "workstation-01",
"ip": [
"192.168.1.50",
"192.168.1.50",
"192.168.1.50"
],
"mac": [
"00:1A:2B:3C:4D:5E",
"00:1A:2B:3C:4D:5E",
"00:1A:2B:3C:4D:5E"
]
}
},
"target": {
"user": {
"userid": "user_alpha",
"userDisplayName": "User Alpha",
"windowsSid": "S-1-5-21-1111111111-2222222222-3333333333-1000",
"emailAddresses": [
"alpha@example.com",
"admin.alpha@example.com"
],
"employeeId": "1234567",
"productObjectId": "11111111-2222-3333-4444-555555555555",
"firstName": "User",
"lastName": "Alpha",
"phoneNumbers": [
"555-0199-0000"
],
"title": "Executive Assistant",
"companyName": "Example Corp",
"department": [
"Executive - Admin"
],
"managers": [
{
"userDisplayName": "Manager Beta",
"windowsSid": "S-1-5-21-1111111111-2222222222-3333333333-2000",
"emailAddresses": [
"beta@example.com"
],
"employeeId": "7654321",
"productObjectId": "66666666-7777-8888-9999-000000000000",
"firstName": "Manager",
"lastName": "Beta",
"phoneNumbers": [
"555-0199-0001 ext 123"
],
"title": "Chief Technology Officer",
"companyName": "Example Corp",
"department": [
"Executive - Admin"
]
}
]
},
"ip": [
"203.0.113.10"
],
"email": "alpha@example.com",
"application": "Windows Sign In"
},
"securityResult": [
{
"summary": "Successful Login",
"action": [
"ALLOW"
]
}
],
"rawLogData": {
"agent_id": "00000000000000000000000000000001",
"aggregate_id": "aggind:00000000000000000000000000000001:123456789012",
"data_domains": [
"Endpoint"
],
"description": "A suspicious process related to a likely malicious file was launched. Review any binaries involved as they may be related to malware.",
"device": {
"agent_load_flags": "0",
"agent_local_time": "2025-08-07T01:42:54.415Z",
"agent_version": "7.27.18003.0",
"bios_manufacturer": "Generic Manufacturer LTD"
},
"template_instance_id": "10001",
"timestamp": "2025-08-19T15:08:13.742Z",
"user_name": "root"
},
"extensions": {
"auth": {
"type": "SSO"
}
}
},
"eventLogToken": "abcdef0123456789abcdef0123456789,1,1642670115687000,USER,|USER_LOGIN"
}
]
}
输出消息
执行 UDM 查询异步操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Execute UDM Query Async". Reason:
ERROR_REASON
|
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
Error executing action "Execute UDM Query Async ". Reason: you've reached a
rate limit. Please wait for several minutes and try again. |
操作失败。 请等待几分钟,然后再次运行该操作。 |
脚本结果
下表介绍了使用执行 UDM 查询异步操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
生成 UDM 查询
(预览版)在 Google SecOps 中,使用生成 UDM 查询操作,通过自然语言提示构建复杂的 UDM 查询。
此操作不会在 Google SecOps 实体上运行。
操作输入
生成 UDM 查询操作需要以下参数:
| 参数 | 说明 |
|---|---|
Prompt |
必填。 系统用于生成结构化 UDM 查询的提示。 |
操作输出
生成 UDM 查询操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用生成 UDM 查询操作时收到的 JSON 结果输出:
{
"query": "ip = \"10.0.0.1\""
}
输出消息
生成 UDM 查询操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully generated a UDM query in Google SecOps. |
操作成功。 |
Error executing action "Generate UDM Query". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用生成 UDM 查询操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
获取数据表
使用获取数据表操作检索 Google SecOps 中的可用数据表。
此操作不会在 Google SecOps 实体上运行。
数据表缓存
您可以启用缓存,以减少对 Google SecOps 的重复请求并加快 Playbook 运行速度:
缓存的工作原理:选择
Use Cache后,该操作会将检索到的数据表存储在 Google SecOps 环境的共享缓存中。在同一环境中,后续运行的 playbook 和受支持的数据表操作会重复使用缓存的数据,直到数据过期。完整表缓存:该操作始终会缓存每个匹配表的所有行(即使
Expanded Rows已停用或Max Data Table Rows To Return设置为较小的限制),以便值是否在数据表中和值是否在数据表中(异步)可以重复使用缓存。未过滤的首次运行:每个匹配表的所有行都会被缓存,因此在缓存为空或过期时,运行不带
Filter Value的操作可能需要更长时间。Cache TTL的影响:控制缓存数据在操作从 Google SecOps 提取新数据之前保持有效的时间:- TTL 较长:可减少 API 请求并加快 playbook 的运行速度,但数据表更新在缓存过期之前不会反映出来。
- TTL 较短:可让频繁更改的表的结果保持最新,但会增加对 Google SecOps 的请求。
操作输入
获取数据表操作需要以下参数:
| 参数 | 说明 |
|---|---|
Filter Key |
可选。 要作为过滤依据的键
可能的值如下: NameDescription |
Filter Logic |
可选。 要应用的过滤逻辑。 可能的值如下: Equal(针对完全匹配)Contains(对于子字符串匹配) |
Filter Value |
可选。 要在过滤条件中使用的值。 可能的值如下: Equal(针对完全匹配)Contains(对于子字符串匹配)
如果未提供任何内容,则不会应用过滤条件。 |
Expanded Rows |
可选。 如果选中,响应中会包含详细的数据表行。 |
Max Data Tables To Return |
必填。 要返回的数据表数量。 最大值为 |
Max Data Table Rows To Return |
必填。 要返回的数据表行数。 仅在启用 最大值为 |
Use Cache |
可选。 如果选中此选项,该操作会在可用时使用缓存的数据表结果,而不是在每次运行时都查询 Google SecOps。如需了解详情,请参阅数据表缓存。 |
Cache TTL |
可选。 缓存存留时间(以分钟为单位),在此时间之后,操作会从 Google SecOps 提取新数据。如需了解详情,请参阅数据表缓存。 最小值为 默认值为 |
操作输出
获取数据表操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用获取数据表操作时收到的 JSON 结果输出:
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table",
"displayName": "data_table",
"createTime": "2025-05-14T12:52:50.064133Z",
"updateTime": "2025-05-14T13:13:48.631442Z",
"columnInfo": [
{
"originalColumn": "columnName1",
"columnType": "STRING"
},
{
"columnIndex": 1,
"originalColumn": "columnName2",
"columnType": "STRING"
},
{
"columnIndex": 2,
"originalColumn": "columnName3",
"columnType": "STRING"
}
],
"dataTableUuid": "c3cce57bb8d940d5ac4523c37d540436",
"approximateRowCount": "2",
"Used cache": true,
"rows": [
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table/dataTableRows/840d18a85944833e1b97ed6d2fb11377",
"values": {
"columnName1": "asda",
"columnName2": "asdasd",
"columnName3": "zxczxc"
},
"createTime": "2025-05-14T12:52:51.908143Z",
"updateTime": "2025-05-14T12:52:51.908143Z"
}
]
}
输出消息
获取数据表操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully found data tables for the provided criteria in Google
SecOps |
操作成功。 |
Error executing action "Get Data Tables". Reason:
ERROR_REASON |
操作失败。
请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用获取数据表操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
获取检测详情
使用获取检测详情操作检索 Google SecOps 中检测的相关信息。
此操作不会在 Google SecOps 实体上运行。
操作输入
获取检测详情操作需要以下参数:
| 参数 | 说明 |
|---|---|
Rule ID |
必填。 与检测相关的规则的 ID。 对于最新版本的规则,请使用格式 |
Detection ID |
必填。 要提取详细信息的检测结果的 ID。 如果提供了特殊字符,操作不会失败,而是会返回检测结果列表。 |
Include Raw Log Data |
可选。 如果选择此选项,该操作会检索与 UDM 搜索结果关联的原始原始日志文件。 此选项仅在使用 Chronicle API 身份验证时可用。 默认情况下,该环境处于停用状态。 |
操作输出
获取检测详情操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用获取检测详情操作时收到的 JSON 结果输出:
{
"collectionElements": [
{
"label": "e",
"references": [
{
"event": {
"metadata": {
"eventTimestamp": "2023-10-04T21:18:44Z",
"eventType": "NETWORK_CONNECTION",
"id": "yyyx=",
"ingestedTimestamp": "2023-10-04T21:31:03.790969Z",
"logType": "UDM",
"productEventType": "Traffic - start",
"productLogId": "yyyx-yyyx-yyyx45fc-yyyx-yyyx",
"productName": "NGFW",
"vendorName": "Palo Alto Networks"
},
"network": {
"ipProtocol": "TCP",
"receivedBytes": "yyyyyyyyyxx",
"sentBytes": "yyyyyyyyyxx",
"sessionId": "yyyyyyyyyxx"
},
"principal": {
"asset": {
"hostname": "test3",
"ip": [
"00.0.0.00"
],
"mac": [
"00:00:00:0b:c9:11"
]
},
"hostname": "test3",
"ip": [
"x.x.0.x"
],
"mac": [
"00:00:00:0b:c9:11"
],
"port": 18985
},
"rawLogData": {
"action": "yyyyyy",
"decodedString": "yyyyyy",
"external_id": "yyyyyy",
"matching_status": "yyyyyy",
"severity": "yyyyyy",
"source": "yyyyyy"
},
"securityResult": [
{
"action": [
"ALLOW"
]
}
],
"target": {
"asset": {
"hostname": "youtube.com"
},
"hostname": "youtube.com",
"port": 4548
}
}
}
]
}
],
"createdTime": "2023-10-04T22:16:22.145254Z",
"detection": [
{
"alertState": "ALERTING",
"riskScore": 40,
"ruleId": "yyyx-f66d-yyyx-yyyx-yyyx",
"ruleLabels": [
{
"key": "priority",
"value": "Medium"
},
{
"key": "severity",
"value": "Medium"
}
],
"ruleName": "dns_not_google",
"ruleType": "SINGLE_EVENT",
"ruleVersion": "yyyx-yyyx-yyyx-b682-yyyx@yyyx",
"urlBackToProduct": "https://unotest2.backstory-dev.chronicle.yyyx/alert?yyyx=yyyx-e380-yyyx-d29c-yyyx"
}
],
"detectionTime": "2023-10-04T21:18:44Z",
"id": "yyyx-e380-yyyx-yyyx-yyyx",
"timeWindow": {
"endTime": "2023-10-04T21:18:44Z",
"startTime": "2023-10-04T21:18:44Z"
},
"type": "RULE_DETECTION"
}
输出消息
获取检测详情操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully fetched information about the detection with ID
DETECTION_ID in Google Chronicle. |
操作成功。 |
Error executing action "Get Detection Details". Reason:
ERROR_REASON |
操作失败。
请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用获取检测详情操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
获取参考列表
使用获取参考列表操作检索 Google SecOps 中的可用参考列表。
此操作不会在 Google SecOps 实体上运行。
操作输入
获取参考列表操作需要以下参数:
| 参数 | 说明 |
|---|---|
Filter Key |
用于过滤的键。
可能的值如下:
|
Filter Logic |
要应用的过滤逻辑。 可能的值如下: Equal(针对完全匹配)Contains(对于子字符串匹配)默认值为 |
Filter Value |
要在过滤条件中使用的值。
可能的值如下: Equal(针对完全匹配)Contains(对于子字符串匹配)
如果未提供任何值,则不会应用过滤条件。 |
Expanded Details |
如果选择此选项,该操作会返回有关参考列表的详细信息。
默认不启用。 |
Max Reference Lists To Return |
要返回的参考列表数量。
默认值为 |
操作输出
获取参考列表操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙表格
在案例墙上,获取参考列表会提供下表:
名称:可用参考列表
列:
- 名称
- 说明
- 类型
JSON 结果
以下示例介绍了将 Get Reference Lists 操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"name": "list_name",
"description": "description of the list",
"lines": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"create_time": "2020-11-20T17:18:20.409247Z",
"content_type": "CIDR"
}
以下示例介绍了将获取参考列表操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
[
{
"name": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/referenceLists/REFERENCE_LIST_ID",
"displayName": "REFERENCE_LIST_ID",
"revisionCreateTime": "2025-01-09T15:53:10.851775Z",
"description": "Test reference list",
"syntaxType": "REFERENCE_LIST_SYNTAX_TYPE_PLAIN_TEXT_STRING",
"scopeInfo": {
"referenceListScope": {}
},
"createTime": "2025-01-09T15:53:10.851775Z"
}
]
输出消息
获取参考列表操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action
ACTION_NAME. Reason:
ERROR_REASON
|
操作失败。
检查与服务器的连接、输入参数或凭据。 |
Error executing action
ACTION_NAME. Reason: "Invalid
value was provided for "Max Reference Lists to Return":
PROVIIDED_VALUE. Positive number should be provided. |
操作失败。
检查 |
脚本
下表介绍了使用获取参考列表操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
获取规则详情
使用获取规则详情操作可检索 Google SecOps 中规则的相关信息。
此操作不会在 Google SecOps 实体上运行。
操作输入
获取规则详情操作需要以下参数:
| 参数 | 说明 |
|---|---|
Rule ID |
必填。 要提取详细信息的规则的唯一 ID。 默认值为 |
操作输出
获取规则详情操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了将获取规则详情操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"ruleId": "ru_e6abfcb5-1b85-41b0-b64c-695b3250436f",
"versionId": "ru_e6abfcb5-1b85-41b0-b64c-695b3250436f@v_1602631093_146879000",
"ruleName": "SampleRule",
"metadata": {
"description": "Sample Description of the Rule",
"author": "author@example.com"
},
"ruleText": "rule SampleRule {
meta:
description = \"Sample Description of the Rule\"
author = \"author@example.com\"
events:
// This will just generate lots of detections
$event.metadata.event_type = \"NETWORK_HTTP\"
condition:
$event
} ",
"liveRuleEnabled": true,
"versionCreateTime": "2020-10-13T23:18:13.146879Z",
"compilationState": "SUCCEEDED"
}
以下示例介绍了将获取规则详情操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
{
"name": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/rules/RULE_ID",
"revisionId": "v_1733917896_973567000",
"displayName": "Test_rule_SingleEvent",
"text": "rule Test_rule_SingleEvent {\n // This rule matches single events. Rules can also match multiple events within\n // some time window. For details about how to write a multi-event rule, see\n // URL\n\n meta:\n // Allows for storage of arbitrary key-value pairs of rule details - who\n // wrote it, what it detects on, version control, etc.\n // The \"author\" and \"severity\" fields are special, as they are used as\n // columns on the rules dashboard. If you want to sort based on\n // these fields on the dashboard, make sure to add them here.\n // Severity value, by convention, should be \"Low\", \"Medium\" or \"High\"\n author = \"example_user\"\n description = \"windowed single event example rule\"\n //severity = \"Medium\"\n\n events:\n $e.metadata.event_type = \"USER_LOGIN\"\n $e.principal.user.userid = $user\n\n //outcome:\n // For a multi-event rule an aggregation function is required\n // e.g., risk_score = max(0)\n // See URL\n //$risk_score = 0\n match:\n $user over 1m\n\n condition:\n #e > 0\n}\n",
"author": "example_user",
"metadata": {
"author": "example_user",
"description": "windowed single event example rule",
"severity": null
},
"createTime": "2024-12-11T11:36:18.192127Z",
"revisionCreateTime": "2024-12-11T11:51:36.973567Z",
"compilationState": "SUCCEEDED",
"type": "SINGLE_EVENT",
"allowedRunFrequencies": [
"LIVE",
"HOURLY",
"DAILY"
],
"etag": "CMj55boGEJjondAD",
"ruleId": "RULE_ID",
"versionId": "RULE_ID@v_1733917896_973567000",
"ruleName": "Test_rule_SingleEvent",
"ruleText": "rule Test_rule_SingleEvent {\n // This rule matches single events. Rules can also match multiple events within\n // some time window. For details about how to write a multi-event rule, see\n // URL\n\n meta:\n // Allows for storage of arbitrary key-value pairs of rule details - who\n // wrote it, what it detects on, version control, etc.\n // The \"author\" and \"severity\" fields are special, as they are used as\n // columns on the rules dashboard. If you want to sort based on\n // these fields on the dashboard, make sure to add them here.\n // Severity value, by convention, should be \"Low\", \"Medium\" or \"High\"\n author = \"example_user\"\n description = \"windowed single event example rule\"\n //severity = \"Medium\"\n\n events:\n $e.metadata.event_type = \"USER_LOGIN\"\n $e.principal.user.userid = $user\n\n //outcome:\n // For a multi-event rule an aggregation function is required\n // e.g., risk_score = max(0)\n // See URL\n //$risk_score = 0\n match:\n $user over 1m\n\n condition:\n #e > 0\n}\n",
"ruleType": "SINGLE_EVENT",
"versionCreateTime": "2024-12-11T11:51:36.973567Z"
}
输出消息
获取规则详情操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully fetched information about the rule with ID
RULE_ID in Google Chronicle.
|
操作成功。 |
Error executing action "Get Rule Details". Reason:
ERROR_REASON
|
操作失败。
检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用获取规则详情操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
CIDR 是否在数据表中
使用 Is CIDR In Data Table 检查是否在 Google SecOps 的特定数据表中找到了特定 CIDR 值。
此操作不会在 Google SecOps 实体上运行。
操作输入
CIDR 是否在数据表中操作需要以下参数:
| 参数 | 说明 |
|---|---|
Data Table Name |
必填。 要搜索的数据表的显示名称。 |
Column |
可选。 要在数据表中搜索的列的逗号分隔列表。 如果您不提供值,该操作会搜索所有列。 |
CIDR |
必填。 要在数据表中搜索的 CIDR 值的逗号分隔列表。 |
Max Data Table Rows To Return |
必填。 要为每个匹配值返回的数据表行数。 最大值为 默认值为 |
操作输出
Is CIDR In Data Table 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用 Is CIDR In Data Table 操作时收到的 JSON 结果输出:
[{
"Entity": "asda",
"EntityResult": {
"is_found": true,
"matched_rows": [
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table/dataTableRows/840d18a85944833e1b97ed6d2fb11377",
"values": {
"columnName1": "asda",
"columnName2": "asdasd",
"columnName3": "zxczxc"
},
"createTime": "2025-05-14T12:52:51.908143Z",
"updateTime": "2025-05-14T12:52:51.908143Z"
}
]
}
}]
输出消息
Is CIDR In Data Table 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully searched provided CIDR values in the data table
DATA_TABLE_NAME in Google SecOps |
操作成功。 |
Error executing action "Is CIDR In Data Table". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用数据表中的 CIDR 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
值是否在数据表中
使用值是否在数据表中检查提供的值是否在 Google SecOps 的数据表中。
此操作不会在 Google SecOps 实体上运行。
数据表缓存
您可以启用缓存,以减少对 Google SecOps 的重复请求并加快 Playbook 运行速度:
缓存的工作原理:选择
Use Cache后,该操作会将检索到的数据表存储在 Google SecOps 环境的共享缓存中。在同一环境中,后续运行的 playbook 和受支持的数据表操作会重复使用缓存的数据,直到数据过期。完整表缓存:当缓存为空或过期时,该操作会提取并缓存整个数据表,而不仅仅是与
Values匹配的行。随后,在同一表中搜索不同值时,可以重复使用缓存,而无需查询 Google SecOps。输出行数限制:
Max Data Table Rows To Return会限制在操作输出中为每个值返回的匹配行数,而不是缓存中存储的行数。Cache TTL的影响:控制缓存数据在操作从 Google SecOps 提取新数据之前保持有效的时间:- TTL 较长:可减少 API 请求并加快 playbook 的运行速度,但数据表更新在缓存过期之前不会反映出来。
- TTL 较短:可让频繁更改的表的结果保持最新,但会增加对 Google SecOps 的请求。
操作输入
Is Value In Data Table 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Data Table Name |
必填。 要搜索的数据表的显示名称。 |
Column |
可选。 要搜索的列的逗号分隔列表。 如果未提供值,该操作会搜索所有列。 |
Values |
必填。 要搜索的值的逗号分隔列表。 |
Case Insensitive Search |
可选。 如果选中,搜索不区分大小写。 默认处于启用状态。 |
Max Data Table Rows To Return |
必填。 每个匹配值要返回的数据表行数。 最大值为 |
Use Cache |
可选。 如果选中此选项,该操作会在可用时使用缓存的数据表结果,而不是在每次运行时都查询 Google SecOps。如需了解详情,请参阅数据表缓存。 |
Cache TTL |
可选。 缓存存留时间(以分钟为单位),在此时间之后,操作会从 Google SecOps 提取新数据。如需了解详情,请参阅数据表缓存。 最小值为 默认值为 |
操作输出
Is Value In Data Table 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用值是否在数据表中操作时收到的 JSON 结果输出:
[{
"Entity": "asda",
"EntityResult": {
"is_found": true,
"Used cache": true,
"matched_rows": [
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table/dataTableRows/840d18a85944833e1b97ed6d2fb11377",
"values": {
"columnName1": "asda",
"columnName2": "asdasd",
"columnName3": "zxczxc"
},
"createTime": "2025-05-14T12:52:51.908143Z",
"updateTime": "2025-05-14T12:52:51.908143Z"
}
]
}
}]
输出消息
Is Value In Data Table(值是否在数据表中)操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully searched provided values in the data table
DATA_TABLE_NAME
in Google SecOps.
|
操作成功。 |
| 执行“值是否在数据表中”操作时出错。原因: ERROR_REASON | 操作失败。
请检查与服务器的连接、输入参数或凭据。 |
Error executing action "Is Value In Data Table". Reason: the
following data tables were not found in:
DATA_TABLE_NAME:
COLUMN_NAMES. Please check the
spelling.
|
操作失败。 |
Error executing action "Is Value In Data Table". Reason:
This action isn't supported for Backstory API configuration. Please update
the integration configuration.
|
操作失败。 |
脚本结果
下表介绍了使用数据表中是否存在值操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
值是否在数据表中(异步)
使用值是否在数据表中(异步)操作,通过长时间运行的搜索操作,异步检查 Google SecOps 的数据表中是否存在提供的值。
此操作不会在 Google SecOps 实体上运行。
数据表缓存
您可以启用缓存,以减少对 Google SecOps 的重复请求并加快 Playbook 运行速度:
缓存的工作原理:选择
Use Cache后,该操作会将检索到的数据表存储在 Google SecOps 环境的共享缓存中。在同一环境中,后续运行的 playbook 和受支持的数据表操作会重复使用缓存的数据,直到数据过期。缓存时立即完成:如果数据表存在有效缓存,该操作会搜索缓存并立即完成,而不会在 Google SecOps 中启动异步搜索。
超过 1,000,000 行的表:如果数据表超过 1,000,000 行,该操作仍会返回搜索结果,但会跳过缓存表,以避免存储不完整的副本。
Cache TTL的影响:控制缓存数据在操作从 Google SecOps 提取新数据之前保持有效的时间:- TTL 较长:可减少 API 请求并加快 playbook 的运行速度,但数据表更新在缓存过期之前不会反映出来。
- TTL 较短:可让频繁更改的表的结果保持最新,但会增加对 Google SecOps 的请求。
操作输入
Is Value In Data Table Async 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Data Table Name |
必填。 要搜索的数据表的显示名称。 |
Column |
可选。 要在数据表中搜索的列的逗号分隔列表。 如果未提供值,该操作会搜索所有列。 |
Values |
必填。 要在数据表中搜索的值的逗号分隔列表。 |
Case Insensitive Search |
可选。 如果选中,搜索不区分大小写。 默认处于启用状态。 |
Max Data Table Rows To Return |
必填。 要为每个匹配值返回的数据表行数。 最大值为 默认值为 |
Use Cache |
可选。 如果选中此选项,该操作会在可用时使用缓存的数据表结果,而不是在每次运行时都查询 Google SecOps。如需了解详情,请参阅数据表缓存。 |
Cache TTL |
可选。 缓存存留时间(以分钟为单位),在此时间之后,操作会从 Google SecOps 提取新数据。如需了解详情,请参阅数据表缓存。 最小值为 默认值为 |
操作输出
Is Value In Data Table Async 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用数据表中是否存在值(异步)操作时收到的 JSON 结果输出:
[
{
"Entity": "example_value",
"EntityResult": {
"is_found": true,
"Used cache": true,
"matched_rows": [
{
"createTime": "",
"name": "projects/{project_id}/locations/{location}/instances/{instance_id}/dataTables/{table_id}/dataTableRows/{row_id}",
"updateTime": "",
"values": {
"columnName1": "example_value",
"columnName2": "sample_data"
}
}
]
}
}
]
输出消息
Is Value In Data Table Async 操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully searched provided values in the data table
DATA_TABLE_NAME.
|
操作成功。 |
Error executing action "Is Value In Data Table Async". Reason:
ERROR_REASON.
|
操作失败。 |
脚本结果
下表介绍了使用数据表中是否存在值(异步)操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
值是否在参考列表中
使用值是否在引用列表中操作,检查 Google SecOps 的引用列表中是否包含提供的值。
此操作不会在 Google SecOps 实体上运行。
操作输入
Is Value In Reference List 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Reference List Names |
必填。 要搜索的参考列表名称的逗号分隔列表。 |
Values |
必填。 要搜索的值的逗号分隔列表。 |
Case Insensitive Search |
可选。 如果选中,搜索不区分大小写。 |
操作输出
Is Value In Reference List 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了将值是否在参考列表中操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"Entity": "example.com",
"EntityResult": {
"found_in": [
"Reference list names, where item was found"
],
"not_found_in": [
"Reference list names, where items wasn't found"
],
"overall_status": "found, if at least one reference list had the value/not found, if non of the reference lists found the value"
}
}
以下示例说明了将值是否在参考列表中操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
{
"Entity": "example.com",
"EntityResult": {
"found_in": [
"Reference list names, where item was found"
],
"not_found_in": [
"Reference list names, where items wasn't found"
],
"overall_status": "found, if at least one reference list had the value/not found, if non of the reference lists found the value"
}
}
输出消息
值是否在参考列表中操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully searched provided values in the reference lists in
Google Chronicle.
|
操作成功。 |
| 执行“值是否在参考列表中”操作时出错。原因: ERROR_REASON | 操作失败。
检查与服务器的连接、输入参数或凭据。 |
Error executing action "Is Value In Reference List". Reason: the
following reference lists were not found in Google Chronicle:
MISSING_REFERENCE_LIST_NAME(S).
Please use the action "Get Reference Lists" to see what reference lists are
available.
|
操作失败。 运行获取参考列表操作,以检查可用列表。 |
脚本结果
下表介绍了使用值是否在参考列表中操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
列出资产
使用列出资产操作,根据指定时间段内的相关实体列出 Google SecOps 中的资产。
此操作仅支持 MD5、SHA-1 和 SHA-256 哈希。
此操作在以下 Google SecOps 实体上运行:
URLIP AddressHash
操作输入
列出资产操作需要以下参数:
| 参数 | 说明 |
|---|---|
Max Hours Backwards |
提取资产之前的小时数。
默认值为 |
Create Insight |
如果选择此选项,该操作会创建包含实体相关信息的分析洞见。 默认处于启用状态。 |
Max Assets To Return |
要返回的资产数量。 默认值为 |
Time Frame |
可选。 要检索结果的时间段。 可能的值如下:
如果选择 默认值为 |
Start Time |
开始时间(采用 ISO 8601 格式)。 如果 |
End Time |
结束时间,采用 ISO 8601 格式。
如果您未设置值,并将 |
操作输出
列出资产操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙表格
名称:ENTITY_IDENTIFIER
列:
- 主机名
- IP 地址
- 首次发现的宇宙文物
- 上次看到的工件
JSON 结果
以下示例介绍了将列出资产操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"assets": [
{
"asset": {
"hostname": "example"
},
"firstSeenArtifactInfo": {
"artifactIndicator": {
"domainName": "www.example.com"
},
"seenTime": "2020-02-28T09:18:15.675Z"
},
"lastSeenArtifactInfo": {
"artifactIndicator": {
"domainName": "www.example.com"
},
"seenTime": "2020-09-24T06:43:59Z"
}
}
],
"uri": [
"https://INSTANCE/domainResults?domain=www.example.com&selectedList=DomainViewDistinctAssets&whoIsTimestamp=2020-09-27T12%3A07%3A34.166830443Z"
]
}
以下示例介绍了将列出资产操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
[
{
"Entity": "192.0.2.229",
"EntityResult": {
"assets": [
{
"artifactIndicator": {
"domain": "example.com"
},
"sources": [
"Mandiant Open Source Intelligence"
],
"categories": [
"Indicator was published in publicly available sources"
],
"assetIndicators": [
{
"assetIpAddress": "192.0.2.229"
}
],
"iocIngestTimestamp": "2024-09-20T14:14:07.843Z",
"firstSeenTimestamp": "2025-01-15T11:20:00Z",
"lastSeenTimestamp": "2025-01-15T11:20:00Z",
"filterProperties": {
"stringProperties": {
"TLD": {
"values": [
{
"rawValue": ".com"
}
]
},
"IOC FEED": {
"values": [
{
"rawValue": "Mandiant Open Source Intelligence"
}
]
},
"IOC CATEGORIES": {
"values": [
{
"rawValue": "Indicator was published in publicly available sources"
}
]
},
"IOC CONFIDENCE SCORE": {
"values": [
{
"rawValue": "High"
}
]
},
"IOC/ALERT SEVERITY": {
"values": [
{
"rawValue": "Medium"
}
]
}
}
},
"confidenceBucket": "High",
"rawSeverity": "Medium",
"logType": "OPEN_SOURCE_INTEL_IOC",
"confidenceScore": 100,
"globalCustomerId": "ID",
"confidenceScoreBucket": {
"rangeEnd": 100
},
"categorization": "Indicator was published in publicly available sources",
"domainAndPorts": {
"domain": "example.com"
},
"activeTimerange": {
"startTime": "1970-01-01T00:00:01Z",
"endTime": "9999-12-31T23:59:59Z"
},
"feedName": "MANDIANT",
"id": "ID",
"fieldAndValue": {
"value": "ex ",
"valueType": "DOMAIN_NAME"
}
},
{
"artifactIndicator": {
"domain": "example.com"
},
"sources": [
"Mandiant Active Breach Intelligence"
],
"categories": [
"Indicator was published in publicly available sources"
],
"assetIndicators": [
{
"assetIpAddress": "192.0.2.229"
}
],
"iocIngestTimestamp": "2023-07-05T02:42:52.935Z",
"firstSeenTimestamp": "2025-01-15T11:20:00Z",
"lastSeenTimestamp": "2025-01-15T11:20:00Z",
"filterProperties": {
"stringProperties": {
"IOC/ALERT SEVERITY": {
"values": [
{
"rawValue": "Medium"
}
]
},
"IOC CONFIDENCE SCORE": {
"values": [
{
"rawValue": "High"
}
]
},
"IOC FEED": {
"values": [
{
"rawValue": "Mandiant Active Breach Intelligence"
}
]
},
"IOC CATEGORIES": {
"values": [
{
"rawValue": "Indicator was published in publicly available sources"
}
]
},
"TLD": {
"values": [
{
"rawValue": ".com"
}
]
}
}
},
"confidenceBucket": "High",
"rawSeverity": "Medium",
"logType": "MANDIANT_ACTIVE_BREACH_IOC",
"confidenceScore": 100,
"globalCustomerId": "ID",
"confidenceScoreBucket": {
"rangeEnd": 100
},
"categorization": "Indicator was published in publicly available sources",
"domainAndPorts": {
"domain": "example.com"
},
"activeTimerange": {
"startTime": "1970-01-01T00:00:01Z",
"endTime": "9999-12-31T23:59:59Z"
},
"feedName": "MANDIANT",
"id": "ID",
"fieldAndValue": {
"value": "example.com",
"valueType": "DOMAIN_NAME"
}
}
],
"uri": "https://INSTANCE.backstory.chronicle.security/destinationIpResults?ADDRESS=192.0.2.229&selectedList=IpViewDistinctAssets&referenceTime=2025-01-23T11%3A16%3A24.517449Z"
}
}
]
输出消息
列出资产操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully listed related assets for the following entities
from Google Chronicle:
ENTITY_IDENTIFIER |
操作成功。 |
Error executing action "List Assets". Reason:
ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用列出资产操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
列出事件
使用列出事件操作可列出特定资产在指定时间段内的事件。
此操作只能检索 10,000 个事件。
此操作在以下 Google SecOps 实体上运行:
IP addressMAC addressHostname
操作输入
列出事件操作需要以下参数:
| 参数 | 说明 |
|---|---|
Event Types |
以英文逗号分隔的事件类型列表。
如果未提供值,系统会提取所有事件类型。 如需查看所有可能值的列表,请参阅事件类型可能的值。 |
Time Frame |
指定的时间段。我们建议您尽可能缩小此范围,以获得更好的结果。
如果选择了 如果选择 可能的值如下:
默认值为 |
Start Time |
开始时间(采用 ISO 8601 格式)。 如果 |
End Time |
结束时间(采用 ISO 8601 格式)。 如果未提供任何值,并且 此参数接受 |
Reference Time |
事件搜索的参考时间。
如果未提供任何值,则操作会使用结束时间作为参考。 |
Output |
必填。 输出格式。 可能的值如下:
|
Max Events To Return |
要为每种实体类型处理的事件数量。 默认值为 |
事件类型的可能值
Event Type 参数的可能值如下:
EVENTTYPE_UNSPECIFIEDPROCESS_UNCATEGORIZEDPROCESS_LAUNCHPROCESS_INJECTIONPROCESS_PRIVILEGE_ESCALATIONPROCESS_TERMINATIONPROCESS_OPENPROCESS_MODULE_LOADREGISTRY_UNCATEGORIZEDREGISTRY_CREATIONREGISTRY_MODIFICATIONREGISTRY_DELETIONSETTING_UNCATEGORIZEDSETTING_CREATIONSETTING_MODIFICATIONSETTING_DELETIONMUTEX_UNCATEGORIZEDMUTEX_CREATIONFILE_UNCATEGORIZEDFILE_CREATIONFILE_DELETIONFILE_MODIFICATIONFILE_READFILE_COPYFILE_OPENFILE_MOVEFILE_SYNCUSER_UNCATEGORIZEDUSER_LOGINUSER_LOGOUTUSER_CREATIONUSER_CHANGE_PASSWORDUSER_CHANGE_PERMISSIONSUSER_STATSUSER_BADGE_INUSER_DELETIONUSER_RESOURCE_CREATIONUSER_RESOURCE_UPDATE_CONTENTUSER_RESOURCE_UPDATE_PERMISSIONSUSER_COMMUNICATIONUSER_RESOURCE_ACCESSUSER_RESOURCE_DELETIONGROUP_UNCATEGORIZEDGROUP_CREATIONGROUP_DELETIONGROUP_MODIFICATIONEMAIL_UNCATEGORIZEDEMAIL_TRANSACTIONEMAIL_URL_CLICKNETWORK_UNCATEGORIZEDNETWORK_FLOWNETWORK_CONNECTIONNETWORK_FTPNETWORK_DHCPNETWORK_DNSNETWORK_HTTPNETWORK_SMTPSTATUS_UNCATEGORIZEDSTATUS_HEARTBEATSTATUS_STARTUPSTATUS_SHUTDOWNSTATUS_UPDATESCAN_UNCATEGORIZEDSCAN_FILESCAN_PROCESS_BEHAVIORSSCAN_PROCESSSCAN_HOSTSCAN_VULN_HOSTSCAN_VULN_NETWORKSCAN_NETWORKSCHEDULED_TASK_UNCATEGORIZEDSCHEDULED_TASK_CREATIONSCHEDULED_TASK_DELETIONSCHEDULED_TASK_ENABLESCHEDULED_TASK_DISABLESCHEDULED_TASK_MODIFICATIONSYSTEM_AUDIT_LOG_UNCATEGORIZEDSYSTEM_AUDIT_LOG_WIPESERVICE_UNSPECIFIEDSERVICE_CREATIONSERVICE_DELETIONSERVICE_STARTSERVICE_STOPSERVICE_MODIFICATIONGENERIC_EVENTRESOURCE_CREATIONRESOURCE_DELETIONRESOURCE_PERMISSIONS_CHANGERESOURCE_READRESOURCE_WRITTENANALYST_UPDATE_VERDICTANALYST_UPDATE_REPUTATIONANALYST_UPDATE_SEVERITY_SCOREANALYST_UPDATE_STATUSANALYST_ADD_COMMENT
操作输出
列出事件操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用列出事件操作时收到的 JSON 结果输出:
{
"statistics": {
"NETWORK_CONNECTION": 10
}
{
"events": [
{
"metadata": {
"eventTimestamp": "2020-09-28T14:20:00Z",
"eventType": "NETWORK_CONNECTION",
"productName": "EXAMPLE Name",
"productEventType": "NETWORK_DNS",
"ingestedTimestamp": "2020-09-28T16:28:11.615578Z"
},
"principal": {
"hostname": "user-example-pc",
"assetId": "EXAMPLE:user-example-pc",
"process": {
"pid": "1101",
"productSpecificProcessId": "EXAMPLE:32323"
}
},
"target": {
"hostname": "example.com",
"user": {
"userid": "user"
},
"process": {
"pid": "8172",
"file": {
"md5": "a219fc7fcc93890a842183388f80369e",
"fullPath": "C:\\Program Files(x86)\\adobe\\acrobat reader dc\\reader\\acrord32.exe"
},
"commandLine": "\"C:\\Program Files(x86)\\adobe\\acrobat reader dc\\reader\\acrord32.exe\" ...",
"productSpecificProcessId": "EXAMPLE:82315"
}
}
},
{
"metadata": {
"eventTimestamp": "2020-09-28T17:20:00Z",
"eventType": "NETWORK_CONNECTION",
"productName": "EXAMPLE Name",
"productEventType": "NETWORK_DNS",
"ingestedTimestamp": "2020-09-28T16:28:11.615578Z"
},
"principal": {
"hostname": "user-example-pc",
"assetId": "EXAMPLE:user-example-pc",
"process": {
"pid": "1101",
"productSpecificProcessId": "EXAMPLE:32323"
}
},
"target": {
"hostname": "example.com",
"user": {
"userid": "user"
},
"process": {
"pid": "8172",
"file": {
"md5": "a219fc7fcc93890a842183388f80369e",
"fullPath": "C:\\Program Files(x86)\\adobe\\acrobat reader dc\\reader\\acrord32.exe"
},
"commandLine": "\"C:\\Program Files(x86)\\adobe\\acrobat reader dc\\reader\\acrord32.exe\" ...",
"productSpecificProcessId": "EXAMPLE:82315"
}
}
}
],
"uri": [
"https://INSTANCE/assetResults?assetIdentifier=user-example-pc&referenceTime=2020-09-28T17%3A00%3A00Z&selectedList=AssetViewTimeline&startTime=2020-09-28T14%3A20%3A00Z&endTime=2020-09-28T20%3A20%3A00Z"
]
}
}
输出消息
列出事件操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully listed related events for the following entities
from Google Chronicle:
ENTITY_IDENTIFIER |
操作成功。 |
Error executing action "List Events". Reason:
ERROR_REASON
|
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
Error executing action "List Events". Reason: invalid event type
is provided. Please check the spelling. Supported event types:
SUPPORTED_EVENT_TYPES
|
操作失败。
请检查拼写。 |
脚本结果
下表介绍了使用列出事件操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
列出 IOC
使用列出 IoC 操作可列出在指定时间范围内在企业中发现的所有 IoC。
此操作不会在 Google SecOps 实体上运行。
操作输入
列出 IOC 操作需要以下参数:
| 参数 | 说明 |
|---|---|
Start Time |
结果的开始时间,采用 ISO 8601 格式。 |
Max IoCs to Fetch |
要返回的 IoC 数量上限。
范围为 默认值为 |
操作输出
列出 IOC 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙表格
列:
- 网域
- 类别
- 来源
- 置信度
- 严重级别
- IoC 注入时间
- IoC 首次出现时间
- IoC 上次出现时间
- URI
JSON 结果
以下示例说明了使用列出 IOC 操作时收到的 JSON 结果输出:
{
"matches":[
{
"artifact":{
"domainName":"www.example.com"
},
"firstSeenTime":"2018-05-25T20:47:11.048998Z",
"iocIngestTime":"2019-08-14T21:00:00Z",
"lastSeenTime":"2019-10-24T16:19:46.880830Z",
"sources":[
{
"category":"Spyware Reporting Server",
"confidenceScore":{
"intRawConfidenceScore":0,
"normalizedConfidenceScore":"Low"
},
"rawSeverity":"Medium",
"source":"Example List"
}
],
"uri":["URI"]
}
],
"moreDataAvailable":true
}
输出消息
列出 IOC 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully listed IOCs from the provided timeframe in Google
Chronicle. |
操作成功。 |
Error executing action "List IOCs". Reason:
ERROR_REASON.
|
操作失败。
请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用列出 IOC 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
查找类似提醒
使用查找类似提醒操作在 Google SecOps 中搜索类似提醒。
操作输入
查找类似提醒操作需要以下参数:
| 参数 | 说明 |
|---|---|
Time Frame |
结果的时间段。为获得最佳结果,请尽可能缩短时段。 可能的值如下:
|
IOCs / Assets |
必填。 要在提醒中查找的 IoC 或资产的逗号分隔列表。该操作会针对提供的每个内容项单独执行搜索。 |
Similarity By |
用于查找类似提醒的属性。 可能的值如下:
默认值为 |
“相似度依据”参数的工作原理
Similarity By 参数对规则提醒和外部提醒的应用方式不同。
如果选择
Alert Name, Alert Type and Product或Alert Name, Alert Type:对于外部提醒,该操作会搜索具有相同名称的其他外部提醒。
对于规则提醒,该操作会处理源自同一规则的提醒。
如果选择
Product:- 该操作会处理来自同一产品的提醒,无论这些提醒是规则提醒还是外部提醒。
例如,源自 Crowdstrike 的提醒只会与来自 Crowdstrike 的其他提醒进行匹配。
如果选择
Only IOCs/Assets:该操作会根据
IOCs/Assets参数中提供的 IOC 匹配提醒。它会在规则提醒和外部提醒中搜索这些指标。只有在选中此选项后,IOC 提醒才能运行此操作。如果提供了任何其他选项,则操作默认为
Only IOCs/Assets。
查找类似提醒操作是一款多功能工具,可用于分析提醒。它使分析人员能够关联同一时间段内的提醒,并提取相关的 IoC,以确定突发事件是否为真正例。
操作输出
查找类似提醒操作会提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 可用 |
| 案例墙表格 | 可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
案例墙链接
查找类似提醒操作可以返回以下链接:
- CBN:GENERATED_LINK_BASED_ON_IU_ROOT_URL
- 规则:GENERATED_LINK_BASED_ON_IU_ROOT_URL
案例墙表格
表名称:IOC/ASSET_IDENTIFIER
表列:
- 产品
- 主机名
- IP
- 用户
- 邮箱
- Subjects
- 网址
- 哈希
- 进程
- 首次出现时间
- 上次在线时间
- 提醒名称
- 常规
JSON 结果
以下示例介绍了使用查找类似提醒操作时收到的 JSON 结果输出:
{
"count": 123,
"distinct": [
{
"first_seen": "time of the first alert that matched our conditions",
"last_seen": "time of the last alert that matched our conditions",
"product_name": "product name",
"used_ioc_asset": "what user provided in the parameter IOCs and Assets",
"name": "Alert Name/Rule Name",
"hostnames": "csv list of unique hostnames that were found in alerts",
"urls": "csv list of unique urls that were found in alerts",
"ips": "csv list of unique ips that were found in alerts",
"subjects": "csv list of unique subjects that were found in alerts",
"users": "csv list of unique users that were found in alerts",
"email_addresses": "csv list of unique email_addresses that were found in alerts",
"hashes": "csv list of unique hashes that were found in alerts",
"processes": "csv list of unique processes that were found in alerts"
"rule_urls": ["Chronicle URL from API response for Rule"]
"count": 123
}
],
"processed_alerts": 10000,
"run_time": "how long it took to run the action or at least API request",
"EXTERNAL_url": "Chronicle URL from API response for EXTERNAL"
}
输出消息
查找类似提醒操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Lookup Similar Alerts". Reason:
ERROR_REASON
|
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
Error executing action "Lookup Similar Alerts". Reason: all of the
retries are exhausted. Please wait for a minute and try again.
|
操作失败。 请等待几分钟,然后重新运行该操作。 |
脚本结果
下表介绍了使用查找类似提醒操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
Ping
使用 Ping 操作测试与 Google SecOps 的连接。
此操作不会在 Google SecOps 实体上运行。
操作输入
无。
操作输出
Ping 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 不可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
输出消息
Ping 操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully connected to the Google Chronicle backstory with the
provided connection parameters! |
操作成功。 |
Failed to connect to the Google Chronicle backstory. Error is
ERROR_REASON
|
操作失败。 请检查与服务器的连接、输入参数或凭证。 |
脚本结果
下表介绍了使用 Ping 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
从数据表中移除行
使用从数据表中移除行操作,从 Google SecOps 中的数据表中移除行。
此操作不会在 Google SecOps 实体上运行。
操作输入
从数据表中移除行操作需要以下参数:
| 参数 | 说明 |
|---|---|
Data Table Name |
必填。 要更新的数据表的显示名称。 |
Rows |
必填。 用于搜索和删除行的 JSON 对象列表。 仅包含有效列。 默认值如下: |
操作输出
从数据表中移除行操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例说明了使用从数据表中移除行操作时收到的 JSON 结果输出:
{
"name": "projects/365235532452/locations/us/instances/df6f1958-0381-41f9-8794-08a3229744a5/dataTables/data_table/dataTableRows/840d18a85944833e1b97ed6d2fb11377",
"values": {
"columnName1": "asda",
"columnName2": "asdasd",
"columnName3": "zxczxc"
},
"createTime": "2025-05-14T12:52:51.908143Z",
"updateTime": "2025-05-14T12:52:51.908143Z"
}
输出消息
从数据表中移除行操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully removed rows from the data table
DATA_TABLE_NAME in
Google SecOps.
|
操作成功。 |
Error executing action "Remove Rows From Data Table". Reason:
ERROR_REASON
|
操作失败。
请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用从数据表中移除行操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
从参考列表中移除值
使用从参考列表中移除值操作,从 Google SecOps 中的参考列表中移除值。
此操作不会在 Google SecOps 实体上运行。
操作输入
从参考列表中移除值操作需要以下参数:
| 参数 | 说明 |
|---|---|
Reference List Name |
必填。 要更新的参考列表的名称。 |
Values |
必填。 要从引用列表中移除的值列表,以英文逗号分隔。 |
操作输出
从引用列表中移除值操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了将从参考列表中移除值操作与 Backstory API 搭配使用时收到的 JSON 结果输出:
{
"name": "list_name",
"description": "description of the list",
"lines": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"create_time": "2020-11-20T17:18:20.409247Z",
"content_type": "CIDR"
}
以下示例介绍了将从参考列表中移除值操作与 Chronicle API 搭配使用时收到的 JSON 结果输出:
{
"name": "projects/PROJECT_ID/locations/us/instances/INSTANCE_ID/referenceLists/REFERENCE_LIST_NAME",
"displayName": "REFERENCE_LIST_NAME",
"revisionCreateTime": "2025-01-16T09:15:21.795743Z",
"description": "Test reference list",
"entries": [
{
"value": "example.com"
},
{
"value": "exampledomain.com"
}
],
"syntaxType": "REFERENCE_LIST_SYNTAX_TYPE_PLAIN_TEXT_STRING",
"scopeInfo": {
"referenceListScope": {}
},
"createTime": "2025-01-16T09:15:21.795743Z",
"lines": [
"example.com",
"exampledomain.com"
]
}
输出消息
从参考列表中移除值操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully removed values from the reference list.
|
操作成功。 |
Error executing action "Remove Values From Reference List". Reason:
ERROR_REASON
|
操作失败。
请检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用从参考列表中移除值操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。
Google Chronicle - Chronicle Alerts Connector
使用 Google Chronicle - Chronicle Alerts Connector 从 Google SecOps 中拉取基于规则的提醒的相关信息。
概览
Google Chronicle - Chronicle Alerts Connector 会从 Google SecOps 提取基于规则的提醒。
主要功能和操作详情包括:
查询一周内的数据。为防止因索引延迟而错过提醒,可以配置填充期并增加连接器超时时间,但填充期过长可能会对性能产生负面影响。
利用动态列表实现灵活配置。
为缺少严重级别值的提醒提供
Fallback Severity。
动态列表过滤条件
动态列表用于直接从连接器配置页面过滤提醒。
运算符逻辑
动态列表结合使用基于集合的评估和多行逻辑来处理过滤规则:
逗号分隔值(集合评估):同一行中以逗号分隔的值会被视为一个集合。应用的逻辑取决于所使用的运算符:
- 包含 (
=):充当许可清单。
如果值与列表中的任何项匹配,则提取提醒(例如,
Rule.severity = low,medium表示low或medium)。- 排除 (
!=):用作屏蔽名单。
仅当值与列表中的任何项都不匹配时,才会注入提醒(例如,
Rule.ruleName != rule_a,rule_b表示规则名称既不是rule_a,也不是rule_b)。- 包含 (
单独的行(AND 逻辑):动态列表中的每个单独行都会进一步限制过滤条件(例如,第 1 行 AND 第 2 行)。
支持的运算符:(
=,!=,>,<,>=,<=) 因过滤条件键而异。
以下是使用运算符规则的示例:
Rule.severity = medium:连接器仅提取严重级别为“中”的规则提醒。
Rule.severity = low,medium:连接器仅提取严重级别为“中”或“低”的规则提醒。
Rule.ruleName != rule_a,rule_b:连接器会提取除规则名称为
rule_a或rule_b的提醒之外的所有提醒。Rule.ruleName = default_rule:连接器仅提取名称为
default_rule的规则提醒。
支持的过滤器
Chronicle Alerts Connector 支持按以下键进行过滤:
| 过滤键 | 响应键 | 运算符 | 可能的值 |
|---|---|---|---|
Rule.severity |
detection、ruleLabels或severity |
=、!=、>、<、>=、<= |
这些值不区分大小写。 |
Rule.ruleName |
detection 或 ruleName |
=,!= |
由用户定义。 |
Rule.ruleID |
detection 或 ruleId |
=,!= |
由用户定义。 |
Rule.ruleType |
detection 或 ruleClass |
=,!= |
这些值不区分大小写。 |
Rule.ruleLabels.{key} |
detection 或 ruleLabels |
=,!= |
由用户定义。 |
处理 ruleLabels
如需在规则中过滤特定标签,请使用 Rule.ruleLabels.{key} 格式。
例如,如需过滤键为 type 且值为 suspicious_behaviour 的标签,动态列表输入应为:
Rule.ruleLabels.type=suspicious_behaviour
连接器输入
Chronicle Alerts Connector 需要以下参数:
默认值为 Medium。
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。 存储商品名称的字段的名称。 商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Event Field Name |
必填。 决定事件名称(子类型)的字段名称。 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 默认值为 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时限制(以秒为单位)。 默认值为 |
API Root |
必填。 Google SecOps 实例的 API 根网址:
|
User's Service Account |
可选。 用于身份验证的服务账号 JSON 密钥。仅在 将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。 |
Workload Identity Email |
可选。 用于 Workload Identity 身份验证的服务账号邮箱(在需要服务账号时推荐使用)。如果两个凭据字段都已填充,则优先使用此字段。 将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。 |
Fallback Severity |
必填。 如果 Google SecOps 发出的提醒不包含严重级别值,则使用默认严重级别。 可能的值如下:
|
Max Hours Backwards |
可选。 在初始连接器运行之前,要从中检索突发事件的小时数。 此参数仅应用一次。 最大值为 默认值为 |
Max Alerts To Fetch |
可选。 每次连接器迭代要处理的提醒数量。 默认值为 |
Disable Event Splitting |
可选。 如果选中,连接器不会将原始事件拆分为多个部分,从而确保来源和 Google SecOps 之间的事件计数一致。 默认不启用。 |
Verify SSL |
必填。 如果选中,集成会在连接到 Google SecOps 服务器时验证 SSL 证书。 默认处于启用状态。 |
Proxy Server Address |
可选。 要使用的代理服务器的地址。 |
Proxy Username |
可选。 用于进行身份验证的代理用户名。 |
Proxy Password |
可选。 用于进行身份验证的代理密码。 |
Disable Overflow |
可选。 如果选中,连接器会忽略 Google SecOps 溢出机制。 默认不启用。 |
Validate Dynamic List Entries |
可选。 如果启用,连接器会在处理之前验证动态列表中的条目是否存在于平台中,以防止提取错误。 默认不启用。 |
连接器规则
Google Chronicle - Chronicle Alerts Connector 支持代理。
连接器事件
以下部分介绍了连接器检索到的事件的结构。此连接器专门拉取 Google SecOps 中检测规则生成的提醒。
基于规则的提醒
当检测规则与传入的日志数据匹配时,系统会生成此事件类型。 JSON 输出包含规则元数据、唯一检测 ID 以及触发提醒的相关 UDM 事件数据。
{
"alert_type": "RULE",
"event_type": "NETWORK_DHCP",
"type": "RULE_DETECTION",
"detection": [
{
"ruleName": "d3_test",
"urlBackToProduct": "https://INSTANCE/ruleDetections?ruleId=ru_74dd17e2-5aad-4053-acd7-958bead014f2&selectedList=RuleDetectionsViewTimeline&selectedParentDetectionId=de_b5dadaf4-b398-325f-9f09-833b71b3ffbb&selectedTimestamp=2022-02-08T05:02:36Z&versionTimestamp=2020-11-19T18:19:11.951951Z",
"ruleId": "ru_74dd17e2-5aad-4053-acd7-958bead014f2",
"ruleVersion": "ru_74dd17e2-5aad-4053-acd7-958bead014f2@v_1605809951_951951000",
"alertState": "NOT_ALERTING",
"ruleType": "SINGLE_EVENT",
"ruleLabels": [
{
"key": "author",
"value": "analyst123"
},
{
"key": "description",
"value": "8:00 AM local time"
},
{
"key": "severity",
"value": "Medium"
}
]
}
],
"createdTime": "2022-02-08T06:07:33.944951Z",
"id": "de_b5dadaf4-b398-325f-9f09-833b71b3ffbb",
"timeWindow": {
"startTime": "2022-02-08T05:02:36Z",
"endTime": "2022-02-08T05:02:36Z"
},
"collectionElements": [
{
"references": [
{
"event": {
"metadata": {
"eventTimestamp": "2022-02-08T05:02:36Z",
"eventType": "NETWORK_DHCP",
"productName": "Infoblox DHCP",
"ingestedTimestamp": "2022-02-08T05:03:03.892234Z"
},
"principal": {
"ip": [
"198.51.100.255",
"198.51.100.1"
],
"mac": [
"01:23:45:ab:cd:ef"
],
"email_address": [
"example@example.com"
]
},
"target": {
"hostname": "dhcp_server",
"ip": [
"198.51.100.0",
"198.51.100.1"
]
},
"network": {
"applicationProtocol": "DHCP",
"dhcp": {
"opcode": "BOOTREQUEST",
"ciaddr": "198.51.100.255",
"giaddr": "198.51.100.0",
"chaddr": "01:23:45:ab:cd:ef",
"type": "REQUEST",
"clientHostname": "example-user-pc",
"clientIdentifier": "AFm/LDfjAw=="
}
}
}
}
],
"label": "e"
}
],
"detectionTime": "2022-02-08T05:02:36Z"
}
提醒结构
下表介绍了 Google Chronicle - Chronicle Alerts Connector 如何填充 Google SecOps 中提醒的属性。
内部生成的属性
这些属性由平台框架生成,而不是从来源提醒中提取:
| 提醒属性名称 | 来源 |
|---|---|
SourceSystemName |
由框架在内部生成。 |
TicketId |
来源于提醒检测 ID (id)。 |
DisplayId |
自动生成。 |
所有提醒类型的属性
这些属性派生自来源提醒。
| 提醒属性名称 | 来源 |
|---|---|
Priority |
取自 API 响应或 Fallback Severity 参数。 |
DeviceVendor |
硬编码值为 Google Chronicle。 |
DeviceProduct |
硬编码值为 RULE。 |
Description |
来自 detection/ruleLabels/description(如果存在)。 |
Reason |
不可用。 |
SourceGroupingIdentifier |
不可用。 |
Chronicle Alert - Attachments |
不可用。 |
已弃用:Google Chronicle - Alerts Connector
此连接器会从 Google SecOps 中拉取资产提醒,以便提取到案例中。
此连接器需要 Google SecOps SIEM Search API。
连接器输入
提醒连接器需要以下参数:
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。
存储商品名称的字段的名称。 商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 默认值为 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时限制(以秒为单位)。 默认值为 |
Service Account Credentials |
必填。 服务账号 JSON 文件的内容。 |
Fetch Max Hours Backwards |
可选。 在连接器首次运行之前,要检索多少小时内的突发事件。 此参数仅应用一次。 最大值为 默认值为 |
已弃用:Google Chronicle - IoC 连接器
请改用 Chronicle 提醒连接器。
此连接器会从 Google SecOps 中提取 IOC 网域匹配项,以便注入到案例中。
此连接器使用 Google SecOps Search API。
连接器输入
Google Chronicle - IoCs Connector 需要以下参数:
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。
存储商品名称的字段的名称。 商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 默认值为 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时限制(以秒为单位)。 默认值为 |
Service Account Credentials |
必填。 服务账号 JSON 文件的内容。 |
Fetch Max Hours Backwards |
可选。 在连接器首次运行前,要检索多少小时内的提醒。 此参数仅应用一次。 最大值为 默认值为 |
Max Alerts To Fetch |
可选。 每次连接器迭代中要处理的提醒数量上限。 默认值为 |
作业
作业配置前提条件
在继续进行作业配置之前,请先配置 Chronicle 提醒连接器。
如需配置 Google Chronicle 作业,请按以下步骤操作:
在 Google SecOps 中,前往响应 > 作业调度器。
点击add创建新作业。
在显示的添加作业对话框中,选择相应的 Google Chronicle 作业,然后点击保存。
可选:根据需要修改作业名称和说明。
在作业详情部分:
- 确保在集成字段中选择 GoogleChronicle。
如需按指定的时间间隔自动运行作业,请设置调度器间隔。必须配置调度器才能完成作业配置。
由于 Google Chronicle 作业可以在一次运行中同步大量数据,因此 Google 建议您至少将调度器间隔设置为 2 分钟。
Google Chronicle - 同步数据作业
此作业适用于由 Chronicle Alerts Connector 和 Chronicle Alerts Creator 作业创建的提醒,但不适用于来自已弃用连接器(Alerts Connector 和 IOCs Connector)的提醒。
Google Chronicle 同步数据作业会同步 Google SecOps 中更新的案例和提醒,以便在案例管理期间所做的更改立即反映在整个平台中。
案例和提醒数据同步
Google Chronicle Sync Data 作业会跟踪和同步以下案例字段:
| 跟踪的字段 | 同步字段 |
|---|---|
Priority |
Priority |
Status |
Status |
Title |
Title |
| 不适用 | Stage |
| 不适用 | Google SecOps Case ID |
Google SecOps 案例 ID 是 Google SecOps 中的唯一案例标识符。
Google Chronicle Sync Data 作业会跟踪和同步以下提醒字段:
| 跟踪的字段 | 同步字段 |
|---|---|
Priority |
Priority |
Status |
Status |
Case ID |
不适用 |
| 不适用 | Google SecOps Alert ID |
| 不适用 | Google SecOps Case ID |
| 不适用 | Verdict |
| 不适用 | Closure Comment |
| 不适用 | Closure Reason |
| 不适用 | Closure Root Cause |
| 不适用 | Usefulness |
Google SecOps 提醒 ID 是 Google SecOps 中的唯一提醒标识符。
在一次迭代中,该作业最多可同步 1,000 个案例和 1,000 个提醒。同步发生在作业配置中指定的 Google SecOps 环境中。同步机制可确保来自指定环境的支持请求无法与其他环境同步。
配置 Google Chronicle 同步数据作业
此作业仅同步包含从 Google SecOps 提取的提醒的案例。
在配置此作业之前,请确保您已完成前提步骤。
如需配置 Google Chronicle Sync Data 作业,请按以下步骤操作:
在参数部分中,配置以下参数:
参数 说明 Environment必填。
在 Google SecOps 中创建的用于同步案例和提醒的环境的名称。
API Root必填。
Google SecOps 实例的 API 根网址:
- Chronicle API:包括您的项目 ID、区域和实例 ID(例如
https://us-chronicle.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/instances/INSTANCE_ID)。请参阅查找 Chronicle API 根。 - Backstory API(旧版):区域性 Backstory 端点。默认值为
https://backstory.googleapis.com。
User's Service Account可选。
用于身份验证的服务账号 JSON 密钥。仅在
Workload Identity Email为空时使用。将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。
Workload Identity Email可选。
用于 Workload Identity 身份验证的服务账号邮箱(在需要服务账号时推荐使用)。如果两个凭据字段都已填充,则此字段优先。
将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。
Max Hours Backwards可选。
提取提醒的小时数。只能使用正数。
默认值为
24。Verify SSL必填。
如果选中,集成会在连接到 Google SecOps 服务器时验证 SSL 证书。
默认处于启用状态。
Google Chronicle 同步数据作业默认处于启用状态。保存配置正确的作业后,该作业会立即开始与 Google SecOps 同步数据。如需停用作业,请切换作业名称旁边的开关。
- Chronicle API:包括您的项目 ID、区域和实例 ID(例如
如需完成配置,请点击保存。
如果保存按钮处于非活动状态,请确保您已设置所有必需参数。
可选:如需在保存后立即运行作业,请点击立即运行。
通过立即运行选项,您可以触发单个作业运行,以立即同步当前的提醒和案例数据。
日志消息
下表列出了 Google Chronicle Data Sync 作业可能出现的日志消息:
| 日志条目 | 类型 | 说明 |
|---|---|---|
Unable to parse credentials as JSON. Please validate creds.
|
错误 | User's Service Account 参数中提供的服务账号已损坏。 |
"Max Hours Backwards" parameter must be a positive number. |
错误 | Max Hours backwards 参数设置为 0 或负数。 |
Current platform version doesn't support SDK methods designed for
Google SecOps. Please use version 6.1.33 or higher. |
错误 | 当前的 Google SecOps 平台实例版本不支持执行 Chronicle Sync Data 作业脚本。这意味着实例的 build 版本低于 6.1.33。 |
Unable to connect to Google SecOps, please validate
your credentials: CREDENTIALS |
错误 | 无法根据 Google SecOps 实例验证服务账号或 API 根值。如果连接测试失败,系统会报告此错误。 |
--- Start Processing Updated Cases --- |
信息 | 支持请求处理循环已开始运行。 |
Last success time. Date time:DATE_AND_TIME.
Unix:UNIX_EPOCH_TIME
|
信息 | 案例或提醒上次成功运行的时间戳,显示为日期和时间 (DATE_AND_TIME) 以及 Unix 纪元时间戳 (UNIX_EPOCH_TIME)。 |
Key: "DATABASE_KEY" doesn't exist in the
database. Returning default
value instead: DEFAULT_VALUE |
信息 | 数据库中不存在待处理的案例或提醒数据库键。 此日志条目始终出现在脚本的首次执行中。 |
Failed to parse data as JSON. Returning default value instead:
"DEFAULT_VALUE. ERROR:
ERROR |
错误 | 从数据库中检索到的值不是有效的 JSON 格式。 |
Exception was raised from the database. ERROR:
ERROR. |
错误 | 数据库存在连接问题。 |
|
信息 | 已成功从待办事项中检索到待处理案例或提醒 ID。 CASE_IDS 是提供的支持请求 ID 的数量。 |
|
错误 | 从数据库中提取的待处理案例或提醒 ID 的数量超过了上限 (1000)。超出限制的所有 ID 都会被忽略。 此错误可能表示数据库损坏。 |
|
信息 | 已成功从平台提取新更新的案例或提醒 ID。 |
|
信息 | Google SecOps 实例中的案例和提醒已开始更新。 |
|
错误 | 指定的案例或提醒无法与 Google SecOps 同步。 |
|
信息 | 指定的待处理支持请求或提醒已达到同步重试次数上限 (5),不会重新插入到待办列表中。 |
|
信息 | 无法与 Google SecOps 同步的案例或提醒 ID 的列表。 |
Updated External Case IDs for the following cases:
CASE_IDS |
信息 | 作业在 Google SecOps 平台中更新了匹配的 Google SecOps 外部支持请求 ID 的支持请求列表。 |
Failed to update external ids. |
错误 | 由于连接或平台错误,外部支持请求 ID 无法更新。 |
|
错误 | 发生错误,导致案例或提醒更新在完成之前停止。如需了解详情,请参阅此日志后面的堆栈轨迹。 |
|
信息 | 支持请求和提醒更新阶段已结束。 |
|
错误 | 重试次数小于或等于 5 次且要写回待办事项列表的失败案例或提醒 ID 的列表。 |
|
信息 | 处理案例和提醒的阶段已完成。 |
Saving timestamps. |
信息 | 将上次成功更新案例和提醒的时间戳保存到数据库。 |
Saving pending ids. |
信息 | 正在将待处理的支持请求和提醒 ID 保存到数据库。 |
Got exception on main handler. Error:
ERROR_REASON |
错误 | 发生了常规终止错误。堆栈轨迹会在该日志之后输出,并显示具体错误。 |
Google Chronicle Alerts Creator 作业
Google Chronicle Alerts Creator 作业需要 Google SecOps 平台 6.2.30 版或更高版本。
此作业会将从第三方连接器提取的提醒(包括溢出提醒)同步到 Google SecOps。它不会复制已源自 Google SecOps 检测的提醒。
Google Chronicle 作业之间的关系
完整的 Google SecOps 部署会同时运行以下三个组件:
- Chronicle 提醒连接器:将 Google SecOps 中的检测提醒注入到案例中。
- Google Chronicle Alerts Creator 作业:将从第三方连接器注入的提醒同步到 Google SecOps,并为每个提醒分配一个唯一的 Google SecOps 提醒标识符。
- Google Chronicle Sync Data 作业:在 Google SecOps 中同步案例和提醒更新(例如优先级或状态更改)。
配置 Google Chronicle Alerts Creator 作业
在配置作业之前,请确保您已完成前提步骤。
如需配置 Google Chronicle Alerts Creator 作业,请按照以下步骤操作:
配置下表中的作业参数:
参数 说明 Environment必填。
在 Google SecOps 中创建的环境的名称,您希望将案例和提醒同步到该环境。
API Root必填。
Google SecOps 实例的 API 根网址:
- Chronicle API:包含您的项目 ID、区域和实例 ID(例如
https://us-chronicle.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/instances/INSTANCE_ID)。请参阅查找 Chronicle API 根。 - Backstory API(旧版):区域性 Backstory 端点。默认值为
https://backstory.googleapis.com。
User's Service Account可选。
用于身份验证的服务账号 JSON 密钥。仅在
Workload Identity Email为空时使用。将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。
Workload Identity Email可选。
用于 Workload Identity 身份验证的服务账号邮箱(在需要服务账号时推荐使用)。如果两个凭据字段都已填充,则此字段优先。
将两个凭证字段留空,以便在受支持的情况下使用内置凭证(请参阅身份验证方法和凭证优先级)。
Verify SSL必填。
如果选中,集成会在连接到 Google SecOps 服务器时验证 SSL 证书。
默认处于启用状态。
- Chronicle API:包含您的项目 ID、区域和实例 ID(例如
如需完成配置,请点击保存。
如果保存按钮处于非活动状态,请确保您已设置所有必需参数。
可选:如需在保存后立即运行作业,请点击立即运行。
通过立即运行选项,您可以触发单个作业运行,以立即同步当前的提醒和案例数据。
日志消息和错误处理
| 日志 | 级别 | 说明 |
|---|---|---|
|
错误 | “用户的服务账号”参数中提供的服务账号已损坏。 |
|
错误 | 当前的 Google SecOps 平台实例版本不支持执行 Google Chronicle 提醒创建器作业脚本。此错误表示实例 build 版本低于 6.2.30。 |
|
错误 | 无法针对 Google SecOps 实例验证服务账号或 API 根值。如果连接测试失败,系统会报告此错误。 |
|
信息 | 指示作业已启动的日志消息。 |
|
信息 | 主作业执行已开始。 |
|
信息 | 当前提取尝试的迭代次数。 |
|
信息 | 该作业正在提取最多 BATCH_SIZE 条新提醒。 |
|
信息 | 当前批次中提取的新提醒数量。 |
|
信息 | 未找到新的未同步提醒,因此作业正在停止。 |
|
信息 | 当前批次中提取的提醒的标识符。 |
|
信息 | 作业正在将提取的提醒发送到 Google SecOps。 |
|
错误 | 无法将指定的提醒同步到 Google SecOps。 |
|
信息 | 作业正在更新同步的提醒状态。 |
|
警告 | 平台无法更新指定提醒的同步状态。 |
|
信息 | 当前作业运行期间同步的提醒总数。 |
|
信息 | 作业运行已完成。 |
|
错误 | 发生常规错误,导致作业停止。如需了解详情,请参阅出错提示。 |
使用场景
借助 Google Chronicle 集成,您可以运行以下用例:
- Chronicle Windows 威胁调查和响应
- Security Command Center 和 Chronicle Cloud DIR
安装应用场景
在 Google SecOps Content Hub 中,前往用例标签页。
在搜索字段中,输入用例名称。
点击相应应用场景。
按照安装向导中的配置步骤和说明进行操作。
完成后,所有必需的组件都会安装在您的 Google SecOps 机器上。如需完成安装,请在与您的应用场景对应的 playbook 中配置初始化代码块。
Chronicle Windows 威胁调查和响应
利用 Google SecOps 的强大功能,实时响应环境中的 Windows 威胁。借助 Threat Intelligence for Google SecOps,安全团队可以利用高保真威胁情报服务以及 Google SecOps。现在,您可以在短时间内有效、自动地对环境中的实际威胁进行分类和修复。
在 Google SecOps 中,前往响应 > Playbook。
选择 Google Chronicle - Windows 威胁调查和响应 playbook。该 playbook 会在 playbook 设计器视图中打开。
双击设置初始化块_1。系统会打开屏蔽配置对话框。
如需配置 playbook,请使用以下参数:
输入参数 可能的值 说明 edr_product- Crowdstrike
- Carbon Black
- 无
要在 playbook 中使用的 EDR 产品。 itsm_product- Service Now
- Jira
- ZenDesk
- 无
要在 playbook 中使用的 ITSM 产品。Jira 需要在“Open Ticket”(打开工单)块中进行额外配置。 crowdstrike_use_spotlighttrue或false如果为 True,则 playbook 会执行需要 Spotlight 许可(漏洞信息)的 Crowdstrike 操作。use_mandianttrue或false如果为 True,则 playbook 会执行 Mandiant 区块。slack_user用户名或邮箱 Slack 用户的用户名或邮箱。如果未提供,Playbook 会跳过 Slack 块。 点击保存。块配置对话框会关闭。
在 playbook 设计器窗格中,点击保存。
如需在用例中测试 playbook,请注入软件包中包含的测试用例。由于测试中使用的数据在您的环境中不可用,因此某些测试用例功能可能会失败。
Security Command Center 和 Chronicle Cloud DIR
将 Security Command Center 与 Google SecOps 集成,让分析师能够调查 Security Command Center 检测到的突发事件和威胁。
配置应用场景
该用例要求您配置以下集成:
Google Security Command Center 和 Mandiant 集成是可选的。
在配置用例之前,请确保您已安装该用例。
- 在 Google SecOps 中,前往 Playbook 标签页。
- 选择 SCC & Chronicle Cloud DIR playbook。
- 双击初始化块进行配置。
- 使用以下参数配置 playbook:
| 参数名称 | 可能的值 | 说明 |
|---|---|---|
Mandiant_Enrichment |
true 或 false |
如果为 需要为此设置配置 Mandiant 集成。如果您很少获得有意义的信息,可以移除该丰富功能。移除丰富化代码块可提高 playbook 的执行速度。 |
SCC_Enrichment |
true 或 false |
如果 必须为此设置配置 Security Command Center 集成。如果您很少获得有意义的信息,可以移除该丰富功能。移除丰富化屏蔽规则可提高 playbook 的执行速度。 |
IAM_Enrichment |
true 或 false |
如果为 True,则 playbook 会使用 IAM 功能进行额外丰富。如果您很少获得有意义的信息,可以移除该丰富功能。移除丰富化屏蔽规则可提高 playbook 的执行速度。 |
Compute_Enrichment |
true 或 false |
如果为 True,则 playbook 会使用 Compute Engine 功能进行额外扩充。如果您很少获得有意义的信息,可以移除该丰富功能。移除丰富化屏蔽规则可提高 playbook 的执行速度。 |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。