Tutorial: Test auf unsichere Datenübertragung – Klartextübermittlung sensibler Daten
Dieses Tutorial führt dich durch den Prozess, wie man eine Website auf die unsichere Übertragung sensibler Daten (Klartextübertragung) prüft. Dies ist ein kritischer Aspekt der Web-Sicherheit, da Angreifer unverschlüsselte Daten in öffentlichen oder kompromittierten Netzwerken problemlos mitlesen können.
In der modernen Web-Entwicklung ist die Verschlüsselung via TLS (HTTPS) Standard. Dennoch finden sich immer wieder Fehlkonfigurationen oder veraltete Bereiche, in denen Passwörter, Kreditkartendaten oder persönliche Informationen unverschlüsselt übertragen werden.
1. Einleitung: Was ist das Problem?
Wenn eine Website das HTTP-Protokoll anstelle von HTTPS verwendet oder sensible Daten über eine unverschlüsselte Verbindung sendet, können diese mittels Sniffing (z. B. in einem öffentlichen WLAN) abgefangen werden. Man spricht hier von "Clear Text Transmission of Sensitive Data".
2. Benötigte Werkzeuge
Um diesen Test durchzuführen, benötigst du:
- Webbrowser: Chrome oder Firefox (mit Entwicklertools).
- Interception Proxy: Burp Suite (Community Edition reicht aus) oder OWASP ZAP.
- Netzwerk-Sniffer (optional): Wireshark.
3. Schritt-für-Schritt Testmethodik
Schritt A: Passive Analyse (Browser-Check)
Bevor du komplexe Tools einsetzt, beginne mit einer einfachen Überprüfung:
- URL prüfen: Steht in der Adresszeile
http://statthttps://? - Sicherheitswarnungen: Zeigt der Browser ein offenes Schloss oder den Hinweis „Nicht sicher“ an, wenn du ein Formular ausfüllst?
- HSTS-Check: Prüfe in den Entwicklertools (F12 -> Network), ob der Header
Strict-Transport-Securityvorhanden ist. Dieser zwingt den Browser zur Nutzung von HTTPS.
Schritt B: Aktive Analyse mit einem Proxy (Burp Suite)
Dies ist die effektivste Methode, um zu sehen, was "unter der Haube" passiert.
- Proxy einrichten: Konfiguriere deinen Browser so, dass der Datenverkehr über Burp Suite läuft.
- Sensible Aktion ausführen: Navigiere zur Login-Seite oder zum Registrierungsformular der Test-Website.
- Daten absenden: Gib Testdaten ein (z. B. Benutzername:
admin, Passwort:Passwort123) und klicke auf Absenden. - Request abfangen (Intercept):
- Schaue dir in Burp Suite den Reiter HTTP history an.
- Suche nach dem
POST-Request, der deine Daten gesendet hat.
- Analyse des Requests:
- Prüfe das Protokoll: Steht dort im Request-Header
HTTP/1.1ohne TLS-Verschlüsselung? - Prüfe den Body: Sind Benutzername und Passwort im Klartext lesbar (z.B.
user=admin&pw=Passwort123)?
- Prüfe das Protokoll: Steht dort im Request-Header
Schritt C: Prüfung auf "Mixed Content"
Manchmal ist die Hauptseite verschlüsselt (HTTPS), aber einzelne Ressourcen oder Formularziele nutzen noch HTTP.
- Öffne die Entwicklertools (F12) -> Konsole (Console).
- Suche nach Warnungen wie: "Mixed Content: The page at ... was loaded over HTTPS, but requested an insecure resource ...".
- Prüfe im Quellcode das Attribut
actionvon Formularen:<form action="http://unsicher.de/login">. Wenn das Ziel HTTP ist, werden die Daten trotz HTTPS-Ursprungsseite unverschlüsselt gesendet.
4. Was genau sind "sensible Daten"?
Achte bei deinen Tests besonders auf:
- Anmeldedaten (Benutzername & Passwort).
- Session-IDs (Cookies ohne
Secure-Flag). - Persönliche Daten (PII): Adressen, Geburtsdaten, Sozialversicherungsnummern.
- Zahlungsinformationen.
5. Bewertung der Ergebnisse
- Kritisch: Passwörter oder Kreditkartendaten werden über reines HTTP übertragen.
- Hoch: Die Seite nutzt zwar HTTPS, aber das
Secure-Flag bei Session-Cookies fehlt (Gefahr von Session Hijacking). - Mittel: Die Seite ist über HTTP erreichbar und leitet nicht automatisch auf HTTPS weiter.
6. Maßnahmen zur Behebung (Remediation)
Wenn du Schwachstellen gefunden hast, sollten folgende Maßnahmen implementiert werden:
- TLS-Verschlüsselung erzwingen: Installiere ein gültiges SSL/TLS-Zertifikat und leite den gesamten HTTP-Verkehr auf HTTPS (Port 443) um.
- HSTS aktivieren: Implementiere den
Strict-Transport-SecurityHeader, um Downgrade-Attacken zu verhindern. - Secure-Flag für Cookies: Setze bei allen sensiblen Cookies das
Secure-Attribut. Dadurch werden sie nur über verschlüsselte Verbindungen gesendet.- Beispiel:
Set-Cookie: SID=31d4d; Secure; HttpOnly
- Beispiel:
- Referrer-Policy: Nutze die Referrer-Policy, um zu verhindern, dass sensible Daten in der URL (z.B. Session-Tokens) an Drittseiten übertragen werden.
Fazit
Der Test auf Klartextübertragung ist die Basis jeder Web-Sicherheitsprüfung. Auch wenn HTTPS heute weit verbreitet ist, führen Fehlkonfigurationen oft dazu, dass Daten doch ungeschützt abfließen. Ein strukturierter Test mit Proxy-Tools schafft hier Klarheit.