kümmert sich um Ihre Sicherheit
english deutsch français polski russian magyar
Produkte
Kaufen
Support
Partner
Presse
Agnitum

Presse

Home
Pressemitteilungen
Agnitum Newsletter
Auszeichnungen
Presseraum
PR-Kontakt

Cross-Site Scripting – die lauernde Internet-Gefahr

Einführung

Es gibt in der Computersicherheit einige Bereiche, die ein Anwender so gut wie gar nicht unter Kontrolle hat, von der unfreiwilligen Gefährdung durch Exploits, die Software-Sicherheitslücken ausnutzen bis hin zu von Hijackern übernommene DNS-Server, die Besucher an infizierte Speicherorte leiten. Hier kann ein Benutzer allein nicht viel dagegen unternehmen, zum Opfer zu werden.

Diese – und zahlreiche andere – Herausforderungen erfordern ein Handeln von Seiten der Software-Hersteller, um weniger angreifbare Produkte zu entwickeln, und von Seiten der zuständigen Stellen, um eine Internet-Infrastruktur einzuführen, die weniger anfällig für Missbrauch ist oder zumindest eine schnelle Schadensbegrenzung ermöglicht, wenn Fehler gefunden werden.

Dasselbe Prinzip trifft auch auf Cross-Site-Scripting-Angriffe zu. Diese Art des Internetrisikos kann nicht durch einzelne Internetnutzer allein behoben werden, sondern sollte in den Zuständigkeitsbereich der Entwickler von Internetanwendungen und Browsern fallen. Wie es aussieht, wird dieses Maß an Vorbeugung in absehbarer Zeit jedoch nicht verfügbar sein, deshalb ist es wichtig, die Auswirkungen von Sicherheitslücken durch Cross-Site Scripting zu kennen und eine unbeabsichtigte Gefährdung so weit wie möglich zu verringern. Das ist der Gegenstand dieses Artikels.

Was genau ist Cross-Site Scripting?

Ein Skript ist ein Satz von Befehlen in Maschinensprache, der auf dem Computer eines Anwenders oder einem Webserver verarbeitet wird. Sicherheitslücken durch Cross-Site Scripting (XSS) treten auf, wenn es Skripten, die von einer Website (üblicherweise von einer schädlichen Website) stammen, erlaubt wird, mit den Inhalten einer anderen Website oder einer lokal gespeicherten HTML-Seite zu interagieren – daher auch der Begriff "cross-site" (seitenübergreifend). Im Gegensatz zu anderen Angriffsarten schalten die Urheber von Cross-Site-Scripting-Angriffen anfällige Server als Vermittler ein, um Angriffe auf Besucher gefährdeter Websites auszuführen. Das geschieht, indem der Browser des Besuchers gezwungen wird, die Skripte auszuführen, die auf diesen anfälligen Servern platziert wurden.

XSS-Sicherheitslücken tauchten zum ersten Mal zur Jahrhundertwende auf, als eine Reihe von Sicherheitsfachleuten ihre Besorgnis über die mögliche, böswillige Verwendung von JavaScript-Code in einem grenzübergreifenden Angriff äußerte.

Nachdem bei einem XSS-Angriff das Skript auf dem PC des Anwenders ausgeführt wurde, beginnt es Befehle auszugeben und das Verhalten des Ziel-Browserfensters so fernzusteuern, dass allem Anschein nach der Anwender diese Aktionen selbst ausführt. Das Skript kann lokal auf dem Computer des Anwenders ausgeführt werden oder untätig auf dem Webserver liegen und andere Anwender angreifen, sobald sie auf diese Webseite zugreifen.

Das Problem mit XSS ist deshalb so schwerwiegend, weil das Skript als Folge eines XSS-Exploits die Kontrolle über die Websitzung des Opfers übernimmt, während der Angriff im Hintergrund ausgeführt wird, so dass er keine Spuren hinterlässt und deshalb äußerst schwierig zu erkennen ist.

Damit ein XSS-Angriff erfolgreich durchgeführt werden kann, müssen bestimmte Voraussetzungen erfüllt sein: die Verwendung von Browser-Software mit Sicherheitslücken, die die Herkunft und Berechtigungen des Skripts nicht prüft oder nicht sorgfältig genug geschriebener Webserver-Code, der keine angemessenen Prüfroutinen durchführt. Auch Social Engineering wird häufig verwendet, um Opfer zum Anklicken von Links zu bewegen, die das schädliche Skript enthalten.

