Mit Web Security Scanner können Sie Sicherheitslücken in Ihren App Engine-, GKE- (Google Kubernetes Engine) und Compute Engine-Webanwendungen erkennen. Dieser Scanner führt ein Crawling Ihrer Anwendung durch, folgt dabei allen Links im Bereich der Start-URLs und versucht, so viele Nutzereingaben und Event-Handler wie möglich anzuwenden. Web Security Scanner unterstützt nur öffentliche URLs und IP-Adressen, die sich nicht hinter einer Firewall befinden.
Web Security Scanner unterstützt die App Engine-Standardumgebung und die flexiblen App Engine-Umgebungen sowie Compute Engine-Instanzen und GKE-Ressourcen.
Web Security Scanner ist als Ergänzung Ihrer bestehenden Sicherheitsarchitektur und Ihrer Entwicklungsprozesse konzipiert. Damit Sie möglichst wenig durch falsch positive Meldungen abgelenkt werden, ist Web Security Scanner so eingestellt, dass nur Warnungen mit hohen Konfidenzwerten angezeigt werden. Das Tool ist kein Ersatz für eine manuelle Sicherheitsprüfung und bietet keine Garantie dafür, dass Ihre Anwendung frei von Sicherheitslücken ist.
Scantypen
Web Security Scanner ermöglicht verwaltetes und benutzerdefiniertes Scannen auf Sicherheitslücken im Web für öffentliche App Engine-, GKE- und Compute Engine-Dienste.
Verwaltete Scans
Von Web Security Scanner verwaltete Scans werden von Security Command Center konfiguriert und verwaltet. Verwaltete Scans werden jede Woche automatisch ausgeführt, um öffentliche Webendpunkte zu erkennen und zu scannen. Bei diesen Scans wird keine Authentifizierung verwendet. Sie senden nur GET-Anfragen, sodass sie keine Formulare auf Live-Websites senden.
Verwaltete Scans werden getrennt von benutzerdefinierten Scans ausgeführt.
Wenn Security Command Center auf Organisationsebene aktiviert ist, können Sie mit verwalteten Scans die grundlegende Erkennung von Sicherheitslücken in Webanwendungen für Projekte in Ihrer Organisation zentral verwalten, ohne einzelne Projektteams einzubeziehen. Wenn Ergebnisse gefunden werden, können Sie mit diesen Teams zusammenarbeiten, um umfassendere benutzerdefinierte Scans einzurichten.
Wenn Sie Web Security Scanner als Dienst aktivieren, sind die Ergebnisse des verwalteten Scans automatisch auf der Seite Sicherheitslücken des Security Command Center und in zugehörigen Berichten verfügbar. Informationen zum Aktivieren verwalteter Scans in Web Security Scanner finden Sie unter Security Command Center-Dienste konfigurieren.
Verwaltete Scans unterstützen nur Anwendungen, die den Standardport verwenden. Das ist 80 für HTTP-Verbindungen und 443 für HTTPS-Verbindungen. Wenn Ihre Anwendung keinen Standardport verwendet, führen Sie stattdessen einen benutzerdefinierten Scan durch.
Benutzerdefinierte Scans
Benutzerdefinierte Scans von Web Security Scanner liefern detaillierte Informationen zu Ergebnissen in Bezug auf die Anwendungssicherheit, wie veraltete Bibliotheken, Cross-Site-Scripting oder Verwendung von gemischten Inhalten.
Sie definieren benutzerdefinierte Scans auf Projektebene.
Benutzerdefinierte Scanergebnisse sind in Security Command Center verfügbar, nachdem Sie den Leitfaden zum Einrichten benutzerdefinierter Web Security Scanner-Scans befolgt haben.
Scan-Ergebnisse
In diesem Abschnitt werden die Ergebnistypen und Web-Compliance-Standards von Web Security Scanner beschrieben.
Detektoren und Compliance
Web Security Scanner unterstützt Kategorien in den OWASP Top Ten, einem Dokument, das eine Einstufung und eine Anleitung zur Korrektur der zehn wichtigsten Sicherheitsrisiken für Webanwendungen enthält. Öffnen Sie das Webanwendungs-Sicherheitsprojekt (OWASP).
Die Compliance-Zuordnung ist als Referenz enthalten und wird von der OWASP Foundation nicht zur Verfügung gestellt oder überprüft. Sie dient lediglich zur Überwachung auf Verstöße gegen die Compliance-Vorkehrungen. Die Zuordnungen dienen nicht als Grundlage bzw. Ersatz für die Prüfung, Zertifizierung oder Bestätigung der Compliance Ihrer Produkte oder Dienstleistungen gemäß allen regulatorischen oder branchenspezifischen Benchmarks oder Standards.
Weitere Informationen zur Compliance finden Sie unter Compliance mit Sicherheitsbenchmarks prüfen und melden.
Ergebnistypen
Benutzerdefinierte und verwaltete Web Security Scanner-Scans identifizieren die folgenden Ergebnistypen. In der Standardstufe unterstützt Web Security Scanner benutzerdefinierte Scans von bereitgestellten Anwendungen mit öffentlichen URLs und IP-Adressen, die sich nicht hinter einer Firewall befinden.
Kategorie | Ergebnisbeschreibung | OWASP 2017 Top 10 | OWASP 2021 Top 10 |
---|---|---|---|
Kategoriename in der API: |
Ein Git-Repository ist öffentlich zugänglich. Um dieses Ergebnis zu korrigieren, entfernen Sie den unbeabsichtigten öffentlichen Zugriff auf das GIT-Repository. Preisstufe: Premium oder Standard |
A5 | A01 |
Kategoriename in der API: |
Ein SVN-Repository ist öffentlich zugänglich. Um dieses Ergebnis zu korrigieren, entfernen Sie den unbeabsichtigten öffentlichen Zugriff auf das SVN-Repository. Preisstufe: Premium oder Standard |
A5 | A01 |
Kategoriename in der API: |
In der Webanwendung eingegebene Passwörter können in einem normalen Browser-Cache statt in einem sicheren Passwortspeicher gespeichert werden. Preisstufe: Premium |
A3 | A04 |
Kategoriename in der API: |
Passwörter werden in Klartext übertragen und können abgefangen werden. Um dieses Ergebnis zu korrigieren, verschlüsseln Sie das über das Netzwerk übertragene Passwort. Preisstufe: Premium oder Standard |
A3 | A02 |
Kategoriename in der API: |
Ein websiteübergreifender HTTP- oder HTTPS-Endpunkt validiert nur ein Suffix des Preisstufe: Premium |
A5 | A01 |
Kategoriename in der API: |
Ein websiteübergreifender HTTP- oder HTTPS-Endpunkt validiert nur ein Präfix des Preisstufe: Premium |
A5 | A01 |
Kategoriename in der API: |
Die geladene Ressource stimmt nicht mit dem Content-Type HTTP-Header der Antwort überein. Um dieses Ergebnis zu korrigieren, legen Sie für den HTTP-Header Preisstufe: Premium oder Standard |
A6 | A05 |
Kategoriename in der API: |
Ein Sicherheitsheader hat einen Syntaxfehler und wird von Browsern ignoriert. Legen Sie die HTTP-Sicherheitsheader richtig fest, um das Problem zu beheben. Preisstufe: Premium oder Standard |
A6 | A05 |
Kategoriename in der API: |
Ein Sicherheitsheader hat doppelte, nicht übereinstimmende Werte, was zu nicht definiertem Verhalten führt. Legen Sie die HTTP-Sicherheitsheader richtig fest, um das Problem zu beheben. Preisstufe: Premium oder Standard |
A6 | A05 |
Kategoriename in der API: |
Ein Sicherheitsheader wurde falsch geschrieben und wird ignoriert. Legen Sie die HTTP-Sicherheitsheader richtig fest, um das Problem zu beheben. Preisstufe: Premium oder Standard |
A6 | A05 |
Kategoriename in der API: |
Ressourcen werden über HTTP auf einer HTTPS-Seite bereitgestellt. Achten Sie zur Behebung dieses Problems darauf, dass alle Ressourcen über HTTPS bereitgestellt werden. Preisstufe: Premium oder Standard |
A6 | A05 |
Kategoriename in der API: |
Es wurde eine Bibliothek mit bekannten Sicherheitslücken gefunden. Aktualisieren Sie die Bibliotheken auf eine neuere Version, um dieses Ergebnis zu korrigieren. Preisstufe: Premium oder Standard |
A9 | A06 |
Kategoriename in der API: |
Es wurde eine serverseitige Fälschungsanfrage (SSRF) erkannt. Verwenden Sie eine Zulassungsliste, um die Domains und IP-Adressen zu beschränken, an die die Webanwendung Anfragen senden kann, und so das Problem zu beheben. Preisstufe: Premium oder Standard |
Nicht zutreffend | A10 |
Kategoriename in der API: |
Bei einer domainübergreifenden Anfrage enthält die Webanwendung die Sitzungs-ID des Nutzers im Anfrageheader Preisstufe: Premium |
A2 | A07 |
Kategoriename in der API: |
Ein potenzielles SQL-Einschleusungsproblem wurde erkannt. Verwenden Sie parametrisierte Abfragen, um zu verhindern, dass Nutzereingaben die Struktur der SQL-Abfrage beeinflussen, um dieses Ergebnis anzusprechen. Preisstufe: Premium |
A1 | A03 |
Kategoriename in der API: |
Die Verwendung einer anfälligen Version von Apache Struts wurde erkannt. Aktualisieren Sie Apache Struts auf die neueste Version, um dieses Ergebnis zu korrigieren. Preisstufe: Premium |
A8 | A08 |
Kategoriename in der API: |
Ein Feld in dieser Webanwendung ist anfällig für einen Cross-Site-Scripting-Angriff (XSS). Um dieses Ergebnis zu korrigieren, validieren und maskieren Sie vom Nutzer bereitgestellte nicht vertrauenswürdige Daten. Preisstufe: Premium oder Standard |
A7 | A03 |
Kategoriename in der API: |
Ein vom Nutzer bereitgestellter String ist nicht maskiert und AngularJS kann ihn interpolieren. Um dieses Ergebnis zu korrigieren, validieren und maskieren Sie nicht vertrauenswürdige vom Nutzer bereitgestellte Daten, die vom Angular-Framework verarbeitet werden. Preisstufe: Premium oder Standard |
A7 | A03 |
Kategoriename in der API: |
Ein Feld in dieser Webanwendung ist anfällig für einen Cross-Site-Scripting-Angriff. Um dieses Ergebnis zu korrigieren, validieren und maskieren Sie vom Nutzer bereitgestellte nicht vertrauenswürdige Daten. Preisstufe: Premium oder Standard |
A7 | A03 |
Kategoriename in der API: |
Eine XXE-Sicherheitslücke (XML External Entity) wurde erkannt. Diese Sicherheitslücke kann dazu führen, dass die Webanwendung eine Datei auf dem Host offenlegt. Konfigurieren Sie Ihre XML-Parser so, dass externe Entitäten nicht zugelassen werden, um dieses Problem zu beheben. Preisstufe: Premium |
A4 | A05 |
Kategoriename in der API: |
Die Anwendung ist anfällig für Prototypenverschmutzung. Diese Sicherheitslücke tritt auf, wenn den Eigenschaften des Preisstufe: Premium oder Standard |
A1 | A03 |
Nutzungswarnungen
IAM-Rollen für Security Command Center können auf Organisations-, Ordner- oder Projektebene gewährt werden. Ob Sie Ergebnisse, Assets und Sicherheitsquellen ansehen, bearbeiten, erstellen oder aktualisieren können, hängt davon ab, auf welcher Ebene Sie Zugriff erhalten. Weitere Informationen zu Security Command Center-Rollen finden Sie unter Zugriffssteuerung.
Bei der Verwendung von Web Security Scanner sollten Sie Folgendes beachten:
- Web Security Scanner wird kontinuierlich verbessert. Daher kann es vorkommen, dass zukünftige Scans Probleme melden, die von aktuellen Scans nicht erkannt wurden.
- Einige Funktionen oder Bereiche Ihrer Anwendung werden möglicherweise nicht getestet.
- Web Security Scanner versucht, alle gefundenen Steuerelemente und Eingaben zu aktivieren.
- Wenn Sie über Ihr Testkonto Vorgänge zu Statusänderungen freigeben können, wird sie vom Web Security Scanner wahrscheinlich aktiviert. Dies kann zu unerwünschten Ergebnissen führen.
- Web Security Scanner ist auf 15 Scans pro Projekt beschränkt. Da Scans gleichzeitig ausgeführt werden, wird Nutzern, die dieses Limit erreichen, empfohlen, mehrere Start-URLs pro Scan hinzuzufügen oder Scans zu verschiedenen Projekten hinzuzufügen, bei denen das Limit noch nicht erreicht wurde.
Wer kann Sicherheitsscans durchführen?
Informationen zu den für Web Security Scanner verfügbaren IAM-Rollen (Identity and Access Management) finden Sie unter Zugriffssteuerung.
Wie lange dauert ein Sicherheitsscan?
Der Sicherheitsscan wird nicht sofort ausgeführt, sondern für eine spätere Ausführung in die Warteschlange gestellt. Abhängig von der aktuellen Last kann es mehrere Stunden dauern, bis der Scan ausgeführt wird. Sobald der Scan startet, ist die Scandauer abhängig von der Größe Ihrer Anwendung. Ein Scan einer großen Anwendung mit vielen URLs kann mehrere Stunden oder sogar Tage dauern. Wenn ein Scan nicht innerhalb von 20 Tagen abgeschlossen ist, wird er automatisch beendet. Alle Crawling-Ergebnisse und -Erkenntnisse, die während des Scans gefunden wurden, werden als Scanergebnis angezeigt.
Zieleinschränkungen
Web Security Scanner verfügt über Filter, die Scanziele auf die bestimmte App Engine-Instanz begrenzen, für die der Scan erstellt wurde. Die Eingabe von URLs für ein anderes App Engine-Projekt oder eine externe Domain führt zu einer Fehlermeldung.
Scans für Compute Engine und GKE sind auf Domains beschränkt, die statischen externen IP-Adressen zugeordnet sind, die für dasselbe Projekt reserviert sind, und statischen externen IP-Adressen, die zu demselben Projekt gehören. Eine Anleitung zum Reservieren von IP-Adressen für Projekte finden Sie unter den folgenden Links:
Compute Engine: Statische externe IP-Adresse reservieren
Momentan ist es in App Engine nicht möglich, statische IP-Adressen einer Anwendung zuzuordnen. Sie können jedoch Cloud Load Balancing und serverlose Netzwerk-Endpunktgruppen verwenden, um eine statische IP-Adresse für Ihren Load Balancer zu reservieren, die dann Traffic an Ihre Anwendung weiterleitet. Weitere Informationen zu Preisen finden Sie unter Preise für externe IP-Adressen.
Innerhalb Ihres Projekts versucht Web Security Scanner automatisch, Logout-URLs und andere allgemeine Standorte zu vermeiden, die sich negativ auf den Scan auswirken könnten. Sie können jedoch zur Sicherheit über die Scaneinstellungen URLs manuell ausschließen.
Validierung
Scankonfigurationen werden beim Erstellen und vor jedem Scan validiert. Web Security Scanner prüft die Security Command Center-Einstellungen und die Authentifizierungsdaten Ihrer Anwendung, damit Scans ordnungsgemäß konfiguriert werden und sich erfolgreich in Ihrer Anwendung anmelden können. Konfigurationsparameter, einschließlich der maximalen Scangeschwindigkeit, werden ebenfalls geprüft, damit sie innerhalb der unterstützten Bereiche liegen.
Sie müssen Fehler beheben, bevor ein Scan erstellt oder aktualisiert werden kann. Anwendungen, die nach der Erstkonfiguration geändert werden, können während der Scans Fehler verursachen. Wenn eine Domain beispielsweise nicht mehr auf eine IP-Adresse verweist, die dem Projekt gehört, wird die Ressource nicht gescannt und auf der Konfigurationsseite für den Scan wird ein Fehler gemeldet.
Best Practices
Da Web Security Scanner Felder füllt, Schaltflächen betätigt, auf Links klickt und andere Nutzeraktionen ausführt, sollten Sie besonders vorsichtig sein, wenn Sie Produktionsressourcen scannen. Er könnte möglicherweise Funktionen aktivieren, die den Status Ihrer Daten oder Ihres Systems ändern, was zu unerwünschten Ergebnissen führt.
Beispiel:
- In einem Blog, in dem öffentlich kommentiert werden kann, postet Web Security Scanner möglicherweise Teststrings als Kommentare für alle Blogartikel.
- Auf einer E-Mail-Anmeldeseite generiert Web Security Scanner möglicherweise eine hohe Anzahl von Test-E-Mails.
Im Folgenden finden Sie einige Methoden, die Sie separat oder in Kombination verwenden können, um unerwünschte Ergebnisse zu vermeiden:
- Scans in einer Testumgebung ausführen. Richten Sie durch Erstellen eines separaten App Engine-Projekts eine Testumgebung ein, auf der Sie Ihre Anwendung und Daten laden. Wenn Sie die Google Cloud CLI verwenden, können Sie das Zielprojekt beim Hochladen Ihrer Anwendung als Befehlszeilenoption angeben.
- Testkonto verwenden. Erstellen Sie zum Scannen Ihrer Anwendung ein Nutzerkonto, das nicht auf vertrauliche Daten oder schädliche Vorgänge zugreifen kann. Viele Anwendungen bieten bei der ersten Anmeldung eines Nutzers einen bestimmten Workflow ‒ wie Akzeptieren der Bedingungen, Erstellen eines Profils. Da der Workflow unterschiedlich ist, kann ein Testkonto für einen erstmaligen Nutzer andere Scanergebnisse ausgeben als ein Nutzerkonto für einen etablierten Nutzer. Wir empfehlen, den Scan mit einem Konto durchzuführen, bei dem der Workflow der Ersteinrichtung abgeschlossen ist.
- Einzelne Elemente der Benutzeroberfläche blockieren, die Sie nicht aktivieren möchten. Verwenden Sie dazu die CSS-Klasse
inq-no-click
. Event-Handler, die diesem Element angehängt sind, werden beim Crawling und Prüfen nicht aktiviert. Dies ist unabhängig davon, ob sie mit Inline-JavaScript, mitaddEventListener
oder durch Festlegen des entsprechenden Event-Handlers angehängt wurden. - Sicherungsdaten verwenden. Es wird empfohlen, Daten vor einem Scan zu sichern.
- Ausgeschlossene URLs. Sie können URL-Muster angeben, die nicht gecrawlt oder getestet werden. Informationen zur Syntax finden Sie unter URLs ausschließen.
Prüfen Sie Ihre Anwendung vor dem Scan sorgfältig auf Funktionen, die über den Scanumfang hinausgehen und dadurch Daten, Nutzer oder Systeme beeinträchtigen könnten.
Nächste Schritte
- Erste Schritte mit Web Security Scanner