PowerScan
IT

Come funzionano i browser antidetect: la spiegazione tecnica completa

Browser antidetect · 11 min di lettura · di PowerOps

Foto: Unsplash

Superfici del fingerprint, generazione di identità coerenti, isolamento dello storage su disco, instradamento per profilo e i limiti onesti dell'intero approccio.

Un browser antidetect svolge quattro compiti. Conserva separatamente i dati di navigazione di ciascun profilo, controlla l'identità del dispositivo che ogni profilo dichiara, instrada il traffico di ogni profilo in modo indipendente e mantiene coerenti tutti e tre gli aspetti nel tempo. Questo articolo illustra come si svolge ciascun compito, a livello di meccanismo, e termina con ciò che l'approccio non può fare.

Le superfici del fingerprint

Si parte da ciò che una pagina può leggere, perché tutto il resto è una risposta a questo. Uno script su qualsiasi sito web può porre domande al browser, e le risposte descrivono la macchina. Le superfici si raggruppano in modo naturale.

SuperficieChe cosa legge una pagina
NavigatorNome e versione del browser, piattaforma, elenco delle lingue, numero di processori e memoria dichiarati, supporto al tocco
SchermoLarghezza, altezza, area di lavoro disponibile, profondità di colore, rapporto di pixel del dispositivo
CanvasI pixel esatti prodotti disegnando testo e forme fuori schermo, trasformati in un hash e quindi in un valore stabile
WebGLLe stringhe del produttore e del renderer grafico, più gli hash di scene renderizzate
AudioL'uscita di un oscillatore fatta passare nel grafo di elaborazione audio, che varia a seconda dello stack
FontQuali caratteri sono installati, dedotti da misurazioni del testo
Fuso orario e orologioIl fuso e lo scarto dichiarati, confrontati con il luogo da cui arriva il traffico
ReteL'indirizzo stesso, la vista di WebRTC sui candidati di connessione e la forma dell'handshake TLS

Nessuna riga, da sola, identifica una macchina. La combinazione sì, ed è anche il punto in cui le bugie vengono scoperte: valori che non potrebbero appartenere a una stessa macchina reale sono un segnale più forte di qualsiasi valore preso da solo.

La raccolta è economica e silenziosa. Ogni valore della tabella è disponibile a qualsiasi pagina tramite API documentate, senza alcuna richiesta di autorizzazione, e la maggior parte arriva nel primo secondo di una visita. Qualunque sia la tua posizione sulla pratica, è un dato di fatto stabile del web moderno ed è il punto di riferimento rispetto al quale è progettato un browser antidetect.

Come si genera un'identità coerente

L'approccio ingenuo è intercettare ogni domanda e rendere casuale la risposta. Fallisce per una ragione strutturale. Le risposte descrivono una sola macchina, quindi sono correlate, e risposte casuali e indipendenti rompono le correlazioni. Uno user agent Windows accanto a font presenti solo su macOS, una dimensione dello schermo che nessun portatile ha mai avuto, una stringa grafica che non è mai coesistita con la piattaforma dichiarata: ognuna è una contraddizione che un controllo può verificare a basso costo.

Per questo un browser antidetect efficace genera l'identità come insieme. Parte da una classe di macchina reale e comune e deriva ogni valore da quella scelta. La piattaforma decide l'elenco di font plausibile, le stringhe grafiche e il supporto al tocco. Lo schermo viene da dimensioni che quella classe di macchina ha davvero. La lingua e il fuso orario vengono dalla regione prevista per il profilo. I valori concordano tra loro perché sono stati scelti insieme, da un'unica descrizione di un'unica macchina.

La seconda proprietà conta altrettanto: l'insieme viene memorizzato. Viene scritto nel profilo al momento della sua creazione, e ogni sessione riporta gli stessi valori, perché un dispositivo che cambia da una visita all'altra descrive hardware che nessuno possiede. La stabilità è gran parte di ciò che significa plausibile.

Isolamento dello storage su disco

Il compito dello storage è il meno appariscente e il più assoluto. Ogni profilo possiede una cartella, e tutto ciò che un browser rende persistente vive al suo interno: il database dei cookie, Local Storage, IndexedDB, la cache HTTP, le registrazioni dei service worker, lo stato delle estensioni, la cronologia e le credenziali salvate. Due profili sono due cartelle disgiunte, e ogni browser in esecuzione punta alla propria.

