Chromeen asennettujen lisäosien tunnistamiseen tarkoitettu työkalupakki on julkaistu

On julkaistu työkalupakki, joka toteuttaa menetelmän Chrome-selaimeen asennettujen lisäosien havaitsemiseksi. Tuloksena olevaa lisäosien luetteloa voidaan käyttää lisäämään tietyn selainesiintymän passiivisen tunnistamisen tarkkuutta yhdessä muiden epäsuorien indikaattoreiden, kuten näytön resoluution, WebGL-ominaisuuksien, asennettujen lisäosien ja fonttien luetteloiden kanssa. Ehdotettu toteutus tarkistaa yli 1000 lisäosan asennuksen. Online-esittely tarjotaan järjestelmän testaamiseksi.

Lisäosien määrittely tehdään lisäosien tarjoamien ulkoisten pyyntöjen käytettävissä olevien resurssien analyysin perusteella. Tyypillisesti lisäosat sisältävät useita mukana tulevia tiedostoja, kuten kuvia, jotka web_accessible_resources-ominaisuus määrittää lisäosan luettelossa. Chromen luettelon ensimmäisessä versiossa resurssien käyttöä ei rajoitettu, ja mikä tahansa sivusto saattoi ladata tarjotut resurssit. Luettelon toisessa versiossa tällaisten resurssien käyttö sallittiin oletusarvoisesti vain itse lisäosalle. Manifestin kolmannessa versiossa oli mahdollista määrittää, mitkä resurssit voidaan antaa millekin lisäosille, verkkotunnuksille ja sivuille.

Web-sivut voivat pyytää laajennuksen tarjoamia resursseja hakumenetelmällä (esimerkiksi "fetch('chrome-extension://okb....nd5/test.png')"), jonka palauttaminen "false" yleensä tarkoittaa että lisäosaa ei ole asennettu. Jotkin lisäosat luovat vahvistustunnuksen, joka tarvitaan resurssin käyttämiseen, jotta lisäosa ei havaitse resurssin läsnäoloa. Haun kutsuminen ilman tunnuksen määrittämistä epäonnistuu aina.

Kuten käy ilmi, lisäresurssien käytön suojaus voidaan ohittaa arvioimalla toiminnon suoritusaika. Huolimatta siitä, että nouto palauttaa aina virheen pyydettäessä ilman tunnusta, toiminnon suoritusaika lisäosan kanssa ja ilman sitä on erilainen - jos lisäosa on olemassa, pyyntö kestää kauemmin kuin jos lisäosa ei ole asennettu. Arvioimalla reaktioaikaa voit määrittää melko tarkasti lisäaineen läsnäolon.

Jotkut lisäosat, jotka eivät sisällä ulkoisesti käytettävissä olevia resursseja, voidaan tunnistaa lisäominaisuuksilla. Esimerkiksi MetaMask-lisäosa voidaan määrittää arvioimalla ominaisuuden window.ethereum määritelmä (jos lisäosaa ei ole asetettu, "typeof window.ethereum" palauttaa arvon "undefined").

Lähde: opennet.ru

Lisää kommentti