Graz Tehnika Ülikooli teadlaste rühm (Austraalia), kes on varem tuntud ründemetoodikate väljatöötamise poolest , ja , teave uue analüüsimeetodi kohta, mis kasutab külgkanaleid, et määrata brauseri täpne versioon, opsüsteem, CPU arhitektuur ja lisade kasutamine, et vältida varjatud identifitseerimise.
Käesolevate parameetrite tuvastamiseks piisab, kui käivitada brauseris teadlaste koostatud JavaScripti kood. Praktikas võib meetodit kasutada mitte ainult täiendava allikana kasutaja kaudseks tuvastamiseks, vaid ka sihitatud eksploiteerimise jaoks süsteemi keskkonna parameetrite määramiseks, võttes arvesse opsüsteemi, arhitektuuri ja brauserit. Meetod on tõhus, sealhulgas brauserites, millel on rakendatud varjatud identifitseerimise blokeerimise mehhanisme, nagu Tor Browser. Koodivihikute lähtefailid meetodi rakendamiseks on MIT litsentsi all.
Määramine põhineb JavaScriptis olevate omaduste oleku mustrite tuvastamisel, mis on iseloomulikud erinevatele brauseritele, ning operatsioonide käitamise ajaga seotud omaduste määramisel, mis sõltuvad JIT tööpõhimõtetest, CPU-st ja mäluhalduse mehhanismidest. Omaduste määramine toimub, genereerides nimekirja kõigist JavaScriptist kergesti ligipääsetavatest objektidest. Selgus, et objektide arv korreleerub otse brauserimootori ja selle versiooniga.
function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}
Näiteks on Firefoxi dokumentatsioonis välja toodud 2247 omaduse tugi, samas kui tegelik määratud omaduste arv, arvestades dokumenteerimata omadusi, on 15709 (Tor Brauseris — 15639); Chrome'i puhul on välja kuulutatud 2698 omadust, kuid tegelikult pakutakse 13570 (Chrome'i Androidi versioonis — 13119). Omaduste arv ja väärtused muutuvad brauseri versioonide ja erinevate operatsioonisüsteemide kasutamisel.
Süsteemi tüübi määramiseks võib kasutada teatud omaduste väärtusi ja olemasolu. Näiteks Kubuntus on omadus window.innerWidth seadistatud väärtusele 1000, samas kui Windows 10-s on see 1001. Windowsis on saadaval omadus window.navigator.activeVRDisplays, Linuxis aga mitte. Androidile on saadaval palju spetsiifilisi käske, kuid puudub window.SharedWorker. Samuti soovitatakse operatsioonisüsteemi tuvastamiseks analüüsida WebGL parameetreid, mille olek sõltub draiveritest. Lisaks võimaldab kutse WEBGL_debug_renderer_infoextension saada teavet OpenGL renderdamismootori kohta, mis on iga operatsioonisüsteemi jaoks erinev.
CPU määramine hõlmab erinevuste hindamist erinevate tüüpiliste koodiblokkide täitmise ajas, mille töötlemine sõltub käsklussarja arhitektuurist, arvestades JIT-i käitumist (määratakse, kui palju CPU registreid aktiveeritakse ja millistel juhtudel JIT genereerib tõhusat koodi optimeerimiste ja laiendatud käskude kasutamisega ning millal mitte). Mälu ja operatsioonisüsteemi tüübi määramiseks mõõdetakse samuti erinevust mälu eraldamise ajas erinevate struktuuride jaoks, mille põhjal saab järeldada mälublokid suurust.
Skriptimise käigus määratud parameetrid võrreldakse standardsete väärtustega, mis on iseloomulikud eelnevalt testitud keskkondadele. Kontrollimise käigus võimaldas välja töötatud tehnika täpselt kindlaks teha 40 erinevat testimisringkonda, määrates kindlaks kasutatavate brauserite versioonid, CPU tootja, kasutatav operatsioonisüsteem ning selle, kas see töötab reaalses riistvaras või virtuaalses masinas.
Erakordselt tasub märkida, et on võimalik tuvastada brauseri lisandeid ja isegi teatud lisade seadeid, sealhulgas lisandeid, mis on mõeldud peidetud tuvastamismeetodite või privaatse sirvimise režiimi blokeerimiseks. Pakutud meetodi kontekstis muutuvad sellised lisandid veel üheks tuvastamiseandmete allikaks. Lisandeid tuvastatakse esmase keskkonna parameetrite moonutuste hindamise kaudu, mida lisandid toovad kaasa.
Teistest tuvastamismetoodikatest võib märkida kaudsete andmete arvessevõtmist, nagu , toetatud MIME-tüüpide loetelu, spetsiifilised parameetrid päistes ( ja ), installitud , teatud Web API-de kättesaadavus, mis on spetsiifilised graafikakaartidele WebGL kaudu joonistamine ja , CSS-iga, eripärade analüüs ja .
Allikas: opennet.ru
