Content Type Sniffing: Risiken und Tipps zum Schutz
Veröffentlicht am 25.10.2021 von DomainFactory
(Update) Browser empfangen Datenströme und müssen den Dateityp der Dateien kennen, um diese richtig auszuführen. Zum Beispiel muss ein Webbrowser ein Bild im JPG-Format als solches erkennen und anzeigen. Ein MIME-Typ kennzeichnet den Inhalt. Fehlt die Kennzeichnung, kann der Browser versuchen, den Dateityp per Content Type Sniffing zu identifizieren. Hacker nutzen dieses Verhalten aus, weshalb Sie die Sniffing-Methode auf Ihren Websites unterbinden sollten.Was ist Content Type Sniffing?
Sniffing-Tools überwachen den Netzwerkverkehr und können übertragene Daten mitschneiden. Beim Content Type Sniffing wird der Inhalt eines Bytestreams analysiert, um das Dateiformat zu ermitteln. Mit der Methode lassen sich fehlende Metadaten kompensieren, sodass die Systeme den Datenstrom korrekt interpretieren können.
Verschiedene Techniken kommen bei der Analyse zum Einsatz. Die Tools suchen nach typischen Redundanzen, repräsentativen Zeichenfolgen und anderen Inhalten, die einem Dateiformat eigen sind. Andere Bezeichnungen für Content Sniffing sind Media Type Sniffing bzw. MIME Sniffing.
Was ist ein Sniffer?
Sniffer (engl. für „Schnüffler“) sind Softwareprogramme, die den Datenverkehr im Netzwerk auf Auffälligkeiten überwachen. Einsatzgebiete der Tools:
- Netzwerkdiagnose und -analyse
- Erkennung von Eindringlingen
- Datenspionage durch Cyberkriminelle
Webbrowser nutzen das Content Type Sniffing
Der Microsoft Internet Explorer hat das MIME Sniffing genutzt, um Websites besser anzuzeigen, die die MIME-Typen der Inhalte nicht korrekt angeben. Der Ablauf:
1. Der Browser fordert Daten an, die Antwort erfolgt ohne Angabe des Content-Typs.
2. Der Browser „schnüffelt“ am Inhalt und versucht zu ermitteln, zu welchem Dateiformat die Daten gehören.
3. Anschließend vergleicht der Browser das Ergebnis mit den Angaben im Content Type Header (falls vorhanden). Stimmt das Analyseergebnis nicht überein, verwendet der Browser den selbst ermittelten MIME-Typen.
Das Problem: Die Methode öffnet eine Sicherheitsschwachstelle. Wird der Sniffing-Algorithmus des Browsers getäuscht, führt der Browser schädliche Dateien aus. Ein Hacker kann dann zum Beispiel mit Cross Site Scripting weitere Malware einschleusen oder auf Datenjagd gehen.
Hacker attackieren per Content Sniffing
Das Risiko besteht für alle Websites, die Besuchern das Hochladen von Dateien erlauben. Bei einem Angriff per Content Type Sniffing bringt der Hacker den Browser dazu, eine Datei eines anderen Dateityps auszuführen.
Beispiel: Sie erlauben anderen Nutzern auf Ihrer Website das Teilen von Bildern. Ein Hacker lädt jetzt ein speziell angepasstes Bild hoch, das JavaScript enthält. Der Browser liest den Code beim Sniffing und führt den JavaScript-Code unter Umständen aus.
MIME Sniffing mit X-Content-Type-Options verbieten
Verbieten Sie dem Browser das Erraten der Response-Typen. In den HTTP-Header gehört:
X-Content-Type-Options: nosniff
Der Header deaktiviert das MIME Sniffing im Internet Explorer und in Chrome.
Um den Typ der Antworten zu ermitteln, verlässt sich der Browser jetzt auf den Content Type Header. Setzen Sie in den Header der Antworten den richtigen MIME-Typen.
X-Content-Type-Options zu WordPress hinzufügen
In WordPress fügen Sie die Codezeile per .htaccess-Datei hinzu.
Für Apache-Server gilt:
<IfModule mod_headers.c>
Header set X-Content-Type-Options nosniff
</IfModule>
Für NGINX-Server gilt: add_header X-Content-Type-Options "nosniff" always;
Alternativ können Sie ein Plugin wie HTTP-Headers installieren und die Sicherheitseinstellung zusammen mit anderen über das Backend einrichten.
XSS-Angriffe per MIME Sniffing verhindern
MIME Sniffing ermöglicht außerdem XSS-Angriffe (Cross Site Scripting). Zum Schutz ist für das Hosten und Bereitstellen der Nutzerdaten (Bilder, Videos etc.) eine separate Subdomain empfehlenswert. Auf diese Weise können keine hochgeladenen Inhalte mit der Hauptdomain der Website interagieren.
Zusammenfassung
Content Type Sniffing ist eigentlich eine nützliche Funktion der Webbrowser, die damit den Dateityp von Dateien schnell ermitteln. Es stellt jedoch auch ein Sicherheitsrisiko dar. Cyberkriminelle können das Verhalten missbrauchen, unentdeckt Dateien einschleusen und diese ausführen lassen. Implementieren Sie die Codezeile für den HTTP-Header zum Schutz Ihrer Websites.