Saltar al contenido principal
de/blog/obscura/research/http-header-spoofing/

obscura/research/http-header-spoofing

2 Min. Lesezeit

Übersicht

HTTP-Header, die mit jeder Anfrage übertragen werden, verraten bedeutende Informationen über den Client. Dies sind die einfachsten Signale, die auf Proxy-Ebene gespooft werden können.

Für Fingerprinting verwendete Header

User-Agent

Bekanntestes Signal. Enthält OS, Browser, Version, Architektur.

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Client Hints (Sec-CH-UA)

Moderner Ersatz für die User-Agent-Granularität:

Header Beispiel
Sec-CH-UA "Google Chrome";v="120", "Chromium";v="120", "Not?A_Brand";v="99"
Sec-CH-UA-Platform "Windows"
Sec-CH-UA-Platform-Version "15.0.0"
Sec-CH-UA-Model "Pixel 7" (Mobil)
Sec-CH-UA-Mobile ?0
Sec-CH-UA-Arch "x86"
Sec-CH-UA-Bitness "64"
Sec-CH-UA-Full-Version-List "Google Chrome";v="120.0.6099.109"

Andere Header

Header Preisgegebene Info
Accept Browser-Funktionen
Accept-Language Benutzerspracheinstellungen
Accept-Encoding Komprimierungsunterstützung
DNT Do-Not-Track-Einstellung
Upgrade-Insecure-Requests Browser-Funktion
Referer Vorherige Seite (Verhalten)

Spoofing-Strategie auf Proxy-Ebene

Header können auf dem Proxy vollständig ersetzt werden, da sie in HTTP Klartext sind und in HTTPS MITM zugänglich:

proxy_set_header User-Agent "Mozilla/5.0 ..."
proxy_set_header Sec-CH-UA "..."
proxy_set_header Sec-CH-UA-Platform "Windows"
proxy_set_header Accept-Language "en-US,en;q=0.9"

Konsistenzanforderungen

Alle Header müssen konsistent mit dem gewählten Profil sein:

  • Wenn das Profil "Chrome 120 auf Windows 11" angibt, dann:
    • User-Agent muss Chrome 120 / Windows 11 widerspiegeln
    • Sec-CH-UA muss Chrome 120 / Chromium 120 auflisten
    • Sec-CH-UA-Platform muss "Windows" sein
    • Accept muss Chromes typischem Accept-Header entsprechen
    • TLS-Fingerprint (JA3) muss Chrome 120 auf Windows entsprechen

Inkonsistenz ist selbst ein Fingerprint (z. B. Chrome-User-Agent mit einem Firefox-TLS-Handshake).

Schlussfolgerungen

  • HTTP-Header-Spoofing ist die einfachste und zuverlässigste Abschwächung
  • Header sind auf Proxy-Ebene vollständig kontrollierbar
  • Kritische Anforderung: interne Konsistenz über alle Header hinweg
  • Das Profilsystem muss sicherstellen, dass alle Headerwerte einer echten Browser-/OS-Kombination entsprechen
  • Ohne dies bricht das gesamte System