Kasper, een apparaatscanner voor speculatieve code in de Linux-kernel

Een groep onderzoekers van de Vrije Universiteit van Amsterdam onthulden via een blogpost een tool genaamd "kasper" welk hoogtepunt dat het is ontworpen om codefragmenten te identificeren in de Linux-kernel die kan worden gebruikt om te exploiteren Spectre-klasse kwetsbaarheden veroorzaakt door speculatieve code-uitvoering door de processor.

Voor degenen die zich niet bewust zijn van dit type aanval, moeten ze weten dat: klasse-kwetsbaarheden zoals Spectre v1 maken het mogelijk om de inhoud van het geheugen te bepalen, is een bepaald script (gadgets) vereist in geprivilegieerde code, wat leidt tot speculatieve uitvoering van instructies.

Om te optimaliseren, de processor begint dergelijke apparaten in een speculatieve modus te gebruikenof, bepaalt vervolgens dat de vertakkingsvoorspelling niet is gerechtvaardigd en zet de bewerkingen terug naar hun oorspronkelijke staat, maar de gegevens die tijdens speculatieve uitvoering zijn verwerkt, zitten in de cache en microarchitectuurbuffers en zijn beschikbaar voor extractie met behulp van verschillende methoden voor het bepalen van resterende gegevens via derde- partij kanalen.

Gadgetscanhulpmiddelen gebaseerd op patronen eerder beschikbaar voor de Spectr-kwetsbaarheide vertoonde een zeer hoog percentage valse positieven, terwijl veel echte gadgets verloren gingen (experimenten toonden aan dat 99% van de gadgets die door dergelijke tools werden gedetecteerd, niet voor aanvallen konden worden gebruikt, en 33% van de werkende gadgets waren geen apparaten die tot een aanval konden leiden).

Introductie van Kasper, een transiënte (of speculatieve) scanner voor uitvoeringsapparaten. Het gebruikt corruptieanalysebeleid om een ​​aanvaller te modelleren die in staat is om willekeurige software-/hardwarekwetsbaarheden op een tijdelijk pad te misbruiken. 

Over Casper

Om de kwaliteit te verbeteren van de identificatie van problematische apparaten, Kasper modelleert de kwetsbaarheden die een aanvaller kan gebruiken bij elke stap van aanvallen van de Spectre-klasse: problemen worden gemodelleerd om gegevenscontrole mogelijk te maken (bijvoorbeeld vervanging van gegevens van aanvallers in micro-architecturale structuren om latere speculatieve uitvoering te beïnvloeden) met behulp van LVI-klasse aanvallen, toegang krijgen tot gevoelige informatie (bijvoorbeeld wanneer de buffer buiten de grenzen is of geheugen wordt gebruikt nadat het is vrijgemaakt), en gevoelige informatie lekt (bijvoorbeeld door de status van de processorcache te ontleden of door de MDS-methode te gebruiken).

Modelleer een aanvaller die in staat is gegevens te controleren (bijvoorbeeld via geheugenmassage of LVI-waarde-injectie), toegang te krijgen tot geheimen (bijvoorbeeld via out-of-bounds toegang of gebruik na gratis ) en deze geheimen te lekken (bijvoorbeeld via cache-gebaseerde, MDS- gebaseerde of op poortconflicten gebaseerde geheime kanalen). 

Bij het uitvoeren van de test, kernelcontacten runtime-bibliotheken door Kasper en controleer of ze op LLVM-niveau werken. Tijdens de verificatie wordt speculatieve code-uitvoering geëmuleerd door het controlepuntherstelmechanisme, dat specifiek een onjuist voorspelde codevork uitvoert, waarna deze terugkeert naar de oorspronkelijke staat voordat de vork begon.

Kasper probeert ook verschillende software- en hardwarekwetsbaarheden te modelleren, analyseert de invloed van architecturale en microarchitecturale effecten en voert fuzzing-tests uit van mogelijke aanvallersacties. Voor de analyse van de uitvoeringsstromen wordt de DataFlowSanitizer-poort voor de Linux-kernel gebruikt en voor de fuzzing-tests een aangepaste versie van het syzkaller-pakket.

Als gevolg hiervan ontdekte Kasper 1.379 voorheen onbekende apparaten in de zwaar geharde Linux-kernel. We hebben onze bevindingen bevestigd door een end-to-end proof-of-concept exploit te demonstreren voor een van de gevonden apparaten.

Tijdens het scannen van de Linux-kernel met Kasper werden 1379 voorheen onbekende apparaten geïdentificeerd, wat zou kunnen leiden tot datalekken tijdens speculatieve uitvoering van instructies.

Opgemerkt wordt dat misschien slechts enkele van hen echte problemen kunnen opleveren, maar om aan te tonen dat er een reëel gevaar is, en niet alleen een theoretisch, werd een werkend prototype van een exploit ontwikkeld voor een van de problematische codefragmenten, wat leidde tot een lek van informatie over het kernelgeheugen.

Eindelijk als u er meer over wilt weten over Kasper, dat zou je moeten weten de broncode Het wordt gedistribueerd onder de Apache 2.0-licentie.

bron: https://www.vusec.net


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.