Den nye metode til skjult identifikation af system og browser er blevet præsenteret

En gruppe forskere fra Graz Universitetet for Teknologi (Østrig), kendt for deres udvikling af angrebsmetoder MDS, NetSpectre og Throwhammer, afsløret om den nye teknik til analyse via sidekanaler, der muliggør at bestemme den præcise version af browseren, det anvendte operativsystem, CPU-arkitekturen og brugen af udvidelser til at bekæmpe skjult identifikation.

For at bestemme de angivne parametre er det nok at køre en forberedt JavaScript-kode i browseren. I praksis kan metoden anvendes ikke kun som en yderligere kilde til indirekte identifikation af brugeren, men også til at bestemme parametrene for systemmiljøet til målrettet anvendelse af exploits under hensyntagen til OS, arkitektur og browser. Metoden er effektiv også ved brug af browsere, der implementerer mekanismer til blokering af skjult identifikation, såsom Tor Browser. Kildekoden til prototypeimplementeringen af metoden er offentliggjort under MIT-licensen.

Bestemmelsen sker ved at udtrække karakteristiske nøglemønstre i JavaScript og egenskaberne for udførelsestid, som afhænger af egenskaberne ved JIT, CPU og hukommelsesallokeringsmekanismerne. Bestemmelse af egenskaber sker ved at generere en liste over alle objekter, der er tilgængelige fra JavaScript. Det viste sig, at antallet af objekter direkte korrelerer med browser-motoren og dens version.

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

For eksempel, i dokumentationen for Firefox er der angivet støtte til 2247 egenskaber, mens det reelle antal bestemte egenskaber, inklusive de ikke-dokumenterede, udgør 15709 (i Tor Browser — 15639), for Chrome er 2698 egenskaber angivet, men reelt tilbydes 13570 (i Chrome for Android — 13119). Antallet og værdierne af egenskaber ændrer sig fra version til version af browseren og ved anvendelse af forskellige operativsystemer.

Værdierne og tilgængeligheden af forskellige egenskaber kan bruges til at bestemme typen af operativsystem. For eksempel i Kubuntu sættes egenskaben window.innerWidth til 1000, mens den i Windows 10 sættes til 1001. I Windows er egenskaben window.navigator.activeVRDisplays tilgængelig, mens den ikke er i Linux. For Android er der mange specifikke kald, men der er ingen window.SharedWorker. For identifikation af operativsystemet anbefales det også at analysere WebGL-parametrene, hvis tilstand afhænger af driverne. Desuden gør kaldet WEBGL_debug_renderer_infoextension det muligt at få oplysninger om rendering motoren for OpenGL, som er forskellig for hvert operativsystem.

For at bestemme CPU'en anvendes en vurdering af forskellene i tidsforbruget til udførelse af forskellige typiske kodeskblokke, hvis behandling afhænger af arkitekturen af kommando-sættet, under hensyntagen til JIT-opførsel (det vurderes, hvor mange CPU-registre der vil blive brugt, og hvornår JIT vil generere effektiv kode med optimeringer og involvering af udvidede instruktioner, og hvornår det ikke gør). For at bestemme typen af hukommelsestildelingssystem og operativsystemet måles tidsforskellene i hukommelsestildeling for forskellige strukturer, som kan give indikationer om størrelsen af hukommelsesblokke.

Parametre, der er defineret under kørsel af scriptet, sammenlignes med referenceværdier, der er karakteristiske for forhåndstestede miljøer. Under kontrollen gjorde den udviklede teknik det muligt præcist at identificere 40 forskellige testmiljøer, bestemme versionerne af de anvendte browsere, CPU-producenten, det anvendte operativsystem og om den kørte på fysisk hardware eller i en virtuel maskine.

Det bemærkes også, at det er muligt at bestemme browserudvidelser og endda specifikke indstillinger for udvidelserne, inklusive udvidelser, der er beregnet til at blokere metoder til skjult identifikation eller aktivitet i privat browsing-tilstand. I lyset af den foreslåede metode bliver sådanne udvidelser en yderligere kilde til data til identifikation. Udvidelserne bestemmes ved at vurdere forvrængningerne af parametrene i det oprindelige miljø forårsaget af udvidelserne.

Blandt andre identifikationsmetoder kan indirekte data såsom skærmopløsning, listen over understøttede MIME-typer, specifikke parametre i headers (HTTP/2 og HTTPS), analysen af installerede plugins og skrifttyper, tilgængelighed af bestemte Web API'er, der er specifikke for grafikkort funktioner rendering med WebGL og Canvas, manipulationer med CSS, analyse af særlige forhold ved arbejde med musen og tastaturet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster