Was ist Cross-Site-Scripting (XSS)?

Was ist XSS und was kann man dagegen tun?

Ein erfolgreicher Cross-Site Scripting-Angriff kann verheerende Folgen für den Ruf eines Online-Unternehmens und seiner Beziehung zu seinen Kunden haben. Erfahren Sie in diesem Artikel was XSS ist und was man dagegen tun kann.

Was ist Cross-Site-Scripting (XSS)?

Cross Site Scripting (XSS) ist ein gängiger Angriff, bei welchem der bösartigen Code in eine gefährdete Webanwendung einfügt wird. XSS unterscheidet sich von anderen Web-Angriffen (z.B. SQL Attaken) dadurch, dass Cross Site Scripting (XSS) nicht direkt auf die Anwendung selbst ausgerichtet ist. Stattdessen sind die Benutzer der Webanwendung gefährdet.

Es bedient sich dabei einer Sicherheitslücke, welche die Vorteile dynamisch generierter Webseiten nutzt. Bei einem XSS-Angriff wird eine Webanwendung mit einem Skript gesendet, dieses wird aktiviert, wenn sie vom Browser eines ahnungslosen Benutzers oder von einer Anwendung gelesen wird, die sich nicht gegen Cross-Site-Skripting geschützt hat.
Je nach Schwere des Angriffs können Benutzerkonten gefährdet, Trojanerprogramme aktiviert und Seiteninhalte geändert werden, was viele Benutzer dazu verleitet, ihre persönlichen Daten freiwillig preiszugeben. Schließlich konnten Session-Cookies aufgedeckt werden, die es einem Täter ermöglichen, sich als gültiger Benutzer auszugeben und seine privaten Konten zu missbrauchen.

Wie funktioniert Cross-Site-Scripting (XSS)?

Bei Cross-Site-Scripting-Angriffen sendet der Hacker bösartigen Code in Form eines browserspezifischen Skripts an einen anderen Endnutzer. Es gibt zahlreiche weit verbreitete Fehler, die es ermöglichen, dass ein solcher bösartiger Cross-Site-Skripting-Code funktioniert. Diese Fehler sind überall dort zu sehen, wo eine Website oder Webanwendung Benutzereingaben innerhalb der von ihr erzeugten Ausgabe verwendet, ohne diese zu kodieren oder zu validieren.

Die Gleichbehandlungsregel verlangt, dass alle Inhalte auf einer Webseite aus der gleichen Quelle stammen. Daher nutzt Cross-Site-Skripting, ähnlich wie alle Injektionsangriffe, die Tatsache aus, dass Browser kein gültiges Markup anhand von bösartigen Markups identifizieren können; Browser führen lediglich jeden Markup-Text aus, den sie aufgrund der oben genannten Gleichbehandlungsrergel erhalten.

Wenn Hacker Cross-Site-Skripting-Techniken verwenden, um bösartige Skripte an Endbenutzer zu senden, erkennt der Browser des Opfers nicht das Skript und führt es aus, weil es so aussieht, als ob es von einer vertrauenswürdigen Website stammt. Diese Skripte, wie jedes Skript, das von einer vertrauenswürdigen Website kommt, können auf sensible Daten zugreifen, die Ihr Browser speichert, wie z.B. Session-Token, Cookies usw., oder Teile des HTML auf der Seite neu schreiben.

Welche Arten von Cross-Site Scripting (XSS) gibt es?

Generell können Cross-Site-Scripting-Attacken in zwei Arten unterteilt werden. Man nennt diese gespeichert Cross-Site-Scripting-Attake oder reflektiert Cross-Site-Scripting-Attacke

Die gespeichertes XSS, auch bekannt als persistentes XSS, ist die eindeutig schädlichere der beiden Angriffsarten. Die gespeichertes XSS liegt vor, wenn ein schadhaftes Skript direkt in eine verwundbare Webanwendung eingespeist wird. Das Speichermedium außerhalb der Anwendung speichert gefährliche Daten in einer Datenbank oder einem anderen Datenspeicher, und die gefährlichen Daten werden anschließend als vertrauenswürdige Daten in die Anwendung eingelesen und in dynamische Inhalte aufgenommen.

Reflected XSS beinhaltet das Reflektieren eines bösartigen Skripts von einer Webanwendung auf den Browser eines Benutzers. Das Skript ist in einen Link eingebettet und wird erst aktiviert, wenn auf diesen Link geklickt wird. Zunächst scheint dies keine große Schwachstelle zu sein. Warum sollte jemand eine URL eingeben, die dazu führt, dass bösartiger Code auf seinem eigenen Computer ausgeführt wird? Die reale Gefahr besteht darin, dass ein Angreifer die bösartige URL erstellt und dann mit E-Mail oder mittels Social Media Spähattake die Opfer dazu verleitet, einen Link auf die URL zu besuchen. Wenn Opfer auf den Link klicken, reflektieren sie unwissentlich die bösartigen Inhalte über die anfällige Webanwendung zurück auf ihre eigenen Computer. Durch das Spiegeln, von anfälliger Webanwendungen wird diese Attacke Reflected XSS bezeichnet.

Wie kann man Cross-Site-Scripting (XSS) verhindern?

XSS kann ein erhebliches Sicherheitsrisiko darstellen, abhängig von der Empfindlichkeit Ihrer Daten. Mehrere Web-Sicherheitsfilter stehen zur Verfügung, die XSS-Angriffe durch die Validierung benutzerdefinierter Parameter zu verhindern. Webseitenadmins können Benutzer zudem XSS-Filterregeln – basierend auf der Unternehmenssicherheitspolitik ihres Unternehmens – hinzufügen, ändern und löschen. Das beste ist jedoch erst gar nicht zuviele persönliche Daten im Netz zu verbriten.

Fazit

Die richtige Software zum Erkennen von Cross-Site Scripting (XSS) zu wählen, ist entscheidend. Wähle Software, welche dem spezifischen Anwendungsfall am ehesten entspricht. Wenn du Daten in ein HTML-Attribut ausgibst, verwenden die Deinstallationsdatei, die speziell für HTML-Attribute vorgesehen ist. Dadurch erhältst du die beste Kombination aus Anwendungsleistung und Sicherheit.

Wenn du in der Lage bist, Fehlerquellen in XSS zu vermeiden und Ihre Applikationsausgabe zu sichern, werden fast die Hälfte aller Fehler vermeiden, die in die Anwendung eingeführt werden könnten.

In diesem Video wird die Gefahr durch XSS-Angriffe noch einmal anschaulich dargestellt:

Rückmeldungen