Kasper, en skanner för problem med spekulativ kodexekvering i Linux-kärnan, är nu tillgänglig

Ett team av forskare från Free University of Amsterdam har publicerat en Kasper-verktygssats utformad för att identifiera kodsnuttar i Linux-kärnan som kan användas för att utnyttja sårbarheter i Specter-klass som orsakas av spekulativ kodexekvering på processorn. Källkoden för verktygslådan distribueras under Apache 2.0-licensen.

Låt oss komma ihåg att för att utföra attacker som Spectre v1, som gör det möjligt att bestämma innehållet i minnet, krävs närvaron i den privilegierade koden av en viss sekvens av kommandon (prylar), vilket leder till spekulativ exekvering av instruktioner . För optimeringsändamål börjar processorn exekvera sådana prylar i spekulativt läge, bestämmer sedan att grenförutsägelsen inte var motiverad och rullar tillbaka operationerna till deras ursprungliga tillstånd, men data som behandlas under spekulativ exekvering hamnar i cachen och mikroarkitektoniska buffertar och är tillgänglig för hämtning från dem med hjälp av olika metoder för att fastställa restdata via tredjepartskanaler.

Tidigare tillgängliga verktyg för att skanna prylar efter Spectre-sårbarheten, baserade på sökning efter typiska mönster, visade en mycket hög nivå av falska positiva resultat, samtidigt som de saknade många riktiga prylar (experiment visade att 99 % av prylar som identifierats av sådana verktyg inte kunde användas för attacker , och 33 % av fungerande prylar som kunde leda till en attack märktes inte).

För att förbättra kvaliteten på att identifiera problematiska prylar, modellerar Kasper sårbarheter som en angripare kan utnyttja vid varje steg av att utföra Spectre-klassattacker - problem som tillåter datakontroll modelleras (till exempel ersätter angripardata i mikroarkitektoniska strukturer för att påverka efterföljande spekulativ exekvering med hjälp av LVI-klassattacker), få ​​tillgång till konfidentiell information (till exempel när man går över buffertgränser eller använder minne efter att det har frigjorts) och läcker konfidentiell information (till exempel genom att analysera tillståndet för processorcachen eller använda MDS-metoden).

Kasper, en skanner för problem med spekulativ kodexekvering i Linux-kärnan, är nu tillgänglig

Vid testning är kärnan länkad till Kasper runtime-bibliotek och kontroller som körs på LLVM-nivå. Kontrollprocessen emulerar spekulativ kodexekvering, implementerad med hjälp av checkpoint-restore-mekanismen, som specifikt exekverar en felaktigt förutspådd kodgren, och sedan rullar tillbaka till det ursprungliga tillståndet innan grenen började. Kasper försöker också simulera olika sårbarheter i mjukvara och hårdvara, analyserar effekterna av arkitektoniska och mikroarkitektoniska effekter och utför fuzz-testning av möjliga angriparåtgärder. För att analysera exekveringsflöden används DataFlowSanitizer-porten för Linux-kärnan och för fuzzing-testning används en modifierad version av syzkaller-paketet.

Kasper, en skanner för problem med spekulativ kodexekvering i Linux-kärnan, är nu tillgänglig

En genomsökning av Linux-kärnan med Kasper identifierade 1379 XNUMX tidigare okända prylar som potentiellt leder till dataläckage under spekulativ exekvering av instruktioner. Det noteras att kanske bara några av dem kan utgöra verkliga problem, men för att visa att det finns en verklig fara, och inte bara en teoretisk sådan, utvecklades en fungerande prototyp av en exploit för ett av de problematiska kodfragmenten, vilket ledde till information läckage från kärnminne.

Källa: opennet.ru

Lägg en kommentar