Enkondukis novan teknikon por kaŝita sistemo kaj retumila identigo

Grupo de esploristoj de la Graz Universitato de Teknologio (Aŭstrio), antaŭe konata pro evoluado de atakmetodoj MDS, NetSpectre и Ĵetmartelo, malkovrita informojn pri nova triaparta analiztekniko, kiu ebligas al vi determini la ĝustan version de la retumilo, la uzatan operaciumon, la CPU-arkitekturon kaj la uzon de aldonaĵoj por kontraŭbatali kaŝitan identigon.

Por determini ĉi tiujn parametrojn, sufiĉas ekzekuti la JavaScript-kodon preparitan de la esploristoj en la retumilo. En praktiko, la metodo povas esti uzata ne nur kiel kroma fonto por nerekta uzantidentigo, sed ankaŭ por determini sistemajn medioparametrojn por la laŭcela uzo de ekspluatoj, konsiderante OS, arkitekturon kaj retumilon. La metodo ankaŭ estas efika kiam oni uzas retumilon kun kaŝitaj identigaj blokantaj mekanismoj, kiel Tor Browser. Fontkodo prototipkodo kun metodo efektivigo eldonita sub la MIT-licenco.

La determino estas farita surbaze de la atribuo de proprietaj statoj ŝablonoj karakterizaj de malsamaj retumiloj en JavaScript kaj la karakterizaĵoj de la ekzekuttempo de operacioj, depende de la trajtoj de la JIT, CPU kaj memoro atribuo mekanismoj. Difina ecoj estas farita per generado de listo de ĉiuj objektoj disponeblaj de JavaScript. Kiel rezultis, la nombro da objektoj rekte korelacias kun la retumilo kaj ĝia versio.

funkcio getProperties(o) {
varrezult = [];
dum (o !== nulo) {
rezulto = rezulto.concat(Reflect.ownKeys(o));
o = Objekto.getPrototypeOf(o);
}
redoni rezulton;
}

Ekzemple, por Fajrovulpo, la subteno por 2247 propraĵoj estas deklarita en la dokumentado, dum la reala nombro de certaj trajtoj, konsiderante nedokumentitajn, estas 15709 (en Tor Browser - 15639), por Chrome 2698 ecoj estas deklaritaj, sed 13570. estas efektive ofertitaj (en Chrome por Android - 13119) . La nombro kaj valoroj de propraĵoj varias de versio al versio de la retumilo kaj laŭ malsamaj operaciumoj.

La valoroj kaj ĉeesto de iuj propraĵoj povas esti uzataj por determini la OS-tipo. Ekzemple, en Kubuntu la posedaĵo window.innerWidth estas agordita al 1000, kaj en Windows 10 ĝi estas 1001. En Vindozo, la posedaĵo window.navigator.activeVRDisplays estas disponebla, sed en Linukso ĝi ne estas. Multaj specifaj alvokoj estas provizitaj por Android, sed ne ekzistas fenestro.SharedWorker. Por identigi la operaciumon, oni ankaŭ proponas uzi la analizon de WebGL-parametroj, kies stato dependas de la ŝoforoj. Krome, voki WEBGL_debug_renderer_infoextension ebligas al vi akiri informojn pri la bildiga motoro OpenGL, kiu estas malsama por ĉiu operaciumo.

Por determini la CPU, oni uzas takson de diferencoj en la ekzekuttempo de diversaj tipaj kodblokoj, kies prilaborado dependas de la arkitekturo de la instrukcio, konsiderante la konduton de la JIT (estas determinita kiom da CPU-registroj estas. estos implikita kaj en kiuj kazoj la JIT generos efikan kodon kun optimumigoj kaj implikantaj plilongigitajn instrukciojn, kaj kiam ne). Por determini la specon de memorasignosistemo kaj operaciumo, la diferenco en memorasignotempo por diversaj strukturoj ankaŭ estas mezurita, kiu povas esti uzita por juĝi la grandecon de memorblokoj.

La parametroj determinitaj dum la ekzekuto de la skripto estas komparitaj kun la referencaj valoroj tipaj por antaŭprovitaj medioj. Dum la testo, la evoluinta tekniko ebligis precize determini 40 malsamajn testajn mediojn, determini la versiojn de la retumiloj uzataj, la CPU-fabrikanto, la operaciumo uzata, kaj ĉu ĝi funkcias per reala aparataro aŭ en virtuala maŝino.

Aparte oni rimarkas la eblon difini retumilon-aldonaĵojn kaj eĉ individuajn aldonaĵojn, inkluzive de aldonaĵoj destinitaj por bloki kaŝitajn identigajn metodojn aŭ privatan foliumadon. En la kunteksto de la proponita metodo, tiaj aldonoj iĝas alia fonto de datenoj por identigo. Aldonoj estas determinitaj tra taksado de la misprezentoj de la parametroj de la origina medio enkondukitaj per la aldonoj.

Inter aliaj identigaj metodoj, eblas noti la konsideron de tiaj nerektaj datumoj kiel ekrano-rezolucio, listo de subtenataj MIME-tipoj, kap-specifaj opcioj (HTTP / 2 и HTTPS), analizo de establita kromaĵojn kaj tiparojn, havebleco de certaj Retaj APIoj specifaj por vidkartoj Karakterizaĵoj bildigo kun WebGL kaj kanvaso, manipulado kun CSS, analizo de la trajtoj de labori kun muso и klavaro.

fonto: opennet.ru

Aldoni komenton