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

obscura/research/uncontrollable/proxy-detection

8 min di lettura

Categoria: Tra Livelli / Meta-Rilevamento


1. Descrizione

L'atto di proteggersi crea pattern rilevabili. Gli strumenti privacy sono paradossali: più aggressivamente modificano i segnali, più creano nuovi segnali che identificano "utente di strumento privacy". Questo documento analizza come i servizi di fingerprinting rilevano proxy simili a Obscura attraverso incoerenze e anomalie.


2. Vettori di Rilevamento

2.1 Incoerenza del Profilo tra Livelli

Il rilevamento più potente: confrontare i segnali tra livelli.

Livello A Livello B Coerenza Attesa Segnale di Incoerenza
User-Agent OS Fingerprint TLS (JA3) Win11 → JA3 Windows UA Chrome su Win11 + JA3 Linux
User-Agent OS Stack TCP/IP Win11 → TTL=128 UA Win11 + TTL=64 (Linux)
User-Agent browser HTTP/2 SETTINGS Chrome → SETTINGS di Chrome UA Chrome + SETTINGS di Go
Sec-CH-UA-Platform navigator.platform "Windows" → "Win32" "Windows" + "Linux x86_64"
Accept-Language navigator.language Corrispondenza Mismatch (es. header "en-US" + navigator dice "es-ES")
Fuso orario Geolocalizzazione IP Corrispondenza Fuso USA + IP Europa
Risoluzione schermo Classe dispositivo Risoluzione laptop + OS desktop Risoluzione mobile + OS desktop

Entropia: Molto Alta: può rilevare definitivamente i proxy

2.2 Rilevamento Proxy TLS

Tecnica Rilevamento Affidabilità
JA3 vs atteso Stack TLS proxy != stack TLS browser Molto Alta
Ispezione certificato CA auto-firmato, emittente insolito Alta
Comportamento OCSP Richieste OCSP mancanti o insolite Media
Ordine estensioni TLS Ordine estensioni non da browser Media
Ordine protocolli ALPN Preferenze ALPN insolite Media

2.3 Rilevamento Override JavaScript

// Rileva se le proprietà di navigator sono state sovrascritte
const uaDescriptor = Object.getOwnPropertyDescriptor(
  Object.getPrototypeOf(navigator),
  'userAgent'
)
if (uaDescriptor && uaDescriptor.get !== originalGetter) {
  // Override rilevato!
}

// Alternativa: confronta fonti di segnale multiple
// navigator.userAgent vs navigator.userAgentData
// Se discordano, uno è stato sovrascritto

Tecniche aggiuntive:

Tecnica Come Funziona
Object.getOwnPropertyDescriptor Rileva override di Object.defineProperty
Cross-validazione Verifica lo stesso valore da più API
toString() delle funzioni Le funzioni sovrascritte non hanno corpo [native code]
Operatore in Verifica se la proprietà esiste sulla catena del prototipo
hasOwnProperty Rileva proprietà aggiunte
Iframe con about:sandbox Contesto pulito senza override

2.4 Rilevamento Blocco Funzionalità

Funzionalità Bloccata Metodo di Rilevamento Rischio Falso Positivo
WebGL getContext('webgl') restituisce null Alcuni utenti disabilitano WebGL
WebGPU navigator.gpu è undefined Molti browser non lo supportano
AudioContext Il costruttore lancia eccezione Alcuni utenti disabilitano audio
Canvas getContext('2d') restituisce null Estremamente raro in utenti reali
WebRTC RTCPeerConnection è undefined Alcuni utenti lo disabilitano
Battery API getBattery() non esiste Solo Firefox ce l'ha
Client Hints userAgentData undefined Solo Chrome ce l'ha

Analisi pattern: Un utente che blocca WebGL + AudioContext + WebRTC + Canvas è quasi certamente usando uno strumento privacy.

2.5 Anomalie Comportamentali

Anomalia Cosa Suggerisce
Nessun movimento mouse al caricamento pagina Accesso automatizzato/bot
Tutte le funzionalità bloccate Strumento privacy
Timestamp perfettamente coerenti Traffico sintetico
Sessioni senza mai scrollare Bot o accesso automatizzato
Interazioni troppo veloci Compilazione automatica moduli
Nessuno scroll su pagine lunghe Automazione

2.6 Rilevamento Basato su IP

Tecnica Cosa Rileva
IP in intervalli noti proxy/VPN Uso proxy/VPN
IP in elenco nodi uscita Tor Uso Tor
IP in intervalli datacenter Hosting container/VPS
Tipo ASN (hosting vs residenziale) Connessione commerciale vs domestica
DNS inverso (hostname contiene "hosting") Proxy ospitato
Database reputazione IP Proxy/VPN noti

