Fermer des alertes de manière groupée
Ce document explique comment fermer un grand nombre d'alertes de manière automatisée à 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 ci-dessous.
- Environnement Python : Python doit être installé pour exécuter les exemples de scripts.
- Exemples d'API : accès au dépôt GitHub
api-samples-python. - Identifiants : un 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
Tout d'abord, vous devez identifier les alertes (détections d'alertes) que vous souhaitez fermer. Vous utilisez le script list_detections.py pour rechercher les détections associées à un ID de règle spécifique.
- Recherchez l'ID de la règle et les détails du projet.
- Exécutez le script pour générer les détections dans un fichier JSON. Le nom du fichier JSON peut être
detections.jsonoutemp.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 texte brut contenant un ID de détection par ligne. L'étape précédente a permis de créer un fichier JSON, que vous devez maintenant convertir en fichier texte.
- Utilisez
jqpour extraire les ID de détection (qui commencent parde_) du tableau JSON. - Enregistrez le résultat 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 "feedback" est défini sur CLOSED.
- Comportement par défaut : le script
bulk_update_alerts.pyutilise une charge utile de commentaires par défaut codée en dur :- État :
CLOSED - Motif :
REASON_MAINTENANCE - Commentaire :
automated cleanup.
- État :
- Personnalisation : si vous devez modifier le verdict (par exemple, en
FALSE_POSITIVE) ou le commentaire, vous pouvez :- Modifiez directement le dictionnaire
DEFAULT_FEEDBACKdans le fichier Python. - Transmettez des paramètres de CLI (par exemple,
--verdict="FALSE_POSITIVE") pour remplacer des valeurs spécifiques.
- Modifiez directement le dictionnaire
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 fermeture (facultatif)
Pour vérifier que les alertes ont bien été clôturées, vous pouvez consulter les détails d'une alerte spécifique à 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, "automated cleanup").
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.