So schützt die Chrome-Entwicklertools vor Self-XSS-Angriffen

Wolfgang Beyer
Wolfgang Beyer

Was sind Self-XSS-Angriffe?

Self-XSS (Self Cross-Site Scripting) ist eine Art von Social Engineering-Angriff, bei dem Sie dazu verleitet werden, schädlichen Code in Ihrem Webbrowser auszuführen. Im Gegensatz zu regulären XSS-Angriffen, die auf Sicherheitslücken in Webanwendungen basieren, die es Angreifern ermöglichen, schädlichen Code einzuschleusen, beruhen Self-XSS-Angriffe auf Ihren eigenen Aktionen zur Codeausführung.

Bei Self-XSS-Angriffen wird der Nutzer in der Regel dazu verleitet, schädlichen Code in die Console der Entwicklertools seines Browsers zu kopieren und einzufügen. In der Regel locken die Angreifer mit einer Art von Belohnung. Das kann folgende Gründe haben:

  • Sie wird Ihnen versprochen, dass der Code Ihnen Zugriff auf versteckte Funktionen oder virtuelle Prämien gewährt.
  • vorgeben, dass der Code ein Sicherheitstest oder eine Fehlerbehebung ist.
  • Es wird versprochen, dass der Code das Hacken einer Website zu Ihrem Vorteil ermöglicht.

Sobald Sie den Code ausgeführt haben, kann der Angreifer die Kontrolle über Ihr Konto übernehmen. So kann der Angreifer Folgendes tun:

  • Ihre personenbezogenen Daten wie Name, Adresse und Kreditkartennummer stehlen.
  • In Ihrem Namen nicht autorisierte Nachrichten oder Kommentare posten
  • Nehmen Sie die Kontrolle über Ihre Konten in sozialen Medien zurück.
  • Malware auf andere Nutzer verbreiten.

Wie versuchen die Chrome-Entwicklertools, Self-XSS-Angriffe zu verhindern?

Es ist von Natur aus riskant, Nutzern zu erlauben, Code in DevTools einzufügen und dann auszuführen. Es ist aber auch eine der Hauptfunktionen der Chrome-Entwicklertools. Daher mussten wir ein Gleichgewicht zwischen der Minimierung potenzieller Self-XSS-Angriffe und der Nichtbeeinträchtigung der Arbeit von Entwicklern finden, die nur Websites debuggen möchten.

Entwickler kopieren normalerweise keinen Code, den sie irgendwo im Web finden, fügen ihn in DevTools ein und führen ihn aus, ohne sich vorher kurz anzusehen, was der Code tut. Die meisten Entwickler sind sich der Sicherheitsrisiken bewusst, die mit der Ausführung von Code verbunden sind, den sie in einer fragwürdigen Ecke des Webs gefunden haben.

Die Chrome DevTools gehen davon aus, dass Entwickler wissen, was sie tun. Wir möchten sie beim Kopieren und Einfügen von Code nicht verlangsamen oder ablenken.

Wir sind der Meinung, dass Nicht-Entwickler einem viel höheren Risiko ausgesetzt sind, Opfer eines Self-XSS-Angriffs zu werden. Wir sind der Meinung, dass es akzeptabel und vorteilhaft ist, Sie zu unterbrechen, wenn Sie etwas tun, das potenziell gefährlich ist. Wenn die Chrome-Entwicklertools erkennen, dass ein unerfahrener Nutzer versucht, Code in die Entwicklertools einzufügen, wird der Vorgang beendet und eine Warnung angezeigt.

Wann werden in den DevTools Warnungen zu Self-XSS angezeigt?

In den DevTools wird anhand einer sehr einfachen Heuristik entschieden, ob Warnungen zu Self-XSS angezeigt werden sollen: Sie basieren auf dem Konsolenverlauf Ihres Nutzerprofils.

Wenn Ihr Profil mindestens fünf Einträge im Console-Verlauf hat, werden in den DevTools keine Warnungen oder Pop-ups angezeigt. Der Konsolenverlauf enthält die Liste der Befehle, die Sie in der Konsole eingegeben und ausgeführt haben. Diese Befehle werden angezeigt, wenn Sie den Cursor in der Console platzieren und wiederholt die Aufwärtstaste drücken.

