Ieviesa jaunu paņēmienu slēptās sistēmas un pārlūkprogrammas identificēšanai

Grācas Tehniskās universitātes (Austrija) pētnieku grupa, kas iepriekš bija pazīstama ar uzbrukuma metožu izstrādi MDS, NetSpectre и Metiena āmurs, bez pārklājuma Informācija par jaunu trešās puses kanālu analīzes paņēmienu, kas ļauj noteikt precīzu pārlūkprogrammas versiju, izmantoto operētājsistēmu, CPU arhitektūru un pievienojumprogrammu izmantošanu, lai cīnītos pret slēpto identifikāciju.

Lai noteiktu šos parametrus, pietiek pārlūkprogrammā palaist pētnieku sagatavoto JavaScript kodu. Praksē metodi var izmantot ne tikai kā papildu avotu lietotāja netiešai identifikācijai, bet arī sistēmas vides parametru noteikšanai exploitu mērķtiecīgai izmantošanai, ņemot vērā OS, arhitektūru un pārlūkprogrammu. Metode ir efektīva arī tad, ja tiek izmantotas pārlūkprogrammas, kas ievieš slēptos identifikācijas bloķēšanas mehānismus, piemēram, Tor Browser. Avota koda prototips ar metodes ieviešanu publicēts saskaņā ar MIT licenci.

Noteikšana tiek veikta, pamatojoties uz JavaScript īpašību stāvokļa modeļu identificēšanu, kas raksturīgi dažādām pārlūkprogrammām, un darbību izpildes laika raksturlielumiem atkarībā no JIT, CPU un atmiņas piešķiršanas mehānismu īpašībām. Rekvizītu noteikšana tiek veikta, ģenerējot visu objektu sarakstu, kas pieejami no JavaScript. Kā izrādījās, objektu skaits tieši korelē ar pārlūkprogrammas dzinēju un tā versiju.

function getProperties(o) {
var rezultāts = [];
while (o !== null) {
rezultāts = rezultāts.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
atgriešanās rezultāts;
}

Piemēram, Firefox dokumentācijā norādīts atbalsts 2247 rekvizītiem, savukārt faktiskais definēto rekvizītu skaits, ieskaitot nedokumentētos, ir 15709 (Tor Browser - 15639), Chrome ir deklarēti 2698 rekvizīti, bet patiesībā tiek piedāvāti 13570 (in Chrome operētājsistēmai Android — 13119) . Rekvizītu skaits un vērtības atšķiras atkarībā no pārlūkprogrammas versijas un dažādās operētājsistēmās.

Lai noteiktu OS veidu, var izmantot noteiktu īpašību vērtības un klātbūtni. Piemēram, programmā Kubuntu rekvizīts window.innerWidth ir iestatīts uz 1000, bet operētājsistēmā Windows 10 tas ir iestatīts uz 1001. Rekvizīts window.navigator.activeVRDisplays ir pieejams operētājsistēmā Windows, taču tas nav pieejams operētājsistēmā Linux. Operētājsistēmai Android tiek nodrošināti daudzi specifiski zvani, bet windows.SharedWorker nav. Operētājsistēmas identificēšanai tiek piedāvāts izmantot arī WebGL parametru analīzi, kuras stāvoklis ir atkarīgs no draiveriem. Turklāt WEBGL_debug_renderer_infoextension izsaukšana ļauj iegūt informāciju par OpenGL renderēšanas programmu, kas katrai operētājsistēmai ir atšķirīga.

CPU noteikšanai tiek izmantots dažādu tipisku kodu bloku izpildes laika atšķirību novērtējums, kuru apstrāde ir atkarīga no instrukciju kopas arhitektūras, ņemot vērā JIT uzvedību (tiek noteikts, cik CPU reģistru tiks izmantoti un kādos gadījumos JIT ģenerēs efektīvu kodu ar optimizāciju un paplašinātu instrukciju izmantošanu, un kad ne ). Lai noteiktu atmiņas sadales sistēmas un operētājsistēmas veidu, tiek mērīta arī atmiņas sadales laika atšķirība dažādām struktūrām, pēc kuras var spriest par atmiņas bloku lielumu.

Skripta izpildes laikā noteiktie parametri tiek salīdzināti ar atsauces vērtībām, kas raksturīgas iepriekš pārbaudītām vidēm. Testa laikā izstrādātā tehnika ļāva precīzi identificēt 40 dažādas testa vides, identificējot izmantoto pārlūkprogrammu versijas, CPU ražotāju, izmantoto operētājsistēmu un to, ka tā darbojas uz reālas aparatūras vai virtuālajā mašīnā.

Atsevišķi tiek atzīmēts, ka ir iespējams definēt pārlūkprogrammas pievienojumprogrammas un pat atsevišķus papildinājumu iestatījumus, tostarp papildinājumus, kas paredzēti, lai bloķētu slēptās identifikācijas metodes vai privātā pārlūkošanas režīma darbību. Piedāvātās metodes kontekstā šādi papildinājumi kļūst par vēl vienu identifikācijas datu avotu. Papildinājumi tiek noteikti, novērtējot papildinājumu radītos sākotnējās vides parametru kropļojumus.

Citas identifikācijas metodes ietver tādu netiešu datu ņemšanu vērā kā Ekrāna izšķirtspēja, atbalstīto MIME veidu saraksts, konkrēti parametri galvenēs (HTTP / 2 и HTTPS), uzstādīto analīze spraudņi un fonti, noteiktu tīmekļa API pieejamība, kas raksturīga videokartēm Features renderēšana, izmantojot WebGL un Audekls, manipulācijas ar CSS, darba iezīmju analīze pele и tastatūra.

Avots: opennet.ru

Pievieno komentāru