Benachrichtigungen per API in großen Mengen schließen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie eine große Anzahl von Benachrichtigungen programmatisch mit der Google Security Operations REST API schließen. Google empfiehlt, diese Methode in Situationen zu verwenden, in denen das Schließen von Benachrichtigungen auf der Plattform zu zeitaufwendig wäre.

Vorbereitung

Folgendes wird benötigt:

  • Python-Umgebung:Sie benötigen eine installierte Python-Umgebung, um die Beispielskripts auszuführen.
  • API-Beispiele:Zugriff auf das api-samples-python-GitHub-Repository.
  • Anmeldedaten:Eine gültige Datei mit Anmeldedaten (z. B. .chronicle_credentials.json).
  • jq:Ein Befehlszeilen-JSON-Prozessor, der zum Parsen der API-Ausgabe verwendet wird.

Nach Erkennungen suchen

Zuerst müssen Sie die Benachrichtigungen (Benachrichtigungsereignisse) identifizieren, die Sie schließen möchten. Mit dem list_detections.py-Script können Sie nach erkannten Verstößen suchen, die mit einer bestimmten Regel-ID verknüpft sind.

  1. Suchen Sie Ihre Regel-ID und Projektdetails.
  2. Führen Sie das Skript aus, um die erkannten Elemente in eine JSON-Datei auszugeben. Der JSON-Dateiname kann entweder detections.json oder temp.json sein.

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 für die 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.

  1. Verwenden Sie jq, um die Erkennungs-IDs (die mit de_ beginnen) aus dem JSON-Array zu extrahieren.
  2. 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 einer Liste von IDs erstellt, z. B. de_ad9d2771-a567....

Feedback konfigurieren („Schließen“-Aktion)

Wenn Sie eine Benachrichtigung schließen, wird der Status „Feedback“ auf CLOSED gesetzt.

  • Standardverhalten:Das bulk_update_alerts.py-Skript verwendet eine hartcodierte Standard-Feedbacknutzlast:
    • Status: CLOSED
    • Grund: REASON_MAINTENANCE
    • Kommentar:automated cleanup.
  • Anpassung:Wenn Sie das Ergebnis (z. B. in FALSE_POSITIVE) oder den Kommentar ändern müssen, haben Sie folgende Möglichkeiten:
    • 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.

Bulk-Schließen ausführen

Führen Sie das Bulk-Update-Script mit der zuvor erstellten Textdatei aus (siehe Erkennungs-IDs extrahieren). In diesem Skript wird die Methode UpdateAlert für jede ID in Ihrer Liste aufgerufen.

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 erfolgreich 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. „automatische Bereinigung“).

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten