En grupp forskare frĂ„n Graz tekniska universitet (Ăsterrike), tidigare kĂ€nd för utvecklingen av attackmetoder , och , uppgifter om en ny analysmetod via sidokanaler som möjliggör att bestĂ€mma den exakta versionen av webblĂ€saren, det anvĂ€nda operativsystemet, CPU-arkitekturen och anvĂ€ndningen av tillĂ€gg för att motverka dold identifiering.
För att faststÀlla dessa parametrar rÀcker det med att köra JavaScript-kod som forskarna har förberett i webblÀsaren. I praktiken kan metoden anvÀndas inte bara som en ytterligare kÀlla för indirekt identifiering av anvÀndaren, utan ocksÄ för att bestÀmma parametrarna för systemmiljön för mÄlmedveten anvÀndning av exploits med hÀnsyn till OS, arkitektur och webblÀsare. Metoden Àr effektiv Àven nÀr den anvÀnds i webblÀsare som implementerar mekanismer för att blockera dold identifiering, som Tor Browser. KÀllkoden till prototypen som implementerar metoden licensieras under MIT.
BestÀmningen görs pÄ basis av mönster av tillstÄndsegenskaper i JavaScript och egenskaperna för körningstiderna av operationer, som beror pÄ funktionerna i JIT, CPU och minneshanteringsmekanismer. BestÀmningen av egenskaper görs genom att generera en lista över alla objekt som Àr tillgÀngliga frÄn JavaScript. Som det visade sig korrelerar antalet objekt direkt med webblÀsarens motor och dess version.
function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}
Till exempel, för Firefox anges i dokumentationen att det finns stöd för 2247 egenskaper, medan det verkliga antalet identifierade egenskaper, med hĂ€nsyn till icke-dokumenterade, uppgĂ„r till 15709 (i Tor Browser â 15639), för Chrome anges 2698 egenskaper, men det verkliga erbjudandet Ă€r 13570 (i Chrome för Android â 13119). Antalet och vĂ€rdena pĂ„ egenskaperna varierar frĂ„n version till version av webblĂ€saren och vid anvĂ€ndning av olika operativsystem.
VÀrden och förekomsten av olika egenskaper kan anvÀndas för att bestÀmma typen av operativsystem. Till exempel, i Kubuntu sÀtts egenskapen window.innerWidth till vÀrdet 1000, medan i Windows 10 sÀtts den till 1001. I Windows finns egenskapen window.navigator.activeVRDisplays, medan den saknas i Linux. För Android finns mÄnga specifika anrop, men window.SharedWorker finns inte. För att identifiera operativsystemet föreslÄs det Àven att anvÀnda analys av WebGL-parametrar, vars tillstÄnd beror pÄ drivrutiner. Dessutom tillÄter anropet WEBGL_debug_renderer_infoextension att fÄ information om OpenGL-renderingsmotorn, som varierar beroende pÄ operativsystem.
För att bestÀmma CPU anvÀnds en utvÀrdering av tidsdifferenserna i körningen av olika typiska kodblock, vars bearbetning beror pÄ arkitekturen av kommandoset med hÀnsyn till JIT-beteende (det faststÀlls hur mÄnga CPU-register som kommer att anvÀndas och i vilka fall JIT kommer att generera effektiv kod med optimeringar och inbegripande av utökade instruktioner, och nÀr det inte gör det). För att bestÀmma typen av minnesfördelning och operativsystem mÀts ocksÄ tidsdifferensen för minnesallokering för olika strukturer, vilket ger en uppfattning om storleken pÄ minnesblock.
De parametrar som faststÀlls under körningen av skriptet jÀmförs med referensvÀrden som Àr typiska för förhandsprövade miljöer. Under kontrollen gjorde den utvecklade tekniken det möjligt att exakt identifiera 40 olika testmiljöer, vilket faststÀllde versionerna av de anvÀnda webblÀsarna, CPU-tillverkaren, det anvÀnda operativsystemet och om det kördes pÄ riktig hÄrdvara eller i en virtuell maskin.
SÀrskilt mÀrks möjligheten att identifiera webblÀsartillÀgg och till och med specifika instÀllningar för tillÀgg, inklusive tillÀgg som Àr avsedda för att blockera metoder för dold identifiering eller aktiviteter för privat surfning. I kontexten av den föreslagna metoden blir sÄdana tillÀgg en ytterligare datakÀlla för identifiering. TillÀgg identifieras genom att utvÀrdera förvrÀngningar av parametrarna i den ursprungliga miljön som införs av tillÀggen.
Bland andra identifieringsmetoder kan indirekta data som , en lista över stödda MIME-typer, specifika parametrar i rubriker ( och ), analys av installerade , tillgÀnglighet av vissa Web API:er, specifika för grafikkort rendering med hjÀlp av WebGL och , med CSS, analys av arbetssÀtt med och .
KĂ€lla: opennet.ru
