Oti käyttöön uuden tekniikan piilotetun järjestelmän ja selaimen tunnistamiseen

Ryhmä tutkijoita Grazin teknisestä yliopistosta (Itävalta), joka tunnettiin aiemmin hyökkäysmenetelmien kehittämisestä MDS, NetSpectre и Heittovasara, paljastettu Tietoja uudesta kolmannen osapuolen kanava-analyysitekniikasta, jonka avulla voit määrittää selaimen tarkan version, käytetyn käyttöjärjestelmän, suorittimen arkkitehtuurin ja lisäosien käytön piilotunnistuksen torjumiseksi.

Näiden parametrien määrittämiseksi riittää tutkijoiden laatiman JavaScript-koodin suorittaminen selaimessa. Käytännössä menetelmää voidaan käyttää paitsi lisälähteenä käyttäjän epäsuoraan tunnistamiseen, myös järjestelmäympäristön parametrien määrittämiseen hyväksikäyttöä varten, ottaen huomioon käyttöjärjestelmä, arkkitehtuuri ja selain. Menetelmä on tehokas myös käytettäessä piilotettuja tunnistamisen estomekanismeja toteuttavia selaimia, kuten Tor Browser. Lähdekoodin prototyyppi menetelmän toteutuksella julkaistu MIT-lisenssillä.

Päätös tehdään JavaScriptin eri selaimille tyypillisten ominaisuustilamallien ja toimintojen suoritusajan ominaisuuksien tunnistamisen perusteella riippuen JIT:n, CPU:n ja muistin allokointimekanismien ominaisuuksista. Ominaisuudet määritetään luomalla luettelo kaikista JavaScriptistä käytettävissä olevista objekteista. Kuten kävi ilmi, objektien määrä korreloi suoraan selainmoottorin ja sen version kanssa.

function getProperties(o) {
var tulos = [];
while (o !== null) {
tulos = tulos.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
palauttaa tuloksen;
}

Esimerkiksi Firefoxissa dokumentaatiossa todetaan tuki 2247 ominaisuudelle, kun taas määritettyjen ominaisuuksien todellinen määrä, mukaan lukien dokumentoimattomat, on 15709 (Tor Browserissa - 15639), Chromelle on ilmoitettu 2698 ominaisuuksia, mutta todellisuudessa tarjotaan 13570 Chrome Androidille - 13119) . Ominaisuuksien määrä ja arvot vaihtelevat selainversioittain ja eri käyttöjärjestelmissä.

Tiettyjen ominaisuuksien arvoja ja olemassaoloa voidaan käyttää käyttöjärjestelmän tyypin määrittämiseen. Esimerkiksi Kubuntussa window.innerWidth-ominaisuuden arvo on 1000 ja Windows 10:ssä 1001. Ominaisuus window.navigator.activeVRDisplays on käytettävissä Windowsissa, mutta se ei ole käytettävissä Linuxissa. Androidille tarjotaan monia erityisiä puheluita, mutta window.SharedWorker ei. Käyttöjärjestelmän tunnistamiseen ehdotetaan myös WebGL-parametrien analyysiä, jonka tila riippuu ohjaimista. Lisäksi kutsumalla WEBGL_debug_renderer_infoextension voit saada tietoja OpenGL-renderöintimoottorista, joka on erilainen jokaisessa käyttöjärjestelmässä.

CPU:n määrittämiseen käytetään erilaisten tyypillisten koodilohkojen suoritusajan erojen arviointia, joiden käsittely riippuu käskyjoukon arkkitehtuurista ottaen huomioon JIT:n käyttäytyminen (määritetään kuinka monta CPU-rekisteriä käytetään ja missä tapauksissa JIT luo tehokkaan koodin optimoinnilla ja laajennettujen ohjeiden käytöllä, ja milloin ei ). Muistinvarausjärjestelmän ja käyttöjärjestelmän tyypin määrittämiseksi mitataan myös eri rakenteiden muistin varausajan ero, jonka avulla voidaan arvioida muistilohkojen kokoa.

Skriptin suorittamisen aikana määritettyjä parametreja verrataan aiemmin testatuille ympäristöille tyypillisiin viitearvoihin. Kehitetty tekniikka mahdollisti testin aikana tunnistamaan tarkasti 40 erilaista testiympäristöä, tunnistaen käytettyjen selainversioiden, suorittimen valmistajan, käytetyn käyttöjärjestelmän sekä sen, että se oli käynnissä oikealla laitteistolla tai virtuaalikoneessa.

Erikseen on huomattava, että on mahdollista määrittää selaimen lisäosia ja jopa yksittäisiä lisäosien asetuksia, mukaan lukien lisäosat, jotka on suunniteltu estämään piilotetut tunnistusmenetelmät tai yksityisen selaustilan toiminta. Ehdotetun menetelmän yhteydessä tällaisista lisäyksistä tulee toinen tunnistamisen tietolähde. Lisäykset määritetään arvioimalla lisäysten aiheuttamat alkuperäisen ympäristön parametrien vääristymät.

Muita tunnistusmenetelmiä ovat muun muassa epäsuorien tietojen huomioon ottaminen näytön resoluutio, luettelo tuetuista MIME-tyypeistä, tietyt parametrit otsikoissa (HTTP-/ 2 и HTTPS), asennettujen analyysi laajennuksia ja fontteja, tiettyjen näytönohjainten verkkosovellusliittymien saatavuus ominaisuudet renderöinti käyttämällä WebGL:ää ja Kangas, manipulointi CSS:n kanssa työskentelyn ominaisuuksien analysointi hiiri и näppäimistö.

Lähde: opennet.ru

Lisää kommentti