Introdotta una nuova tecnica per l'identificazione del sistema nascosto e del browser

Un gruppo di ricercatori della Graz University of Technology (Austria), precedentemente noto per lo sviluppo di metodi di attacco MDS, NetSpectre и Lancia martello, scoperto informazioni su una nuova tecnica di analisi di terze parti che consente di determinare la versione esatta del browser, il sistema operativo utilizzato, l'architettura della CPU e l'uso di componenti aggiuntivi per combattere l'identificazione nascosta.

Per determinare questi parametri è sufficiente eseguire nel browser il codice JavaScript preparato dai ricercatori. In pratica, il metodo può essere utilizzato non solo come fonte aggiuntiva per l'identificazione indiretta dell'utente, ma anche per determinare i parametri dell'ambiente di sistema per l'uso mirato di exploit, tenendo conto del sistema operativo, dell'architettura e del browser. Il metodo è efficace anche quando si utilizzano browser con meccanismi nascosti di blocco dell'identificazione, come Tor Browser. Codice sorgente del prototipo con implementazione del metodo pubblicato con licenza MIT.

La determinazione viene effettuata sulla base dell'allocazione dei modelli di stato delle proprietà caratteristici dei diversi browser in JavaScript e delle caratteristiche del tempo di esecuzione delle operazioni, a seconda delle caratteristiche del JIT, della CPU e dei meccanismi di allocazione della memoria. La definizione delle proprietà viene eseguita generando un elenco di tutti gli oggetti disponibili da JavaScript. Come si è scoperto, il numero di oggetti è direttamente correlato al motore del browser e alla sua versione.

funzione getProperties(o) {
risultatovar = [];
while (o !== nullo) {
risultato = risultato.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
restituire il risultato;
}

Ad esempio, per Firefox, il supporto per le proprietà 2247 è dichiarato nella documentazione, mentre il numero effettivo di determinate proprietà, tenendo conto di quelle non documentate, è 15709 (in Tor Browser - 15639), per le proprietà Chrome 2698 sono dichiarate, ma 13570 sono effettivamente offerti (in Chrome per Android - 13119) . Il numero e i valori delle proprietà variano da versione a versione del browser e tra diversi sistemi operativi.

I valori e la presenza di determinate proprietà possono essere utilizzati per determinare il tipo di sistema operativo. Ad esempio, in Kubuntu, la proprietà window.innerWidth è impostata su 1000 e in Windows 10 è impostata su 1001. Su Windows, la proprietà window.navigator.activeVRDisplays è disponibile, ma su Linux non lo è. Molte chiamate specifiche sono fornite per Android, ma non c'è window.SharedWorker. Per identificare il sistema operativo, si propone inoltre di utilizzare l'analisi dei parametri WebGL, il cui stato dipende dai driver. Inoltre, la chiamata a WEBGL_debug_renderer_infoextension consente di ottenere informazioni sul motore di rendering OpenGL, che è diverso per ogni sistema operativo.

Per determinare la CPU, viene utilizzata una valutazione delle differenze nel tempo di esecuzione di vari blocchi di codice tipici, la cui elaborazione dipende dall'architettura del set di istruzioni, tenendo conto del comportamento del JIT (viene determinato quanti registri della CPU sarà coinvolto e in quali casi il JIT genererà codice efficiente con ottimizzazioni e coinvolgendo istruzioni estese, e quando no). Per determinare il tipo di sistema di allocazione della memoria e sistema operativo, viene misurata anche la differenza nel tempo di allocazione della memoria per varie strutture, che può essere utilizzata per giudicare la dimensione dei blocchi di memoria.

I parametri determinati durante l'esecuzione dello script vengono confrontati con i valori di riferimento tipici degli ambienti pre-testati. Durante il test, la tecnica sviluppata ha permesso di determinare con precisione 40 diversi ambienti di test, determinando le versioni dei browser utilizzati, il produttore della CPU, il sistema operativo utilizzato e se girava su hardware reale o su una macchina virtuale.

Separatamente, si segnala la possibilità di definire componenti aggiuntivi del browser e persino impostazioni di singoli componenti aggiuntivi, inclusi componenti aggiuntivi progettati per bloccare metodi di identificazione nascosti o attività di navigazione privata. Nel contesto del metodo proposto, tali aggiunte diventano un'altra fonte di dati per l'identificazione. Le aggiunte sono determinate attraverso una valutazione delle distorsioni dei parametri dell'ambiente originario introdotte dalle aggiunte.

Tra gli altri metodi di identificazione, è possibile notare la considerazione di tali dati indiretti come risoluzione dello schermo, elenco dei tipi MIME supportati, opzioni specifiche dell'intestazione (HTTP / 2 и HTTPS), analisi di stabilito plugin e font, disponibilità di determinate API Web specifiche per le schede video caratteristiche rendering con WebGL e Canvas, manipolazione con CSS, analisi delle caratteristiche di lavorare con topo и tastiera.

Fonte: opennet.ru

Aggiungi un commento