Fermer des alertes de manière groupée à l'aide de l'API

Compatible avec :

Ce document explique comment fermer un grand nombre d'alertes de manière programmatique à l'aide de l'API REST Google Security Operations. Google recommande d'utiliser cette méthode lorsque la fermeture des alertes dans la plate-forme prendrait trop de temps.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Environnement Python : vous devez installer Python pour exécuter les exemples de scripts.
  • Exemples d'API : accès au dépôt GitHub api-samples-python.
  • Identifiants : fichier d'identifiants valide (par exemple, .chronicle_credentials.json).
  • jq : processeur JSON de ligne de commande utilisé pour analyser la sortie de l'API.

Rechercher des détections

Vous devez d'abord identifier les alertes (détections d'alertes) que vous souhaitez clôturer. Vous utilisez le script list_detections.py pour trouver les détections associées à un ID de règle spécifique.

  1. Localisez votre ID de règle et les détails du projet.
  2. Exécutez le script pour générer les détections dans un fichier JSON. Le nom de fichier JSON peut être detections.json ou temp.json.

Commande :

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

Extraire les ID de détection

Le script de mise à jour groupée nécessite un fichier en texte brut contenant un ID de détection par ligne. L'étape précédente a créé un fichier JSON, que vous devez maintenant convertir en fichier texte.

  1. Utilisez jq pour extraire les ID de détection (qui commencent par de_) du tableau JSON.
  2. Enregistrez la sortie dans un fichier texte.

Commande :

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

Cela crée un fichier listant les ID, par exemple de_ad9d2771-a567....

Configurer les commentaires (action "Fermer")

Lorsque vous fermez une alerte, l'état "Commentaires" est défini sur CLOSED.

  • Comportement par défaut : le script bulk_update_alerts.py utilise une charge utile de commentaires par défaut codée en dur :
    • État : CLOSED
    • Motif : REASON_MAINTENANCE
    • Commentaire : automated cleanup.
  • Personnalisation : si vous devez modifier le verdict (par exemple, le remplacer par FALSE_POSITIVE) ou le commentaire, vous pouvez :
    • Modifiez directement le dictionnaire DEFAULT_FEEDBACK dans le fichier Python.
    • Transmettez les paramètres de la CLI (par exemple, --verdict="FALSE_POSITIVE") pour remplacer des valeurs spécifiques.

Exécuter la clôture groupée

Exécutez le script de mise à jour groupée à l'aide du fichier texte que vous avez créé précédemment (voir Extraire les ID de détection). Ce script appelle la méthode UpdateAlert pour chaque ID de votre liste.

Commande :

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"

Vérifier la clôture (facultatif)

Pour vérifier que les alertes ont bien été clôturées, vous pouvez consulter les détails d'une seule alerte à l'aide du module get_alert.py.

Commande :

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

Résultat attendu : la sortie JSON contient un objet feedbackSummary affichant "status": "CLOSED" et le commentaire que vous avez spécifié (par exemple, "nettoyage automatique").

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.