Kasper, een scanner voor speculatieve code-uitvoeringsproblemen in de Linux-kernel, is nu beschikbaar

Een team van onderzoekers van de Vrije Universiteit van Amsterdam heeft een Kasper-toolkit gepubliceerd die is ontworpen om codefragmenten in de Linux-kernel te identificeren die kunnen worden gebruikt om kwetsbaarheden van de Spectre-klasse te misbruiken die worden veroorzaakt door speculatieve code-uitvoering op de processor. De broncode voor de toolkit wordt gedistribueerd onder de Apache 2.0-licentie.

Laten we niet vergeten dat voor het uitvoeren van aanvallen zoals Spectre v1, die het mogelijk maken om de inhoud van het geheugen te bepalen, de aanwezigheid in de bevoorrechte code van een bepaalde reeks opdrachten (gadgets) vereist is, wat leidt tot speculatieve uitvoering van instructies. . Voor optimalisatiedoeleinden begint de processor dergelijke gadgets in de speculatieve modus uit te voeren, stelt vervolgens vast dat de vertakkingsvoorspelling niet gerechtvaardigd was en draait de bewerkingen terug naar hun oorspronkelijke staat, maar de gegevens die tijdens de speculatieve uitvoering worden verwerkt, komen terecht in de cache en microarchitectuurbuffers en is beschikbaar om van hen op te halen met behulp van verschillende methoden om resterende gegevens te bepalen via kanalen van derden.

Eerder beschikbare tools voor het scannen van gadgets op de Spectre-kwetsbaarheid, gebaseerd op het zoeken naar typische patronen, vertoonden een zeer hoog niveau van valse positieven, terwijl veel echte gadgets werden gemist (experimenten toonden aan dat 99% van de gadgets die door dergelijke tools werden geïdentificeerd, niet voor aanvallen konden worden gebruikt en 33% van de werkende gadgets die tot een aanval zouden kunnen leiden, werden niet opgemerkt).

Om de kwaliteit van het identificeren van problematische gadgets te verbeteren, modelleert Kasper kwetsbaarheden die een aanvaller kan misbruiken bij elke stap van het uitvoeren van Spectre-klasse-aanvallen. Problemen die gegevenscontrole mogelijk maken, worden gemodelleerd (bijvoorbeeld het vervangen van gegevens van de aanvaller in microarchitecturale structuren om de daaropvolgende speculatieve uitvoering te beïnvloeden met behulp van LVI-klasse-aanvallen), toegang krijgen tot vertrouwelijke informatie (bijvoorbeeld door de buffergrenzen te overschrijden of geheugen te gebruiken nadat dit is vrijgegeven) en vertrouwelijke informatie te lekken (bijvoorbeeld door de status van de processorcache te analyseren of de MDS-methode te gebruiken).

Kasper, een scanner voor speculatieve code-uitvoeringsproblemen in de Linux-kernel, is nu beschikbaar

Tijdens het testen wordt de kernel gekoppeld aan Kasper-runtimebibliotheken en worden er controles uitgevoerd op LLVM-niveau. Het controleproces emuleert speculatieve code-uitvoering, geïmplementeerd met behulp van het checkpoint-restore-mechanisme, dat specifiek een onjuist voorspelde codevertakking uitvoert, en vervolgens terugkeert naar de oorspronkelijke staat voordat de vertakking begon. Kasper probeert ook verschillende software- en hardwarekwetsbaarheden te simuleren, analyseert de impact van architecturale en microarchitecturale effecten en voert fuzz-tests uit van mogelijke acties van aanvallers. Om uitvoeringsstromen te analyseren, wordt de DataFlowSanitizer-poort voor de Linux-kernel gebruikt, en voor fuzzing-testen wordt een aangepaste versie van het syzkaller-pakket gebruikt.

Kasper, een scanner voor speculatieve code-uitvoeringsproblemen in de Linux-kernel, is nu beschikbaar

Een scan van de Linux-kernel met Kasper identificeerde 1379 voorheen onbekende gadgets die mogelijk tot datalekken leiden tijdens speculatieve uitvoering van instructies. Opgemerkt wordt dat misschien slechts enkele ervan echte problemen kunnen opleveren, maar om aan te tonen dat er een reëel gevaar bestaat, en niet slechts een theoretisch gevaar, werd voor een van de problematische codefragmenten een werkend prototype van een exploit ontwikkeld, dat tot informatie leidde. lekkage uit het kernelgeheugen.

Bron: opennet.ru

Voeg een reactie