API を使用してアラートを一括で閉じる
このドキュメントでは、Google Security Operations REST API を使用して大量のアラートをプログラムでクローズする方法について説明します。プラットフォームでアラートを閉じるのに時間がかかりすぎる場合は、この方法を使用することをおすすめします。
前提条件
始める前に、以下のものが揃っていることをご確認ください。
- Python 環境: サンプル スクリプトを実行するには、Python をインストールする必要があります。
- API サンプル:
api-samples-pythonGitHub リポジトリへのアクセス。 - 認証情報: 有効な認証情報ファイル(
.chronicle_credentials.jsonなど)。 - jq: API 出力の解析に使用されるコマンドライン JSON プロセッサ。
検出を検索する
まず、クローズするアラート(アラート検出)を特定する必要があります。list_detections.py スクリプトを使用して、特定のルール ID に関連付けられた検出結果を検索します。
- ルール ID とプロジェクトの詳細を確認します。
- スクリプトを実行して、検出結果を 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 ファイルをテキスト ファイルに変換する必要があります。
jqを使用して、JSON 配列から検出 ID(de_で始まる)を抽出します。- 出力をテキスト ファイルに保存します。
コマンド:
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")を使用して、特定の値がオーバーライドされるようにします。
- Python ファイルで
一括クローズを実行する
前に作成したテキスト ファイルを使用して、一括更新スクリプトを実行します(検出 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 のプロフェッショナルから回答を得ることができます。