Übersicht
Security Command Center stellt in derGoogle Cloud -Konsole Benachrichtigungen zu Ergebnissen in Echtzeit bereit. In dieser Anleitung wird beschrieben, wie Sie Google Cloud -Dienste und APIs von Drittanbietern verwenden, um diese Funktionalität zu erweitern und Benachrichtigungen in Slack nahezu in Echtzeit zu erhalten. Wenn Sie diese Anleitung abgeschlossen haben, erhalten Sie Benachrichtigungen über neue Ergebnisse in konfigurierten Drittanbieterdiensten, ohne sich in der Google Cloud Console anzumelden. So kann schneller auf Sicherheitslücken und Bedrohungen reagiert werden. Weitere Informationen zu den verschiedenen Arten von Sicherheitslücken und Bedrohungen in Security Command Center
Topologie
In dieser Anleitung erstellen Sie die Konfiguration, die im folgenden Diagramm dargestellt wird.
Ziele
In dieser Anleitung tun Sie Folgendes:
- Pub-/Sub-Thema einrichten
- Slack einrichten
- Code in Cloud Run Functions schreiben
- Pub/Sub und Cloud Run-Funktionen konfigurieren, um Benachrichtigungen an Slack zu senden, wenn ein neues Ergebnis mit hohem oder kritischem Schweregrad ins Security Command Center geschrieben wird.
- Probleme mit Benachrichtigungen beheben
Kosten
In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet, darunter:
- Pub/Sub
- Cloud Run-Funktionen
- Cloud Build
Sie können mithilfe des Preisrechners die Kosten für Ihre voraussichtliche Nutzung kalkulieren.
Hinweis
Zum Durcharbeiten dieser Anleitung benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):
- Organisationsadministrator (
roles/resourcemanager.organizationAdmin) - Sicherheitscenter-Administrator (
roles/securitycenter.admin) - Sicherheitsadministrator (
roles/iam.securityAdmin) - Eine Rolle mit der Berechtigung
serviceusage.services.use, z. B. Inhaber (roles/owner), Bearbeiter (roles/editor) oder eine benutzerdefinierte Rolle - Dienstkonten erstellen (
roles/iam.serviceAccountCreator) - Pub/Sub-Bearbeiter (
roles/pubsub.editor) - Rechnungskontoadministrator (
roles/billing.admin)
Die IAM-Rollen für Security Command Center können auf Organisations-, Ordner- oder Projektebene zugewiesen werden. Die Möglichkeit, Ergebnisse, Assets und Sicherheitsquellen anzusehen, zu bearbeiten, zu erstellen oder zu aktualisieren, hängt von der Ebene ab, auf die Sie Zugriff haben. Weitere Informationen zu Security Command Center-Rollen finden Sie unter Zugriffssteuerung.
Projekt einrichten
Führen Sie die folgenden Schritte aus, um ein Projekt zu erstellen oder auszuwählen.
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
Geschätzte Dauer: Das Einrichten und Testen von Benachrichtigungen für einen einzelnen Dienst dauert ungefähr eine Stunde.
Pub/Sub-Thema einrichten
Pub/Sub ist ein Echtzeit-Messaging-Dienst, mit dem Nachrichten zwischen unabhängigen Anwendungen gesendet und empfangen werden können. Mehr zu Pub/Sub
In diesem Abschnitt konfigurieren Sie das Security Command Center, um Ergebnisse in einem Pub/Sub-Thema zu veröffentlichen.
So richten Sie ein Pub/Sub-Thema ein und abonnieren es:
Geben Sie Ihr Google Cloud Projekt in einer Umgebungsvariable an.
export PROJECT_ID=PROJECT_IDErsetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Geben Sie Ihre Google Cloud Organisation in einer Umgebungsvariable an.
export ORG_ID=ORG_IDErsetzen Sie ORG_ID durch Ihre Organisations-ID.
Legen Sie die Projekt-ID für
gcloud-Befehle fest.gcloud config set project PROJECT_IDErstellen Sie das Pub/Sub-Thema, in dem Benachrichtigungen veröffentlicht werden.
gcloud pubsub topics create scc-critical-and-high-severity-findings-topicGeben Sie das Thema in einer Umgebungsvariablen an.
export TOPIC=projects/$PROJECT_ID/topics/scc-critical-and-high-severity-findings-topicErstellen Sie das Abo, das Cloud Run-Funktionen benachrichtigt, um eine Chatnachricht zu senden, wenn Nachrichten im Thema veröffentlicht werden.
gcloud pubsub subscriptions create scc-critical-and-high-severity-findings-sub \ --topic scc-critical-and-high-severity-findings-topicKonfigurieren Sie das Security Command Center so, dass Benachrichtigungen in diesem Thema veröffentlicht werden. Sie können alle mit der ListFindings API kompatiblen Filter verwenden.
Mit dem folgenden Filter werden Benachrichtigungen für aktive Ergebnisse mit hohem und kritischem Schweregrad am Ort
globalveröffentlicht. Weitere Informationen zum Filtern von Ergebnissengcloud scc notifications create scc-critical-high-severity \ --pubsub-topic=$TOPIC \ --organization=$ORG_ID \ --location=global \ --filter '(severity="HIGH" OR severity="CRITICAL") AND state="ACTIVE"'
Als Nächstes erstellen oder konfigurieren Sie Ihre Chat-App, um Benachrichtigungen von Pub/Sub zu erhalten.
Messaging-App einrichten
In diesem Abschnitt wird beschrieben, wie Sie mit Pub/Sub und Cloud Run-Funktionen oder Cloud Run-Funktionen (1. Generation) Benachrichtigungen nahezu in Echtzeit für Slack aktivieren.
So senden Sie Benachrichtigungen an einen Slack-Kanal: * Erstellen Sie eine neue Slack-App mit ausreichenden Berechtigungen, um Nachrichten auf einem öffentlichen Slack-Kanal zu posten. * Erstellen und stellen Sie eine Cloud Run-Funktion bereit, die Chatnachrichten an Slack sendet, wenn Benachrichtigungen von Pub/Sub empfangen werden.
### Neue Slack-App erstellen
In diesem Abschnitt erstellen Sie eine neue Slack-App, um Benachrichtigungen zu erhalten.
- Gehen Sie zu Slack API-Apps. Die Seite wird in einem neuen Tab geöffnet.
Melden Sie sich an oder erstellen Sie ein Konto.
Wählen Sie Anwendung erstellen aus.
Setzen Sie den App-Namen auf SCC Finding Notifier.
Wählen Sie den Slack-Entwicklungsarbeitsbereich aus, in dem der Slack-Bot Nachrichten posten soll, und klicken Sie dann auf App erstellen.
Wählen Sie im Navigationsbereich die Option OAuth & Berechtigungen aus.
Wechseln Sie zum Abschnitt Bereiche. Bereiche lassen sich in zwei Kategorien unterteilen:
- Bereiche für Bot-Token
- Bereiche für Nutzer-Token
Für diese Übung müssen Sie keinen Bereich für Nutzer-Token hinzufügen. Klicken Sie unter "Bereiche für Bot-Token" auf OAuth-Bereich hinzufügen und geben Sie Folgendes ein:
chat:writechat:write.public
Scrollen Sie zum Anfang der Seite OAuth & Berechtigungen und klicken Sie auf App in Arbeitsbereich installieren.
Klicken Sie im Dialogfeld zur Bestätigung auf Zulassen.
Kopieren Sie das OAuth-Zugriffstoken des Bot-Nutzers zur Verwendung in der Cloud Functions-Funktion.
Als Nächstes stellen Sie eine Cloud Run-Funktion bereit, um Benachrichtigungen an eine Slack-Gruppe zu senden.
Slack-Cloud Run-Funktion erstellen
In diesem Abschnitt stellen Sie eine Funktion bereit, um Benachrichtigungen an Ihr Slack-Konto zu senden. Das Codebeispiel in diesem Abschnitt ist in Python geschrieben. Sie können jedoch jede von Cloud Run Functions unterstützte Sprache verwenden.
Wechseln Sie in der Google Cloud Console zur Seite Dienste für Cloud Run-Funktionen.
Wählen Sie die ID des Projekts aus, das das Pub/Sub-Thema enthält.
Klicken Sie auf Funktion schreiben und füllen Sie die Felder aus:
- Geben Sie für Servicename
slack-chat-high-and-critical-findingsein. - Wählen Sie bei Region die Region aus, in der Sie den Dienst speichern möchten.
- Wählen Sie unter Laufzeit die Python-Version aus, die zum Ausführen Ihrer Funktion verwendet werden soll.
- Geben Sie für Servicename
Klicken Sie auf Trigger hinzufügen und wählen Sie Pub/Sub-Trigger aus.
Geben Sie die Details des Pub/Sub-Themas ein, das Sie unter Pub/Sub-Thema einrichten erstellt haben, und klicken Sie auf Trigger speichern.
Klicken Sie auf Erstellen. Die Dienstdetails werden angezeigt.
Klicken Sie auf dem Tab Quelle im Bereich Quelle auf requirements.txt.
Fügen Sie im Code-Editor
requestsundfunctions-framework==3.*hinzu:requests functions-framework==3.*Klicken Sie im Bereich Quelle auf main.py.
Ersetzen Sie den Code im Code-Editor durch Folgendes:
import base64 import json import requests import functions_framework TOKEN = "BOT_ACCESS_TOKEN" @functions_framework.cloud_event def send_slack_chat_notification(cloud_event): pubsub_message = base64.b64decode(cloud_event.data["message"]["data"]).decode('utf-8').strip() message_json = json.loads(pubsub_message) finding = message_json['finding'] requests.post("https://slack.com/api/chat.postMessage", data={ "token": TOKEN, "channel": "#SLACK_CHANNEL_NAME", "text": f"A high severity finding {finding['category']} was detected." })Ersetzen Sie Folgendes:
BOT_ACCESS_TOKEN: das OAuth-Zugriffstoken des Bot-Nutzers, das Sie mit der Slack-App erstellt haben.SLACK_CHANNEL_NAME: Der Slack-Kanal, an den Sie die Benachrichtigungen senden möchten.
Geben Sie im Feld Funktionseinstiegspunkt den Namen der Funktion im Codebeispiel ein:
send_slack_chat_notification.Klicken Sie auf Speichern und wieder bereitstellen. Wenn neben dem Funktionsnamen ein grünes Häkchen angezeigt wird, wurde die Funktion erfolgreich bereitgestellt. Dieser Vorgang kann einige Minuten dauern.
Wenn die vorherigen Schritte fehlerfrei abgeschlossen wurden, ist die Einrichtung abgeschlossen und Sie erhalten Benachrichtigungen. Hinweise:
- Sie erhalten eine separate Chat-Nachricht für jedes einzelne Ergebnis mit kritischem oder hohem Schweregrad. Die Häufigkeit oder Anzahl der Benachrichtigungen hängt von den Ressourcen in Ihrer Organisation ab.
- Benachrichtigungen werden veröffentlicht und nahezu in Echtzeit gesendet. Die Unmittelbarkeit von Nachrichten ist jedoch nicht garantiert und mehrere Faktoren können Verzögerungen verursachen, einschließlich Problemen mit Slack.
So ändern Sie den Workflow für Benachrichtigungen:
- Ändern Sie die Empfänger, indem Sie Ihre Cloud Run-Funktion aktualisieren.
- Ändern Sie, welche Ergebnisse Benachrichtigungen auslösen. Aktualisieren Sie dazu den Filter für das Pub/Sub-Thema.
Benachrichtigungen testen
Um zu testen, ob Benachrichtigungen richtig konfiguriert sind, folgen Sie der Anleitung unten, um für Ergebnisse mit hohem Schweregrad zwischen aktiven und inaktiven Status zu wechseln.
- Wechseln Sie zur Seite "Ergebnisse" des Security Command Center.
Zur Seite "Ergebnisse" - Wählen Sie Ihre Organisation aus, wenn Sie dazu aufgefordert werden.
- Scrollen Sie im Bereich Schnellfilter nach unten zum Abschnitt Schweregrad und wählen Sie Hoch oder Kritisch aus. Im Bereich Ergebnisse der Ergebnisabfrage werden nur die Ergebnisse der ausgewählten Schwere angezeigt.
- Wählen Sie im Bereich Ergebnisse der Ergebnissuche ein Ergebnis aus, indem Sie das Kästchen neben dem Namen anklicken.
- Wählen Sie in der Aktionsleiste Ergebnisse der Abfrage im Menü Aktivitätsstatus ändern die Option Inaktiv aus. Wenn in der aktuellen Ergebnisabfrage nur aktive Ergebnisse angezeigt werden, wird das Ergebnis aus den Abfrageergebnissen entfernt.
- Scrollen Sie im Bereich Schnellfilter nach unten zum Abschnitt Status und ändern Sie die Auswahl so, dass nur Inaktiv ausgewählt ist. Im Bereich Ergebnisse der Ergebnisabfrage werden nur inaktive Ergebnisse angezeigt.
- Wählen Sie im Bereich Ergebnisse der Ergebnisabfrage das Ergebnis aus, das Sie als inaktiv markiert haben.
- Wählen Sie in der Aktionsleiste Ergebnisse der Abfrage im Menü Aktivitätsstatus ändern die Option Aktiv aus.
- Prüfen Sie Ihre Slack-Nachrichten. Es wird eine Meldung ähnlich den folgenden Bildern angezeigt:

