Sind die Bremsbeläge unseres Fahrzeugs abgefahren und wir lassen sie nicht erneuern, weil wir das nicht merken, kommt es schnell zu einem weit größeren Schaden. Ähnlich kann es sich verhalten, wenn wir Opfer eines so genannten Cross-Site-Scripting-Angriffs, also eines „Webseitenübergreifenden Scriptings“ geworden sind.
Erfahren Sie hier, was Cross Site Scripting – kurz „XSS“ – ist, wie es funktioniert und welche Schutzmaßnahmen helfen können.
Cross Site Scripting (XSS): Definition
Ganz einfach ausgedrückt bringen Hacker mit Cross Site Scripting (XSS) Online-Formulare, Webseiten oder auch Server dazu, Dinge zu tun, die sie nicht tun sollen.
In den meisten Fällen verwenden die Hacker so genannte Skriptsprachen (insbesondere JavaScript), da diese unter Programmierern weit verbreitet sind – daher auch der Begriff „Scripting“ in der Bezeichnung dieser Art von Cyberangriffen. „Cross“ (oder das „X“) soll darauf hinweisen, dass diese bösartigen Skripte übergreifend funktionieren.
Cross Site Scripting (XSS) ist eine der häufigsten Angriffsmethoden im Internet, bei der Cyber-Kriminelle es schaffen, Schadcodes auf einen Server oder in eine vermeintlich vertrauenswürdige Webseite einzuschleusen. Mit Cross Site Scripting können sie Internetseiten manipulieren, Browser übernehmen, vertrauliche Daten entwenden und ganze Benutzerkonten stehlen, was als Online-Identitätsdiebstahl bezeichnet wird.
Eine Cyber-Attacke via Cross Site Scripting kommt immer dann zum Ziel, wenn eine Internetseite oder ein Server Sicherheitslücken aufweist, in der Folge die entgegengenommenen Nutzerdaten nicht ausreichend prüft und sie anschließend weiterverarbeitet oder sogar weiterreicht.
Eine möglicherweise vielleicht nur kleine Sicherheitslücke in einer Webseite oder auf einem Server kann also durchaus die Ursache dafür sein, dass schädliche Skripte an einen Webserver oder an einen Browser gesendet werden, der diese dann fatalerweise ausführt.
Wie funktioniert Cross Site Scripting?
Die meisten Webseiten ermöglichen es Ihnen allgemein gesprochen, Inhalte hinzuzufügen, beispielsweise Kommentare, Posts oder auch Anmeldedaten. Cross-Site-Scripting ist theoretisch immer dann möglich, wenn etwa die Überprüfung der Anweisungen (Scripte) zur Weitergabe Ihrer eingegebenen Inhalte an einen Server Sicherheitslücken aufweist.
Dank dieser Lücken, die man auch als XSS-Löcher bezeichnet, können Cyber-Kriminelle ihre schädlichen Skripte auf den so genannten Client übertragen, also auf Webserver genauso wie auf Ihren Browser beziehungsweise Ihr Gerät. Hierbei kommt den Online-Betrügern zupass, dass mittlerweile die meisten Webseiten dynamisch erzeugt werden, dabei nahezu jede von einem Browser interpretierbare Script-Sprache akzeptiert und zur Manipulation der Übergabeparameter verwendet werden kann.
So ist es zum Beispiel ein Einfaches für Hacker, serverseitige Skripte zu verändern, mit denen definiert wird, wie die Daten aus Log-in-Formularen verarbeitet werden sollen. In einem missbräuchlichen Fall kann so also etwa die Weitergabe von Nutzungsdaten auf einen betrügerischen Server eingerichtet werden.
Ziel von XSS-Angriffen ist es jedoch nicht zwangsläufig, den betroffenen Client (also Ihr Gerät oder einen Server) direkt zu schaden oder private Daten zu stehlen. Ihre betrügerischen Scripte kommen nämlich auch zum Einsatz, um den betroffenen Client als „Absender“ von Malware- und Phishing-Angriffen zu missbrauchen – was deutlich verheerendere Folgen haben kann. Die Verursacher der Cyberattacken bleiben in solchen Fällen natürlich anonym im Hintergrund verborgen.
Beim Cross Site Scripting unterscheidet man drei verschiedene Angriffsarten, die wir Ihnen im Folgenden näher erklären:
- Reflektiertes oder reflected Cross Site Scripting
- Gespeichertes oder persistentes Cross Site Scripting
- DOM-basiertes oder lokales Cross Site Scripting
Reflected Cross Site Scripting
Beim reflected (übersetzt: reflektierten) Cross Site Scripting haben die Hacker es geschafft, ihre schädlichen Scripte in einen Server einzuschleusen.
Klicken Sie auf eine vermeintlich vertrauenswürdige, aber von Hackern präparierte Webseite, erfolgt eine Anfrage an den Server, auf dem sich diese hinter dem Link verborgene Webseite befindet.
Sind die Sicherheitseinstellungen zur Überprüfung der Übergabeparameter auf dem Server unzureichend oder weisen Lücken auf, wird Ihnen zwar ordnungsgemäß eine dynamisch generierte Webseite angezeigt – allerdings eine, die von einem Hacker durch schädliche Scripte manipuliert beziehungsweise ergänzt wurde. Denn alle Instanzen, die zur Anzeige dieser Webseite zusammenspielen, haben die Scripte der Hacker akzeptiert. Und wenn Sie nun Ihre persönlichen Anmeldedaten eingeben, werden diese Informationen anschließend – welch‘ Wunder – in vielen Fällen gleich an einen Server des Hackers weitergeleitet.
Reflektiertes Cross Site Scripting kommt sehr häufig bei Phishing-Angriffen zum Einsatz. Da wir die durch serverorientiertes XSS veränderten Webseiten für echt halten, hegen wir also kaum Verdacht und geben unsere Anmeldedaten quasi direkt und unwissentlich an die Cyberangreifer weiter.
Gespeichertes oder persistentes Cross Site Scripting
Beim persistenten Cross Site Scripting ist ebenfalls eine Sicherheitslücke auf einem Server der Ausgangspunkt für einen möglichen XSS-Angriff.
Allerdings werden die von einem Hacker beim persistenten Cross Site Scripting vorgenommenen Veränderungen in den Scripten einer Webseite dauerhaft – oder eben persistent – in der Datenbank des entsprechenden Webservers gespeichert.
Wir selbst müssen in diesem Falle nicht einmal einen manipulierten Link anklicken, denn aufgrund der Veränderungen in der Datenbank des Webservers werden uns schon beim Aufrufen der regulären Webseite automatisch die gefälschten Webseiten angezeigt.
Sehr häufig verwenden Hacker nicht besonders gut geschützte Foren als Türöffner, um ihren manipulierten Code an den Webserver zu übermitteln, auf dem diese Foren gehostet sind. In diesem Falle genügt ihnen schon ein einfacher Foreneintrag mit einem schädlichen Skript, um die Datenbank des Webservers zu verändern und in der Folge massenhaft Zugangsdaten von Anwendern abgreifen zu können.
Gespeicherte XSS-Angriffe sind komplizierter als reflektierte: Sie lohnen sich für Cyber-Kriminelle eigentlich nur bei Webseiten, die eine große Beliebtheit haben, also genügend Traffic aufweisen. Und sie müssen natürlich Sicherheitslücken aufweisen, die es den Hackern erlauben, ihre manipulierten Scripte einzuschleusen.
Haben sie das allerdings geschafft, potenziert sich die Anzahl der möglichen Opfer um ein Vielfaches, denn jeder, der diese mittels persistentem Cross Site Scripting infizierte Website aufruft, bekommt die betrügerischen Skripte an seinen Browser übermittelt. Darum ist es fast unmöglich, gespeichertes XSS zu erkennen – bis es zu spät ist.
DOM-basiertes oder lokales Cross Site Scripting
Bei lokalen oder DOM-basierten XSS-Angriffen nutzen Cyber-Kriminelle keine Sicherheitslücke auf einem Webserver aus, vielmehr senden sie Ihnen ihr schädliches Script über eine präparierte E-Mail frei Haus. Dieses Script wird dann im Browser ausgeführt, ohne dass Sie davon überhaupt etwas mitbekommen. Hierbei nutzen sie Social-Engineering-Methoden wie etwa Phishing oder Spoofing, um Sie zum Aufrufen ihrer betrügerischen Webseite zu verleiten.
Sie müssen also lediglich einen per E-Mail zugesendeten, vermeintlich vertrauenswürdigen Link anklicken und schon integriert Ihr Browser das schädliche Script (man nennt das „clientseitiges JavaScript“). Er akzeptiert dieses infizierte Skript, weil es fälschlicherweise als Teil des Quellcodes dieser eben nur vermeintlich vertrauenswürdigen Webseite betrachtet wird und führt es aus – zeigt Ihnen also die von Ihnen aufgerufene, allerdings manipulierte Webseite.
Wenn Ihr Browser dann auch noch besondere Rechte auf Ihrem Laptop oder PC besitzt, können Hacker im Anschluss sogar lokal gespeicherte Daten auf Ihrem Gerät ausspionieren und manipulieren.
Da diese Codes ja nicht sichtbar und die meisten von uns sowieso nicht mit Programmiersprachen wie JavaScript vertraut sind, ist es für uns nahezu unmöglich, einen lokalen XSS-Angriff zu erkennen.
Wie kann man sich vor Cross Site Scripting schützen?
Viele der Cross Site Scriptings zielen auf die Server ab, die Unternehmens-, Banken- oder Behördenseiten hosten. Hier sind die IT-Verantwortlichen in der Pflicht, die Sicherheitskonzepte kontinuierlich zu prüfen und schützende Maßnahmen anzupassen.
Aber auch Sie als Privatperson haben eine Reihe von Möglichkeiten, mit denen Sie sich vor den Folgen eines XSS-Angriffes schützen können.
Zur Vermeidung von XXS-Angriffen gehört ein vorsichtiger Umgang mit Links und E-Mails
Sie wissen es längst: Wir selbst sind die größte Schwachstelle bei der Nutzung unserer digitalen Geräte. Denn wie schnell klicken wir ganz unbedarft auf den Link in einer vermeintlich von einem unserer Kontakte gesendeten E-Mail-Nachricht. Und auch vor Phishing werden wir regelmäßig gewarnt, besonders von Banken, mit denen wir unser Online-Banking erledigen.
Selbst wenn Sie keinen konkreten Hinweis auf eine Phishing-Attacke von Ihrer Bank erhalten haben, können Sie betrügerische E-Mails anhand einiger möglicher Indizien erkennen:
- Die angezeigte Absender-Adresse ist nicht zwingend die tatsächliche. Mit einem Blick auf die Absender-Details im Header der jeweiligen E-Mail können Sie leicht erkennen, ob Ihr Kontakt tatsächlich der Absender ist. Wenn dort also eine eher kryptische E-Mail-Adresse angezeigt wird, sollten Sie diese E-Mail lieber gleich in den Spam-Ordner Ihres Mail-Programms verschieben.
- Wenn in der E-Mail-Nachricht keine personalisierte Anrede erfolgt, Sie also nicht mit Ihrem Namen angeschrieben werden, kann dies ein Indiz dafür sein, dass Sie es mit einer betrügerischen Nachricht zu tun haben.
- Falsche Grammatik, Rechtschreibung, Kommasetzung – all‘ das können Hinweise darauf sein, dass Hacker Sie auf eine betrügerische Webseite lotsen wollen.
- Auch ein „irgendwie“ verändertes Design von Webseiten, die Sie häufig nutzen, können ein Signal dafür sein, dass sie manipuliert wurden.
Damit Cross Site Scripting weniger Schaden anrichten kann: Java Script blockieren
Sie können den Schutz vor lokalen XSS-Angriffen verbessern, indem sie die Java-Unterstützung Ihres Browsers ausschalten, denn mit einem deaktivierten Active Scripting sind Angriffe mit JavaScript oftmals wirkungslos.
Das Ausschalten von JavaScript hilft allerdings nur vor echten XSS-Attacken zu schützen, nicht aber vor so genannten HTML- oder SQL-Injections, ins Deutsche übersetzt „Einspritzung oder Einspeisung in strukturierte An-/Abfragesprache“. Wenn Sie genauer wissen möchten, was sich hinter dieser Cyber-Angriffsform verbirgt, empfehlen wir Ihnen unseren Blogbeitrag hierzu.
Browser-Schutz kann Ihnen helfen, lokale XXS-Angriffe zu vermeiden
Wenn Sie einen Browserschutz wie Avira Browser Safety installieren, kann diese Erweiterung Ihnen helfen, Browser-Hijacking, unerwünschte Anwendungen in Ihren Downloads und Phishing-Seiten zu erkennen und zu vermeiden – und Sie so vor den Folgen eines lokalen XSS-Angriffs zu schützen.
Der nützliche Browserschutz arbeitet als Erweiterung im Hintergrund auf Windows- und Mac-Geräten und lässt sich umfangreich konfigurieren. Avira Browser Safety ist für Firefox, Google Chrome, Opera und Microsoft Edge (jeweils integriert in Avira Safe Shopping) verfügbar.
Ein erprobtes Antiviren-Programm kann helfen, Cross Site Scriptings zu vermeiden
Wir können es nicht oft genug wiederholen: Ein bewährter Virenschutz gehört einfach zur Grundausstattung eines jeden Gerätes, mit dem Sie ins Internet gehen und digitale Anwendungen und Apps nutzen. Avira Free Antivirus kommt von einem der führenden Anbieter für Online-Sicherheit in Deutschland¹ (Claim ID AVR004) und kann Ihnen dabei helfen, den Echtzeitschutz Ihres Gerätes zu verbessern.
Avira Free Antivirus ist ein automatisiertes, intelligentes und selbstlernendes System, mit dem Sie sich besser vor neuen und sich verändernden Cyberbedrohungen schützen können. Mit dem integrierten PUA-Schutz kann Avira Free Antivirus auch helfen, potenziell unerwünschte Anwendungen zu erkennen, die sich in legitimer Software verstecken.
Dieser Artikel ist auch verfügbar in: EnglischFranzösischItalienisch