Tagad ir pieejams Kasper, skeneris spekulatīvām koda izpildes problēmām Linux kodolā

Amsterdamas Brīvās universitātes pētnieku komanda ir publicējusi Kasper rīkkopu, kas izstrādāta, lai identificētu koda fragmentus Linux kodolā, ko var izmantot, lai izmantotu Spectre klases ievainojamības, ko izraisa spekulatīva koda izpilde procesorā. Rīku komplekta pirmkods tiek izplatīts saskaņā ar Apache 2.0 licenci.

Atgādināsim, ka, lai veiktu tādus uzbrukumus kā Spectre v1, kas ļauj noteikt atmiņas saturu, priviliģētajā kodā ir nepieciešama noteikta komandu secība (sīkrīki), kas noved pie spekulatīvas instrukciju izpildes. . Optimizācijas nolūkos procesors sāk izpildīt šādus sīkrīkus spekulatīvajā režīmā, pēc tam konstatē, ka zara prognoze nav bijusi pamatota, un atgriež operācijas to sākotnējā stāvoklī, bet spekulatīvās izpildes laikā apstrādātie dati nonāk kešatmiņā un mikroarhitektūras buferos un ir pieejams izgūšanai no tiem, izmantojot dažādas metodes, kas nosaka atlikušos datus, izmantojot trešo pušu kanālus.

Iepriekš pieejamie rīki sīkrīku skenēšanai, lai noteiktu Spectre ievainojamību, pamatojoties uz tipisku modeļu meklēšanu, uzrādīja ļoti augstu viltus pozitīvu rezultātu līmeni, vienlaikus trūka daudzu īstu sīkrīku (eksperimenti parādīja, ka 99% ar šādiem rīkiem identificēto sīkrīku nevarēja izmantot uzbrukumiem , un 33% strādājošo sīkrīku, kas varētu izraisīt uzbrukumu, netika pamanīti).

Lai uzlabotu problemātisko sīkrīku identificēšanas kvalitāti, Kasper modelē ievainojamības, kuras uzbrucējs var izmantot katrā Spectre klases uzbrukumu veikšanas solī – tiek modelētas problēmas, kas ļauj kontrolēt datus (piemēram, uzbrucēja datu aizstāšana ar mikroarhitektūras struktūrām, lai ietekmētu turpmāko spekulatīvo izpildi, izmantojot LVI klases uzbrukumiem), piekļūt konfidenciālai informācijai (piemēram, pārsniedzot bufera robežas vai izmantojot atmiņu pēc tās atbrīvošanas) un nopludināt konfidenciālu informāciju (piemēram, analizējot procesora kešatmiņas stāvokli vai izmantojot MDS metodi).

Tagad ir pieejams Kasper, skeneris spekulatīvām koda izpildes problēmām Linux kodolā

Testēšanas laikā kodols ir saistīts ar Kasper izpildlaika bibliotēkām un pārbauda, ​​kas darbojas LLVM līmenī. Pārbaudes process emulē spekulatīvu koda izpildi, kas tiek īstenota, izmantojot kontrolpunkta atjaunošanas mehānismu, kas īpaši izpilda nepareizi paredzētu koda atzaru un pēc tam atgriežas sākotnējā stāvoklī pirms filiāles sākuma. Kaspers arī mēģina simulēt dažādas programmatūras un aparatūras ievainojamības, analizē arhitektūras un mikroarhitektūras efektu ietekmi un veic iespējamo uzbrucēju darbību izplūdes testēšanu. Lai analizētu izpildes plūsmas, tiek izmantots DataFlowSanitizer ports Linux kodolam, un izplūdes testēšanai tiek izmantota modificēta syzkaller pakotnes versija.

Tagad ir pieejams Kasper, skeneris spekulatīvām koda izpildes problēmām Linux kodolā

Linux kodola skenēšana, izmantojot Kasper, atklāja 1379 iepriekš nezināmus sīkrīkus, kas, iespējams, var izraisīt datu noplūdi, veicot instrukcijas spekulatīvi. Tiek atzīmēts, ka varbūt tikai daži no tiem var radīt reālas problēmas, taču, lai pierādītu, ka pastāv reālas, nevis tikai teorētiskas briesmas, vienam no problemātiskajiem koda fragmentiem tika izstrādāts ekspluatācijas prototips, kas noveda pie informācijas. noplūde no kodola atmiņas.

Avots: opennet.ru

Pievieno komentāru