Mixed Content

Was ist Mixed Content?

Der Vorteil von HTTPS-Verbindungen gegenüber HTTP-Verbindungen ist, dass die Daten hierbei abhörsicher übertragen werden. Dies schützt den Anwender vor Man-in-the-Middle-Attacken. Jedoch bedeutet der Aufruf einer Webseite über eine HTTPS-Verbindung nicht automatisch, dass alle Ressourcen dieser Webseite tatsächlich auch verschlüsselt übertragen werden. Es können Ressourcen wie Bilder, Stylesheets, JavaScripts oder Frames auch auf einer über eine HTTPS-Verbindung aufgerufenen Webseite über eine HTTP-Verbindung angefragt und für Angriffe ausgenutzt werden. In einem solchen Fall spricht man von Mixed Content.

Mixed Passive Content

Bei Mixed Passive Content handelt es sich um HTTP-Content auf einer HTTPS-Webseite, welcher nicht das Document Object Model (DOM) einer Webseite verändern kann. Dies können z. B. Bilder, Videos oder Audio sein. Ein Angreifer könnte diese austauschen, das hätte allerdings keinen größeren Einfluss auf den Rest der Webseite.

Nichtsdestoweniger kann auch Mixed Passive Content ein durchaus ernsthaftes Problem sein, da sich Rückschlüsse über die Aktivitäten eines Nutzers ziehen lassen könnten, indem zum Beispiel ausgewertet wird, welche Bilder an einen Nutzer geliefert werden. Da gewisse Bilder nur auf einer bestimmten Webseite erscheinen, könnte ein Angreifer so erfahren, welche Webseite ein Nutzer besucht. Darüberhinaus könnte der Angreifer die HTTP-Header, welche mit dem Bild gesendet werden, beobachten, inklusive User-Agent und sämtlichen Cookies, welche mit der Domain in Verbindung stehen, von welcher das Bild bezogen wird. Handelt es sich dabei um die selbe Domain wie die eigentliche Webseite, ist so der ganze Schutz durch die HTTPS-Verbindung nutzlos, weil der Angreifer die Cookies des Benutzers aus den Headern der unverschlüsselt übertragenen Bilder auslesen kann.

Mixed Active Content

Mixed Active Content hat im Gegensatz zu Mixed Passive Content die Möglichkeit, das Verhalten einer HTTPS-Webseite zu verändern, und damit das Potential, sensible Nutzerdaten zu stehlen. Beispiele für Mixed Active Content sind über eine HTTP-Verbindung ausgelieferte Stylesheets, JavaScripts, Objekte, XHR-Requests, Fonts sowie iFrames. Bei letzterem gibt es Uneinigkeit zwischen den Browserherstellern, ob es sich dabei um Mixed Active Content oder Mixed Passive Content handelt. Mozilla und Microsoft stufen dies als Mixed Active Content ein, Google hingegen als Mixed Passive Content. Ein Angreifer könnte die HTTP-Anfragen abfangen, die Antwort umschreiben und dabei schadhaften Code einschleusen. Dieser Code könnte dann sensible Nutzerdaten stehlen oder dazu genutzt werden, um Malware auf dem System des Nutzers zu installieren, indem man sich unsichere Plugins auf dem System des Nutzers zum Vorteil macht.