Das Security Command Center (SCC) von Google Cloud bündelt alle potenziellen Sicherheitsprobleme Ihrer Cloud-Umgebung in einer zentralen Ansicht. Doch was, wenn Sie keine Zeit haben, die gemeldeten Findings durchzusehen – oder es schlicht vergessen? Wer nicht hinschaut, dessen offene Firewall bleibt offen, und der öffentliche Storage-Bucket bleibt öffentlich, ohne dass jemand seinen Inhalt prüft.

Wäre es nicht besser, diesen Findings proaktiv zu begegnen und in Echtzeit benachrichtigt zu werden?
In diesem Beitrag zeigen wir Ihnen, wie Sie SCC Findings um Alerts in Cloud Monitoring erweitern.
So funktioniert es
Eine Schwäche des SCC ist das Fehlen von Metriken und Alerts in Cloud Monitoring, da Findings nur auf Organisationsebene sichtbar sind. Indem Sie die Findings nach PubSub exportieren [1] und die Skripte aus diesem Projekt einsetzen, lassen sich diese Benachrichtigungen in Cloud Monitoring nutzbar machen.
Mit den Skripten dieses Projekts können Sie:
- Das Einrichten und Entfernen von SCC-Benachrichtigungen an PubSub in Ihrem Projekt automatisieren
- Die Findings in Ihrem Projekt protokollieren, sodass die Daten in Cloud Logging und Cloud Monitoring zur Verfügung stehen
- Eigenentwickelte Skripte reduzieren oder ganz vermeiden und stattdessen, wo möglich, GCP-Standardfunktionen nutzen

Voraussetzungen
Für die Ausführung der Skripte benötigen Sie Folgendes:
- Organization ID – in der sich Ihr Projekt befindet
- Project ID – in dem die Ressourcen installiert werden
- Service Account – ein Service Account, unter dem die SCC-Benachrichtigungen laufen
- Folgende APIs müssen im Projekt aktiviert sein: Security Command Center API für die Organisation, Cloud Build API, Cloud Functions API
- Sie benötigen folgende IAM-Rollen:
- Security Center Admin – zum Einrichten der Benachrichtigungen
- Organization Admin – um den Service Account mit den nötigen Rollen auszustatten
Installation
Repository klonen
Klonen Sie das Repo in die Cloud Shell. Alternativ funktioniert das auch auf einer VM oder Ihrem lokalen Rechner.
git clone https://github.com/gschaeffer/scc-findings-to-pubsub
Variablen anpassen
Passen Sie die Skriptvariablen in der Datei setup.sh an. Organization ID, Project ID und Service Account müssen gesetzt werden. Die übrigen Variablen sind optional.
Setup ausführen
Zuerst richten wir SCC Notifications to PubSub wie von Google beschrieben ein [1 oben]. Verwenden Sie dafür das Kommando setup.sh, das diesen Prozess automatisiert. Stellen Sie sicher, dass Ihre gcloud-Konfiguration auf Ihre Project ID zeigt.
gcloud config set core/project YOUR_PROJECT_ID ./setup.sh apply # if prompted with 'API [securitycenter.googleapis.com] not enabled # on project. Would you like to enable and retry?', select 'y'.
Damit werden ausschließlich die in der SCC-Notifications-Doku [1] beschriebenen Ressourcen angelegt. Ab diesem Zeitpunkt sollten Benachrichtigungen an das PubSub-Topic gesendet werden, sobald sie in SCC erkannt werden.
Cloud Function ergänzen
Zweitens: Damit Findings-Ereignisse auch in Cloud Monitoring verfügbar werden, installieren Sie die mitgelieferte Cloud Function. Sie leitet Findings aus PubSub an Cloud Logging und Cloud Monitoring weiter. Das Installationsskript liegt im Verzeichnis functions.
cd functions/ ./deploy_logger_func.sh
Dadurch wird eine sehr einfache Python-Funktion installiert, die ausgelöst wird, sobald Findings im PubSub-Topic eintreffen. Nach der Installation sollten Sie Log-Einträge in Cloud Logging sehen. Diese Einträge werden zur einfachen Suche in einem Log namens scc_notifications_log abgelegt.
Sobald die Findings in Cloud Logging vorliegen, stehen Ihnen alle gewohnten Google-Cloud-Tools und -Dienste zur Verfügung, um Metriken und Alerts einzurichten: https://cloud.google.com/monitoring/alerts. Möchten Sie mit diesen Daten in BigQuery, Cloud Storage oder einem weiteren PubSub-Topic arbeiten, können Sie sie über Logging Exports https://cloud.google.com/logging/docs/export an das Ziel Ihrer Wahl weiterleiten.
Cleanup
Um die installierten Ressourcen wieder zu entfernen, verwenden Sie dasselbe Setup-Kommando mit dem Argument delete sowie gcloud, um die Cloud Function zu löschen. Passen Sie die Variablen für Funktionsname und Region nach Bedarf an.
./setup.sh delete FUNCTION="scc_notification_handler" REGION= gcloud functions delete $FUNCTION --region $REGION
Ursprünglich veröffentlicht auf https://github.com .