Um eine Vorstellung vom Ausmaß des Problems zu geben: Schätzungen zufolge haben mehr als die Hälfte aller Websites heute XSS-Löcher, und XSS-Schwachstellen machen mehr als 80 Prozent aller dokumentierten Internet-Sicherheitslücken aus. Beinahe alle bekannten Internetportale wurden zu irgendeinem Zeitpunkt durch XSS-Angriffe gefährdet – Seiten wie Google, MSN, Facebook und andere sehr bekannte Websites haben bereits direkte Erfahrungen mit XSS-Exploits gesammelt.

Verschiedene Arten von XSS

Es gibt zurzeit drei Arten von Cross-Site-Scripting-Sicherheitslücken:

  • Lokales oder Typ-0-XSS, wo das Problem im clientseitigen Skript einer Webseite liegt. Um die Schwachstelle auszunutzen, erstellt ein Angreifer eine Webseite mit schädlichem JavaScript-Code darin und sendet potenziellen Opfern einen Link zu dieser Seite (per E-Mail, Instant Messaging usw.). Sobald der Link angeklickt wurde, wird das Skript ausgeführt und ruft eine lokal erstellte, angreifbare HTML-Seite auf, die JavaScript-Code enthält, der mit den aktuellen Benutzerberechtigungen ausgeführt werden kann (die meisten Computernutzer melden sich als Administratoren an). Danach kann ein Angreifer Zugriff auf den lokalen Computer des Opfers erlangen und somit auch auf Dateien und andere kritische Daten.
  • Nicht-persistentes oder Typ-1-XSS ist eine der häufigsten Arten und beinhaltet Schwachstellen bei serverseitigen Skripten, die die Benutzereingaben nicht ausreichend prüfen. Nicht-persistentes XSS liegt vor, wenn ein Anwender einen Link mit schädlichem Skript erhält, während er auf einer Website angemeldet ist. Nachdem der Link angeklickt wurde, wird das schädliche Skript ausgeführt, übernimmt die Sitzung des Anwenders und kontrolliert die Aktivität der Seite, auf der sich der Anwender gerade befindet. Diese Art der Sicherheitsgefährdung kann nur in der aktuell laufenden Browsersitzung ausgeführt werden.
  • Persistentes oder Typ-2-XSS ist die offenkundigste und gefährlichste Schwachstelle, da sie viele Anwender auch ohne großen Einsatz von Social Engineering betreffen kann. Die Schwachstelle liegt im serverseitigen Skript, sie kann jedoch lange Zeit existieren, so dass sie eine wesentlich größere Anzahl von Anwendern betreffen kann. Sie entsteht, wenn ein legitimer Server dauerhaft schädliche Skripte speichert, die dort vom Hacker platziert wurden und diesen Code später zur Ausführung an die Browser der Webseitenbesucher weitergibt.

Worauf es die Angreifer abgesehen haben

Die meisten Angriffe zielen auf Sitzungscookies ab – auf Dateien also, die von der Website, mit der sich die Anwender verbinden, auf ihre Rechner geladen werden. Cookies sind einfache Mechanismen zur Identifizierung auf der Website, sobald also ein Angreifer sich Ihrer Cookie-Dateien bemächtigt, kann er sich für Sie ausgeben und in Ihrem Namen handeln. Cookies werden durch die Befehle im Skript an die Angreifer übermittelt.

Was die Opfer zu verlieren haben

Als Folge einer erfolgreichen Ausnutzung einer XSS-Schwachstelle können die Opfer wichtige Daten verlieren und Opfer eines Identitätsdiebstahls werden. Wenn Ihre Sitzung einmal durch Hijacking übernommen wurde, können die "Skript-Master“ alle Aktivitäten durchführen, die der rechtmäßiger Besitzer eines angegriffenen Kontos durchführen kann – E-Mails lesen und löschen, finanzielle Transaktionen durchführen und Zahlungen veranlassen, Postings auf sozialen Netzwerk-Websites veröffentlichen – also so ziemlich alles, wozu der rechtmäßiger Nutzer berechtigt ist.

Was macht XSS-Angriffe möglich?

