Durch Zufall bin ich auf einer eigentlich vertrauenswürdigen WebSite auf ein XSS-Problem gestoßen, woraufhin ich mal einen kleinen Test gemacht habe.
Ich habe mir per Suchmaschine 200 WebSites rausgesucht, wobei ich einfach nur nach den Suchseiten der WebSites gesucht habe, was eher zu zufälligen Suchergebnissen führt. Ich habe also nicht nach speziellen Scripten von CMS, Foren, Blogs, etc. gesucht, bei denen man bereits weiß das sie anfällig für XSS-Angriffe sind.
Auf 60% der untersuchten WebSites habe ich eine XSS-Lücke gefunden. Darunter sind Elektronikkonzerne, TV-Sender, Lexika, Buchverlage, Preisvergleiche, Portale von Bund und Ländern, Krankenhäuser, Social Networks, Universitäten, WebHoster, Vereine, Versicherungen, Shops, politische Parteien, etc., etc., also die ganze Palette an WebSites die es gibt. Und wenn ich “Elektronikkonzerne” und “TV-Sender” schreibe dann meine ich wirklich sehr sehr bekannte Unternehmen. Diese 60% bedeuten aber nicht das die restlichen 40% sicher sind, sondern nur das ich dort keine XSS-Lücke gefunden habe.
82,5% der XSS-Lücken fand ich in der Suchfunktion der WebSite. Auf den WebSites die eine Suchfunktion einer Suchmaschine (meist Google) benutzen fand ich die Lücke auf anderen Seiten. Suchmaschinen die entsprechende Dienste für fremde WebSites anbieten wissen wie man Usereingaben korrekt filtert. Wenn die XSS-Lücke nicht in der Suchfunktion zu finden war dann fand ich sie in dem Formular für die Registrierung zur Nutzung der WebSite oder des Newsletters, im Kontaktformular oder im Formular zur Übermittlung eines Freischaltcodes, etc., etc. Jedes Formular, also jede Seite die eine Usereingabe annimmt und verarbeitet, ist für einen XSS-Angriff geeignet.
XSS? Auf Wikipedia wird dies gut erklärt.
Cross-Site Scripting (XSS) bezeichnet das Ausnutzen einer Computersicherheitslücke in Webanwendungen, indem Informationen aus einem Kontext, in dem sie nicht vertrauenswürdig sind, in einen anderen Kontext eingefügt werden, in dem sie als vertrauenswürdig eingestuft werden. Aus diesem vertrauenswürdigen Kontext kann dann ein Angriff gestartet werden.
Ziel ist es meist, an sensible Daten des Benutzers zu gelangen, um beispielsweise seine Benutzerkonten zu übernehmen (Identitätsdiebstahl).
…
Meist werden für diese Angriffsart aufgrund ihrer weiten Verbreitung Script-Sprachen – insbesondere JavaScript – genutzt.
(Quelle: Wikipedia)
Im Blog von
Erich Kachel findet man auch einen sehr guten Artikel zum XSS-Problem.
JavaScript ermöglicht unter Anderem:
- das Ändern der gesamten Seitenstruktur,
- das Einbinden zusätzlichen JavaScript-Codes,
- das Erzeugen beliebiger HTML-Elemente,
- das Umleiten von Formularen und Links,
- das Auslesen von Authentifizierungs-Daten,
- das Senden und Empfangen von Daten und
- das Auslesen der Tastenanschläge.
(Quelle: erich-kachel.de)
Ich hoffe das aus dieser Liste klar wird wie problematisch eine XSS-Lücke sein kann!
Die 120 WebSites werde ich anschreiben, mal schauen ob und wie sie reagieren. Ich höre jetzt schon die Verantwortliche: “An den Haaren herbeigezogen!”, “Kein wirkliches Sicherheitsproblem!”, “Identitätsdiebstahl!? Unsinn!”. Wenn die Mails raus sind werde ich eine Weile abwarten, die WebSites noch einmal prüfen und dann über die Reaktionen oder auch das Fehlen dieser, schreiben. Die die dann weiterhin das XSS-Problem ignorieren können sicher sein das sie von mir genannt werden.
Ich bin, wie so oft, sehr erstaunt über die Ignoranz der Verantwortlichen. Das XSS-Problem ist nicht neu, es gibt viele viele Artikel zu dem Problem. Wie kann es sein das mindestens 60% der WebSites Sicherheitslücken aufweisen? Die Firmen geben Millionen für Reklame aus, machen PR ohne Ende, aber in die Sicherheit der eigenen WebSite wird nicht investiert. Am Ende trifft es den unerfahrenen User, deren Bankkonto geplündert und deren virtuelle Identität für kriminelle Handlungen missbraucht wird.