Fehlerbehebung
Wenn keine Chatnachrichten gesendet oder empfangen werden, führen Sie die folgenden Schritte aus, um potenzielle Probleme zu identifizieren und zu beheben.
1. Check [Stackdriver
logs](https://console.cloud.google.com/projectselector2/logs/viewer) for
your Cloud Run function to determine whether the function is being
invoked. If it is not being invoked, ensure that notifications are set up
correctly.
1. If the Cloud Run function is being invoked, then it might be
crashing. Check for errors in Cloud Run functions using
[Google Cloud console Error Reporting]
(https://console.developers.google.com/errors).
Bereinigen
Damit Ihrem Google Cloud -Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.
Projekt löschen
- Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Einzelne Ressourcen löschen
So löschen Sie die Benachrichtigungskonfiguration:
gcloud scc notifications delete scc-critical-high-severity \ --organization=ORG_ID \ --location=globalErsetzen Sie ORG_ID durch Ihre Organisations-ID.
Kommentieren Sie die Aufrufe
sendoderpostin Ihrer Cloud Run-Funktion aus, um Ihre Konfiguration beizubehalten und Benachrichtigungen vorübergehend zu pausieren.Cloud Run-Funktion löschen:
- Rufen Sie Cloud Run Functions auf.
Zu den Cloud Run-Funktionen - Klicken Sie auf das Kästchen neben der Funktion, die Sie löschen möchten.
- Klicken Sie auf Löschen .
- Rufen Sie Cloud Run Functions auf.
Löschen Sie das Dienstkonto:
- Rufen Sie die Seite Dienstkonten auf.
Zur Seite "Dienstkonten" - Wählen Sie ein Projekt aus.
- Wählen Sie das Dienstkonto aus, das Sie löschen möchten, und klicken Sie auf Löschen .
- Rufen Sie die Seite Dienstkonten auf.
Nächste Schritte
- Weitere Informationen zu Benachrichtigungsfehlern
- Weitere Informationen zum Filtern von Benachrichtigungen
- Informationen zum Beheben von Problemen mit Ergebnissen in Web Security Scanner und Security Health Analytics