管理规则排除项
本文档介绍了如何使用 API 以编程方式管理 Google Security Operations 中的规则排除项。排除项充当过滤器,您可以根据统一数据模型 (UDM) 字段定义这些过滤器,以防止特定检测生成提醒。通过识别已知或安全的活动,这些过滤器可以阻止信息中心中不必要的干扰信息。
使用结果过滤器创建排除项
您可以以程序化方式创建新的排除规则,以禁止显示符合您定义的条件的特定检测发现结果,从而减少噪声并优先处理高保真提醒。
使用 POST 端点定义禁止显示逻辑。所有包含 outcomeFilters 数组的过滤器都通过隐式 AND 子句进行关联。
方法: POST
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
示例:
POST https://us-chronicle.googleapis.com/v1/projects/my-project/locations/us/instances/my-instance/findingsRefinements
请求正文:
{
"displayName": "Exclusion with outcome filters",
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL"
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS"
}
]
}
该示例演示了如何定义禁止显示逻辑,其中 outcomeFilters 数组中的多个过滤器通过隐式 AND 子句进行关联。
必填字段:displayName、type、query
系统生成的字段:请勿指定 name、createTime 或 updateTime。
这些字段由系统管理,如果包含在请求中,则会被忽略或导致错误。
禁止显示逻辑遵循 AND 关系。该请求会创建一个排除项,用于禁止显示具有以下事件的任何检测:
“altostrat.com”作为主要主机名
结果变量
ip,其值为127.0.0.1结果变量
hostnames,其至少一个汇总值为altostrat.com。
排除项中指定的所有过滤器都通过 AND 子句隐式关联。
API 响应:API 会返回 FindingsRefinement 资源名称。
FindingsRefinement 资源包含核心禁止显示逻辑(查询和结果过滤器)。资源名称 (ID) 用于对排除项执行后续操作
访问排除项
使用 GET 端点执行以下操作:
按唯一 ID 获取单个排除项定义的详细信息。
当您有特定的
refinement-id并且需要验证其包含的确切查询或结果过滤器时。
方法: GET
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
示例:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777
将排除项应用于规则或规则集
您必须将排除项应用于特定规则或精选规则集。
当您将排除项应用于规则或规则集时,系统会创建一个
FindingsRefinementDeployment 资源。您可以使用此资源来确定适用于 FindingsRefinement
资源的自定义规则、精选规则或精选规则集。然后,您可以在 API 请求中指定 update_mask 参数,以指明要更新
FindingsRefinementDeployment 中的哪些字段。
方法: PATCH
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
REFINEMENT_ID:发现结果优化项的唯一 ID。
示例:
PATCH https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777?update_mask=enabled,detectionExclusionApplication
请求正文:
{
"name": "projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777"
"enabled": true,
"detectionExclusionApplication": {
"curatedRuleSets": [
...list curated rule set resource names
],
"curatedRules": [
...list curated rule resource names
],
"rules": [
...list rule resource names
],
}
}
当您将排除项应用于规则或规则集时,系统会创建一个 FindingsRefinementDeployment
资源。此资源用于确定适用于 FindingsRefinement 资源的自定义规则、精选规则和精选规则集。您还可以在
API 请求中添加 update_mask 参数,以指定要更新 FindingsRefinementDeployment 中的哪些字段。
访问排除项的部署
创建或更新排除项后,使用此端点验证该特定排除项部署到了哪些规则或规则集。
方法: GET
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
REFINEMENT_ID:发现结果优化项的唯一 ID。
示例:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777/deployment
列出所有排除项
使用此端点检索 findingsRefinements 资源列表。
方法: GET
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
示例:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements
可选的查询参数:pageSize、pageToken
您可以使用可选参数列出更多结果,类似于 API 中的其他列表端点。
列出所有排除项部署
使用此端点获取在您的实例中创建的 FindingsRefinement 资源列表。
方法: GET
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
示例:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:listAllFindingsRefinementDeployments
可选的查询参数:
使用
pageSize和pageToken参数列出更多结果,类似于 API 中的其他列表端点。使用
filter参数过滤已应用排除项的规则或规则集。
使用 API 测试排除项
此端点针对指定规则和规则集中的检测测试排除项,然后验证排除项在禁止显示不需要的检测方面的有效性。界面使用过去 30 天的检测进行测试。
方法: POST
端点:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:testFindingsRefinement
替换以下内容:
REGION:Google SecOps 实例所在的 Google Cloud 区域。
PROJECT_ID:您的 Google Cloud 项目 ID。
LOCATION:Google SecOps 实例的位置(通常与区域相同)。
INSTANCE_ID:Google SecOps 实例的 ID。
示例:
POST https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:testFindingsRefinement
请求正文:
{
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL",
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS",
},
]
"interval": {
"start_time": {
"seconds": 1756684800, // Sep. 1 2025 00:00 UTC
},
"end_time": {
"seconds": 1759276800, // Oct. 1 2025 00:00 UTC
},
},
"detectionExclusionApplication": {
"curatedRuleSets": [
...curated rule set resource names
],
"curatedRules": [
...curated rule resource names
],
"rules": [
...rule resource names
],
}
}
此端点针对请求中指定的规则和规则集中生成的检测测试排除项。它有助于确定排除项在禁止显示不应生成的检测方面的有效性。系统使用过去 30 天的检测作为测试排除项的时间范围。
限制
所有排除项(无论是否包含结果过滤器)都必须指定
query字段。 如需创建仅包含outcomeFilters的排除项,请指定match-all正则表达式。...other fields in FindingsRefinement query: "principal.hostname = /.*/" outcomeFilters: [ your outcome filters ]该正则表达式与任何主机名匹配。因此,此查询与所有检测匹配。因此,有效的过滤完全由结果过滤器决定。
排除项不支持存留时间 (TTL) 配置。不过,您可以计算具体的到期时间,并在排除项定义中添加时间戳条件,从而创建一次性 TTL。例如,如需将排除项设置为在年底到期,请按如下方式指定查询:
...other fields in FindingsRefinement query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC outcomeFilters: [your outcome filters]此示例确认,只有在年底之前由事件创建的检测会被禁止显示。
注意:这可能无法在界面的修改排除项窗口 中正确显示,因为它仅支持
string字段。