È stata presentata una nuova tecnica di identificazione nascosta del sistema e del browser.

Un gruppo di ricercatori dell'Università Tecnica di Graz (Austria), precedentemente noto per lo sviluppo di metodi di attacco MDS, NetSpectre e Throwhammer, ha rivelato informazioni su una nuova tecnica di analisi tramite canali laterali, in grado di determinare la versione esatta del browser, il sistema operativo in uso, l'architettura della CPU e l'uso di estensioni per combattere l'identificazione furtiva.

Per determinare i parametri indicati è sufficiente eseguire nel browser un codice JavaScript preparato dai ricercatori. Nella 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'applicazione mirata di exploit, tenendo conto del sistema operativo, dell'architettura e del browser. Il metodo è efficace anche nell'utilizzo di browser che implementano meccanismi di blocco dell'identificazione furtiva, come Tor Browser. I codici sorgente del prototipo che implementa il metodo pubblicati sotto licenza MIT.

La definizione avviene sulla base dell'individuazione di modelli di stato delle proprietà specifici per diversi browser in JavaScript e delle caratteristiche temporali delle operazioni, a seconda delle peculiarità del funzionamento di JIT, CPU e meccanismi di allocazione della memoria. La definizione delle proprietà viene effettuata attraverso la generazione di un elenco di tutti gli oggetti accessibili da JavaScript. Si è scoperto che il numero di oggetti è direttamente correlato al motore del browser e alla sua versione.

function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}

Ad esempio, per Firefox la documentazione riporta il supporto per 2247 proprietà, mentre il numero reale delle proprietà definite, considerando quelle non documentate, è di 15709 (in Tor Browser — 15639); per Chrome sono dichiarate 2698 proprietà, ma ne vengono realmente offerte 13570 (in Chrome per Android — 13119). Il numero e i valori delle proprietà variano di versione in versione e in base ai diversi sistemi operativi.

I valori e la disponibilità di determinate proprietà possono essere utilizzati per identificare il tipo di sistema operativo. Ad esempio, in Kubuntu la proprietà window.innerWidth è impostata a 1000, mentre in Windows 10 è impostata a 1001. In Windows è disponibile la proprietà window.navigator.activeVRDisplays, mentre in Linux non lo è. Per Android sono disponibili molte chiamate specifiche, ma non esiste window.SharedWorker. Per identificare il sistema operativo si suggerisce anche 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, il quale varia secondo il sistema operativo.

Per la determinazione della CPU, si utilizza la valutazione delle differenze nei tempi di esecuzione di vari blocchi di codice standard, la cui lavorazione dipende dall'architettura del set di istruzioni, considerando il comportamento JIT (si determina quanti registri CPU verranno impiegati e in quali casi il JIT genererà codice efficiente con ottimizzazioni e coinvolgimento di istruzioni avanzate, e quando no). Per identificare il tipo di sistema di distribuzione della memoria e il sistema operativo, viene anche misurata la differenza nei tempi di allocazione della memoria per diverse strutture, da cui si può evincere la dimensione dei blocchi di memoria.

I parametri definiti durante l'esecuzione dello script vengono confrontati con valori di riferimento caratteristici di ambienti testati in precedenza. Durante il controllo, la tecnica sviluppata ha permesso di identificare esattamente 40 diversi ambienti di test, determinando le versioni dei browser utilizzati, il produttore della CPU, il sistema operativo in uso e il fatto che l'esecuzione avvenisse su hardware reale o su una macchina virtuale.

Si segnala la possibilità di rilevare le estensioni del browser e persino le impostazioni specifiche delle estensioni, comprese quelle progettate per bloccare metodi di identificazione nascosta o l'attività della modalità di navigazione privata. Nel contesto del metodo proposto, tali estensioni diventano un ulteriore fonte di dati per l'identificazione. Le estensioni vengono identificate attraverso la valutazione delle distorsioni dei parametri dell'ambiente originale apportate dalle estensioni.

Tra i metodi di identificazione, si possono menzionare anche dati indiretti come la risoluzione dello schermo, l'elenco dei tipi MIME supportati, parametri specifici negli header (HTTP/2 e HTTPS), l'analisi dei plugin e dei font, la disponibilità di determinate Web API, specifiche per le schede grafiche caratteristiche le rendering tramite WebGL e Canvas, manipolazioni con CSS, l'analisi delle peculiarità nell'interazione con il mouse e la tastiera.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster