Was ist Cross Site Scripting?

Was ist Cross Site Scripting?

Cyber-Kriminelle nutzen verschiedene Angriffsmethoden, um Daten abzufangen, Anwendungen zu stören oder anderen Schaden anzurichten. Eine dieser Methoden ist das sogenannte Cross Site Scripting.

Was ist Cross Site Scripting_

Was sich dahinter verbirgt und wie die Angriffsmethode funktioniert, erklären wir in diesem Beitrag.

Was ist Cross Site Scripting?

Das Cross Site Scripting, kurz XSS, zählt zu den am weitesten verbreiteten Angriffsmethoden im Internet. Es handelt sich dabei um eine aktive Angriffsmethode, die die Basis für weitere Attacken schaffen kann. Beim Cross Site Scripting wird ein Schadcode in eine eigentliche sichere Umgebung eingebettet. Diese Umgebung kann zum Beispiel eine vermeintlich vertrauenswürdige Webseite sein.

Um seinen Schadcode einzuschleusen, nutzt der Angreifer eine Sicherheitslücke auf dem Client oder dem Server aus. Ist ihm das gelungen, kann er mittels XSS Internetseiten verändern, Anwendungen wie den Browser übernehmen, vertrauliche Daten auslesen oder sensible Informationen wie zum Beispiel Passwörter stehlen.

XSS arbeitet mit den Skriptsprachen, die im Internet üblicherweise genutzt werden. Ein Klassiker an dieser Stelle ist etwa JavaScript. Das Cross Site Scripting entfaltet die beabsichtigte Wirkung, wenn eine Webanwendung Daten entgegennimmt und diese Daten ohne ausreichende Prüfung gleich verarbeitet oder weiterleitet.

Für den Angreifer wird es dadurch möglich, Skripte an einen Webserver oder einen Browser zu schicken, die von diesem ausgeführt werden.

Dabei gibt es beim Cross Site Scripting aber drei unterschiedliche Angriffsarten, nämlich das reflektierte, das persistente und das lokale XSS.

Das reflektierte Cross Site Scripting

Beim reflektierten XSS ist eine Sicherheitslücke auf dem Server der Ausgangspunkt für den Angriff. Ein Nutzer klickt dabei eine URL an, die der Angreifer zuvor manipuliert hat, indem er dort einen schädlichen Code eingefügt hat.

Als Folge einer mangelhaften Absicherung übernimmt der Server diesen Schadcode und erstellt damit eine dynamisch veränderte Internetseite. Der Nutzer erkennt nicht, dass die Webseite, die er sieht, vom Angreifer präpariert wurde. Stattdessen hält er die Internetseite für vertrauenswürdig.

Gibt er daraufhin Daten in die Eingabefelder auf der Webseite ein, kann sich der Angreifer diese Daten an einen seiner Server weiterleiten lassen.

Das reflektierte Cross Site Scripting ist vor allem bei Phishing-Attacken eine beliebte Methode. Denn der Nutzer bemerkt nicht, dass die Internetseite durch das XSS verändert wurde.

Da er folglich davon ausgeht, dass die Seite echt ist und von einem vertrauenswürdigen Anbieter betrieben wird, macht er bedenkenlos seine Eingaben. Der Angreifer gelangt so aber zum Beispiel an vertrauliche Anmeldedaten.

Das persistente Cross Site Scripting

Wie das reflektierte XSS läuft auch das persistente Cross Site Scripting serverseitig ab. Der Angreifer schleust den schädlichen Code hier ein, indem er den Server einen manipulierten Link aufrufen lässt. Daraufhin speichert der Server die Veränderungen persistent (= dauerhaft) in seiner Datenbank ab.

Deshalb ist es auch nicht notwendig, dass der Nutzer einen präparierten Link anklickt. Denn weil die Datenbank des Webservers dauerhaft verändert ist, sorgt das XSS dafür, dass alle Nutzer auch beim Aufrufen des regulären Links die manipulierten Webseiten sehen.

Cyber-Kriminelle verschaffen sich bevorzugt über schlecht geschützte Foren Zutritt zum Webserver. Dabei kann schon ein simpler Eintrag im Forum ausreichen, um den schädlichen Scriptcode zu übermitteln. Der präparierte Webserver wird anschließend verwendet, um etwa die Zugangsdaten der Nutzer einzusammeln.

Das lokale Cross Site Scripting

Im Unterschied zu den beiden anderen Angriffsarten kommt das lokale Cross Site Scripting ohne eine Sicherheitslücke auf einem Webserver aus. Stattdessen wird der schädliche Code hier direkt an einen Nutzer geschickt und anschließend unbemerkt zum Beispiel im Browser ausgeführt.

Der Ausgangspunkt für den Angriff ist dabei ein manipulierter Link, den der Nutzer meist in einer E-Mail angeklickt hat. Das Öffnen des Links führt dazu, dass der Browser ein clientseitiges Script einfügt, das die schädliche Anwendung in Gang setzt und ausführt.

Das XSS ermöglicht dann, dass sowohl dynamische als auch statische Webseiten in einer manipulierten Form auf dem Rechner des Nutzers angezeigt werden. Hat der Nutzer dem Browser besondere Rechte eingeräumt, kann der Angreifer außerdem lokale Daten auf dem Computer auslesen und abändern.

Ist ein Schutz vor dem Cross Site Scripting möglich?

Vor dem lokalen Cross Site Scripting kann sich der Nutzer zum einen schützen, indem er seinem Browser untersagt, Skripte wie beispielsweise JavaScript auszuführen. Eine andere Möglichkeit ist, ein Add-On im Browser zu aktivieren, das das Ausführen von Skripten verhindert.

Zum anderen sollte der Nutzer Links in E-Mails genau prüfen. Im Zweifel sollte er einen Link nicht anklicken, sondern die Seite über den Browser aufrufen und die Adresse dabei manuell eintippen. Das gilt vor allem dann, wenn der Nutzer den Absender der E-Mail nicht kennt.

Webmaster können ihre Server vor dem reflektierten und dem persistenten XSS schützen, indem sie die Server-Quellcodes absichern. Außerdem sollten sie darauf achten, dass alle Daten, die ein Server verarbeitet, vor einer Ausführung überprüft werden. Das ist möglich, indem Whitelists mit erlaubten Daten erstellt und angewendet werden.

Eine andere Möglichkeit ist, bestimmte Skript-Zeichen grundsätzlich und ausnahmslos umzuwandeln. Auf diese Weise ist gewährleistet, dass der Server keine ausführbaren Metazeichen in den Skripten einliest.

Mehr Ratgeber, Tipps und Anleitungen:

Thema: Was ist Cross Site Scripting?