Introductie van een nieuwe techniek voor verborgen systeem- en browseridentificatie

Een groep onderzoekers van de Technische Universiteit van Graz (Oostenrijk), voorheen bekend om het ontwikkelen van aanvalsmethoden MDS, NetSpectre и Gooihamer, onbedekt Informatie over een nieuwe kanaalanalysetechniek van derden waarmee u de exacte versie van de browser, het gebruikte besturingssysteem, de CPU-architectuur en het gebruik van add-ons om verborgen identificatie tegen te gaan, kunt bepalen.

Om deze parameters te bepalen, volstaat het om JavaScript-code uit te voeren die door onderzoekers in de browser is opgesteld. In de praktijk kan de methode niet alleen worden gebruikt als een extra bron voor indirecte identificatie van de gebruiker, maar ook om de parameters van de systeemomgeving te bepalen voor het gericht gebruik van exploits, rekening houdend met het besturingssysteem, de architectuur en de browser. De methode is ook effectief bij het gebruik van browsers die verborgen identificatieblokkeringsmechanismen implementeren, zoals Tor Browser. Broncodeprototype met methode-implementatie gepubliceerd onder de MIT-licentie.

De bepaling wordt gedaan op basis van het identificeren van de eigenschapsstatuspatronen in JavaScript die kenmerkend zijn voor verschillende browsers en de kenmerken van de uitvoeringstijd van bewerkingen, afhankelijk van de kenmerken van de JIT-, CPU- en geheugentoewijzingsmechanismen. Het definiëren van eigenschappen gebeurt door een lijst te genereren van alle objecten die toegankelijk zijn via JavaScript. Het bleek dat het aantal objecten rechtstreeks verband houdt met de browserengine en de versie ervan.

functie getProperties(o) {
var resultaat = [];
terwijl (o !== nul) {
resultaat = resultaat.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
resultaat teruggeven;
}

Voor Firefox vermeldt de documentatie bijvoorbeeld ondersteuning voor 2247 eigenschappen, terwijl het werkelijke aantal gedefinieerde eigenschappen, inclusief niet-gedocumenteerde eigenschappen, 15709 is (in Tor Browser - 15639), voor Chrome worden 2698 eigenschappen gedeclareerd, maar in werkelijkheid worden 13570 aangeboden (in Chroom voor Android - 13119). Het aantal en de waarden van eigenschappen variëren van browserversie tot browserversie en tussen verschillende besturingssystemen.

De waarden en aanwezigheid van bepaalde eigenschappen kunnen worden gebruikt om het type besturingssysteem te bepalen. In Kubuntu is de eigenschap window.innerWidth bijvoorbeeld ingesteld op 1000 en in Windows 10 is deze ingesteld op 1001. De eigenschap window.navigator.activeVRDisplays is beschikbaar op Windows, maar niet op Linux. Voor Android zijn veel specifieke oproepen mogelijk, maar window.SharedWorker niet. Om het besturingssysteem te identificeren, wordt ook voorgesteld om analyse van WebGL-parameters te gebruiken, waarvan de status afhangt van de stuurprogramma's. Bovendien kunt u door WEBGL_debug_renderer_infoextension aan te roepen informatie verkrijgen over de OpenGL-rendering-engine, die voor elk besturingssysteem anders is.

Om de CPU te bepalen, wordt een beoordeling van verschillen in de uitvoeringstijd van verschillende typische codeblokken gebruikt, waarvan de verwerking afhangt van de architectuur van de instructieset, rekening houdend met JIT-gedrag (er wordt bepaald hoeveel CPU-registers zullen worden gebruikt en in welke gevallen JIT efficiënte code zal genereren met optimalisaties en het gebruik van uitgebreide instructies, en wanneer niet). Om het type geheugentoewijzingssysteem en besturingssysteem te bepalen, wordt ook het verschil in geheugentoewijzingstijd voor verschillende structuren gemeten, wat kan worden gebruikt om de grootte van geheugenblokken te beoordelen.

De parameters die tijdens de uitvoering van het script worden bepaald, worden vergeleken met referentiewaarden die typisch zijn voor eerder geteste omgevingen. Tijdens de test maakte de ontwikkelde techniek het mogelijk om 40 verschillende testomgevingen nauwkeurig te identificeren, waarbij de versies van de gebruikte browsers, de CPU-fabrikant, het gebruikte besturingssysteem en het feit dat het op echte hardware of op een virtuele machine draaide, werden geïdentificeerd.

Afzonderlijk wordt opgemerkt dat het mogelijk is om browser-add-ons en zelfs individuele add-on-instellingen te definiëren, inclusief add-ons die zijn ontworpen om verborgen identificatiemethoden of activiteit in de privé-browsingmodus te blokkeren. In de context van de voorgestelde methode worden dergelijke toevoegingen een nieuwe bron van gegevens voor identificatie. Toevoegingen worden bepaald door het beoordelen van de vervormingen van de parameters van de oorspronkelijke omgeving die door de toevoegingen worden geïntroduceerd.

Andere identificatiemethoden omvatten het rekening houden met indirecte gegevens zoals schermresolutie, lijst met ondersteunde MIME-typen, specifieke parameters in headers (HTTP / 2 и HTTPS), analyse van geïnstalleerd plug-ins en lettertypen, beschikbaarheid van bepaalde web-API's, specifiek voor videokaarten kenmerken renderen met WebGL en Canvas print, manipulatie met CSS, analyse van kenmerken van het werken met muis и toetsenbord.

Bron: opennet.ru

Voeg een reactie