Kasper, Linux nukleoan kode espekulatiboen exekuzio-arazoetarako eskaner bat eskuragarri dago orain

Amsterdameko Free University-ko ikertzaile-talde batek Linux nukleoan kode zatiak identifikatzeko diseinatutako Kasper tresna-kit bat argitaratu du, prozesadorean kode espekulatiboen exekuzioak eragindako Spectre klaseko ahuleziak ustiatzeko erabil daitezkeenak. Tresna-kitaren iturburu-kodea Apache 2.0 lizentziapean banatzen da.

Gogora dezagun, oroimenaren edukia zehaztea ahalbidetzen duten Spectre v1 bezalako erasoak egiteko, komando-sekuentzia jakin bat (gadget) kode pribilegiatuan egotea beharrezkoa dela, instrukzioen exekuzio espekulatiboa dakar. . Optimizazio-helburuetarako, prozesadorea honelako tramankuluak modu espekulatiboan exekutatzen hasten da, gero zehazten du adar-iragarpena ez zela justifikatu eta eragiketak jatorrizko egoerara itzultzen ditu, baina exekuzio espekulatiboan prozesatutako datuak cachean eta mikroarkitektura-bufferetan amaitzen dira eta eskuragarri dago haietatik berreskuratzeko, hirugarrenen kanalen bidez hondar datuak zehazteko metodo ezberdinak erabiliz.

Aurretik Spectreren ahultasunerako tramankuluak eskaneatzeko erabilgarri zeuden tresnek, eredu tipikoen bilaketan oinarrituta, positibo faltsuen maila oso altua erakutsi zuten, eta benetako tramankulu asko falta ziren bitartean (esperimentuek erakutsi zuten tresnek identifikatutako gadgeten % 99 ezin zirela erasoetarako erabili. , eta erasoa eragin dezaketen tramankuluen %33 ez zen nabaritu).

Gadget problematikoak identifikatzeko kalitatea hobetzeko, Kasper-ek erasotzaileak Spectre klaseko erasoak burutzeko urrats bakoitzean ustiatu ditzakeen ahultasunak modelatzen ditu - datuen kontrola ahalbidetzen duten arazoak modelatzen dira (adibidez, erasotzaileen datuak egitura mikroarkitekturaletan ordezkatzea, ondorengo exekuzio espekulatiboan eragiteko. LVI klaseko erasoak), informazio konfidentziala atzitu (adibidez, buffer-en mugak gainditzean edo askatu ondoren memoria erabiltzean) eta isilpeko informazioa (adibidez, prozesadorearen cachearen egoera aztertuz edo MDS metodoa erabiliz).

Kasper, Linux nukleoan kode espekulatiboen exekuzio-arazoetarako eskaner bat eskuragarri dago orain

Probak egiterakoan, nukleoa Kasperren exekuzio-liburutegiekin lotzen da eta LLVM mailan exekutatzen diren egiaztapenekin. Egiaztapen-prozesuak kode espekulatiboaren exekuzioa emulatzen du, kontrol-puntu-berreskuratze-mekanismoa erabiliz inplementatuta, oker aurreikusitako kode-adar bat berariaz exekutatzen duena, eta, ondoren, jatorrizko egoerara itzultzen da adarra hasi aurretik. Kasper-ek hainbat software eta hardware ahultasun simulatzen saiatzen da, arkitektura eta mikroarkitekturaren efektuen eragina aztertzen eta erasotzaileen ekintza posibleen fuzz probak egiten ditu. Exekuzio-fluxuak aztertzeko, Linux kernelerako DataFlowSanitizer ataka erabiltzen da, eta fuzzing probak egiteko, syzkaller paketearen bertsio aldatua erabiltzen da.

Kasper, Linux nukleoan kode espekulatiboen exekuzio-arazoetarako eskaner bat eskuragarri dago orain

Kasper erabiliz Linux kernelaren eskaneatu batek aurretik ezezagun diren 1379 tramankulu identifikatu zituen, argibideak espekulatiboki exekutatzen direnean datu-ihesak sor ditzaketenak. Kontuan izan behar da, agian, batzuek bakarrik sor ditzaketela benetako arazoak, baina benetako arriskua dagoela frogatzeko, eta ez soilik teorikoa, ustiapen baten prototipo funtzionala garatu zen kode-zati problematikoetako batentzat, informazioa lortzeko. nukleoaren memoriatik ihes egitea.

Iturria: opennet.ru

Gehitu iruzkin berria