Een groep onderzoekers van de Technische Universiteit Graz (Oostenrijk), eerder bekend om hun ontwikkeling van aanvals-methoden , en , informatie over een nieuwe analysetechniek via zijkanalen, waarmee de exacte versie van de browser, het gebruikte besturingssysteem, de CPU-architectuur en de toepassing van extensies ter bestrijding van verborgen identificatie kunnen worden vastgesteld.
Om de genoemde parameters vast te stellen, is het voldoende om in de browser een door de onderzoekers voorbereide JavaScript-code uit te voeren. In de praktijk kan de methode niet alleen als een aanvullende bron voor indirecte identificatie van de gebruiker worden gebruikt, maar ook voor het bepalen van de parameters van de systeemomgeving voor gerichte exploitatie in aanmerking nemend het besturingssysteem, de architectuur en de browser. De methode is ook effectief bij het gebruik van browsers met implementaties van mechanismen ter blokkering van verborgen identificatie, zoals de Tor-browser. De broncodes van de prototypen die de methode implementeren valt onder de MIT-licentie.
De identificatie is gebaseerd op het uitlichten van patronen van eigenschappen die typisch zijn voor verschillende browsers in JavaScript, evenals kenmerken van de uitvoeringstijd van bewerkingen, die afhangen van de kenmerken van JIT, CPU en geheugenallocatiemechanismen. De identificatie van eigenschappen wordt uitgevoerd door een lijst te genereren van alle objecten die toegankelijk zijn vanuit JavaScript. Zoals het blijkt, correleert het aantal objecten rechtstreeks met de browser-engine en de versie ervan.
function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}
Bijvoorbeeld, voor Firefox wordt in de documentatie de ondersteuning van 2247 eigenschappen aangekondigd, terwijl het werkelijke aantal gedefinieerde eigenschappen, rekening houdend met niet-gedocumenteerde, 15709 bedraagt (in de Tor-browser - 15639), voor Chrome worden 2698 eigenschappen geclaimd, terwijl daadwerkelijk 13570 worden aangeboden (in Chrome voor Android - 13119). Het aantal en de waarden van de eigenschappen wijzigen van versie tot versie van de browser en bij het gebruik van verschillende besturingssystemen.
De waarden en de beschikbaarheid van bepaalde eigenschappen kunnen worden gebruikt om het type besturingssysteem te bepalen. Bijvoorbeeld, in Kubuntu heeft de eigenschap window.innerWidth een waarde van 1000, terwijl deze in Windows 10 1001 is. In Windows is er de eigenschap window.navigator.activeVRDisplays, terwijl dit niet beschikbaar is in Linux. Voor Android zijn er veel specifieke oproepen, maar geen window.SharedWorker. Voor de identificatie van het besturingssysteem wordt ook voorgesteld om de parameters van WebGL te analyseren, waarvan de status afhankelijk is van de stuurprogramma's. Bovendien biedt de oproep WEBGL_debug_renderer_infoextension informatie over de OpenGL-renderengine, die voor elk besturingssysteem anders is.
Voor de CPU-identificatie wordt de tijdsverschil in uitvoering van verschillende typische codeblokken geƫvalueerd, waarvan de verwerking afhangt van de architectuur van de instructieset, rekening houdend met het gedrag van JIT (bepaald hoeveel CPU-registers worden gebruikt en wanneer JIT effectieve code met optimalisaties en het gebruik van uitgebreide instructies genereert, en wanneer niet). Om het type geheugentoewijzingssysteem en het besturingssysteem te bepalen, wordt ook het tijdsverschil van geheugentoewijzing voor verschillende structuren gemeten, waaraan men de grootte van de geheugentoevoeringen kan afleiden.
Tijdens de uitvoering van het script worden bepaalde parameters vergeleken met referentiewaarden die typisch zijn voor vooraf geteste omgevingen. Tijdens de controle stelde de ontwikkelde techniek in staat om 40 verschillende testomgevingen nauwkeurig te identificeren, inclusief de versies van de gebruikte browsers, de fabrikant van de CPU, het gebruikte besturingssysteem en de detectie of het draait op echte hardware of in een virtuele machine.
Er wordt apart opgemerkt dat het mogelijk is om browserextensies en zelfs specifieke instellingen van extensies te identificeren, inclusief extensies die zijn ontworpen om methoden voor verborgen identificatie of het gebruik van de incognitomodus te blokkeren. In de context van de voorgestelde methode worden dergelijke extensies een extra gegevensbron voor identificatie. Extensies worden gedefinieerd door het evalueren van de vervormingen van de oorspronkelijke omgevingsparameters die door de extensies worden aangebracht.
Andere identificatiemethoden omvatten het in overweging nemen van indirecte gegevens zoals , ondersteunde MIME-typen, specifieke parameters in de headers ( en ) plugins en lettertypen renderingen met behulp van WebGL en , met CSS, analyse van de kenmerken van de interactie met en .
Bron: opennet.ru