Wie sehen die Warnungen zu Self-XSS aus?

Wenn ein unerfahrener Nutzer versucht, Code in die Console einzufügen, wird diese Aktion blockiert und stattdessen wird in der Console eine Warnung angezeigt.

Die Warnung zu Self-XSS in der Console.

Sie können diese Warnung überschreiben und das Einfügen aktivieren. Dazu müssen Sie jedoch „Einfügen zulassen“ eingeben.

Wenn ein unerfahrener Nutzer Code in den Code-Editor von DevTools einfügt (z. B. im Bereich Quellen), ist die Bedienung sehr ähnlich. Statt einer Warnung wird ein modales Dialogfeld angezeigt.

Das modale Dialogfeld für Self-XSS im Bereich „Quellen“.

Auch hier reicht es nicht aus, das Dialogfeld zu schließen, um das Einfügen zu aktivieren. Wenn Sie die Warnung überschreiben möchten, müssen Sie in das Eingabefeld „Einfügen zulassen“ eingeben.

Ist das eine einmalige Einstellung?

Ja. Sobald Sie das Einfügen zulassen, werden Sie nicht mehr von Self-XSS-Warnungen gestört.

Wir hoffen, dass wir damit einen guten Kompromiss zwischen Nützlichkeit und Belästigung gefunden haben. Durch diese zusätzliche Hürde steigt die Wahrscheinlichkeit, dass Sie die Warnung lesen, und damit sinkt die Wahrscheinlichkeit eines erfolgreichen Self-XSS-Angriffs.

In den Chrome-Entwicklertools wird ein Flag gespeichert, das angibt, ob in Ihrem Chrome-Profil Warnungen zu Self-XSS angezeigt werden sollen oder nicht. Wenn Sie also ein neues Profil erstellen und sofort Code in die DevTools einfügen, wird das Einfügen blockiert und stattdessen werden Self-XSS-Warnungen angezeigt.

Können Sie es 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 die Entwicklertools zum Debuggen Ihrer automatisierten Tests verwenden, ist das Einfügen in die Konsole anfangs blockiert.

Führen Sie einen der folgenden Schritte aus, um dieses Problem zu umgehen:

  • Verwenden Sie Chrome for Testing, eine Chrome-Variante, die speziell für Tests und Automatisierung entwickelt wurde. Warnungen zu Self-XSS sind deaktiviert.

  • Geben Sie für andere Chrome-Release-Versionen das Flag --unsafely-disable-devtools-self-xss-warnings in der Befehlszeile an Chrome weiter, um das Warndialogfeld für selbstausführende XSS-Angriffe vollständig zu deaktivieren.

Fazit

Was halten Sie von dieser Strategie zur Abschwächung von Self-XSS-Angriffen? Wenn du Kommentare oder Vorschläge hast, füge einen Kommentar zu diesem Fehler hinzu oder wende dich über eine der folgenden Methoden an uns.

Insbesondere wenn Sie an einer Website arbeiten, die über Konsolenprotokolle vor Self-XSS-Angriffen warnt, würden wir uns gern mit Ihnen über die Abstimmung unserer Bemühungen oder die Messung der Auswirkungen von Maßnahmen zur Behebung von Self-XSS-Angriffen austauschen.

Vorschaukanäle herunterladen

Verwenden Sie als Standard-Entwicklungsbrowser Chrome Canary, Chrome Dev oder Chrome Beta. Diese Vorabversionen bieten Ihnen Zugriff auf die neuesten DevTools-Funktionen, ermöglichen es Ihnen, innovative Webplattform-APIs zu testen, und helfen Ihnen, Probleme auf Ihrer Website zu finden, bevor Ihre Nutzer sie bemerken.

Chrome-Entwicklertools-Team kontaktieren

Mit den folgenden Optionen können Sie über neue Funktionen, Updates oder andere Themen im Zusammenhang mit den DevTools sprechen.