Benachrichtigungen im Bulk schließen
In diesem Dokument wird beschrieben, wie Sie eine große Anzahl von Benachrichtigungen mithilfe der Google Security Operations REST API programmatisch schließen. Google empfiehlt, diese Methode zu verwenden, wenn das Schließen von Benachrichtigungen in der Plattform zu zeitaufwendig wäre.
Vorbereitung
Folgendes wird benötigt:
- Python-Umgebung: Sie müssen Python installiert haben, um die Beispielskripts auszuführen.
- API-Beispiele: Zugriff auf das
api-samples-pythonGitHub-Repository. - Anmeldedaten: Eine gültige Datei mit Anmeldedaten (z. B.
.chronicle_credentials.json). - jq: Ein JSON-Prozessor für die Befehlszeile, mit dem die API-Ausgabe geparst wird.
Nach Erkennungen suchen
Zuerst müssen Sie die Benachrichtigungen (Benachrichtigungserkennungen) identifizieren, die Sie schließen möchten. Mit dem Script list_detections.py können Sie Erkennungen finden, die mit einer bestimmten Regel-ID verknüpft sind.
- Suchen Sie die Regel-ID und die Projektdetails.
- Führen Sie das Script aus, um die Erkennungen in eine JSON-Datei auszugeben. Der JSON-Dateiname kann entweder
detections.jsonodertemp.jsonsein.
Befehl:
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
Erkennungs-IDs extrahieren
Für das Script zur Bulk-Aktualisierung ist eine Nur-Text-Datei mit einer Erkennungs-ID pro Zeile erforderlich. Im vorherigen Schritt wurde eine JSON-Datei erstellt, die Sie jetzt in eine Textdatei konvertieren müssen.
- Verwenden Sie
jq, um die Erkennungs-IDs (die mitde_beginnen) aus dem JSON-Array zu extrahieren. - Speichern Sie die Ausgabe in einer Textdatei.
Befehl:
cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
> ip_in_abuseipdb_out.txt
Dadurch wird eine Datei mit IDs erstellt, z. B. de_ad9d2771-a567....
Feedback konfigurieren (Aktion „Schließen“)
Wenn Sie eine Benachrichtigung schließen, wird der Status „Feedback“ auf CLOSED gesetzt.
- Standardverhalten: Das Script
bulk_update_alerts.pyverwendet eine hartcodierte Standard-Feedback-Nutzlast:- Status:
CLOSED - Grund:
REASON_MAINTENANCE - Kommentar:
automated cleanup.
- Status:
- Anpassung: Wenn Sie das Ergebnis (z. B. in
FALSE_POSITIVE) oder den Kommentar ändern möchten, können Sie Folgendes tun:- Bearbeiten Sie das
DEFAULT_FEEDBACK-Wörterbuch direkt in der Python-Datei. - Übergeben Sie CLI-Parameter (z.B.
--verdict="FALSE_POSITIVE"), um bestimmte Werte zu überschreiben.
- Bearbeiten Sie das
Bulk-Schließung ausführen
Führen Sie das Script für die Bulk-Aktualisierung mit der zuvor erstellten Textdatei aus (siehe Erkennungs-IDs extrahieren). Dieses Skript ruft die Methode UpdateAlert für jede ID in Ihrer Liste auf.
Befehl:
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"
Schließung bestätigen (optional)
Wenn Sie prüfen möchten, ob die Benachrichtigungen geschlossen wurden, können Sie die Details einer einzelnen Benachrichtigung mit dem Modul get_alert.py aufrufen.
Befehl:
python -m detect.v1alpha.get_alert \
--project_id=$PROJECT_ID \
--project_instance=$PROJECT_INSTANCE \
--credentials_file=$CREDENTIALS_FILE \
--alert_id=$ALERT_ID
Erwartetes Ergebnis: Die JSON-Ausgabe enthält ein feedbackSummary-Objekt mit "status": "CLOSED" und dem von Ihnen angegebenen Kommentar (z. B. „automated cleanup“).
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten