Cross-Site-Tracing

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Cross-Site-Tracing (kurz: XST oder CST) ist ein Angriff auf Internetbenutzer mit dem Ziel, bestimmte Benutzerdaten auszuschnüffeln. Über eine reguläre Webserver-Funktion (HTTP-TRACE) und durch Sicherheitslücken in Browsern ist es für einen Dritten möglich, HTTP-Header-Informationen zu erhalten. Dieser Angriff tritt besonders in Verbindung mit Cross-Site-Scripting auf.

Anders als bei einem normalen Cross-Site-Scripting-Angriff ist ein Cross-Site-Tracing-Angriff jedoch nicht auf dasselbe Dokument oder denselben Webserver beschränkt, sondern es kann jeder beliebige Webserver genutzt werden, um an die Benutzerdaten des Opfers einer beliebigen Website zu gelangen. Dieser Umstand macht diese Angriffsform besonders gefährlich, da prinzipiell von jeder Website aus, die ein Benutzer aufruft, ein Angriff auf die Benutzerdaten einer beliebigen anderen Website möglich ist.

Details[Bearbeiten]

Eine HTTP-TRACE-Anfrage entspricht einer GET-Anfrage, mit dem Unterschied, dass der Webserver die gesamte an ihn gesendete Anfrage als Echo an den Client zurückgibt. Ein clientseitig ausgeführtes Skript kann eine TRACE-Anfrage senden und sämtliche an den Webserver gesendete Informationen (samt allen HTTP-Header-Feldern, also auch Authentifizierungsdaten, Cookies, etc.) abfangen, die für den Angreifer von Interesse sind.

Mit einem solchen Angriff können Sicherheitsmaßnahmen wie der von Microsoft in HTTP-Cookies eingeführte HttpOnly-Parameter[1] und sogar verschlüsselte Übertragungen (wie etwa bei HTTPS) umgangen werden.

Da Cross-Site-Scripting als der häufigste Angriff im Internet gilt,[2] tritt auch Cross-Site-Tracing hauptsächlich in Verbindung mit diesem auf. Allerdings eignen sich theoretisch alle clientseitigen Protokolle für diesen Angriff, wenn damit HTTP-Anfragen erstellt werden können. Hierzu zählen neben JavaScript und JScript auch VBScript, Flash(Actionscript), Java, ActiveX und andere.

Beispiel[Bearbeiten]

  1. Ein Benutzer wird auf eine vom Angreifer vorbereitete HTML-Seite gelockt.
  2. Die Seite enthält JavaScript-Code, der eine TRACE-Anfrage zu einer Website sendet, von der der Angreifer die Cookie-Daten des Benutzers erhalten will.
  3. Der Server sendet die Anfrage des Clients samt Cookies an den Client zurück, wo sie vom JavaScript-Code ausgewertet wird.
  4. Das JavaScript-Skript filtert die Cookies aus und sendet diese an den Angreifer.

Schutz[Bearbeiten]

Alle Webserver, die die TRACE-Methode unterstützen, eröffnen diese Angriffsmöglichkeit. Sie können durch Deaktivierung der TRACE-Unterstützung auf Seiten des Webservers für Anfragen an diesen Webserver verhindert werden.

Auf der Client-Seite können durch Deaktivieren der JavaScript-Unterstützung (Active Scripting) alle Formen des Cross-Site-Scripting verhindert werden. Allerdings geschieht dies zu dem Preis, dass viele Seiten nicht mehr wie erwartet genutzt werden können.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Microsoft. Mitigating Cross-site Scripting With HTTP-only Cookies
  2. OWASP-Projekt: Top 10 2007 (englisch), geprüft 23. Mai 2008