Ipinakilala ang isang bagong pamamaraan para sa nakatagong sistema at pagkakakilanlan ng browser

Isang pangkat ng mga mananaliksik mula sa Graz University of Technology (Austria), na dating kilala sa pagbuo ng mga paraan ng pag-atake MDS, NetSpectre ΠΈ Throwammer, walang takip impormasyon tungkol sa isang bagong diskarte sa pagsusuri ng third-party na nagbibigay-daan sa iyong matukoy ang eksaktong bersyon ng browser, ang operating system na ginamit, ang arkitektura ng CPU, at ang paggamit ng mga add-on upang labanan ang nakatagong pagkakakilanlan.

Upang matukoy ang mga parameter na ito, sapat na upang isagawa ang JavaScript code na inihanda ng mga mananaliksik sa browser. Sa pagsasagawa, ang pamamaraan ay maaaring gamitin hindi lamang bilang isang karagdagang mapagkukunan para sa hindi direktang pagkakakilanlan ng gumagamit, kundi pati na rin para sa pagtukoy ng mga parameter ng kapaligiran ng system para sa naka-target na paggamit ng mga pagsasamantala, na isinasaalang-alang ang OS, arkitektura, at browser. Ang pamamaraan ay epektibo rin kapag gumagamit ng mga browser na may mga nakatagong mekanismo ng pagharang ng pagkakakilanlan, tulad ng Tor Browser. Prototype code ng source code na may pagpapatupad ng pamamaraan nalathala sa ilalim ng lisensya ng MIT.

Ang pagpapasiya ay ginawa batay sa paglalaan ng mga pattern ng estado ng ari-arian na katangian ng iba't ibang mga browser sa JavaScript at ang mga katangian ng oras ng pagpapatupad ng mga operasyon, depende sa mga tampok ng JIT, CPU at mga mekanismo ng paglalaan ng memorya. Ang pagtukoy sa mga katangian ay ginagawa sa pamamagitan ng pagbuo ng isang listahan ng lahat ng mga bagay na makukuha mula sa JavaScript. Tulad ng nangyari, ang bilang ng mga bagay ay direktang nauugnay sa browser engine at sa bersyon nito.

function getProperties(o) {
varresult = [];
habang (o !== null) {
resulta = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
resulta ng pagbabalik;
}

Halimbawa, para sa Firefox, ang suporta para sa 2247 na mga pag-aari ay idineklara sa dokumentasyon, habang ang aktwal na bilang ng ilang mga pag-aari, na isinasaalang-alang ang mga hindi dokumentado, ay 15709 (sa Tor Browser - 15639), para sa mga katangian ng Chrome 2698 ay ipinahayag, ngunit 13570 ay aktwal na inaalok (sa Chrome para sa Android - 13119) . Ang bilang at mga halaga ng mga pag-aari ay nag-iiba-iba sa bawat bersyon ng browser at sa iba't ibang operating system.

Ang mga halaga at presensya ng ilang mga katangian ay maaaring gamitin upang matukoy ang uri ng OS. Halimbawa, sa Kubuntu ang window.innerWidth property ay nakatakda sa 1000, at sa Windows 10 ito ay nakatakda sa 1001. Sa Windows, ang window.navigator.activeVRDisplays property ay available, ngunit sa Linux ito ay hindi. Maraming partikular na tawag ang ibinigay para sa Android, ngunit walang window.SharedWorker. Upang makilala ang operating system, iminungkahi din na gamitin ang pagsusuri ng mga parameter ng WebGL, ang estado kung saan nakasalalay sa mga driver. Bilang karagdagan, ang pagtawag sa WEBGL_debug_renderer_infoextension ay nagbibigay-daan sa iyong makakuha ng impormasyon tungkol sa OpenGL rendering engine, na iba para sa bawat operating system.

Upang matukoy ang CPU, ang isang pagtatasa ng mga pagkakaiba sa oras ng pagpapatupad ng iba't ibang mga tipikal na bloke ng code ay ginagamit, ang pagproseso nito ay nakasalalay sa arkitektura ng set ng pagtuturo, na isinasaalang-alang ang pag-uugali ng JIT (natutukoy kung gaano karaming mga rehistro ng CPU sasali at kung saan ang JIT ay bubuo ng mahusay na code na may mga pag-optimize at kinasasangkutan ng mga pinahabang tagubilin, at kapag hindi ). Upang matukoy ang uri ng sistema ng paglalaan ng memorya at operating system, ang pagkakaiba sa oras ng paglalaan ng memorya para sa iba't ibang mga istraktura ay sinusukat din, na maaaring magamit upang hatulan ang laki ng mga bloke ng memorya.

Ang mga parameter na tinutukoy sa panahon ng pagpapatupad ng script ay inihambing sa mga reference na halaga na tipikal para sa mga paunang nasubok na kapaligiran. Sa panahon ng pagsubok, ginawang posible ng binuo na pamamaraan na tumpak na matukoy ang 40 iba't ibang mga kapaligiran ng pagsubok, pagtukoy sa mga bersyon ng mga browser na ginamit, ang tagagawa ng CPU, ang operating system na ginamit, at kung ito ay tumatakbo sa tunay na hardware o sa isang virtual machine.

Hiwalay, ang posibilidad ng pagtukoy ng mga add-on ng browser at maging ang mga indibidwal na setting ng add-on, kabilang ang mga add-on na idinisenyo upang harangan ang mga nakatagong paraan ng pagkakakilanlan o aktibidad ng pribadong pagba-browse. Sa konteksto ng iminungkahing pamamaraan, ang mga naturang karagdagan ay nagiging isa pang mapagkukunan ng data para sa pagkakakilanlan. Natutukoy ang mga karagdagan sa pamamagitan ng pagtatasa ng mga pagbaluktot ng mga parameter ng orihinal na kapaligiran na ipinakilala ng mga karagdagan.

Sa iba pang paraan ng pagkilala, posibleng tandaan ang pagsasaalang-alang ng naturang hindi direktang data bilang resolusyon ng screen, listahan ng mga sinusuportahang uri ng MIME, mga opsyon na tukoy sa header (HTTP / 2 ΠΈ HTTPS), pagsusuri ng itinatag mga plugin at font, pagkakaroon ng ilang partikular na Web API na partikular sa mga video card mga tampok pag-render gamit ang WebGL at Canvas, pagpapatakbo gamit ang CSS, pagsusuri ng mga tampok ng pagtatrabaho sa daga ΠΈ isang keyboard.

Pinagmulan: opennet.ru

Magdagdag ng komento