Was sind Self-XSS-Angriffe?
Self-XSS oder Self-Cross-Site-Scripting ist eine Art von Social-Engineering-Angriff, bei dem Sie dazu verleitet werden, in Ihrem Webbrowser schädlichen Code auszuführen. Im Gegensatz zu normalen XSS-Angriffen, die auf Sicherheitslücken in Webanwendungen basieren, über die Angreifer Schadcode einschleusen können, sind Selbst-XSS-Angriffe auf Ihren eigenen potenziellen Codeausführungsaktionen angewiesen.
Bei Self-XSS-Angriffen werden Sie normalerweise dazu verleitet, Schadcode zu kopieren und in die Entwicklertools-Konsole Ihres Browsers einzufügen. Dazu verspricht der Angreifer in der Regel eine Belohnung. Dies kann Folgendes sein:
- Mit dem Code erhältst du Zugriff auf versteckte Funktionen oder virtuelle Belohnungen.
- Sie geben vor, den Code als Sicherheitstest oder Fehlerkorrektur zu verwenden.
- Das Versprechen, dass der Code es Ihnen ermöglicht, in eine Website zu hacken
Sobald du den Code ausgeführt hast, kann der Angreifer die Kontrolle über dein Konto erlangen. Dies kann dem Angreifer Folgendes ermöglichen:
- Diebstahl personenbezogener Daten wie Name, Adresse und Kreditkartennummer
- Poste nicht autorisierte Nachrichten oder Kommentare in deinem Namen.
- Übernehmen Sie die Kontrolle über Ihre Social-Media-Konten.
- Verbreiten Sie Malware unter anderen Nutzern.
Wie verhindert die Chrome-Entwicklertools selbst-XSS-Angriffe?
Es birgt Risiken, wenn Nutzer Code in die Entwicklertools einfügen und dann ausführen lassen. Es ist aber auch eine der Kernfunktionen der Chrome-Entwicklertools. Wir mussten also ein Gleichgewicht zwischen der Abwehr potenzieller Selbst-XSS-Angriffe und der Beeinträchtigung der Arbeit von Entwicklern finden, die nur das Debuggen von Websites anstreben.
Entwickler kopieren normalerweise keinen Code, den sie irgendwo im Web finden, fügen ihn in die Entwicklertools ein und führen ihn aus, ohne sich vorher kurz die Funktion des Codes anzusehen. Die meisten Entwickler sind sich der Sicherheitsrisiken bewusst, die mit der Ausführung von Code verbunden sind, den sie in einer ungenauen Ecke des Webs entdeckt haben.
Mit den Chrome-Entwicklertools können Entwickler sich darauf verlassen, dass sie wissen, was sie tun. Sie sollen beim Kopieren und Einfügen von Code nicht ausgebremst oder in irgendeiner Weise abgelenkt werden.
Wir glauben, dass bei Nicht-Entwicklern ein viel höheres Risiko besteht, selbst XSS-Angriffen zum Opfer zu fallen. Um Sie zu schützen, halten wir es für akzeptabel und vorteilhaft, eine Unterbrechung bei potenziell gefährlichen Handlungen auszuführen. Wenn die Chrome-Entwicklertools erkennen, dass ein unerfahrener Nutzer versucht, Code in die Entwicklertools einzufügen, wird die Anwendung beendet und es wird eine Warnung angezeigt.
Wann werden in den Entwicklertools eigene XSS-Warnungen angezeigt?
Die Entwicklertools verwenden eine sehr einfache Heuristik, um zu entscheiden, ob eigene XSS-Warnungen angezeigt werden sollen: Sie basiert auf dem Konsolenverlauf Ihres Nutzerprofils.
Wenn im Konsolenverlauf Ihres Profils mindestens fünf Einträge vorhanden sind, werden Sie von den Entwicklertools nicht mit Warnungen oder Pop-ups gestört. Der Konsolenverlauf ist die Liste der Befehle, die Sie in die Console eingegeben und ausgeführt haben. Die folgenden Befehle werden angezeigt, wenn Sie den Cursor in der Console platzieren und den Aufwärtspfeil wiederholt drücken.
Wie sehen die Selbst-XSS-Warnungen aus?
Wenn ein unerfahrener Nutzer versucht, Code in die Console einzufügen, wird diese Aktion blockiert und in der Console wird stattdessen eine Warnung angezeigt.
Sie können diese Warnung überschreiben und das Einfügen aktivieren, aber dafür müssen Sie "Einfügen zulassen" eingeben.
Wenn ein unerfahrener Nutzer Code in den Code-Editor der Entwicklertools einfügt, z. B. in den Bereich Quellen, sieht er sehr ähnlich aus. Anstelle einer Warnung wird ein modales Dialogfeld angezeigt.
Auch hier reicht es nicht aus, das Dialogfeld nur zu schließen, um das Einfügen zu ermöglichen. Um die Warnung zu überschreiben, musst du „Einfügen zulassen“ in das Eingabefeld eingeben.
Ist das eine einmalige Einstellung?
Ja. Sobald Sie das Einfügen zulassen, werden Sie nie wieder über XSS-Warnungen gestört.
Wir hoffen, damit einen guten Kompromiss zwischen Nützlichkeit und Ärgerlichkeit finden. Durch das Hinzufügen von Problemen erhöhen wir die Wahrscheinlichkeit, dass Sie die Warnung lesen, und verringern so die Wahrscheinlichkeit eines erfolgreichen Self-XSS-Angriffs.
Die Chrome-Entwicklertools behalten eine Markierung, die angibt, ob Sie selbst XSS-Warnungen in Ihrem Chrome-Profil anzeigen möchten. Wenn du also ein neues Profil erstellst und sofort mit dem Einfügen von Code in die Entwicklertools beginnst, wird das Einfügen blockiert und du siehst stattdessen Selbst-XSS-Warnungen.
Können Sie sie für die Testautomatisierung deaktivieren?
Aber was ist mit automatisierten Tests? Viele Testtools erstellen für jeden Testlauf ein neues temporäres Profil. Wenn Sie also mit den Entwicklertools zur Fehlerbehebung bei Ihren automatisierten Tests Fehler beheben, ist das Einfügen in die Console anfangs blockiert.
Sie haben folgende Möglichkeiten, um dieses Problem zu umgehen:
Verwenden Sie Chrome for Testing, eine Vielzahl von Chrome speziell für Tests und Automatisierungen. Selbst-XSS-Warnungen sind deaktiviert.
Übergeben Sie bei anderen Chrome-Release-Versionen das Befehlszeilen-Flag
--unsafely-disable-devtools-self-xss-warnings
an Chrome, um das Dialogfeld mit der Warnung vollständig zu deaktivieren.
Fazit
Was halten Sie von dieser Strategie zur Abwehr von Self-XSS-Angriffen? Wenn Sie Kommentare oder Vorschläge haben, fügen Sie einen Kommentar zu diesem Programmfehler hinzu oder wenden Sie sich über eine der folgenden Methoden an uns.
Besonders wenn Sie an einer Website arbeiten, die über Konsolenlogs vor Self-XSS-Angriffen warnt, würden wir gerne mit Ihnen darüber sprechen, wie wir unsere Bemühungen koordinieren oder die Auswirkungen von Self-XSS-Abwehrmaßnahmen messen können.
Vorschaukanäle herunterladen
Sie können Canary, Dev oder Beta als Standardbrowser für die Entwicklung verwenden. Über diese Vorschaukanäle erhältst du Zugriff auf die neuesten Entwicklertools, kannst hochmoderne Webplattform-APIs testen und Probleme auf deiner Website erkennen, bevor deine Nutzer es tun.
Kontaktaufnahme mit dem Team für Chrome-Entwicklertools
Mit den folgenden Optionen kannst du die neuen Funktionen und Änderungen des Beitrags oder andere Aspekte der Entwicklertools besprechen.
- Senden Sie uns über crbug.com einen Vorschlag oder Feedback.
- Melde ein Problem mit den Entwicklertools über Weitere Optionen > Hilfe > Probleme mit den Entwicklertools melden in den Entwicklertools.
- Twittern Sie unter @ChromeDevTools.
- Hinterlasse Kommentare in den YouTube-Videos mit den Neuerungen in den Entwicklertools oder in YouTube-Videos mit Tipps zu den Entwicklertools.