HTTPS-gemischter Inhalt: Immer noch der einfachste Weg, SSL zu brechen

Probleme mit gemischten Inhalten treten auf, wenn Websites ihre Seiten über HTTPS bereitstellen, einige Ressourcen jedoch im Klartext bereitgestellt werden können. Der aktive Netzwerkangreifer kann nichts gegen den verschlüsselten Datenverkehr unternehmen, aber das Durcheinander mit dem Klartext kann zu Angriffen führen, die im besten Fall von Phishing bis hin zu vollständigen Browser-Kompromissen im schlimmsten Fall reichen. Ein einzelnes Exposed-Skript ist ausreichend: der Angreifer kann die Verbindung kapern und beliebige Angriffsnutzlasten in sie injizieren.

Wir neigen dazu, viel über andere Aspekte von SSL / TLS zu sprechen, aber gemischter Inhalt ist wohl der einfachste Weg, um die Verschlüsselung Ihrer Website komplett durcheinander zu bringen.

In den frühen Tagen des Webs waren alle gemischten Inhalte erlaubt; Webbrowser erwarteten, dass Websitebetreiber die Konsequenzen des Mischens von Inhalten durchdenken. Das führte natürlich nicht zu großer Sicherheit. Website-Betreiber taten, was sie brauchten, um ihre Arbeit zu erledigen und die Kosten zu senken. Erst in den letzten Jahren haben Browser-Anbieter begonnen, darauf zu achten und gemischte Inhalte einzuschränken.

Gemischter Inhalt in modernen Browsern

Heutzutage teilen fast alle gängigen Browser gemischten Inhalt in zwei Kategorien auf: passiv für Bilder, Videos und Ton; und aktivfür gefährlichere Ressourcen wie Skripte. Sie neigen dazu, passive gemischte Inhalte standardmäßig zuzulassen, lehnen jedoch aktive Inhalte ab. Dies ist eindeutig ein Kompromiss zwischen dem Brechen des Webs und angemessener Sicherheit.

Internet Explorer ist führend in der sicheren Handhabung gemischter Inhalte. Bereits in Internet Explorer 5 (laut diesem Beitrag) wurden standardmäßig unsichere Inhalte erkannt und verhindert. Chrome wurde 2011 standardmäßig blockiert, Firefox 2013. Der Standard-Android-Browser und Safari erlauben jedoch weiterhin alle gemischten Inhalte ohne Einschränkungen (und mit fast nicht vorhandenen Warnungen).

Hier sind die Ergebnisse meiner jüngsten Tests, welche unsicheren Inhalte standardmäßig zulässig sind:

Browser Bilder CSS Skripte XHR WebSockets Rahmen
Android-Browser 4.4.x Ja Ja Ja Ja Ja Ja
Chrom 33 Ja Nein Nein Ja Ja Nein
Firefox 28 Ja Nein Nein Nein Nein Nein
Internet Explorer 11 Ja Nein Nein Nein Nein Nein
Safari 7 Ja Ja Ja Ja Ja Ja

Sie sind meistens wie erwartet, aber es gibt eine Überraschung mit Chrome, das aktiven Seiteninhalt blockiert, aber immer noch Klartext-XMLHttpRequest- und WebSocket-Verbindungen zulässt.

Es ist erwähnenswert, dass die Tabelle uns nicht alles sagt. Zum Beispiel neigen Browser dazu, nicht zu kontrollieren, was ihre Plugins tun. Darüber hinaus sind bestimmte Komponenten (z. B. Flash oder Java) eigenständige vollständige Umgebungen, und Browser können nur wenig tun, um die Sicherheit zu erzwingen.

Testen der Handhabung gemischter Inhalte in SSL Labs

Um die Browserbehandlung dieses Problems einfacher zu bewerten, habe ich kürzlich den SSL Labs-Client-Test erweitert, um die Handhabung gemischter Inhalte zu untersuchen. Wenn Sie die Seite besuchen, wird Ihr Benutzerbrowser getestet und Sie erhalten ähnliche Ergebnisse:

ssl-labs-client-test-mixed-content

Prävalenz gemischter Inhalte

Anekdotisch ist gemischter Inhalt sehr häufig. Bei Qualys haben wir dieses Problem im Jahr 2011 untersucht, zusammen mit mehreren anderen Problemen auf Anwendungsebene, die zu einem vollständigen Bruch der Verschlüsselung in Webanwendungen führen. Wir analysierten die Homepages von etwa 250.000 sicheren Websites aus der Alexa Top 1 Million-Liste und stellten fest, dass 22,41% von ihnen unsichere Inhalte verwendeten. Wenn Bilder ausgeschlossen werden, sinkt die Zahl auf 18,71%.

Eine detailliertere Studie von 18.526 Websites, die aus Alexa Top 100.000 extrahiert wurden, fand 2013 statt: Eine gefährliche Mischung: Groß Angelegte Analyse von Websites mit gemischtem Inhalt (Chen et al.). Für jede Site wurden bis zu 200 sichere Seiten analysiert, was zu insgesamt 481.656 Seiten führte. Ihre Ergebnisse zeigen, dass bis zu 43% der Websites Probleme mit gemischten Inhalten haben.

Die beste Verteidigung gegen Probleme mit gemischten Inhalten besteht einfach darin, diese Art von Problem nicht in Ihrem Code zu haben. Aber das ist leichter gesagt als getan; Es gibt viele Möglichkeiten, wie sich gemischte Inhalte einschleichen können. Wenn das fehlschlägt, gibt es zwei Technologien, die nützlich sein können:

  • HTTP Strict Transport Security (HSTS) ist ein Mechanismus, der einen sicheren Ressourcenabruf erzwingt, selbst bei Benutzerfehlern (Versuch, über Port 80 auf Ihre Website zuzugreifen) und Implementierungsfehlern (Ihre Entwickler platzieren einen unsicheren Link auf einer sicheren Seite). HSTS ist eines der besten Dinge, die TLS in letzter Zeit passiert sind, aber es funktioniert nur auf den Hostnamen, die Sie steuern.
  • Content Security Policy (CSP) kann verwendet werden, um das Abrufen unsicherer Ressourcen von Websites Dritter zu blockieren. Es hat auch viele andere nützliche Funktionen für andere Anwendungssicherheitsprobleme zu beheben, zum Beispiel XSS.

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht.