Kasper, një skaner për problemet spekulative të ekzekutimit të kodit në kernelin Linux, është tani i disponueshëm

Një ekip studiuesish nga Universiteti i Lirë i Amsterdamit ka publikuar një vegël Kasper të krijuar për të identifikuar copat e kodit në kernelin Linux që mund të përdoren për të shfrytëzuar dobësitë e klasës Specter të shkaktuara nga ekzekutimi spekulativ i kodit në procesor. Kodi burimor për paketën e veglave shpërndahet nën licencën Apache 2.0.

Le të kujtojmë se për të kryer sulme të tilla si Spectre v1, të cilat bëjnë të mundur përcaktimin e përmbajtjes së kujtesës, kërkohet prania në kodin e privilegjuar të një sekuence të caktuar komandash (gadgets), duke çuar në ekzekutimin spekulativ të udhëzimeve. . Për qëllime optimizimi, procesori fillon të ekzekutojë pajisje të tilla në modalitetin spekulativ, më pas përcakton që parashikimi i degës nuk ishte i justifikuar dhe i kthen operacionet në gjendjen e tyre origjinale, por të dhënat e përpunuara gjatë ekzekutimit spekulativ përfundojnë në cache dhe buferat mikroarkitekturore dhe është i disponueshëm për t'u marrë prej tyre duke përdorur metoda të ndryshme që përcaktojnë të dhënat e mbetura përmes kanaleve të palëve të treta.

Mjetet e disponueshme më parë për skanimin e veglave për dobësinë Spectre, bazuar në kërkimin e modeleve tipike, treguan një nivel shumë të lartë të rezultateve false, ndërkohë që mungonin shumë vegla reale (eksperimentet treguan se 99% e pajisjeve të identifikuara nga mjete të tilla nuk mund të përdoreshin për sulme , dhe 33% e pajisjeve të punës që mund të çojnë në një sulm nuk u vunë re).

Për të përmirësuar cilësinë e identifikimit të pajisjeve problematike, Kasper modelon dobësitë që një sulmues mund të shfrytëzojë në çdo hap të kryerjes së sulmeve të klasës Spectre - modelohen problemet që lejojnë kontrollin e të dhënave (për shembull, zëvendësimi i të dhënave të sulmuesit në struktura mikroarkitekturore për të ndikuar në ekzekutimin e mëvonshëm spekulativ duke përdorur Sulmet e klasës LVI), fitoni akses në informacione konfidenciale (për shembull, kur kaloni përtej kufijve të tamponit ose përdorni memorien pasi të jetë liruar) dhe rrjedhni informacione konfidenciale (për shembull, duke analizuar gjendjen e cache-it të procesorit ose duke përdorur metodën MDS).

Kasper, një skaner për problemet spekulative të ekzekutimit të kodit në kernelin Linux, është tani i disponueshëm

Gjatë testimit, kerneli lidhet me bibliotekat e kohës së ekzekutimit të Kasper dhe kontrollon që funksionon në nivelin LLVM. Procesi i kontrollit imiton ekzekutimin spekulativ të kodit, i zbatuar duke përdorur mekanizmin e rivendosjes së pikës së kontrollit, i cili ekzekuton në mënyrë specifike një degë kodi të parashikuar gabimisht dhe më pas kthehet në gjendjen origjinale përpara fillimit të degës. Kasper gjithashtu përpiqet të simulojë dobësi të ndryshme të softuerit dhe harduerit, analizon ndikimin e efekteve arkitekturore dhe mikroarkitekturore dhe kryen testimin e fuzzit të veprimeve të mundshme të sulmuesit. Për të analizuar rrjedhat e ekzekutimit, përdoret porta DataFlowSanitizer për kernelin Linux dhe për testimin e fuzzimit përdoret një version i modifikuar i paketës syzkaller.

Kasper, një skaner për problemet spekulative të ekzekutimit të kodit në kernelin Linux, është tani i disponueshëm

Një skanim i kernelit Linux duke përdorur Kasper identifikoi 1379 pajisje të panjohura më parë që potencialisht çojnë në rrjedhje të të dhënave gjatë ekzekutimit spekulativ të udhëzimeve. Vihet re se ndoshta vetëm disa prej tyre mund të paraqesin probleme reale, por për të demonstruar se ekziston një rrezik real dhe jo vetëm teorik, është zhvilluar një prototip pune i një shfrytëzimi për një nga fragmentet problematike të kodit, duke çuar në informacion. rrjedhje nga memoria e kernelit.

Burimi: opennet.ru

Shto një koment