Predstavljena nova tehnika za identifikacijo skritega sistema in brskalnika

Skupina raziskovalcev s tehnološke univerze v Gradcu (Avstrija), prej znana po razvoju napadalnih metod MDS, NetSpectre и Metalno kladivo, nepokrit informacije o novi tehniki analize tretjih oseb, ki vam omogoča določitev natančne različice brskalnika, uporabljenega operacijskega sistema, arhitekture CPE in uporabo dodatkov za boj proti skriti identifikaciji.

Za določitev teh parametrov je dovolj, da v brskalniku izvedete kodo JavaScript, ki so jo pripravili raziskovalci. V praksi se metoda lahko uporablja ne samo kot dodaten vir za posredno identifikacijo uporabnika, ampak tudi za določanje parametrov sistemskega okolja za ciljno uporabo podvigov, ob upoštevanju OS, arhitekture in brskalnika. Metoda je učinkovita tudi pri uporabi brskalnikov s skritimi mehanizmi za blokiranje identifikacije, kot je Tor Browser. Koda prototipa izvorne kode z implementacijo metode objavljeno pod licenco MIT.

Določitev je narejena na podlagi dodeljevanja vzorcev stanja lastnosti, značilnih za različne brskalnike v JavaScriptu, in značilnosti časa izvajanja operacij, odvisno od značilnosti JIT, CPE in mehanizmov dodeljevanja pomnilnika. Definiranje lastnosti se izvede z generiranjem seznama vseh predmetov, ki so na voljo iz JavaScripta. Kot se je izkazalo, je število predmetov neposredno povezano z motorjem brskalnika in njegovo različico.

funkcija getProperties(o) {
varresult = [];
medtem ko (o !== nič) {
rezultat = rezultat.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
vrni rezultat;
}

Na primer, za Firefox je v dokumentaciji navedena podpora za 2247 lastnosti, medtem ko je dejansko število določenih lastnosti, ob upoštevanju nedokumentiranih, 15709 (v brskalniku Tor - 15639), za Chrome je prijavljenih 2698 lastnosti, vendar 13570 so dejansko na voljo (v Chromu za Android - 13119) . Število in vrednosti lastnosti se razlikujejo od različice do različice brskalnika in v različnih operacijskih sistemih.

Vrednosti in prisotnost določenih lastnosti se lahko uporabijo za določitev vrste OS. Na primer, v Kubuntuju je lastnost window.innerWidth nastavljena na 1000, v sistemu Windows 10 pa na 1001. V sistemu Windows je lastnost window.navigator.activeVRDisplays na voljo, v sistemu Linux pa ni. Za Android je na voljo veliko posebnih klicev, vendar ni okna.SharedWorker. Za identifikacijo operacijskega sistema je predlagana tudi uporaba analize parametrov WebGL, katerih stanje je odvisno od gonilnikov. Poleg tega vam klic WEBGL_debug_renderer_infoextension omogoča pridobitev informacij o mehanizmu upodabljanja OpenGL, ki je drugačen za vsak operacijski sistem.

Za določitev CPU se uporablja ocena razlik v času izvajanja različnih tipičnih kodnih blokov, katerih obdelava je odvisna od arhitekture nabora ukazov ob upoštevanju obnašanja JIT (določi se, koliko CPU registrira bo sodeloval in v katerih primerih bo JIT ustvaril učinkovito kodo z optimizacijami in vključevanjem razširjenih navodil ter kdaj ne). Za določitev vrste sistema dodeljevanja pomnilnika in operacijskega sistema se meri tudi razlika v času dodeljevanja pomnilnika za različne strukture, na podlagi katere lahko presodimo velikost pomnilniških blokov.

Parametri, določeni med izvajanjem skripta, se primerjajo z referenčnimi vrednostmi, značilnimi za predhodno testirana okolja. Med preizkusom je razvita tehnika omogočila natančno določitev 40 različnih testnih okolij, pri čemer je določila različice uporabljenih brskalnikov, proizvajalca procesorja, uporabljen operacijski sistem in ali se izvaja na resnični strojni opremi ali v virtualnem stroju.

Ločeno je omenjena možnost definiranja dodatkov brskalnika in celo posameznih nastavitev dodatkov, vključno z dodatki, namenjenimi blokiranju skritih identifikacijskih metod ali dejavnosti zasebnega brskanja. V okviru predlagane metode postanejo takšni dodatki še en vir podatkov za identifikacijo. Dodatki so določeni z oceno izkrivljanja parametrov prvotnega okolja, ki ga vnesejo dodatki.

Med drugimi metodami identifikacije je mogoče opozoriti na upoštevanje posrednih podatkov, kot so ločljivost zaslona, seznam podprtih tipov MIME, možnosti, specifične za glavo (HTTP / 2 и HTTPS), analiza uveljavljenih vtičniki in pisave, razpoložljivost nekaterih spletnih API-jev, specifičnih za grafične kartice funkcije upodabljanje z WebGL in Canvas, manipulacija s CSS, analiza značilnosti dela z miško и tipkovnica.

Vir: opennet.ru

Dodaj komentar