Es gibt zwei Gründe für XSS-Angriffe: nachlässige Programmierung und willkürlich erstellte Website-Engines, die die Anwender-Eingaben nicht filtern. Jede dieser Situationen kann es einem Angreifer ermöglichen, JavaScript-Code etwa in ein Suchfeld einzufügen; der Server würde dann zusammen mit der ursprünglichen Suchanfrage eine Ergebnisseite ausgeben, die von der Client-Software als ausführbarer Code interpretiert werden könnte. Deshalb ist es wichtig, dass Webentwickler Code erstellen, der die Benutzereingaben filtert und bestimmte, im JavaScript verwendete Zeichen in Befehle in reinen Text, nicht in ausführbare Befehle umwandelt.

Ein anderer Faktor zur Begünstigung von XSS-Schwachstellen ist die Verwendung von veralteten Internetbrowser-Versionen, die bei der Verarbeitung (Analyse) von Code aus unterschiedlichen Quellen nicht die erforderlichen Sicherheitsrichtlinien anwenden.

Wie können sich Anwender schützen?

Auch wenn die Hauptlast der Verantwortung für XSS-Angriffe bei den Entwicklern liegt, kann ein Internetnutzer einiges tun, um seine Angreifbarkeit zu verringern. Am wichtigsten ist es zu verhindern, dass clientseitiger Code von nicht vertrauenswürdigen Websites an den Browser geschickt wird. Benutzer des Internet Explorer können das erreichen, indem sie auf der Registerkarte Sicherheit den Regler für die Sicherheitsstufe auf „Hoch“ setzen und so die Möglichkeit einschränken, dass potenziell schädlicher Code auf einer Website ausgeführt wird. Sie können auch eine Liste von Websites festlegen, die Code dennoch ausführen dürfen. Firefox-Benutzer können das Add-on NoScript verwenden, um JavaScript zu blockieren und es ebenso wie beim IE nur auf Websites zuzulassen, die in der Ausnahme-Liste festgelegt wurden. Eine andere Option besteht darin, die Einstellung für den Datenschutz höher zu setzen, so dass keine dauerhaften Cookies vom Browser gespeichert werden und entsprechende Ausnahmen festzulegen.

Eine andere nützliche Angewohnheit ist es, sich nach jeder beendeten Internetsitzung abzumelden und unbekannte Links erst zu öffnen, nachdem der Anwender die Website verlassen hat (die Cookie-Datei wird aus dem lokalen Speicher entfernt, so dass kein Angriff möglich ist).

Es ist außerdem wichtig, dass Sie Ihren Browser und Windows immer auf dem aktuellsten Stand halten, so dass vergangene Schwachstellen Sie nicht mehr angreifbar machen.

Zusammenfassung

XSS-Angriffe geschehen aufgrund von Fehlern im Web-Code, der die Benutzer-Eingaben nicht ausreichend auf schädlichen, ausführbaren Code hin überprüft. Schwachstellen werden vermieden, wenn potenziell schädliche Daten, die ein Anwender an einen Server übermittelt, extrahiert und als reine (nicht ausführbare) Textdaten zurückgegeben werden. Während wir auf eine Lösung von Seiten der Webanwendungs-Entwickler warten, gibt es Schritte, die ein Anwender ergreifen kann, um das Risiko eines XSS-Angriffs zu verringern: Abmelden von einer Sitzung vor dem Klicken und Folgen von Links, Deaktivieren von JavaScript-Code für unbekannte Websites, Verwendung der neuesten Version des Web-Browsers. Und schließlich sollten Sie auch weiterhin die „Regeln des Internet“ befolgen – öffnen Sie keine Links von Unbekannten und vertrauen Sie keinen Kontakten, die Sie nicht kennen.

Lernen Sie den Autor

 

Igor Pankov war schon immer von Computern, dem Internet und der Freiheit fasziniert, sich mit wenigen Mausklicks durch die weltweite Wissensdatenbank zu klicken.
Lesen Sie mehr...

Sicherheitgeschichten
Melden sie sich noch heute an!
Beziehen Sie unsere kostenlosen monatlichen Newsletter:
Agnitum Newsletter (Neuigkeiten)

Geben Sie hier bitte Ihre EMailadresse ein:

RSS feed
Nutzungsbedingungen   Suche   Site map   Kontakt   Datenschutzerklärung   PR-Kontakte   
Outpost Security Suite PRO   Outpost Firewall PRO   Outpost Antivirus PRO   Outpost Network Security
Alle Rechte vorbehalten © 1999–2012 Agnitum Ltd.