Kasper, en enhetsskanner for spekulativ kode i Linux-kjernen

En gruppe av Det avslørte forskere fra Free University of Amsterdam via et blogginnlegg et verktøy som heter "casper" som fremhever at det er designet for å identifisere kodebiter i Linux-kjernen som kan brukes til å utnytte Spekterklassesårbarheter forårsaket av spekulativ kodekjøring av prosessoren.

For de som ikke er klar over denne typen angrep, bør de vite det klassesårbarheter som Spectre v1 lar deg bestemme innholdet i minnet, kreves et bestemt skript (gadgets) i privilegert kode, noe som fører til spekulativ utførelse av instruksjoner.

For å optimalisere, prosessoren begynner å kjøre slike enheter i en spekulativ moduseller, bestemmer deretter at grenprediksjonen ikke har blitt rettferdiggjort og ruller tilbake operasjonene til sin opprinnelige tilstand, men dataene som behandles under spekulativ utførelse sitter i buffer- og mikroarkitekturbufferne og er tilgjengelige for utvinning ved bruk av ulike metoder for gjenværende databestemmelse gjennom tredje- partikanaler.

Gadget-skanneverktøy basert på mønstre tidligere tilgjengelig for Spectr-sårbarhetene viste en veldig høy andel falske positiver, mens mange virkelige gadgets gikk tapt (eksperimenter viste at 99 % av gadgetene oppdaget av slike verktøy ikke kunne brukes til angrep, og 33 % av de fungerende var ikke observerte enheter som kunne føre til et angrep).

Vi introduserer Kasper, en forbigående (eller spekulativ) skanner for utførelsesenheter. Den bruker retningslinjer for korrupsjonsanalyse for å modellere en angriper som er i stand til å utnytte vilkårlige programvare-/maskinvaresårbarheter i en forbigående bane. 

Om Casper

For å forbedre kvaliteten av identifisering av problematiske enheter, Kasper modellerer sårbarhetene som en angriper kan bruke ved hvert trinn i Spectre-klasse-angrep: problemer modelleres for å tillate datakontroll (for eksempel substitusjon av angriperdata i mikroarkitektoniske strukturer for å påvirke påfølgende spekulativ utførelse) ved bruk av LVI-klasse-angrep , få tilgang til sensitiv informasjon (for eksempel når buffer er utenfor grensene eller minnet brukes etter at det har blitt frigjort), og lekker sensitiv informasjon (for eksempel ved å analysere tilstanden til prosessorbufferen eller bruke MDS-metoden ).

Modellere en angriper som er i stand til å kontrollere data (f.eks. via minnemassasje eller LVI-verdiinjeksjon), få ​​tilgang til hemmeligheter (f.eks. via tilgang utenfor grensene eller bruk etter gratis ) og lekke disse hemmelighetene (f.eks. gjennom cache-basert, MDS- baserte eller portkonflikter-baserte skjulte kanaler). 

Når du utfører testen, kjernekontakter kjøretidsbiblioteker av Kasper og verifisere at de fungerer på LLVM-nivå. Under verifisering emuleres kjøring av spekulativ kode av kontrollpunktgjenopprettingsmekanismen, som spesifikt kjører en feil forutsagt kodefork, hvoretter den går tilbake til sin opprinnelige tilstand før forgreningen begynte.

Kasper prøver også å modellere ulike programvare- og maskinvaresårbarheter, analyserer påvirkningen av arkitektoniske og mikroarkitektoniske effekter og utfører uklare tester av mulige angriperhandlinger. For analyse av utførelsesflytene brukes DataFlowSanitizer-porten for Linux-kjernen, og for fuzzing-testene en modifisert versjon av syzkaller-pakken.

Som et resultat oppdaget Kasper 1.379 tidligere ukjente enheter i den sterkt herdede Linux-kjernen. Vi bekreftet funnene våre ved å demonstrere en ende-til-ende proof-of-concept-utnyttelse for en av enhetene som ble funnet.

Under skanning av Linux-kjernen med Kasper, ble 1379 XNUMX tidligere ukjente enheter identifisert, noe som kan føre til datalekkasje under spekulativ utførelse av instruksjoner.

Det bemerkes at kanskje bare noen av dem kan by på reelle problemer, men for å vise at det er en reell fare, og ikke bare en teoretisk, ble det utviklet en fungerende prototype av en utnyttelse for en av de problematiske kodebitene, som førte til en lekkasje av informasjon om kjerneminne.

Endelig hvis du er interessert i å vite mer om det om Kasper, det burde du vite kildekoden Den distribueres under Apache 2.0-lisensen.

Fuente: https://www.vusec.net


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.