Introducerede en ny teknik til skjult system- og browseridentifikation

En gruppe forskere fra det tekniske universitet i Graz (Østrig), tidligere kendt for at udvikle angrebsmetoder MDS, NetSpectre и Kastehammer, afdækket Oplysninger om en ny tredjeparts kanalanalyseteknik, der giver dig mulighed for at bestemme den nøjagtige version af browseren, det anvendte operativsystem, CPU-arkitekturen og brugen af ​​tilføjelser til at bekæmpe skjult identifikation.

For at bestemme disse parametre er det nok at køre JavaScript-kode udarbejdet af forskere i browseren. I praksis kan metoden bruges ikke kun som en ekstra kilde til indirekte identifikation af brugeren, men også til at bestemme parametrene for systemmiljøet til målrettet brug af udnyttelser under hensyntagen til OS, arkitektur og browser. Metoden er også effektiv, når du bruger browsere, der implementerer skjulte identifikationsblokeringsmekanismer, såsom Tor Browser. Kildekodeprototype med metodeimplementering udgivet under MIT-licensen.

Bestemmelsen foretages på grundlag af identifikation af egenskabstilstandsmønstrene i JavaScript, der er karakteristiske for forskellige browsere, og karakteristikaene for udførelsestiden for operationer, afhængigt af egenskaberne ved JIT, CPU og hukommelsesallokeringsmekanismerne. Definering af egenskaber udføres ved at generere en liste over alle objekter, der er tilgængelige fra JavaScript. Som det viste sig, korrelerer antallet af objekter direkte med browsermotoren og dens version.

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

For Firefox angiver dokumentationen f.eks. understøttelse af 2247 egenskaber, mens det faktiske antal af definerede egenskaber, inklusive udokumenterede, er 15709 (i Tor Browser - 15639), for Chrome er 2698 egenskaber erklæret, men i virkeligheden tilbydes 13570 (i Tor Browser - 13119). Chrome til Android - XNUMX) . Antallet og værdierne af egenskaber varierer fra browserversion til browserversion og på tværs af forskellige operativsystemer.

Værdierne og tilstedeværelsen af ​​visse egenskaber kan bruges til at bestemme typen af ​​OS. For eksempel i Kubuntu er egenskaben window.innerWidth sat til 1000, og i Windows 10 er den sat til 1001. Egenskaben window.navigator.activeVRDisplays er tilgængelig på Windows, men den er ikke tilgængelig på Linux. Til Android leveres mange specifikke opkald, men det er window.SharedWorker ikke. For at identificere operativsystemet foreslås det også at bruge analyse af WebGL-parametre, hvis tilstand afhænger af driverne. Derudover giver kald af WEBGL_debug_renderer_infoextension dig mulighed for at få oplysninger om OpenGL-gengivelsesmotoren, som er forskellig for hvert operativsystem.

For at bestemme CPU'en bruges en vurdering af forskelle i udførelsestiden for forskellige typiske kodeblokke, hvis behandling afhænger af instruktionssættets arkitektur under hensyntagen til JIT-adfærd (det bestemmes, hvor mange CPU-registre der skal bruges og i hvilke tilfælde JIT vil generere effektiv kode med optimeringer og brug af udvidede instruktioner, og hvornår ikke ). For at bestemme typen af ​​hukommelsesallokeringssystem og operativsystem måles også forskellen i hukommelsestildelingstid for forskellige strukturer, som kan bruges til at bedømme størrelsen af ​​hukommelsesblokke.

De parametre, der bestemmes under scriptudførelse, sammenlignes med referenceværdier, der er typiske for tidligere testede miljøer. Under testen gjorde den udviklede teknik det muligt præcist at identificere 40 forskellige testmiljøer, identificere versionerne af de anvendte browsere, CPU-producenten, det anvendte operativsystem og det faktum, at det kørte på rigtig hardware eller i en virtuel maskine.

Separat bemærkes det, at det er muligt at definere browsertilføjelser og endda individuelle tilføjelsesindstillinger, herunder tilføjelser designet til at blokere skjulte identifikationsmetoder eller aktivitet i privat browsingtilstand. I forbindelse med den foreslåede metode bliver sådanne tilføjelser en anden kilde til data til identifikation. Tilføjelser bestemmes ved at vurdere forvrængningerne af parametrene for det oprindelige miljø, som tilføjelserne indførte.

Andre identifikationsmetoder omfatter at tage hensyn til sådanne indirekte data som skærmopløsning, liste over understøttede MIME-typer, specifikke parametre i overskrifter (HTTP / 2 и HTTPS), analyse af installeret plugins og skrifttyper, tilgængelighed af visse web-API'er, der er specifikke for videokort Egenskaber gengivelse ved hjælp af WebGL og Lærred, manipulation med CSS, analyse af funktioner ved at arbejde med mus и et tastatur.

Kilde: opennet.ru

Tilføj en kommentar