Cross-Site Scripting mit Werkzeugen und Tests verhindern

Hacking mittels Cross-Site Scripting gehört heute zu den wichtigsten Angriffsmethoden. Ein sicherer Entwicklungszyklus schützt Organisationen.

Hacking-Versuche mittels Cross-Site Scripting (XSS) sind heute eine der wichtigsten Angriffsmethoden. Dabei werden schlecht gesicherte Websites und Browser dafür genutzt, Cookies auszulesen oder Finanztransaktionen vorzunehmen. Die Lücken, über die XSS möglich ist, sind sehr verbreitet. Für möglichst gute Prävention und guten Schutz sind Organisationen deshalb dazu gezwungen, einen gut geplanten, sicheren Entwicklungszyklus zu implementieren, der Bedrohungsmodelle, Scanning-Werkzeuge und umfassendes Sicherheitsbewusstsein umfassen sollte. In diesem Artikel erklären wir, wie Cross-Site Scripting funktioniert und wie es sich bei Web-Anwendungen verhindern lässt.

Die Funktionsweise von Cross-Site Scripting

Cross-Site Scripting gibt Angreifern die Möglichkeit, bösartigen Code an andere Nutzer zu schicken, indem sie Fehler oder Schwächen in Internet-Servern ausnutzen: Mit Hilfe von XSS können sie schädliche Anweisungen in scheinbar vertrauenswürdigen Links unterbringen. Wenn ein Nutzer auf einen solchen Link klickt, wird das enthaltene Programm auf seinem Computer ausgeführt. Darüber können sich Hacker Zugriff auf sensible Daten verschaffen. Statt also das System direkt anzugreifen, nutzen sie Lücken auf dem Rechner ihres Opfers aus und schieben ihnen Schadcode unter.

Dies geschieht über Web-Formulare, die Fehlermeldungen ausgeben, in denen vom Nutzer gemachte Eingaben enthalten sind. Bei diesen verändern Angreifer schlicht den HTML-Code, der die Anzeige der Seite im Browser steuert. Derartige Links können in Spam-Mails oder in E-Mails mit gefälschtem Absender enthalten sein, bei denen der Nutzer glaubt, sie würden von einer vertrauenswürdigen Quelle stammen.

So könnte ein Opfer eine E-Mail mit einer URL bekommen, die auf eine bestimmte Website zeigt. Ebenso ist es möglich, dass schädliche URLs in Blogs oder in sozialen Netzen wie Facebook oder Twitter veröffentlicht werden. Wenn ein Nutzer darauf klickt, wird die Seite samt Script in seinem Browser ausgeführt – der Browser weiß ja nichts davon, dass das Script bösartig ist. Dadurch ist es mit Hilfe der Funktionalität der Site zum Beispiel möglich, Cookies auszulesen oder auch Transaktionen unter dem Namen des wahren Nutzers vorzunehmen.

Wie sich Website vor XSS-Attacken schützen lassen

Zu den allgemeinen Best Practices für die Verhinderung von Cross-Site Scripting zählen das Testen von Anwendungscode vor dem Praxis-Einsatz sowie schnelle und konsequente Reaktionen auf Fehler und Sicherheitslücken mittels Patches. Um die Verarbeitung von möglicherweise schädlichen Zeichen und Browser-Scripts zu verhindern, sollten Web-Entwickler auch eine Filterung von Nutzer-Eingaben vorsehen. Zudem lassen sich Browser so konfigurieren, dass sie Scripts nur von vertrauenswürdigen Sites akzeptieren oder die Ausführung von Scripts komplett ausgeschlossen ist; dies kann allerdings zu eingeschränkter Funktionalität von Websites führen.

Mit der Zeit werden jedoch auch die Hacker geschickter und nutzen eine Reihe von Toolkits, mit denen sie die Ausnutzung von Schwachstellen beschleunigen. Das bedeutet: Die allgemeinen Maßnahmen zur XSS-Prävention reichen nicht mehr aus – stattdessen müssen Vorbeugung und Absicherung ganz unten ansetzen und sich bis ans Ende durchziehen.

Der Prozess der Prävention sollte also schon bei der Entwicklung beginnen: Web-Anwendungen, die auf einer robusten Methodik für einen sicheren Entwicklungszyklus beruhen, enthalten bei der Veröffentlichung mit geringerer Wahrscheinlichkeit noch Schwachstellen. Dadurch erhöht sich nicht nur ihre Sicherheit, sondern auch bei Usability und die Gesamtkosten (TCO) gibt es Verbesserungen. Denn es ist immer teurer, ein Problem in einer Live-Umgebung zu beheben als während der Entwicklung.

Bedrohungsmodelle sind ebenfalls ein wichtiger Aspekt der XSS-Prävention, der in den sicheren Entwicklungszyklen jeder Organisation enthalten sein sollte. Dabei werden in der Planungsphase alle Risiken einer Anwendung identifiziert und bewertet, damit Web-Entwickler besser verstehen, welcher Schutzmaßnahmen notwendig sind und wie ein erfolgreicher Angriff auf die Anwendung die Organisation betreffen würde. Um das Bedrohungsniveau für eine bestimmte Anwendung einzuschätzen, müssen die von ihr verwendeten Assets betrachtet werden und außerdem die Frage, auf wie viele sensible Informationen sie zugreift. Ein solcher Prozess der Bedrohungsmodellierung sorgt dafür, dass Sicherheit zum strategischen Teil von Planung und Entwicklung einer Anwendung ist; auch das Sicherheitsbewusstsein der Entwickler wird dadurch geschärft.

Eine gute Möglichkeit, um bei großen Projekten die Belastung für die Web-Entwickler zu verringern und ihre Effizienz zu erhöhen, sind Scan-Werkzeuge für Programmcode und Schwachstellen-Scanner für Web-Anwendungen. Mit diesen Scannern lassen sich verbreitete Sicherheitslücken wie Möglichkeiten für SQL-Injektion, Cross-Site Scripting oder Buffer-Overflows aufdecken. Dies ändert allerdings nichts daran, dass selbst geschriebener Anwendungscode auch manuell überprüft werden muss.

Artikel wurde zuletzt im Januar 2010 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Webserver-Bedrohungen

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close