Introduserte en ny teknikk for skjult system- og nettleseridentifikasjon

En gruppe forskere fra det tekniske universitetet i Graz (Østerrike), tidligere kjent for å utvikle angrepsmetoder MDS, NetSpectre и Kastehammer, avdekket Informasjon om en ny tredjeparts kanalanalyseteknikk som lar deg bestemme den nøyaktige versjonen av nettleseren, operativsystemet som brukes, CPU-arkitekturen og bruken av tilleggsprogrammer for å bekjempe skjult identifikasjon.

For å bestemme disse parameterne er det nok å kjøre JavaScript-kode utarbeidet av forskere i nettleseren. I praksis kan metoden brukes ikke bare som en ekstra kilde for indirekte identifikasjon av brukeren, men også for å bestemme parametrene til systemmiljøet for målrettet bruk av utnyttelser, under hensyntagen til OS, arkitektur og nettleser. Metoden er også effektiv når du bruker nettlesere som implementerer skjulte identifikasjonsblokkeringsmekanismer, for eksempel Tor Browser. Kildekodeprototype med metodeimplementering publisert under MIT-lisensen.

Bestemmelsen gjøres på grunnlag av å identifisere egenskapstilstandsmønstrene i JavaScript som er karakteristiske for forskjellige nettlesere og egenskapene til utførelsestiden for operasjoner, avhengig av egenskapene til JIT-, CPU- og minneallokeringsmekanismene. Definere egenskaper gjøres ved å generere en liste over alle objekter som er tilgjengelige fra JavaScript. Som det viste seg, korrelerer antallet objekter direkte med nettlesermotoren og dens versjon.

funksjon getProperties(o) {
var resultat = [];
while (o !== null) {
resultat = result.concat(Reflect.ownKeys(o));
o = Objekt.getPrototypeOf(o);
}
returnere resultat;
}

For Firefox oppgir dokumentasjonen for eksempel støtte for 2247 egenskaper, mens det faktiske antallet definerte egenskaper, inkludert udokumenterte, er 15709 (i Tor Browser - 15639), for Chrome er 2698 egenskaper erklært, men i virkeligheten tilbys 13570 (i Chrome for Android - 13119) . Antallet og verdiene av egenskaper varierer fra nettleserversjon til nettleserversjon og på tvers av forskjellige operativsystemer.

Verdiene og tilstedeværelsen av visse egenskaper kan brukes til å bestemme typen OS. For eksempel, i Kubuntu er egenskapen window.innerWidth satt til 1000, og i Windows 10 er den satt til 1001. Egenskapen window.navigator.activeVRDisplays er tilgjengelig på Windows, men den er ikke tilgjengelig på Linux. For Android tilbys mange spesifikke samtaler, men ikke window.SharedWorker. For å identifisere operativsystemet foreslås det også å bruke analyse av WebGL-parametere, hvis tilstand avhenger av driverne. I tillegg lar det å kalle WEBGL_debug_renderer_infoextension deg få informasjon om OpenGL-gjengivelsesmotoren, som er forskjellig for hvert operativsystem.

For å bestemme CPU, brukes en vurdering av forskjeller i utførelsestiden til forskjellige typiske kodeblokker, hvis behandling avhenger av arkitekturen til instruksjonssettet, tatt i betraktning JIT-atferd (det bestemmes hvor mange CPU-registre som skal brukes og i hvilke tilfeller vil JIT generere effektiv kode med optimaliseringer og bruk av utvidede instruksjoner, og når ikke ). For å bestemme typen minneallokeringssystem og operativsystem, måles også forskjellen i minneallokeringstid for ulike strukturer, som kan brukes til å bedømme størrelsen på minneblokker.

Parametrene som bestemmes under kjøring av skript, sammenlignes med referanseverdier som er typiske for tidligere testede miljøer. Under testen gjorde den utviklede teknikken det mulig å nøyaktig identifisere 40 forskjellige testmiljøer, identifisere versjonene av nettlesere som ble brukt, CPU-produsenten, operativsystemet som ble brukt, og det faktum at det kjørte på ekte maskinvare eller i en virtuell maskin.

Separat bemerkes det at det er mulig å definere nettlesertillegg og til og med individuelle tilleggsinnstillinger, inkludert tillegg designet for å blokkere skjulte identifikasjonsmetoder eller aktivitet i privat surfemodus. I sammenheng med den foreslåtte metoden blir slike tillegg en annen kilde til data for identifikasjon. Tillegg bestemmes ved å vurdere forvrengningene av parametrene til det opprinnelige miljøet introdusert av tilleggene.

Andre identifiseringsmetoder inkluderer å ta hensyn til slike indirekte data som skjermoppløsning, liste over støttede MIME-typer, spesifikke parametere i overskrifter (HTTP / 2 и HTTPS), analyse av installert plugins og fonter, tilgjengelighet av visse web-API-er, spesifikke for skjermkort Spesifikasjoner gjengivelse ved hjelp av WebGL og Lerret, manipulasjon med CSS, analyse av funksjoner ved å jobbe med mus и et tastatur.

Kilde: opennet.ru

Legg til en kommentar