管理規則排除條件
本文說明如何使用 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 測試排除項目
這個端點會根據指定規則和規則集的偵測結果測試排除條件,然後驗證排除條件是否能有效抑制不必要的偵測。UI 會使用過去 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) 設定。不過,您可以計算特定到期時間,並在排除條件定義中新增時間戳記條件,藉此建立一次性存留時間。舉例來說,如要將排除條件設為在年底到期,請指定下列查詢:
...other fields in FindingsRefinement query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC outcomeFilters: [your outcome filters]這個範例確認系統只會抑制在年底前建立的偵測結果。
注意:使用者介面的「編輯排除條件」視窗可能無法正確顯示,因為該視窗僅支援
string欄位。複合規則:請勿直接將規則排除條件套用至複合規則。您必須將排除條件套用至構成複合規則的基礎規則。這是因為系統會根據 UDM 欄位 (例如
principal.user.userid) 評估規則排除條件,但複合規則是根據其他偵測項目 (而非 UDM 欄位) 觸發。如果直接將規則排除條件套用至複合規則,排除條件將無法比對,事件也不會遭到排除。如要找出基礎規則,請在 Google SecOps 控制台 (位於「內容中心」 >「精選偵測」) 中檢查複合規則定義,並查看 YARA-L 邏輯的
events:區段,找出基礎規則名稱。
還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。