2.7 Rilevamento Basato su DNS

Tecnica Cosa Rileva
IP resolver DNS Cloudflare 1.1.1.1 = utente esperto di tecnologia
DNS over HTTPS Comportamento DNS insolito
Sottorete client EDNS0 Perde posizione di rete approssimativa
Temporizzazione query DNS Pattern automatico vs umano

3. Rilevamento Statistico

Gli attaccanti sofisticati usano l'apprendimento automatico per rilevare anomalie:

# Modello ML concettuale per rilevamento
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)
# Addestrato su dataset etichettato di utenti reali vs utenti di strumenti privacy
prediction = model.predict(features)
# Probabilità che questo traffico sia dietro uno strumento privacy

Il modello ML può rilevare correlazioni sottili che gli umani non vedrebbero: es. "gli utenti che bloccano WebGL e usano DNS Cloudflare e hanno header coerenti sono al 94% probabilmente utenti di uno strumento privacy."


4. Punti di Forza dell'Attaccante

Forza Spiegazione
Asimmetrico Il proxy modifica N segnali; l'attaccante trova 1 incoerenza
Statistico Il ML trova pattern in grandi dataset
Auto-rinforzante Più adozione di strumenti privacy = migliori dati di addestramento
In evoluzione Nuove tecniche di rilevamento sviluppate continuamente
Basato su profili Firme note per strumenti comuni (mitmproxy, Burp, ecc.)

5. Debolezze dell'Attaccante

Debolezza Spiegazione Sfruttabile?
Falsi positivi Alcuni utenti reali corrispondono a profili proxy Gli attaccanti devono accettare qualche errore
Il rilevamento è probabilistico Non deterministico: i punteggi di confidenza variano
Gli utenti di strumenti privacy non sono unici Milioni di utenti Tor/VPN condividono caratteristiche
Gatto e topo Override migliori possono bypassare il rilevamento
Vincoli legali/commerciali Alcuni fingerprinters evitano di bloccare utenti privacy Parziale

6. Mitigazioni per Obscura

6.1 Cosa Può Fare Obscura

Mitigazione Efficacia Implementazione
Validazione rigorosa coerenza profilo Molto Alta Strumenti di validazione cross-layer
Aggiornamenti automatici profilo Alta Pipeline CI/CD per aggiornamenti fingerprint
Perdere strategicamente alcuni segnali reali Media Rendere il profilo meno "perfetto"
Usare certificati CA reali Media Integrazione Let's Encrypt / ACME
Normalizzare temporizzazione (non eliminare) Media Aggiungere variazione di temporizzazione realistica
Non bloccare: falsificare invece Alta Più difficile da rilevare del blocco
Ruotare attraverso profili multipli Media Cambio profilo basato su sessione
Instradare upstream attraverso Tor/VPN Alta Normalizza segnali IP + rete

6.2 Cosa Non Può Fare Obscura

Non Può Perché
Cambiare il browser sottostante Le funzionalità reali del browser rimangono rilevabili
Prevenire tutta la correlazione incrociata Esistono troppe combinazioni di segnali
Eliminare la geolocalizzazione IP Il container deve avere un IP
Correspondere a tutti i pattern comportamentali degli utenti reali Alcuni comportamenti non possono essere simulati

6.3 Approccio Raccomandato

1. Validazione coerenza profilo            (massimo ROI: previene la maggior parte del rilevamento)
2. Certificati CA reali                     (evita rilevamento CA auto-firmato)
3. Aggiornamenti automatici fingerprint     (stare al passo con i cambiamenti del browser)
4. Perdita strategica di segnali            (rendere il profilo più naturale)
5. Accetta: un certo rilevamento è inevitabile (documenta il rischio residuo)

7. La Meta-Conclusione

La verità scomoda: un sistema anti-fingerprinting perfetto basato su proxy è impossibile perché l'esistenza del proxy è di per sé un segnale. Ogni modifica del protocollo, ogni script iniettato, ogni API bloccata crea un pattern rilevabile.

Questo non significa che Obscura sia inutile. Significa:

  1. Obscura protegge dal fingerprinting opportunistico: la stragrande maggioranza degli script di tracciamento
  2. Obscura non protegge dal fingerprinting determinato: servizi sofisticati con rilevamento ML
  3. Obscura + Tor Browser fornisce difesa in profondità: uno per la navigazione casuale, l'altro per sessioni sensibili

L'obiettivo non è l'invisibilità. È aumentare il costo dell'identificazione al punto in cui la maggior parte dei tracker si arrende.


8. Riferimenti di Ricerca

  • 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.