Tutvustas uut tehnikat peidetud süsteemi ja brauseri tuvastamiseks

Grazi tehnikaülikooli (Austria) teadlaste rühm, kes oli varem tuntud rünnakumeetodite väljatöötamise poolest MDS, NetSpectre и Haamer, katmata Teave uue kolmanda osapoole kanalite analüüsimeetodi kohta, mis võimaldab teil määrata brauseri täpse versiooni, kasutatava operatsioonisüsteemi, protsessori arhitektuuri ja lisandmoodulite kasutamise varjatud tuvastamise vastu võitlemiseks.

Nende parameetrite määramiseks piisab, kui käivitada brauseris teadlaste koostatud JavaScripti kood. Praktikas saab seda meetodit kasutada mitte ainult lisaallikana kasutaja kaudseks tuvastamiseks, vaid ka süsteemikeskkonna parameetrite määramiseks exploitide sihipäraseks kasutamiseks, võttes arvesse operatsioonisüsteemi, arhitektuuri ja brauserit. Meetod on efektiivne ka brauserite kasutamisel, mis rakendavad peidetud tuvastamise blokeerimismehhanisme, näiteks Tor Browser. Lähtekoodi prototüüp koos meetodi rakendamisega avaldatud MIT litsentsi alusel.

Määramine tehakse JavaScriptis erinevatele brauseritele iseloomulike omaduste olekumustrite ja toimingute täitmisaja tunnuste tuvastamise alusel, olenevalt JIT-i, protsessori ja mälujaotusmehhanismide omadustest. Omaduste määratlemine toimub kõigi JavaScripti kaudu juurdepääsetavate objektide loendi loomisega. Nagu selgus, on objektide arv otseselt seotud brauseri mootori ja selle versiooniga.

function getProperties(o) {
var tulemus = [];
while (o !== null) {
tulemus = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
tagastada tulemus;
}

Näiteks Firefoxi puhul on dokumentatsioonis kirjas 2247 atribuudi toetamine, samas kui määratletud atribuutide, sealhulgas dokumenteerimata, tegelik arv on 15709 (Tor-brauseris - 15639), Chrome'i puhul on deklareeritud 2698 atribuuti, kuid tegelikkuses pakutakse 13570 atribuuti. Chrome Androidile – 13119) . Atribuutide arv ja väärtused varieeruvad olenevalt brauseri versioonist ja erinevatest operatsioonisüsteemidest.

OS-i tüübi määramiseks saab kasutada teatud omaduste väärtusi ja olemasolu. Näiteks Kubuntus on atribuudi window.innerWidth väärtuseks 1000 ja Windows 10 puhul 1001. Atribuut window.navigator.activeVRDisplays on saadaval Windowsis, kuid see pole saadaval Linuxis. Androidi jaoks pakutakse palju konkreetseid kõnesid, kuid window.SharedWorker mitte. Operatsioonisüsteemi tuvastamiseks tehakse ettepanek kasutada ka WebGL-i parameetrite analüüsi, mille olek sõltub draiveritest. Lisaks võimaldab WEBGL_debug_renderer_infoextension kutsumine hankida teavet OpenGL-i renderdusmootori kohta, mis on iga operatsioonisüsteemi puhul erinev.

Protsessori määramiseks kasutatakse erinevate tüüpiliste koodiplokkide täitmisaja erinevuste hindamist, mille töötlemine sõltub käsukomplekti arhitektuurist, võttes arvesse JIT käitumist (määratakse mitu CPU registrit kasutatakse ja millistel juhtudel genereerib JIT tõhusa koodi optimeerimise ja laiendatud juhiste kasutamisega ning millal mitte ). Mälujaotussüsteemi ja operatsioonisüsteemi tüübi määramiseks mõõdetakse ka erinevate struktuuride mälujaotusaegade erinevust, mille põhjal saab hinnata mäluplokkide suurust.

Skripti täitmisel määratud parameetreid võrreldakse varem testitud keskkondadele tüüpiliste võrdlusväärtustega. Testi käigus võimaldas väljatöötatud tehnika täpselt tuvastada 40 erinevat testimiskeskkonda, tuvastades kasutatavate brauserite versioonid, protsessori tootja, kasutatava operatsioonisüsteemi ning selle, et see töötab reaalses riistvaras või virtuaalmasinas. .

Eraldi märgitakse, et on võimalik määratleda brauseri lisandmooduleid ja isegi üksikuid lisandmoodulite sätteid, sealhulgas lisandmooduleid, mis on loodud varjatud tuvastamismeetodite või privaatse sirvimisrežiimi tegevuse blokeerimiseks. Kavandatava meetodi kontekstis saavad sellised täiendused teiseks tuvastamise andmeallikaks. Täiendused määratakse, hinnates täiendustega tekitatud algse keskkonna parameetrite moonutusi.

Muud identifitseerimismeetodid hõlmavad selliste kaudsete andmete arvessevõtmist nagu ekraani resolutsioon, toetatud MIME tüüpide loend, konkreetsed parameetrid päistes (HTTP / 2 и HTTPS), analüüs paigaldatud pluginad ja fondid, teatud videokaartidele omaste veebi API-de saadavus Omadused renderdamine kasutades WebGL ja Lõuend, manipuleerimine CSS-iga töötamise funktsioonide analüüs hiir и klaviatuur.

Allikas: opennet.ru

Lisa kommentaar