Graz Technical University (Austria) teadlaste grupp, kes on varem tuntud rünnakute meetodite arendamise poolest , ja , teave uue analüüsimeetodi kohta külgkanalitest, mis võimaldab määrata nimetatud brauseri täpse versiooni, kasutatava operatsioonisüsteemi, CPU arhitektuuri ja lisanduste kasutamise varjatud identifitseerimise vastu.
Nende parameetrite määramiseks piisab, kui käivitada brauseris teadlaste ettevalmistatud JavaScripti kood. Praktiliselt võib meetodit kasutada mitte ainult lisana kasutaja kaudseks identifitseerimiseks, vaid ka süsteemi keskkonna parameetrite määramiseks, et rakendada eksploitide sihipärast rakendamist arvesse võttes OS, arhitektuuri ja brauserit. Meetod on tõhus ka brauserite puhul, mis rakendavad varjatud identifitseerimise blokeerimise mehhanisme, näiteks Tor Browser. Prototüübi koodi lähtefailid meetodi rakendamiseks MIT litsentsi alusel.
Määramine toimub brauseritele iseloomulike JavaScripti omaduste oleku mustrite ja JIT, CPU ning mälu eraldamise mehhanismide töö eripärade ajastusest sõltuvate operatsioonide täitmise omaduste kindlakstehtud põhjal. Omaduste määramine toimub JavaScriptist juurdepääsetavate objektide loendi genereerimise kaudu. Selgus, et objektide arv korreleerub otseselt brauseri mootori 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 toetus, samas kui tegelik määratud omaduste arv, arvestades dokumenteerimata omadusi, on 15709 (Tor Browseris - 15639); Chrome'i puhul on välja reklaamitud 2698 omadust, samas kui tegelikult pakutakse 13570 (Chrome Androidile - 13119). Omaduste arv ja väärtused muutuvad brauseri versioonist ja erinevatest operatsioonisüsteemidest olenevalt.
Teatud omaduste väärtusi ja olemasolu saab kasutada opsüsteemi tuvastamiseks. 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 seda ei ole. Androidile on saadaval palju spetsiifilisi kutse, kuid puudub window.SharedWorker. Opsüsteemi tuvastamiseks soovitatakse ka analüüsida WebGL-i parameetreid, mille seisund sõltub draiveritest. Lisaks võimaldab kutse WEBGL_debug_renderer_info extension saada teavet OpenGL-i renderdamismootori kohta, mis on igas opsüsteemis erinev.
CPU tuvastamiseks kasutatakse erinevate tüüpiliste koodiblokkide täitmise aja erinevuste hindamist, mille käik sõltub käsu komplekti arhitektuurist, arvestades JIT-i käitumist (mida määratletakse kui palju CPU registreid kaasatakse ja millal JIT genereerib efektiivset koodi optimeerimise ja laiendatud käskude kaasamisega ning millal mitte). Mäluhalduse ja opsüsteemi tüübi määramiseks mõõdetakse ka erinevusi mälude jagamise aja osas erinevates struktuurides, millest saab järeldada mälu plokkide suurust.
Käitusaja jooksul määratletud parameetrid võetakse võrreldes eelnevalt testitud keskkondade omavaheliste väärtustega. Kontrollimise käigus suutis välja töötatud tehnika täpselt tuvastada 40 erinevat testkeskkonda, määrates kindlaks kasutatavate brauserite versioonid, CPU tootja, kasutatav opsüsteem ning haiguse, kas see käib reaalse riistvara või virtuaalmasina kaudu.
Eraldi märgitakse veebisirvijate lisandite ja isegi üksikute lisandite seadete määramine, sealhulgas lisandite, mis on mõeldud varjatud tuvastamise meetodite või privaatse vaate režiimi blokeerimise jaoks. Pakutud meetodi kontekstis muutuvad sellised lisandid veel üheks andmeallikaks tuvastamiseks. Lisandid määratakse via keskkonna algparameetrite moonutuste hindamise.
Teistest tuvastamismeetoditest võib märkida kaudsete andmete arvesse võtmise, nagu , toetatud MIME-tüüpide loetelu, spetsiifilised parameetrid päisetes ( ja ), installitud , teatud Web API-de kättesaadavuse analüüs, mis on spetsiifilised graafikakaartidele WebGL ja , CSS-iga, töötlemise omaduste analüüsiga ja .
Allikas: opennet.ru
