Kasper, en scanner for spekulative kodeudførelsesproblemer i Linux-kernen, er nu tilgængelig

Et team af forskere fra Free University of Amsterdam har udgivet et Kasper-værktøjssæt designet til at identificere kodestykker i Linux-kernen, der kan bruges til at udnytte Spectre-klassens sårbarheder forårsaget af spekulativ kodekørsel på processoren. Kildekoden til værktøjssættet distribueres under Apache 2.0-licensen.

Lad os huske på, at for at udføre angreb som Spectre v1, der gør det muligt at bestemme indholdet af hukommelsen, kræves tilstedeværelsen i den privilegerede kode af en bestemt sekvens af kommandoer (gadgets), hvilket fører til spekulativ udførelse af instruktioner . Til optimeringsformål begynder processoren at udføre sådanne gadgets i spekulativ tilstand, bestemmer derefter, at grenforudsigelsen ikke var berettiget og ruller operationerne tilbage til deres oprindelige tilstand, men de data, der behandles under spekulativ eksekvering, ender i cachen og mikroarkitektoniske buffere og er tilgængelig for hentning fra dem ved hjælp af forskellige metoder til at bestemme resterende data gennem tredjepartskanaler.

Tidligere tilgængelige værktøjer til at scanne gadgets for Spectre-sårbarheden, baseret på søgning efter typiske mønstre, viste et meget højt niveau af falske positiver, mens der manglede mange rigtige gadgets (eksperimenter viste, at 99 % af gadgets identificeret af sådanne værktøjer ikke kunne bruges til angreb , og 33 % af fungerende gadgets, der kunne føre til et angreb, blev ikke bemærket).

For at forbedre kvaliteten af ​​at identificere problematiske gadgets modellerer Kasper sårbarheder, som en angriber kan udnytte ved hvert trin i udførelsen af ​​Spectre-klasseangreb - problemer, der tillader datakontrol, modelleres (f.eks. substituering af angriberdata i mikroarkitektoniske strukturer for at påvirke efterfølgende spekulativ eksekvering vha. LVI-klasseangreb), få ​​adgang til fortrolig information (f.eks. når du går ud over buffergrænser eller bruger hukommelse, efter at den er frigivet) og lækker fortrolig information (f.eks. ved at analysere tilstanden af ​​processorcachen eller bruge MDS-metoden).

Kasper, en scanner for spekulative kodeudførelsesproblemer i Linux-kernen, er nu tilgængelig

Ved test er kernen forbundet med Kasper runtime-biblioteker og kontroller, der kører på LLVM-niveau. Kontrolprocessen emulerer spekulativ kodeudførelse, implementeret ved hjælp af checkpoint-gendannelsesmekanismen, som specifikt udfører en forkert forudsagt kodegren og derefter ruller tilbage til den oprindelige tilstand, før grenen begyndte. Kasper forsøger også at simulere forskellige software- og hardwaresårbarheder, analyserer virkningen af ​​arkitektoniske og mikroarkitektoniske effekter og udfører fuzz-test af mulige angriberhandlinger. For at analysere eksekveringsflows bruges DataFlowSanitizer-porten til Linux-kernen, og til fuzzing-test bruges en modificeret version af syzkaller-pakken.

Kasper, en scanner for spekulative kodeudførelsesproblemer i Linux-kernen, er nu tilgængelig

En scanning af Linux-kernen ved hjælp af Kasper identificerede 1379 hidtil ukendte gadgets, der potentielt kan føre til datalækage under spekulativ udførelse af instruktioner. Det bemærkes, at måske kun nogle af dem kan udgøre reelle problemer, men for at demonstrere, at der er en reel fare, og ikke kun en teoretisk, blev der udviklet en fungerende prototype af en udnyttelse til et af de problematiske kodefragmenter, hvilket førte til information lækage fra kernehukommelsen.

Kilde: opennet.ru

Tilføj en kommentar