Benachrichtigungen per API in großen Mengen schließen
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.
- Suchen Sie Ihre Regel-ID und Projektdetails.
- Führen Sie das Skript aus, um die erkannten Elemente 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 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.
- 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 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.
- Status:
- 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.
- Bearbeiten Sie das
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