Introducerade en ny teknik för dolda system- och webbläsaridentifiering

En grupp forskare från det tekniska universitetet i Graz (Österrike), tidigare kända för att utveckla attackmetoder MDS, NetSpectre и Kasthammare, avtäckt Information om en ny kanalanalysteknik från tredje part som låter dig bestämma den exakta versionen av webbläsaren, operativsystemet som används, CPU-arkitekturen och användningen av tillägg för att bekämpa dold identifiering.

För att fastställa dessa parametrar räcker det att köra JavaScript-kod som utarbetats av forskare i webbläsaren. I praktiken kan metoden användas inte bara som en extra källa för indirekt identifiering av användaren, utan också för att bestämma parametrarna för systemmiljön för riktad användning av exploateringar, med hänsyn till OS, arkitektur och webbläsare. Metoden är också effektiv när man använder webbläsare som implementerar dolda identifieringsblockeringsmekanismer, såsom Tor Browser. Källkodsprototyp med metodimplementering publicerad under MIT-licensen.

Bestämningen görs på basis av identifiering av egenskapstillståndsmönster i JavaScript som är karakteristiska för olika webbläsare och egenskaperna för exekveringstiden för operationer, beroende på egenskaperna hos JIT, CPU och minnesallokeringsmekanismer. Att definiera egenskaper görs genom att generera en lista över alla objekt som är tillgängliga från JavaScript. Som det visade sig, korrelerar antalet objekt direkt med webbläsarmotorn och dess version.

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

Till exempel, för Firefox anger dokumentationen stöd för 2247 egenskaper, medan det faktiska antalet definierade egenskaper, inklusive odokumenterade, är 15709 (i Tor Browser - 15639), för Chrome deklareras 2698 egenskaper, men i verkligheten erbjuds 13570 (i Chrome för Android - 13119) . Antalet och värdena på egenskaper varierar från webbläsarversion till webbläsarversion och mellan olika operativsystem.

Värdena och närvaron av vissa egenskaper kan användas för att bestämma typen av OS. Till exempel, i Kubuntu är egenskapen window.innerWidth inställd på 1000, och i Windows 10 är den inställd på 1001. Egenskapen window.navigator.activeVRDisplays är tillgänglig på Windows, men den är inte tillgänglig på Linux. För Android tillhandahålls många specifika samtal, men inte window.SharedWorker. För att identifiera operativsystemet föreslås också analys av WebGL-parametrar, vars tillstånd beror på drivrutinerna. Genom att anropa WEBGL_debug_renderer_infoextension kan du dessutom få information om OpenGL-renderingsmotorn, som är olika för varje operativsystem.

För att bestämma CPU:n används en bedömning av skillnader i exekveringstiden för olika typiska kodblock, vars bearbetning beror på instruktionsuppsättningens arkitektur, med hänsyn tagen till JIT-beteende (det bestäms hur många CPU-register som kommer att användas och i vilka fall JIT kommer att generera effektiv kod med optimeringar och användning av utökade instruktioner, och när inte ). För att bestämma typen av minnesallokeringssystem och operativsystem mäts även skillnaden i minnesallokeringstid för olika strukturer, vilket kan användas för att bedöma storleken på minnesblock.

Parametrarna som bestäms under skriptkörning jämförs med referensvärden som är typiska för tidigare testade miljöer. Under testet gjorde den utvecklade tekniken det möjligt att exakt identifiera 40 olika testmiljöer, identifiera versionerna av webbläsare som används, CPU-tillverkaren, operativsystemet som används och det faktum att det kördes på riktig hårdvara eller i en virtuell maskin.

Separat noteras att det är möjligt att definiera webbläsartillägg och till och med individuella tilläggsinställningar, inklusive tillägg utformade för att blockera dolda identifieringsmetoder eller aktivitet i privat surfläge. I samband med den föreslagna metoden blir sådana tillägg ytterligare en källa till data för identifiering. Tillägg bestäms genom att bedöma snedvridningarna av parametrarna i den ursprungliga miljön som införts av tilläggen.

Andra identifieringsmetoder inkluderar att ta hänsyn till sådana indirekta uppgifter som skärmupplösning, lista över MIME-typer som stöds, specifika parametrar i rubriker (HTTP / 2 и HTTPS), analys av installerade plugins och typsnitt, tillgänglighet för vissa webb-API:er, specifika för grafikkort särdrag rendering med WebGL och Målarduk, manipulation med CSS, analys av funktioner i att arbeta med mus и tangentbord.

Källa: opennet.ru

Lägg en kommentar