La completa disgiunzione è la proprietà da verificare, perché un isolamento parziale fallisce in silenzio. I cookie sono facili da separare. La cache può identificare un browser che ritorna attraverso le risorse che ha conservato. I service worker possono contenere identificatori e continuare a girare tra una visita e l'altra. IndexedDB è dove le applicazioni moderne tengono i record di cui si fidano davvero. Un isolamento che copre gli storage più noti e ne condivide altri ha isolato soltanto la parte visibile del problema.

La persistenza è l'altra metà. Le sessioni accumulano valore: verifiche di sicurezza completate, storico di accessi consolidato, la forma di un visitatore che ritorna. Un profilo mantiene la propria cartella tra le sessioni, ed è ciò che rende possibile il lavoro sugli account. La scrittura alla chiusura è ciò che rende durevole la cartella, ed è per questo che terminare forzatamente il processo di un profilo a metà sessione può costare la sessione appena stabilita.

Instradamento di rete

Ogni profilo porta con sé la propria rotta, applicata all'avvio del suo browser, così il traffico esce dal proxy di quel profilo senza toccare le impostazioni di sistema né la rotta di alcun altro profilo.

La rotta è anche il componente che più vale la pena verificare in modo indipendente, perché viene acquistata da terzi. Testare un endpoint prima di assegnarlo e leggere l'indirizzo osservato anziché quello dichiarato intercetta un guasto quando è ancora un problema di configurazione invece che un problema di account.

Che cosa modifica il browser stesso

Ci sono due punti in cui uno strumento può modificare le risposte che una pagina riceve, e la differenza tra i due è il bivio più tecnico di questo argomento.

ApproccioCome funzionaIl punto debole
Iniezione di scriptUn'estensione o uno script iniettato sovrascrive le funzioni che una pagina chiama, così le letture del canvas e le interrogazioni di navigator restituiscono valori sostituitiLe sovrascritture sono a loro volta visibili. Le funzioni modificate possono essere riconosciute come tali, e qualsiasi superficie dimenticata dall'iniettore risponde ancora con il valore reale
Dentro il codice stesso del browserL'implementazione del browser risponde con i valori memorizzati del profilo, nei percorsi di codice in cui i valori reali vengono prodottiMolto più lavoro da costruire e mantenere, ed è per questo che distingue gli strumenti progettati allo scopo dalle estensioni

L'approccio a iniezione è da dove è partita questa categoria, e il suo limite è ben noto: una pagina può verificare se le funzioni native hanno ancora l'aspetto di funzioni native, e può raggiungere la stessa superficie attraverso un percorso che l'iniezione non copriva. I browser antidetect progettati allo scopo apportano quindi le modifiche all'interno del browser stesso, così l'identità memorizzata è ciò che l'implementazione riporta attraverso ogni percorso che la legge.

Che cosa fa davvero l'apertura di un profilo

  1. L'identità memorizzata viene caricata: un unico insieme coerente di valori del dispositivo, lo stesso insieme dell'ultima volta.
  2. Il browser si avvia sulla cartella del profilo, così ogni storage persistente è quello del profilo.
  3. La rotta viene applicata: il proxy, la risoluzione dei nomi attraverso di esso, WebRTC vincolato ad esso.
  4. La sessione è in esecuzione e accumula stato dentro la cartella.
  5. Alla chiusura lo stato viene scritto, così l'apertura successiva riprende lo stesso dispositivo, lo stesso storage e la stessa rotta.

Ogni parte di questo elenco è verificabile dall'esterno. Apri due volte una pagina di test del fingerprint e confronta i valori tra le aperture. Guarda la cartella del profilo sul disco. Leggi l'indirizzo osservato. Uno strumento di questa categoria dovrebbe invitare a questi controlli, perché il meccanismo è il prodotto.

I limiti onesti

L'approccio ha dei confini, e conoscerli fa parte dell'usarlo con competenza.

Leggi i limiti come una definizione e non come una delusione. Un browser antidetect è uno strumento di coerenza: storage separato, un'identità stabile e plausibile, una rotta corrispondente, tenuti insieme per profilo e ripetuti in modo identico a ogni apertura. Questo è l'intero meccanismo, e tutto il resto che si scrive sulla categoria ne è una variazione.

Tutti gli articoli · Avvia la scansione