使用实体上下文图 (ECG)
本文档简要介绍了实体上下文图 (ECG),涵盖了其数据源、处理流水线以及在规则和搜索中的应用。ECG 是一种核心实体数据模型,可在检测规则、搜索和信息中心中为高级威胁检测、调查和威胁搜寻提供必要的背景信息。ECG 处理流水线会(合并)来自各个 Google SecOps 环境的上下文信息。
ECG 还会计算实体的摘要指标。这些指标包括普及率(特定实体在 UDM 数据中相对于其他实体的出现频率)以及实体的 first-seen-time 和 last-seen-time。它还会识别关键的丰富来源和入侵指标 (IOC) 来源,例如 Google Threat Intelligence (GTI)、安全浏览、WHOIS 和 VirusTotal 数据。
ECG 使用 UDM 事件执行以下操作:
- 构建内部实体(资产和用户)和外部实体 (IOC) 的丰富、相关且全面的视图。
- 确定这些实体之间的关系。
心电图的数据源
ECG 流水线会合并来自以下来源的数据:
| 上下文来源 | 来源 | 说明 |
|---|---|---|
| 实体上下文 | 客户提供 | Google SecOps 可直接从外部系统提取结构化组织数据,例如有关用户和资产的权威详细信息。这些来源包括身份提供方 (IDP)、配置管理数据库 (CMDB) 系统(例如 ServiceNow CMDB、Duo User Context)和漏洞管理系统。 |
| 派生上下文 | Google SecOps 生成 | Google SecOps 会根据对提取的活动的分析生成统计数据。它可丰富您环境内各种来源(例如 Windows AD、Azure AD、Okta、 Google Cloud、IAM)的事件和实体。 例如:
|
| 全球背景 | Google 来源 | 全球来源提供内部和外部威胁情报以及声誉数据。
例如:
|
ECG 数据处理流水线
心电图数据处理流水线会为每个实体构建丰富而权威的个人资料。 为此,它会将来自多个来源(例如身份提供方、配置管理数据库 [CMDB]、威胁情报 Feed 和派生情境)的情境合并到单个整合的实体配置文件中。ECG 合并功能可实现以下操作:
- 向心电图添加新的连接、属性和关系。
- 创建和更新派生上下文。
整个流程首先使用 UDM 别名和扩充功能将原始安全事件归一化为 UDM 结构,然后将此事件数据与各种上下文来源合并,以构建丰富的实体资料。
UDM 别名和 ECG 合并
首先,UDM 别名化和丰富流水线会提取原始安全事件,并将其标准化为 UDM 结构。
有时限实体和无时限实体
ECG 可构建有时限(时序)实体和无时限(非时序)实体。系统会在指定的规则和搜索时间范围内评估有时限的实体。系统在评估无时间限制的实体时,不会考虑搜索或规则的时间范围。
ECG 合并键
ECG 通过匹配不同数据源中的通用键标识符来合并上下文记录。这些标识符的示例包括 hostname、MAC address、user ID 或 email address。
ECG 会合并在上述任何值中匹配的记录,以构建实体的全面丰富视图。
ECG 别名使用以下 UDM 字段作为合并键:
Assetentity.asset.product_object_identity.asset.hostnameentity.asset.asset_identity.asset.mac
Userentity.user.product_object_identity.user.useridentity.user.windows_sidentity.user.email_addressesentity.user.employee_id
Resourceentity.resource.product_object_identity.resource.name
Groupentity.group.product_object_identity.group.email_addressesentity.group.windows_sid
合并特定实体类型(文件、网址、网域)
除了合并键之外,ECG 还使用以下唯一标识符合并特定实体类型(文件、网址和网域)的上下文:
Fileentity.file.md5entity.file.sha1entity.file.sha256- (如果提供,则为
entity.file.product_object_id)
URLentity.url.url- (如果提供,则为
entity.url.product_object_id)
Domainentity.domain.domain- (如果提供,则为
entity.domain.product_object_id)
只有当 File、URL 或 Domain 的实体上下文记录与另一条记录中存在的所有唯一标识符都匹配时,ECG 才会合并这两条记录。
例如,如果 ECG 考虑将两个 File 实体上下文合并,则:
- 如果两者都具有
md5哈希,则 ECG 要求它们匹配。 - 如果一个具有
md5,而另一个具有sha256,则 ECG 将不会基于哈希值合并它们。 - 如果提供了
product_object_id,则除了基于内容的标识符(如md5、url或domain)之外,如果两个比较的记录中都存在心电图,则心电图也必须匹配。
这意味着,对于这些类型,除了提供的任何 product_object_id 之外,还必须存在 entity.file.md5、entity.url.url 和 entity.domain.domain 等字段,并且这些字段必须匹配才能进行合并。
冲突解决
在合并过程中,如果字段的值存在冲突,ECG 会选择开始时间最新的值来更新实体。当 ECG 使用新值更新实体属性时,它会在搜索结果中保留之前的值,以供在该值有效的时间间隔内使用。因此,如果搜索查询涵盖了属性发生变化的时间段,则可能会针对相应实体返回多个实体上下文。
去重与时间间隔
为了创建通用的组合实体,ECG 通过去重来消除冗余数据。通过匹配不同上下文来源中实体的所有相关唯一标识符来识别重复项。它会生成时间间隔,而不是匹配确切的时间戳。
例如,假设有两个实体 e1 和 e2,其时间戳分别为 t1 和 t2。如果 e1 和 e2 在其他方面完全相同,ECG 会忽略以下字段中的时间戳差异,从而对它们进行去重:
collected_timestampcreation_timestampinterval
回溯期
ECG 会创建回溯期为 5 天的实体-情境数据。此流程有助于处理延迟到达的数据,并为实体上下文数据建立隐式存留时间。
ECG 会区分情境数据(assets、users、resources、groups)和失陷指标 (IOC)。
示例:通过心电图合并功能合并用户数据
例如,Google SecOps 从三个来源(Okta、Azure AD 和漏洞扫描器)提取 jdoe 的用户数据。ECG 会根据匹配的标识符(例如 jdoe@example.com)合并这三条记录。这样,ECG 中会创建一个统一的 jdoe 用户实体,其中包含来自所有三个来源的属性。
关键实体和事件上下文 ECG 数据源
Google SecOps 需要多个特定的数据源才能创建和更新实体。
关键实体上下文 ECG 数据源
环境的用户和资产的权威数据源可提供构建实体数据模型所需的最关键的日志数据。例如:
| 类别 | 关键数据源 | 填充实体 |
|---|---|---|
| 身份和访问权限管理 | Active Directory、Azure AD、Okta、 Google Cloud Identity | user,group |
| 资产清单 | CMDB、JAMF、Microsoft Intune | asset |
| 威胁情报 | 自定义 Feed 或第三方 Feed、Google Threat Intelligence (GTI) | ip_address,domain_name,file |
搜索内容示例
如需列出支持每个类别的解析器,请执行以下操作:
- 前往支持的日志类型(含默认解析器)。
在搜索栏中输入类别,例如:
- 对于与资产清单相关的解析器,请输入
inventory或asset。 - 如需查看与身份和访问权限管理相关的解析器,请键入
identity。 - 对于与威胁情报相关的解析器,请输入
IOC。
- 对于与资产清单相关的解析器,请输入
实体分析的数据源和关键 UDM 字段
Google SecOps 会根据权威的实体情境数据源和关键 UDM 字段来增强实体个人资料:
| 实体类型 | 数据源 | 关键 UDM 字段(用于别名和索引编制) |
|---|---|---|
| 流程 | 端点日志提供 PSPI (`principal.process.product_specific_process_id`),这是一个稳定标识符,对于实现可靠的进程别名至关重要。
例如 CrowdStrike EDR (CS_EDR) 和 Windows Sysmon (WINDOWS_SYSMON)。 |
source.process.product_specific_process_id |
| 用户 | 这些来源提供用户属性和身份信息。 例如,Duo Entity 情境数据 (DUO_CONTEXT) 和 Okta (OKTA)。 |
source.user.userid、source.user.email_address、source.user.windows_sid、source.user.product_object_id |
| 资产或端点 | 这些来源提供权威的媒体资源信息。 例如,ServiceNow CMDB (SERVICENOW_CMDB) 和 Tanium Asset (TANIUM_ASSET)。 |
source.ip、source.hostname、source.asset_id、principal.asset.hostname |
| 文件哈希值 | 提供数据内容的唯一“数字指纹”,以验证数据完整性。 | source.file.sha256、source.file.sha1、source.file.md5 |
关键事件情境数据 UDM 字段
Google SecOps 需要多个关键的事件情境数据 UDM 字段。
最重要的 UDM 字段充当稳定的标识符和关系指示器(
principal.*、target.*、src_*和dst_*字段)。查看属于
Entity graph功能领域的关键 UDM 字段的列表。如需构建全面的实体关系图,请优先考虑可提供高价值标识符和关系数据的数据源。例如:
实体类型 关键数据源 用于构建实体的关键 UDM 字段 资产(主机) EDR 和 XDR、DNS 和 DHCP、防火墙、 Google Cloud 控制台审核日志 metadata.event_type、
principal.asset.asset_id、
principal.asset.hostname、
principal.ip用户 身份提供方 (IdP) 日志、人力资源 Feed(上下文)、Cloud Identity 日志、电子邮件网关 principal.user.userid、
principal.user.email_addresses、
target.user.userid、
principal.ip网络 防火墙、VPN、DNS、VPC 流日志 principal.ip、
target.ip、
src_ip、
dst_ip、
network.direction文件和进程 EDR 和 XDR、应用日志 target.file.full_path、
target.process.file.full_path、
target.process.command_line
示例
ECG 依靠这些 UDM 字段在规则、搜索和信息中心内联接实体情境数据和 UDM 事件数据。
例如,您可以在“暴力破解”监控规则中加入用户情境数据,以便仅在相关用户也是“网域管理员”群组的成员且相关资产是域控制器时发出提醒:
events:
$fail.metadata.event_type = "USER_LOGIN"
$fail.metadata.vendor_name = "Microsoft"
$fail.principal.hostname = $hostname
$fail.target.user.userid = $target_user
$fail.security_result.action = "BLOCK"
$fail.metadata.product_event_type = "4625"
$fail.metadata.event_timestamp.seconds < $success.metadata.event_timestamp.seconds
$success.metadata.event_type = "USER_LOGIN"
$success.metadata.vendor_name = "Microsoft"
$success.target.user.userid = $target_user
$success.principal.hostname = $hostname
$success.security_result.action = "ALLOW"
$success.metadata.product_event_type = "4624"
$user.graph.entity.user.userid = $target_user
$user.graph.metadata.entity_type = "USER"
$user.graph.metadata.source_type = "ENTITY_CONTEXT"
any $user.graph.relations.entity.group.group_display_name = "Domain Admins"
$asset.graph.entity.asset.hostname = $hostname
$asset.graph.metadata.entity_type = "ASSET"
$asset.graph.metadata.source_type = "ENTITY_CONTEXT"
any $asset.graph.relations.entity.group.group_display_name = "Domain Controllers"
match:
$target_user, $hostname over 15m
condition:
#fail > 4 and $success and $user and $asset
派生上下文丰富化
Google SecOps 会根据组织各命名空间中的事件数据,为每个实体生成动态的事件驱动型推理数据。它会使用别名信息、来自内部丰富流程的数据和安全事件数据来建立关系(例如,将 asset 与 IP address 相关联)。
此过程会添加有价值的背景信息,以增强实体资料。例如,添加以下内容:
entity.file.sha256至file (hash)个实体(principal or target).ip_geo_artifact.location.country_or_region至network (geolocation)个实体
Google SecOps 会分析提取的活动中的多个指标,以使用背景信息丰富事件。它会运行关键的丰富功能,以生成实体稀有度指标(例如普及率统计信息)和时间指标(例如 first-seen-time 和 last-seen-time)。
普及率统计信息
心电图流水线会分析现有数据和传入数据,以计算和存储患病率指标作为派生情境字段。这些指标表示您环境内 domain、file hash 或 IP address 等实体的数值“热度”值。这有助于您发现罕见或异常的活动,因为较受欢迎的实体通常风险较低。
Google SecOps 会定期更新这些统计信息,并将其存储在单独的实体上下文中。检测引擎可以使用这些值,您也可以使用 UDM 查询语法搜索这些值。不过,控制台不会将这些值与其他实体详细信息一起显示。
创建检测引擎规则时,您可以使用以下字段。
| 实体类型 | UDM 字段 |
|---|---|
| 网域 | entity.domain.prevalence.day_count
entity.domain.prevalence.day_max
entity.domain.prevalence.day_max_sub_domains
entity.domain.prevalence.rolling_max
entity.domain.prevalence.rolling_max_sub_domains |
| 文件(哈希) | entity.file.prevalence.day_count
entity.file.prevalence.day_max
entity.file.prevalence.rolling_max |
| IP 地址 | entity.artifact.prevalence.day_count
entity.artifact.prevalence.day_max
entity.artifact.prevalence.rolling_max |
Google SecOps 会以不同的方式计算 day_max 和 rolling_max 值,具体如下:
day_max表示相应制品在一天内的最高流行度得分(一天是指世界协调时间 [UTC] 的 00:00:00 至 23:59:59)。rolling_max表示相应制品在过去 10 天内的每日最高流行度得分(即day_max)。day_count用于计算rolling_max,其值始终为 10。
为 domain 计算这些值时,day_max 与 day_max_sub_domains(以及 rolling_max 与 rolling_max_sub_domains)之间的差值如下:
rolling_max和day_max表示每天访问指定网域(不包括子网域)的唯一内部 IP 地址的数量。rolling_max_sub_domains和day_max_sub_domains表示访问给定网域(包括子网域)的唯一内部 IP 地址的数量。
Google SecOps 会使用新注入的实体数据计算普及率统计信息。Google SecOps 不会对之前提取的数据进行追溯计算。Google SecOps 大约需要 36 小时来计算和存储统计信息。
示例
ECG 流水线需要这些 UDM 字段才能将相关情境数据加入规则或搜索中。您必须明确将所有与心电图相关的数据加入到 UDM 事件数据中。
例如,您可以使用心电图中的 prevalence 数据来确定安全日志中与“罕见”网域的连接:
$dns.metadata.event_type = "NETWORK_DNS"
$dns.network.dns.questions.name != ""
$dns.network.dns.questions.name = $domain
$prevalence.graph.metadata.entity_type = "DOMAIN_NAME"
$prevalence.graph.metadata.source_type = "DERIVED_CONTEXT"
$prevalence.graph.entity.hostname = $domain
$prevalence.graph.entity.domain.prevalence.day_count = 10
$prevalence.graph.entity.domain.prevalence.rolling_max > 0
$prevalence.graph.entity.domain.prevalence.rolling_max <= 3
match:
$domain over 5m
condition:
$dns and $prevalence
实体的首次出现时间和最后一次出现时间
Google SecOps 会分析传入的数据,以使用以下关键字段丰富实体情境记录:
first-seen-time:实体首次出现在您的环境中的日期和时间。last-seen-time:最近一次观测的日期和时间。
借助这些派生字段,您可以关联 domain、file hash、asset、user 或 IP address 实体的活动。
这些值存储在以下 UDM 字段中:
| 实体类型 | UDM 字段 |
|---|---|
| 网域 | entity.domain.first_seen_timeentity.domain.last_seen_time |
| 文件(哈希) | entity.file.first_seen_timeentity.file.last_seen_time |
| IP 地址 | entity.artifact.first_seen_timeentity.artifact.last_seen_time |
| 素材资源 | entity.asset.first_seen_time |
| 用户 | entity.user.first_seen_time |
首次看到时间和最后一次看到时间计算的例外情况:
- 对于
asset和user实体,Google SecOps 只会填充first_seen_time字段,而不会填充last_seen_time字段。 - Google SecOps 不会计算各个命名空间内每个实体的统计信息。
- Google SecOps 不会将这些统计信息导出到 BigQuery 中的 Google SecOps
events架构。 - Google SecOps 不会针对其他实体类型(例如
group或resource)计算这些值。
全局上下文扩充
这些来源包括来自内部和第三方全球来源的外部威胁情报和声誉数据。
注入 Google Threat Intelligence 数据
Google SecOps 可提取 Google Threat Intelligence (GTI) 数据源中的数据,从而为调查环境中的活动提供背景信息。
查询以下数据源:
- GTI Tor 退出节点:已知 Tor 退出节点的 IP 地址。
- GTI 良性二进制文件:属于原始操作系统分发版或通过官方操作系统补丁更新的文件。 此数据源中排除了某些被攻击者通过“借力打力”攻击中常见的活动滥用的官方操作系统二进制文件,例如专注于初始入口向量的二进制文件。
- GTI 远程访问工具:恶意方经常使用的文件。这些工具通常是合法应用,但有时会被滥用,用于远程连接到遭入侵的系统。
情境数据以实体的形式存储在全局范围内。您可以使用检测引擎规则查询数据。在规则中添加以下 UDM 字段和值,以查询这些全局实体:
graph.metadata.vendor_name=Google Threat Intelligencegraph.metadata.product_name=GTI Feed
有时效性与无时效性的 Google Threat Intelligence 数据源
Google Threat Intelligence 数据源包括有时限或无时限类型。
定时数据源中的每个条目都有关联的时间范围。例如,如果 Google SecOps 在第 1 天生成了检测结果,那么在未来任何一天的回溯搜索中,它都应针对第 1 天生成相同的检测结果。
无时间性的数据源没有关联的时间范围,因为只需考虑最新的数据集。这些数据源通常用于预计不会更改的数据,例如文件哈希。如果 Google SecOps 在第 1 天未生成检测结果,但如果无时限数据源中添加了新条目,则在第 2 天进行回溯搜索时,仍可能会生成第 1 天的检测结果。
有关 Tor 退出节点 IP 地址的数据
Google SecOps 会提取并存储已知的 Tor 退出节点的 IP 地址。Tor 退出节点是流量离开 Tor 网络的点。此数据是定时的。
Google SecOps 会将从相应数据源注入的信息存储在以下 UDM 字段中:
| UDM 字段 | 说明 |
|---|---|
<variable_name>.graph.metadata.vendor_name |
存储值 Google Threat Intelligence。 |
<variable_name>.graph.metadata.product_name |
存储值 GTI Feed。 |
<variable_name>.graph.metadata.threat.threat_feed_name |
存储值 Tor Exit Nodes。 |
<variable_name>.graph.entity.artifact.ip |
存储从 GTI 数据源注入的 IP 地址。 |
搜索内容示例
graph.metadata.source_type ="GLOBAL_CONTEXT"
graph.metadata.product_name = "GTI Feed"
graph.metadata.threat.threat_feed_name = "Tor Exit Nodes"
有关良性操作系统文件的数据
Google SecOps 会从 GTI Benign Binaries 数据源中提取并存储文件哈希。Google SecOps 会将从相应数据源注入的信息存储在以下 UDM 字段中。良性二进制文件数据是无时限的。
| UDM 字段 | 说明 |
|---|---|
<variable_name>.graph.metadata.vendor_name |
存储值 Google Threat Intelligence。 |
<variable_name>.graph.metadata.product_name |
存储值 GTI Feed。 |
<variable_name>.graph.metadata.threat.threat_feed_name |
存储值 Benign Binaries。 |
<variable_name>.graph.entity.file.sha256 |
存储文件的 SHA256 哈希值。 |
<variable_name>.graph.entity.file.sha1 |
存储文件的 SHA-1 哈希值。 |
<variable_name>.graph.entity.file.md5 |
存储文件的 MD5 哈希值。 |
搜索内容示例
graph.metadata.source_type ="GLOBAL_CONTEXT"
graph.metadata.product_name = "GTI Feed"
graph.metadata.threat.threat_feed_name = "Benign Binaries"
有关远程访问工具的数据
远程访问工具包括已知远程访问工具(例如恶意方经常使用的 VNC 客户端)的文件哈希值。这些工具通常是合法应用,但有时会被滥用,以远程连接到遭入侵的系统。Google SecOps 会将从相应数据源注入的信息存储在以下 UDM 字段中。远程访问工具数据是永久性的。
| UDM 字段 | 说明 |
|---|---|
<variable_name>.graph.metadata.vendor_name |
存储值 Google Threat Intelligence。 |
<variable_name>.graph.metadata.product_name |
存储值 GTI Feed。 |
<variable_name>.graph.metadata.threat.threat_feed_name |
存储值 Remote Access Tools。 |
<variable_name>.graph.entity.file.sha256 |
存储文件的 SHA256 哈希值。 |
<variable_name>.graph.entity.file.sha1 |
存储文件的 SHA-1 哈希值。 |
<variable_name>.graph.entity.file.md5 |
存储文件的 MD5 哈希值。 |
搜索内容示例
graph.metadata.source_type ="GLOBAL_CONTEXT"
graph.metadata.product_name = "GTI Feed"
graph.metadata.threat.threat_feed_name = "Remote Access Tools"
利用安全浏览威胁列表中的信息丰富实体
Google SecOps 会从安全浏览功能中提取与文件哈希相关的数据。Google SecOps 会将每个文件的数据存储为一个实体,并提供有关该文件的其他背景信息。 您可以创建检测引擎规则来查询此实体情境数据,以构建情境感知分析。
Google SecOps 会将以下信息与实体上下文记录一起存储。
| UDM 字段 | 说明 |
|---|---|
entity.metadata.product_entity_id |
实体的唯一标识符。 |
entity.metadata.entity_type |
此值为 FILE,表示实体描述的是文件。
|
entity.metadata.collected_timestamp |
实体被观测到的日期和时间或事件发生的日期和时间。 |
entity.metadata.interval |
存储相应数据的有效开始时间和结束时间。由于威胁列表内容会随时间变化,因此 start_time 和 end_time 会反映实体相关数据的有效时间间隔。例如,在 start_time 和 end_time 之间,某个文件哈希被发现具有恶意或可疑特征。 |
entity.metadata.threat.category |
Google SecOps SecurityCategory 设置为以下一个或多个值:
|
entity.metadata.threat.severity |
这是 Google SecOps ProductSeverity。
如果值为 CRITICAL,则表示相应制品具有恶意性。
如果未指定该值,则没有足够的置信度来表明相应制品是恶意制品。
|
entity.metadata.product_name |
存储值 Google Safe Browsing。 |
entity.file.sha256 |
相应文件的 SHA256 哈希值。 |
规则示例
events:
// find a process launch event, match on hostname
$execution.metadata.event_type = "PROCESS_LAUNCH"
$execution.target.process.file.sha256 != ""
$execution.principal.hostname = $hostname
// join execution event with Safe Browsing graph
$sb.graph.entity.file.sha256 = $execution.target.process.file.sha256
// look for files deemed malicious
$sb.graph.metadata.entity_type = "FILE"
$sb.graph.metadata.threat.severity = "CRITICAL"
$sb.graph.metadata.product_name = "Google Safe Browsing"
match:
$hostname over 5m
condition:
$execution and $sb
利用 WHOIS 数据丰富实体
Google SecOps 使用有时限和无时限的数据执行每日 WHOIS 数据丰富化,这是一项关键功能。
在设备数据注入期间,Google SecOps 会根据 WHOIS 数据评估网域。如果网域匹配,Google SecOps 会将相关的 WHOIS 数据存储在网域的实体记录中。对于每个包含 entity.metadata.entity_type = DOMAIN_NAME 的实体,Google SecOps 都会使用 WHOIS 信息来扩充记录。
Google SecOps 会在以下字段中填充包含丰富 WHOIS 数据的实体记录:
entity.domain.admin.attribute.labelsentity.domain.audit_update_timeentity.domain.billing.attribute.labelsentity.domain.billing.office_address.country_or_regionentity.domain.contact_emailentity.domain.creation_timeentity.domain.expiration_timeentity.domain.iana_registrar_identity.domain.name_serverentity.domain.private_registrationentity.domain.registrant.company_nameentity.domain.registrant.office_address.stateentity.domain.registrant.office_address.country_or_regionentity.domain.registrant.email_addressesentity.domain.registrant.user_display_nameentity.domain.registrarentity.domain.registry_data_raw_textentity.domain.statusentity.domain.tech.attribute.labelsentity.domain.update_timeentity.domain.whois_record_raw_textentity.domain.whois_serverentity.domain.zone
Google SecOps 会使用 global context WHOIS 记录中的 registrant、creation 和 expiration time 数据来扩充 domain 实体 (entity.metadata.entity_type = "DOMAIN_NAME")。
如需了解这些字段的说明,请参阅统一数据模型字段列表文档。
搜索内容示例
graph.metadata.source_type ="GLOBAL_CONTEXT"
graph.metadata.product_name = "WHOISXMLAPI Simple Whois"
graph.entity.domain.registry_data_raw_text != b""
最佳实践:确定可丰富全球背景信息的数据源
为了提高规则的性能,请在规则中添加使用来自全局情境扩充来源的数据的过滤条件。此过滤条件应标识特定的丰富类型或来源。
以下过滤参数用于标识富集类型或来源:entity_type、product_name 和 vendor_name。
例如,在用于联接 WHOIS 数据的规则的 events 部分中添加以下过滤条件字段:
$enrichment.graph.metadata.entity_type = "DOMAIN_NAME"
$enrichment.graph.metadata.product_name = "WHOISXMLAPI Simple Whois"
$enrichment.graph.metadata.vendor_name = "WHOIS"
ECG 最佳实践
使用情境丰富的数据时,请考虑以下 ECG 最佳实践:
- 请勿向实体数据添加区间;相反,应让心电图流水线创建区间。除非另有指定,否则 Google SecOps 会在去重期间生成间隔。
- 如果您指定了时间间隔,Google SecOps 将仅对完全相同的事件进行去重,并保留最新的实体。
- 为确保实时规则和回溯搜索按预期运行,您必须每天至少注入一次实体。
- 如果您不是每天注入实体,而是每两天或更长时间注入一次,实时规则可能仍会按预期运行。不过,回溯式搜索可能会丢失一些事件上下文。
- 如果您每天多次注入相同的实体,Google SecOps 会将它们去重为单个实体。
- 如果某天缺少事件数据,Google SecOps 会暂时使用前一天的数据,以确保实时规则正常运行。
如需详细了解 Google SecOps 服务的一般限制,请参阅服务限制。
相关外部内容
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。