Dieser Inhalt ist noch nicht für Mobilgeräte optimiert.
Die Lernumgebung funktioniert am besten, wenn Sie auf einem Computer über einen per E‑Mail gesendeten Link darauf zugreifen.
GSP1262
Übersicht
Web Security Scanner (WSS) ist einer der integrierten Dienste von Security Command Center, mit dem Sie Sicherheitslücken in App Engine-, Google Kubernetes Engine- (GKE) und Compute Engine-Webanwendungen identifizieren können.
Dieser Dienst durchsucht Ihre Anwendung, folgt dabei allen Links im Bereich der Start-URLs und versucht, so viele Nutzereingaben und Event-Handler wie möglich anzuwenden. Er scannt automatisch und erkennt vier verbreitete Sicherheitslücken, nämlich Cross-Site-Scripting (XSS), Flash Injection, gemischte Inhalte (HTTP in HTTPS) und veraltete/unsichere Bibliotheken.
Web Security Scanner ermöglicht eine frühzeitige Identifizierung von Sicherheitslücken bei nur wenigen falsch positiven Ergebnissen. Sie können Sicherheitsscans ganz einfach einrichten, ausführen, planen und verwalten.
In diesem Lab verwenden Sie Web Security Scanner, um eine Python Flask-Anwendung auf Sicherheitslücken zu scannen.
Ziele
Aufgaben in diesem Lab:
Starten Sie eine anfällige Python Flask-Anwendung auf einer Compute Engine-Instanz.
Verwenden Sie Web Security Scanner, um die Anwendung zu scannen und Sicherheitslücken zu finden.
Beheben Sie die Sicherheitslücke in der Anwendung.
Scannen Sie die Anwendung noch einmal und prüfen Sie, ob die Sicherheitslücken behoben wurden.
Einrichtung und Anforderungen
Für jedes Lab werden Ihnen ein neues Google Cloud-Projekt und die entsprechenden Ressourcen für eine bestimmte Zeit kostenlos zur Verfügung gestellt.
Melden Sie sich über ein Inkognitofenster in Qwiklabs an.
Beachten Sie die Zugriffszeit (z. B. 1:15:00). Das Lab muss in dieser Zeit abgeschlossen werden.
Es gibt keine Pausenfunktion. Sie können bei Bedarf neu starten, müssen dann aber von vorn beginnen.
Wenn Sie bereit sind, klicken Sie auf Lab starten.
Notieren Sie sich Ihre Anmeldedaten (Nutzername und Passwort). Mit diesen Daten melden Sie sich in der Google Cloud Console an.
Klicken Sie auf Google Console öffnen.
Klicken Sie auf Anderes Konto verwenden. Kopieren Sie den Nutzernamen und das Passwort für dieses Lab und fügen Sie beides in die entsprechenden Felder ein.
Wenn Sie andere Anmeldedaten verwenden, tritt ein Fehler auf oder es fallen Kosten an.
Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen.
Szenario
Die Cymbal Bank ist eine US-amerikanische Einzelhandelsbank mit über 2.000 Filialen in allen 50 Bundesstaaten. Das Unternehmen bietet umfassende Debit- und Kreditkartendienste, die auf einer leistungsfähigen Zahlungsplattform basieren. Es ist ein Finanzdienstleistungsunternehmen, das sich in einer digitalen Transformation befindet.
Die Cymbal Bank wurde 1920 unter dem Namen Troxler gegründet. Die Cymbal Group erwarb das Unternehmen 1975, nachdem es stark in die proprietären Geldautomaten der Cymbal Group investiert hatte. Als die Bank zu einem nationalen Marktführer wurde, legte sie strategischen Wert auf die Modernisierung des Kundenservice sowohl in ihren Filialen als auch digital über eine App, die sie 2014 veröffentlichte. Die Cymbal Bank beschäftigt 42.000 Mitarbeitende im ganzen Land und erwirtschaftete 2019 einen Umsatz von 24 Milliarden US-Dollar.
Die Cymbal Bank möchte eine neue Banking-Anwendung für ihre Unternehmenskunden mit Google Cloud-Technologie entwickeln. Anwendungssicherheit ist von entscheidender Bedeutung. Der CTO möchte wissen, wie Google Cloud Sicherheitslücken in Anwendungen erkennen und beheben kann. Als Cloud Security Engineer ist es Ihre Aufgabe, die innovativen Funktionen von Security Command Center zum Scannen von Anwendungen auf Sicherheitslücken zu demonstrieren.
Aufgabe 1: Virtuelle Maschine starten und Firewallregel für WSS erstellen
In dieser Aufgabe richten Sie die Infrastruktur ein, um dem CTO der Cymbal Bank eine Sicherheitslücke in einer Anwendung zu zeigen. Genauer gesagt stellen Sie eine virtuelle Maschine bereit und öffnen eine Firewallregel, damit Web Security Scanner auf die Anwendung mit Sicherheitslücke zugreifen kann, die Sie bereitstellen möchten.
Klicken Sie in der Titelleiste der Google Cloud Console auf Cloud Shell aktivieren (). Wenn Sie dazu aufgefordert werden, klicken Sie auf Weiter.
Erstellen Sie eine statische IP-Adresse, die zum Scannen einer anfälligen Webanwendung verwendet werden kann, indem Sie den folgenden Befehl ausführen:
Das Startscript installiert python-flask, ein Webanwendungs-Framework, das zum Ausführen einer einfachen Python-Anwendung verwendet wird. Diese Anwendung demonstriert eine XSS-Sicherheitslücke (Cross-Site-Scripting), eine häufige Sicherheitslücke bei Webanwendungen.
Führen Sie den folgenden Befehl aus, um eine Firewallregel zu öffnen, damit Web Security Scanner auf eine Anwendung mit Sicherheitslücke zugreifen kann. Beachten Sie dabei die Quellbereiche, aus denen Web Security Scanner Anwendungen scannt.
Klicken Sie auf Fortschritt prüfen.
VM mit den gewünschten Konfigurationen erstellen
Aufgabe 2: Anwendung mit Sicherheitslücke bereitstellen, um eine XSS-Sicherheitslücke auszulösen
In dieser Aufgabe rufen Sie den Anwendungscode ab und fügen eine Sicherheitslücke ein, die Web Security Scanner erkennen soll. Dies geschieht in Form einer Anwendung, die ein einfaches Formular ist, das die Eingabe eines Nutzers empfängt und ohne Änderungen ausgibt.
Klicken Sie in der Cloud Console im Navigationsmenü () auf Compute Engine>VM-Instanzen.
Das erstmalige Initialisieren kann einige Minuten dauern.
Klicken Sie dann neben Ihrer Instanz auf den Button SSH:
Möglicherweise wird ein Pop-up-Fenster angezeigt, in dem Sie aufgefordert werden, SSH im Browser zu erlauben, eine Verbindung zu VMs herzustellen. Klicken Sie auf Autorisieren.
Dadurch wird in einem neuen Fenster eine SSH-Verbindung zu Ihrer VM-Instanz geöffnet.
Führen Sie im SSH-Fenster (nicht in Cloud Shell) den folgenden Befehl aus, um die Dateien der Webanwendung mit Sicherheitslücke herunterzuladen und zu extrahieren:
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar
Führen Sie nun den folgenden Befehl aus, um die Anwendung bereitzustellen:
python3 app.py
Kurz darauf sollten Sie eine Meldung erhalten, dass Ihre Anwendung ausgeführt wird.
Ausgabe:
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
Suchen Sie die statische IP-Adresse der VM, die Sie zuvor in den Texteditor kopiert haben.
Ersetzen Sie YOUR_EXTERNAL_IP im URL-Feld unten durch diese IP-Adresse und öffnen Sie die URL in einem neuen Browsertab:
http://<YOUR_EXTERNAL_IP>:8080
Hinweis: Sie finden die externe IP-Adresse auch in der Google Cloud Console. Dort wird sie als Feld angezeigt, das Ihrer VM-Instanz zugeordnet ist.Hinweis: Wenn ein Pop-up-Fenster mit dem Hinweis angezeigt wird, dass die externe IP-Adresse keine verschlüsselte Verbindung unterstützt, klicken Sie auf Weiter zur Website.
Ein Firmenkundenportal der Cymbal Bank mit einem Webformular sollte angezeigt werden.
Geben Sie im Webformular den folgenden String ein:
<script>alert('This is an XSS Injection')</script>
Klicken Sie auf POST.
Nun sollte das folgende Warnfenster angezeigt werden.
Dies ist eine häufige Sicherheitslücke in Webanwendungen: eine Cross-Site-Scripting-Sicherheitslücke. Cross-Site-Scripting (XSS) ist eine Sicherheitslücke, durch die angreifende Personen schädliche Skripts in den Browsern von Nutzern im Kontext Ihrer Anwendung ausführen können. Ihr Browser interpretiert einen String als legitimes JavaScript und führt ihn aus.
Eine angreifende Person, die einen XSS-Fehler ausnutzt, um JavaScript in eine HTML-Seite einzuschleusen, erhält praktisch uneingeschränkten Zugriff auf die angemeldeten Sitzungen der Opfer, die die Seite besuchen. Sie kann Nutzerdaten stehlen, sie manipulieren, Datenschutz- oder Sicherheitseinstellungen ändern oder sogar die Funktionsweise und das Aussehen des Produkts komplett verändern. Darüber hinaus kann eine XSS-Sicherheitslücke in einer Anwendung, egal wie unbedeutend sie auch sein mag, andere Inhalte innerhalb derselben Domain gefährden.
Das ist eine von vielen Sicherheitslücken in Anwendungen, die Sie mit Web Security Scanner identifizieren können.
Klicken Sie auf Fortschritt prüfen.
Dateien der anfälligen Webanwendung auf die VM herunterladen
Aufgabe 3: Aktivieren Sie die Web Security Scanner API.
Nachdem die Anwendung mit Sicherheitslücke gestartet wurde, können Sie dem CTO die Funktionen von Web Security Scanner demonstrieren. Zuerst müssen Sie jedoch die API konfigurieren, die WSS zum Ausführen verwendet.
Wechseln Sie zurück zum Browsertab mit der Cloud Console.
Wählen Sie im Navigationsmenü () APIs und Dienste>Bibliothek aus.
Geben Sie im Feld „Nach APIs und Diensten suchen“ Web Security Scanner ein und drücken Sie die Eingabetaste.
Wählen Sie die Web Security Scanner API aus.
Klicken Sie auf Aktivieren, um die Web Security Scanner API zu aktivieren.
Klicken Sie auf Fortschritt prüfen.
Web Security Scanner API aktivieren
Aufgabe 4: Bereitgestellte Anwendung mit WSS scannen
In dieser Aufgabe konfigurieren und richten Sie einen Scan der Anwendung ein, um zu prüfen, ob Sicherheitslücken gefunden werden.
Öffnen Sie das Navigationsmenü () und wählen Sie Sicherheit>Web Security Scanner aus.
Klicken Sie auf + Neuer Scan.
Im Abschnitt Start-URLs sollte das Feld Start-URL 1 mit Ihrer statischen IP-Adresse vorausgefüllt sein.
Fügen Sie die Portnummer 8080 hinzu, sodass die Start-URL so aussieht:
http://<EXTERNAL_IP>:8080
Löschen Sie Start-URL 2, falls vorhanden.
Nehmen Sie sich einen Moment Zeit, um die verbleibenden Felder auf der Seite Neuen Scan erstellen zu überprüfen:
Authentifizierung: Ein Attribut, mit dem Anmeldedaten für Anwendungen bereitgestellt werden können, damit sich der Scanner bei einer App authentifizieren kann, während er sie scannt.
Zeitplan: Ein Attribut, mit dem Sie Scans so planen können, dass sie automatisch ausgeführt werden.
In Security Command Center exportieren: Ein Attribut, mit dem Sie Scankonfigurationen und -ergebnisse nach Abschluss der Scans automatisch in Cloud Security Command Center exportieren können.
Prüfen Sie, ob Authentifizierung immer noch auf Keine und Zeitplan auf Nie festgelegt ist.
Klicken Sie auf Mehr anzeigen, um die restlichen Einstellungen zu prüfen.
Klicken Sie auf Speichern, um den Scan zu erstellen.
Hinweis: Dadurch wird der Scan erstellt, aber noch nicht ausgeführt. Da Sie noch keinen Zeitplan erstellt haben, muss er derzeit manuell ausgeführt werden.
Klicken Sie auf Ausführen, um den Scan zu starten.
Hinweis: Aufgrund der Anzahl möglicher Tests kann der Scan etwas mehr als 10 Minuten dauern.
Kehren Sie zur SSH-Sitzung im separaten Browserfenster zurück.
Wenn die Sitzung abgelaufen ist, führen Sie den folgenden Befehl aus, um die Anwendung neu zu starten:
python3 app.py
Im SSH-Fenster sollten Logs angezeigt werden, die in etwa wie im folgenden Beispiel aussehen. Das bedeutet, dass Web Security Scanner alle möglichen URLs auf potenzielle Sicherheitslücken testet.
Während des Scans können Sie sich die Tabs Ergebnisse, Gecrawlte URLs und Details ansehen. Sie können auch dieses Video zum Einstieg oder dieses Video zum Scannen auf Sicherheitslücken aufrufen, um mehr über Web Security Scanner zu erfahren.
Wenn der Scan abgeschlossen ist, sollten auf dem Tab Ergebnisse die Cross-Site-Sicherheitslücken angezeigt werden.
Web Security Scanner konnte alle Start-URLs scannen und die XSS-Sicherheitslücken in der Anwendung der Cymbal Bank erkennen. Die automatisierte Erkennung solcher kritischen Sicherheitslücken ist ein großer Vorteil für sicherheitsbewusste Unternehmen wie die Cymbal Bank.
Klicken Sie auf Fortschritt prüfen.
Web Security Scanner-Scan ausführen und Sicherheitslücken in Anwendungen erkennen
Aufgabe 5: Sicherheitslücke beheben und noch einmal scannen
Nachdem Sie gezeigt haben, dass Web Security Scanner eine XSS-Sicherheitslücke erkennen kann, beheben Sie die Sicherheitslücke und führen den Anwendungsscan noch einmal aus.
Kehren Sie zum SSH-Fenster zurück, das mit Ihrer VM-Instanz verbunden ist.
Drücken Sie Strg + C, um die laufende Anwendung zu beenden.
Bearbeiten Sie die Datei app.py mit dem Nano-Editor, indem Sie den folgenden Befehl ausführen:
nano app.py
Suchen Sie die beiden Zeilen, die den Ausgabestring festlegen:
# output_string = "".join([html_escape_table.get(c, c) for c in input_string])
output_string = input_string
Entfernen Sie das Symbol # aus der ersten Zeile und fügen Sie es am Anfang der nächsten Zeile ein. Achten Sie darauf, dass der Code richtig eingerückt ist.
Die letzten Zeilen müssen so aussehen:
@app.route('/output')
def output():
output_string = "".join([html_escape_table.get(c, c) for c in input_string])
# output_string = input_string
return flask.render_template("output.html", output=output_string)
Hinweis: html_escape_table ist ein Wörterbuch, das spezielle HTML-Zeichen, etwa „<“, jeweils ihrer entsprechenden Textdarstellung zuordnet. Sie verwenden diese Tabelle, um spezielle HTML-Zeichen zu maskieren, sodass Ihr Formular Eingaben nur als Rohtext aufnimmt und interpretiert. Weitere Informationen finden Sie in der Dokumentation Was ist HTML-Escape?.
Drücken Sie Strg + X, Y und die Eingabetaste, um die Änderungen zu speichern.
Führen Sie die Anwendung noch einmal aus:
python3 app.py
Kehren Sie zum Browsertab der Google Cloud Console zurück (die Seite „Web Security Scanner“ sollte noch geöffnet sein):
Klicken Sie oben auf der Seite auf Ausführen.
Im SSH-Fenster sollten Logs angezeigt werden, die generiert werden, während Web Security Scanner Anwendungs-URLs auf potenzielle Sicherheitslücken testet.
Während Sie auf die Ergebnisse des Scans warten, melden Sie sich in einem separaten Tab in Ihrem Browser unter der URL http://<EXTERNAL_IP>:8080 an.
Das Webformular wird wieder angezeigt.
Geben Sie im Webformular denselben String ein, den Sie zuvor eingegeben haben:
<script>alert('This is an XSS Injection')</script>
Klicken Sie auf POST.
Prüfen Sie, ob Sie dieses Mal den folgenden String im Browser erhalten:
Hinweis: Diese Technik funktioniert zwar in diesem einfachen Szenario, aber für einen angemessenen Schutz Ihrer Webanwendung müssen Sie fortgeschrittenere Techniken und Frameworks verwenden, die in diesem Lab nicht behandelt werden. Unter den folgenden Links finden Sie weitere Ressourcen:
Kehren Sie zur Google Cloud Console zurück, wo Sie auf der Seite „Web Security Scanner“ aufgehört haben.
Klicken Sie oben auf der Seite auf Ausführen, um Ihre Anwendung noch einmal zu scannen.
Kurz darauf sollten Sie feststellen, dass die Ergebnisse keine XSS-Sicherheitslücken mehr enthalten.
Klicken Sie auf Fortschritt prüfen.
Sicherheitslücken beheben und Anwendung mit Web Security Scanner neu scannen
Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Sie haben dem CTO der Cymbal Bank erfolgreich gezeigt, wie sich mit der leistungsstarken Web Security Scanner-Lösung von Google Cloud XSS-Sicherheitslücken identifizieren und beheben lassen.
Lab beenden
Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Google Cloud Skills Boost entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.
Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.
Die Anzahl der Sterne hat folgende Bedeutung:
1 Stern = Sehr unzufrieden
2 Sterne = Unzufrieden
3 Sterne = Neutral
4 Sterne = Zufrieden
5 Sterne = Sehr zufrieden
Wenn Sie kein Feedback geben möchten, können Sie das Dialogfeld einfach schließen.
Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 27. Februar 2025 aktualisiert
Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen
Privates Surfen verwenden
Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
Klicken Sie im privaten Modus auf Konsole öffnen
In der Konsole anmelden
Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.
Diese Inhalte sind derzeit nicht verfügbar
Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail
Sehr gut!
Bei Verfügbarkeit kontaktieren wir Sie per E-Mail
Es ist immer nur ein Lab möglich
Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten
Privates Surfen für das Lab verwenden
Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
In diesem Lab verwenden Sie Web Security Scanner, einen der integrierten Dienste von Security Command Center, um eine Python Flask-Anwendung auf Sicherheitslücken zu scannen.