使用 API 大量關閉快訊

支援的國家/地區:

本文說明如何使用 Google Security Operations REST API,以程式輔助方式關閉大量快訊。如果透過平台關閉快訊太耗時,Google 建議使用這個方法。

必要條件

開始之前,請務必備妥以下項目:

  • Python 環境:您需要安裝 Python,才能執行範例指令碼。
  • API 範例:存取 api-samples-python GitHub 存放區
  • 憑證:有效的憑證檔案 (例如 .chronicle_credentials.json)。
  • jq:用於剖析 API 輸出內容的指令列 JSON 處理器。

搜尋偵測項目

首先,您必須找出要關閉的快訊 (偵測到的快訊)。您可以使用 list_detections.py 指令碼,找出與特定規則 ID 相關的偵測結果。

  1. 找出規則 ID 和專案詳細資料。
  2. 執行指令碼,將偵測結果輸出至 JSON 檔案。JSON 檔案名稱可以是 detections.jsontemp.json

指令:

python -m detect.v1alpha.list_detections \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --rule_id=$RULE_ID \
  > ip_in_abuseipdb_out.json

擷取偵測 ID

大量更新指令碼需要純文字檔案,每行包含一個偵測 ID。上一個步驟會建立 JSON 檔案,您現在必須將其轉換為文字檔。

  1. 使用 jq 從 JSON 陣列中擷取偵測 ID (開頭為 de_)。
  2. 將輸出內容儲存至文字檔。

指令:

cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
  > ip_in_abuseipdb_out.txt

這會建立列出 ID 的檔案,例如 de_ad9d2771-a567...

設定意見回饋 (「關閉」動作)

關閉快訊時,「意見回饋」狀態會設為 CLOSED

  • 預設行為:bulk_update_alerts.py 指令碼會使用硬式編碼的預設意見回饋酬載:
    • 狀態: CLOSED
    • 原因:REASON_MAINTENANCE
    • 註解: automated cleanup
  • 自訂:如需變更判決結果 (例如變更為 FALSE_POSITIVE) 或註解,請按照下列步驟操作:
    • 直接在 Python 檔案中編輯 DEFAULT_FEEDBACK 字典。
    • 傳遞 CLI 參數 (例如 --verdict="FALSE_POSITIVE") 覆寫特定值。

執行大量結案

使用先前建立的文字檔執行大量更新指令碼 (請參閱「擷取偵測 ID」)。這個指令碼會為清單中的每個 ID 呼叫 UpdateAlert 方法。

指令:

python -m detect.v1alpha.bulk_update_alerts \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_ids_file="$(pwd)/ip_in_abuseipdb_out.txt"

驗證結案 (選用)

如要確認警報是否已成功關閉,可以使用 get_alert.py 模組查看單一警報的詳細資料。

指令:

python -m detect.v1alpha.get_alert \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_id=$ALERT_ID

預期結果:JSON 輸出內容包含 feedbackSummary 物件,其中顯示 "status": "CLOSED" 和您指定的註解 (例如「自動清除」)。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。