Stellen Sie sich vor, Sie können sich plötzlich nicht mehr in Ihrem Lieblings-Online-Shop einloggen. Darüber hinaus macht jemand einige seltsame Kommentare in Ihrem Namen und kauft etwas ein. Erinnern Sie sich an das eine Mal, als Sie auf einen Link im Kommentarbereich einer Website geklickt haben, um die von jemandem empfohlene Jacke anzusehen? Es scheint, dass Sie auf einen Fall von Cross-Site-Scripting (oder XSS) gestoßen sind. Erfahren Sie, warum das gefährlich ist, und warum es so einfach ist, dem zum Opfer zu fallen.
Inhalt:
Was ist Cross-Site-Scripting?
Ein Cross-Site-Scripting (oder XSS)-Angriff tritt auf, wenn ein Hacker bösartigen Code in eine ansonsten zuverlässige Website oder App einfügt. Dieser nutzt Schwächen von HTML, JavaScript oder jeder anderen Programmiersprache, die von einem Browser unterstützt wird. Ein solcher Code funktioniert eher auf der Clientseite als auf der Serverseite, sodass er die Website nicht direkt beschädigt – sondern stattdessen auf die Benutzer abzielt. Je nach XSS-Typ können Benutzer den Schadcode aktivieren, indem sie entweder auf einen Link klicken oder eine kompromittierte Website besuchen.
Einmal aktiviert, kann ein Cross-Site-Scripting-Angriff eine große Menge von Benutzerdaten an Hacker durchsickern lassen, einen Trojaner einschleusen, böswillige Umleitungen durchführen, sich als Benutzer ausgeben, indem man deren Anmeldeinformationen stiehlt, usw.
Arten von Cross-Site-Scripting
Reflected XSS
Reflected XSS findet statt, wenn ein Benutzer auf einen böswilligen Link zu einer gefährdeten Website klickt. Dann spiegelt die Website das Skript im Browser des Opfers wider, der es ausführt. Ein Cyberkrimineller kann dann die Session-Cookies des Benutzers entführen und deren Autorisierungsdaten stehlen.
Eine Website kann die eingehenden Anfragen nicht ordnungsgemäß bereinigen, sodass Cyberkriminelle schädliche Skripte in einen Link einfügen können. Ihre Besitzer sind sich möglicherweise auch nicht bewusst, dass jemand ihre Website für solche Zwecke verwendet.
Als Beispiel: Mary hat einen Onlineshop, den Jane viel benutzt. Jane meldet sich auf der Website an, indem sie ihren Benutzernamen und ihr Passwort eingibt, die in einem Autorisierungs-Cookie gespeichert werden. Tom ist in unserem Fall der Böse. Er findet heraus, dass Marys Website eine Schwachstelle enthält. Er erstellt eine böswillige URL und sendet sie Jane in einer E-Mail, die als attraktives Angebot verkleidet ist. Jane klickt auf den Link und führt das Skript aus. Das Skript infiziert dann Janes Browser und sendet alle Anmeldedaten, die mit dem Anmelde-Cookie der Website verknüpft sind, an Tom. Tom kann sich als Jane im Onlineshop anmelden, ihre Rechnungsinformationen stehlen und Passwörter ändern.
Stored XSS
Beim Angriffstyp Stored XSS fügen Hacker nicht nur schädliches Skript in einen einzelnen Link ein — sie platzieren es auf dem Server einer Website. Sie verstecken das Skript in einem bestimmten Abschnitt der Website, wo es für eine unbestimmte Zeit lauern kann (z. B. im Kommentarbereich). Immer wenn Benutzer auf diesen Abschnitt zugreifen, können die Hacker alle ihre Anmeldeinformationen erhalten, die mit dieser Sitzung verknüpft sind. Wenn ein Reflected XSS-Angriff an das Fischen mit einer Rute erinnert, so ist ein Stored XSS-Ansatz mehr wie ein Fischernetz, da man so weit mehr Benutzer beeinflusst.
Beispielsweise entdeckt Alice eine Schwachstelle auf Johns Website und fügt in ihrem Kommentarbereich ein bösartiges HTML-Tag ein. Es bleibt einfach da. Wenn Besucher nun den Kommentarbereich besuchen, aktiviert das Tag das Skript des Hackers, das auf einer anderen Website gehostet wird. Es sendet ihr alle Daten aus deren Autorisierungs-Cookies. Sie kann sich dann auf der Website anmelden und sich als jeder kompromittierte Benutzer ausgeben.
DOM-based XSS
Wenn Sie eine Website laden, erstellt Ihr Browser ein Dokumentobjektmodell (oder DOM) der Seite. Es ist wie ein Vermittler zwischen der HTML-Seite und JavaScript, was die Seite dynamisch und leicht zu ändern macht. Bei DOM-basiertem XSS schreibt der kompromittierte JavaScript-Code die Daten in das DOM. Ähnlich wie beim Reflected XSS-Ansatz initiiert ein Benutzer es, indem er auf einen kompromittierten Link klickt. In diesem Fall verstecken Hacker den bösartigen Code viel tiefer im Code, sodass er nicht nur durch doppelte Überprüfung der URL nachverfolgt werden kann. Man müsste den Code der Website überprüfen, um ihn zu identifizieren.
Self-XSS
Ein Self-XSS-Angriff verlässt sich nicht auf eine anfällige Website – stattdessen verleitet er Benutzer dazu, ein bösartiges Skript in ihren eigenen Browser einzufügen. Normalerweise verwenden Cyberkriminelle dafür Social Engineering -Taktiken. Beispielsweise können sie einen Benutzer davon überzeugen, Code in ihren Browser einzugeben, indem sie versprechen, dass er auf ein anderes Konto mit zusätzlichen Vorteilen zugreifen kann. Das erlaubt es dem Hacker jedoch nur, das Konto des Opfers zu stehlen.
Verhinderung von Cross-Site-Scripting
XSS-Angriffe sind auf Code-Ebene gut versteckt, sodass man sie möglicherweise für eine sehr lange Zeit nicht bemerkt. Was noch schlimmer ist: Die Besitzer von anfälligen Websites finden XSS auch häufig viel zu spät. Wie immer gibt es jedoch einige Maßnahmen, um dies zu verhindern:
Verwenden Sie immer die aktuellste und zuverlässigste Sicherheitssoftware, die Sie automatisch daran hindern kann, bösartige Websites aufzurufen.
Aktualisieren Sie immer Ihren Browser, um sicherzustellen, dass Sie die neueste Version verwenden. Stellen Sie sicher, dass Ihr Browser über Anti-XSS-Sicherheitsfunktionen verfügt.
Öffnen Sie keine verdächtigen Links, auch wenn sie auf den ersten Blick legitim aussehen. Überprüfen Sie immer die URL, um zu sehen, dass nichts Ungewöhnliches vorkommt.
Wenden Sie sich immer an die Personen, die die Website betreiben, wenn Sie etwas Verdächtiges bemerken (z. B. wenn Sie sich nicht mit Ihren üblichen Anmeldeinformationen anmelden können oder Einkäufe sehen, die du nicht getätigt haben).