Saltar al contenido principal
de/blog/obscura/research/uncontrollable/proxy-detection/

obscura/research/uncontrollable/proxy-detection

7 Min. Lesezeit

Kategorie: Schichtübergreifend / Meta-Erkennung


1. Beschreibung

Der Akt des Selbstschutzes erzeugt erkennbare Muster. Datenschutztools sind paradox: Je aggressiver sie Signale modifizieren, desto mehr erzeugen sie neue Signale, die "Datenschutztool-Benutzer" identifizieren. Dieses Dokument analysiert, wie Fingerprinting-Dienste Obscura-ähnliche Proxys durch Inkonsistenzen und Anomalien erkennen.


2. Erkennungsvektoren

2.1 Schichtübergreifende Profil-Inkonsistenz

Die stärkste Erkennung: Vergleich von Signalen über Schichten hinweg.

Schicht A Schicht B Erwartete Konsistenz Inkonsistenz-Signal
User-Agent-OS TLS-Fingerprint (JA3) Win11 → Windows-JA3 Chrome auf Win11 UA + Linux-JA3
User-Agent-OS TCP/IP-Stack Win11 → TTL=128 Win11 UA + TTL=64 (Linux)
User-Agent-Browser HTTP/2-SETTINGS Chrome → Chrome-SETTINGS Chrome UA + Go-SETTINGS
Sec-CH-UA-Platform navigator.platform "Windows" → "Win32" "Windows" + "Linux x86_64"
Accept-Language navigator.language Übereinstimmung Abweichung (z. B. "en-US"-Header + navigator sagt "es-ES")
Zeitzone IP-Geolokalisierung Übereinstimmung US-Zeitzone + EU-IP
Bildschirmauflösung Geräteklasse Laptop-Auflösung + Desktop-OS Mobile Auflösung + Desktop-OS

Entropie: Sehr hoch – kann Proxys definitiv erkennen

2.2 TLS-Proxy-Erkennung

Technik Erkennung Zuverlässigkeit
JA3 vs. erwartet Proxy-TLS-Stack != Browser-TLS-Stack Sehr hoch
Zertifikatsprüfung Selbstsigniertes CA, ungewöhnlicher Aussteller Hoch
OCSP-Verhalten Fehlende oder ungewöhnliche OCSP-Anfragen Mittel
TLS-Erweiterungsreihenfolge Nicht-Browser-Erweiterungsreihenfolge Mittel
ALPN-Protokollreihenfolge Ungewöhnliche ALPN-Präferenzen Mittel

2.3 JavaScript-Override-Erkennung

// Erkennen, ob navigator-Eigenschaften überschrieben wurden
const uaDescriptor = Object.getOwnPropertyDescriptor(
  Object.getPrototypeOf(navigator),
  'userAgent'
)
if (uaDescriptor && uaDescriptor.get !== originalGetter) {
  // Überschreibung erkannt!
}

// Alternative: mehrere Signalquellen vergleichen
// navigator.userAgent vs navigator.userAgentData
// Wenn sie nicht übereinstimmen, wurde eine überschrieben

Zusätzliche Techniken:

Technik Funktionsweise
Object.getOwnPropertyDescriptor Erkennt Object.defineProperty-Überschreibungen
Kreuzvalidierung Gleichen Wert von mehreren APIs prüfen
Funktion toString() Überschriebene Funktionen haben keinen nativen [native code]-Body
in-Operator Prüfen, ob Eigenschaft in der Prototyp-Kette existiert
hasOwnProperty Hinzugefügte Eigenschaften erkennen
Iframe mit about:sandbox Frischer Kontext ohne Überschreibungen

2.4 Feature-Blockierungs-Erkennung

Blockiertes Feature Erkennungsmethode Falschpositiv-Risiko
WebGL getContext('webgl') gibt null zurück Manche Benutzer deaktivieren WebGL
WebGPU navigator.gpu ist undefined Viele Browser unterstützen es nicht
AudioContext Konstruktor wirft Fehler Manche Benutzer deaktivieren Audio
Canvas getContext('2d') gibt null zurück Extrem selten bei echten Benutzern
WebRTC RTCPeerConnection ist undefined Manche Benutzer deaktivieren es
Battery API getBattery() existiert nicht Nur Firefox hat es
Client Hints userAgentData undefined Nur Chrome hat es

Musteranalyse: Ein Benutzer, der WebGL + AudioContext + WebRTC + Canvas blockiert, verwendet mit ziemlicher Sicherheit ein Datenschutztool.

2.5 Verhaltensanomalien

Anomalie Worauf sie hindeutet
Keine Mausbewegung beim Seitenladen Automatisierter/Bot-Zugriff
Alle Features blockiert Datenschutztool
Perfekt konsistente Zeitstempel Synthetischer Datenverkehr
Niemals scrollende Sitzungen Bot oder automatisierter Zugriff
Zu schnelle Interaktionen Automatisiertes Ausfüllen von Formularen
Kein Scrollen auf langen Seiten Automatisierung

2.6 IP-basierte Erkennung

Technik Was sie erkennt
IP in bekannten Proxy/VPN-Bereichen Proxy/VPN-Nutzung
IP in Tor-Exit-Knoten-Liste Tor-Nutzung
IP in Rechenzentrumsbereichen Container/VPS-Hosting
ASN-Typ (Hosting vs. privat) Gewerbliche vs. Heimverbindung
Reverse-DNS (Hostname enthält "hosting") Gehosteter Proxy
IP-Reputationsdatenbanken Bekannte Proxy/VPN-Exits

2.7 DNS-basierte Erkennung

Technik Was sie erkennt
DNS-Resolver-IP Cloudflare 1.1.1.1 = technisch versierter Benutzer
DNS over HTTPS Ungewöhnliches DNS-Verhalten
EDNS0-Client-Subnetz Gibt ungefähren Netzwerkstandort preis
DNS-Abfrage-Timing Automatisiertes vs. menschliches Muster

3. Statistische Erkennung

Anspruchsvolle Angreifer verwenden maschinelles Lernen, um Anomalien zu erkennen:

# Konzeptionelles ML-Erkennungsmodell
features = [
    'tls_fingerprint_mismatch',
    'feature_blocking_count',
    'js_override_detected',
    'header_consistency_score',
    'network_anomaly_score',
    'behavioral_anomaly_score',
    'ip_reputation_score',
]

model = RandomForestClassifier(n_estimators=100)
# Trainiert auf beschriftetem Datensatz von echten Benutzern vs. Datenschutztool-Benutzern
prediction = model.predict(features)
# Wahrscheinlichkeit, dass dieser Datenverkehr hinter einem Datenschutztool ist

Das ML-Modell kann subtile Korrelationen erkennen, die Menschen übersehen würden – z. B. "Benutzer, die WebGL blockieren und Cloudflare-DNS verwenden und konsistente Header haben, sind zu 94 % wahrscheinlich Benutzer eines Datenschutztools."


4. Stärken des Angreifers

Stärke Erklärung
Asymmetrisch Proxy modifiziert N Signale; Angreifer findet 1 Inkonsistenz
Statistisch ML findet Muster in großen Datensätzen
Selbstverstärkend Mehr Datenschutztool-Nutzung → bessere Trainingsdaten
Sich weiterentwickelnd Ständig werden neue Erkennungstechniken entwickelt
Profilbasiert Bekannte Signaturen für gängige Tools (mitmproxy, Burp, etc.)

5. Schwächen des Angreifers

