API を使用してアラートを一括で閉じる

以下でサポートされています。

このドキュメントでは、Google Security Operations REST API を使用して大量のアラートをプログラムでクローズする方法について説明します。プラットフォームでアラートを閉じるのに時間がかかりすぎる場合は、この方法を使用することをおすすめします。

前提条件

始める前に、以下のものが揃っていることをご確認ください。

  • Python 環境: サンプル スクリプトを実行するには、Python をインストールする必要があります。
  • API サンプル: api-samples-python GitHub リポジトリへのアクセス。
  • 認証情報: 有効な認証情報ファイル(.chronicle_credentials.json など)。
  • jq: API 出力の解析に使用されるコマンドライン JSON プロセッサ。

検出を検索する

まず、クローズするアラート(アラート検出)を特定する必要があります。list_detections.py スクリプトを使用して、特定のルール ID に関連付けられた検出結果を検索します。

  1. ルール ID とプロジェクトの詳細を確認します。
  2. スクリプトを実行して、検出結果を JSON ファイルに出力します。JSON ファイル名は detections.json または temp.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 を抽出する

一括更新スクリプトには、1 行に 1 つの検出 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... など)が作成されます。

フィードバックを設定する(「close」アクション)

アラートを閉じると、[フィードバック] ステータスが 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 出力には、"status": "CLOSED" と指定したコメント(「自動クリーンアップ」など)を示す feedbackSummary オブジェクトが含まれます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。