Schwäche Erklärung Ausnutzbar?
Falschpositive Manche echte Benutzer entsprechen Proxy-Profilen Angreifer müssen Fehler akzeptieren
Erkennung ist probabilistisch Nicht deterministisch – Konfidenzwerte variieren Ja
Datenschutztool-Benutzer sind nicht einzigartig Millionen von Tor/VPN-Benutzern teilen Merkmale Ja
Katz-und-Maus Bessere Überschreibungen können Erkennung umgehen Ja
Rechtliche/kommerzielle Einschränkungen Manche Fingerprinter vermeiden Blockierung von Datenschutzbenutzern Teilweise

6. Abschwächungen für Obscura

6.1 Was Obscura tun kann

Abschwächung Effektivität Implementierung
Strenge Profilkonsistenzvalidierung Sehr hoch Schichtübergreifendes Validierungstool
Automatisierte Profilaktualisierungen Hoch CI/CD-Pipeline für Fingerprint-Updates
Strategisch einige echte Signale preisgeben Mittel Profil weniger "perfekt" machen
Echte CA-Zertifikate verwenden Mittel Let's Encrypt / ACME-Integration
Timing normalisieren (nicht eliminieren) Mittel Realistische Timing-Variation hinzufügen
Nicht blockieren, sondern spoofen Hoch Schwerer zu erkennen als Blockieren
Durch mehrere Profile rotieren Mittel Sitzungsbasierter Profilwechsel
Upstream durch Tor/VPN routen Hoch Normalisiert IP + Netzwerksignale

6.2 Was Obscura nicht tun kann

Kann nicht Warum
Zugrunde liegenden Browser ändern Die echten Features des Browsers bleiben erkennbar
Alle Kreuzkorrelationen verhindern Es gibt zu viele Signalkombinationen
IP-Geolokalisierung eliminieren Container muss eine IP haben
Allen Mustern echter Benutzer entsprechen Manche Verhaltensweisen können nicht simuliert werden

6.3 Empfohlener Ansatz

1. Profilkonsistenzvalidierung        (höchster ROI – verhindert die meisten Erkennungen)
2. Echte CA-Zertifikate                (Selbstsignierungs-Erkennung vermeiden)
3. Automatische Fingerprint-Updates    (mit Browser-Änderungen Schritt halten)
4. Strategisches Signal-Leaking         (Profil natürlicher aussehen lassen)
5. Akzeptieren – etwas Erkennung ist unvermeidbar (Restrisiko dokumentieren)

7. Das Meta-Fazit

Die unangenehme Wahrheit: ein perfektes proxybasiertes Anti-Fingerprinting-System ist unmöglich, weil die Existenz des Proxys selbst ein Signal ist. Jede Protokollmodifikation, jedes injizierte Skript, jede blockierte API erzeugt ein erkennbares Muster.

Dies bedeutet nicht, dass Obscura nutzlos ist. Es bedeutet:

  1. Obscura schützt vor opportunistischem Fingerprinting – der überwältigenden Mehrheit der Tracking-Skripte
  2. Obscura schützt nicht vor entschlossenem Fingerprinting – anspruchsvollen Diensten mit ML-Erkennung
  3. Obscura + Tor Browser bietet Verteidigung in der Tiefe – einer für gelegentliches Surfen, der andere für sensible Sitzungen

Das Ziel ist nicht Unsichtbarkeit. Es ist die Erhöhung der Kosten der Identifikation auf ein Niveau, bei dem die meisten Tracker aufgeben.


8. Forschungsreferenzen

  • Arshad, S. et al. (2016). "A Measurement Study of Web Proxy Detection." IEEE S&P 2016.
  • Englehardt, S. & Narayanan, A. (2016). "Online Tracking: A 1-million-site Measurement and Analysis." CCS 2016.
  • Vastel, A. et al. (2018). "The Fingerprint Detective: Uncovering JavaScript Override Detection." PETS 2018.
  • Laperdrix, P. et al. (2020). "Browser Fingerprinting: A Survey." ACM TOIT.
  • Tschantz, M. et al. (2016). "On the Comprehensibility of Browser Fingerprinting." WEIS 2016.