Një grup hulumtuesish nga Universiteti i Lirë i Amsterdamit publikoi mjetin Kasper, i dedikuar për identifikimin në bërthamën Linux të segmenteve të kodit që mund të përdoren për shfrytëzimin e dobësive të klasës Spectre, të shkaktuara nga ekzekutimi spekulativ të kodit nga procesori. Kodi burimor i mjeteve shpërndahet nën licencën Apache 2.0.
Të kujtojmë se për të kryer sulme të tilla si Spectre v1, të cilat lejojnë përcaktimin e përmbajtjes së memories, kërkohet që në kodin me privilegje të ekzistojë një rend në vijim komandash (gadgetesh) që çon në ekzekutimin spekulativ të instrukcioneve. Në qëllim të optimizimit, procesori fillon të ekzekutojë këto gadgete në modalitetin spekulativ, pastaj përcakton se parashikimi i degëzimit nuk është realizuar dhe rikthen operacionet në gjendjen e origjinës, por të dhënat e trajtuara gjatë procesit të ekzekutimit spekulativ mbeten në cache dhe tamponët mikroarkitekturorë dhe janë të disponueshme për t'u ekskuruar prej tyre duke përdorur metoda të ndryshme për përcaktimin e të dhënave mbetëse përmes kanaleve të tjera.
Mjetet e mëparshme për skanimin e pajisjeve për cenueshmërinë Spectre, të bazuara në kërkimin e modele të zakonshme, treguan një nivel shumë të lartë të falsifikimeve, duke lënë pas shumë pajisje reale (eksperimentet treguan se 99% e pajisjeve që u identifikuan nga këto mjete nuk mund të përdoren për sulme, ndërsa 33% e pajisjeve funksionale që mund të çonin në sulm nuk u vunë re).
PĂ«r tĂ« pĂ«rmirĂ«suar cilĂ«sinĂ« e identifikimit tĂ« pajisjeve problematike, Kasper modelon cenueshmĂ«ritĂ« qĂ« sulmuesi mund tĂ« pĂ«rdorĂ« nĂ« çdo hap tĂ« realizimit tĂ« sulmeve tĂ« klasĂ«s Spectre â modeli pĂ«rfshin çështje qĂ« lejojnĂ« kontrollimin e tĂ« dhĂ«nave (pĂ«r shembull, inxhinierimi i tĂ« dhĂ«nave tĂ« sulmuesit nĂ« strukturat mikroarkitekturore pĂ«r tĂ« ndikuar nĂ« ekzekutimin spekullativ tĂ« mĂ«passhĂ«m me anĂ« tĂ« sulmeve tĂ« klasĂ«s LVI), aksesin nĂ« informacion tĂ« ndjeshĂ«m (pĂ«r shembull, duke dalĂ« jashtĂ« kufijve tĂ« tamponit ose duke pĂ«rdorur kujtesĂ«n pas çlirimit tĂ« saj) dhe organizimin e rrjedhjes sĂ« informacionit tĂ« ndjeshĂ«m (pĂ«r shembull, duke analizuar gjendjen e cache-it tĂ« procesorĂ«ve ose duke pĂ«rdorur metodĂ«n MDS).

Gjatë testimit, bërthama lidhet me bibliotekat runtime Kasper dhe kontrollet që funksionojnë në nivelin LLVM. Gjatë prosesit të kontrollit, simulon ekzekutimin spekulativ të kodit, i realizuar me anë të mekanizmit checkpoint-restore, i cili vepron posaçërisht me degën e kodit që është parashikuar gabim dhe pastaj kthehet në gjendjen fillestare para fillimit të degëzimit. Kasper gjithashtu përpiqet të modelojë vulnerabilitetet e ndryshme softuerike dhe harduerike, analizon ndikimin e efekteve arkitektonike dhe mikroarkitektonike, dhe realizon testimin e fuzzing-ut për veprimet e mundshme të një sulmuesi. Për analizimin e rrjedhave të ekzekutimit përdoret porti DataFlowSanitizer për bërthamën Linux, dhe për testimin e fuzzing-ut një version i modifikuar i paketës syzkaller.

Gjatë skanimit të bërthamës Linux me ndihmën e Kasper u identifikuan 1379 pajisje të panjohura më parë, që potencialisht mund të çonin në rrjedhje të të dhënave gjatë ekzekutimit spekulativ të instrukcioneve. Vlen të theksohet se ndoshta vetëm një pjesë e tyre mund të paraqesë probleme reale, por për të demonstruar se ka vërtet një rrezik dhe jo vetëm teori, është zhvilluar një prototip funksional eksploati që çon në rrjedhjen e informacionit nga memorja e bërthamës për një nga segmentet problematike të kodit.
Burimi: opennet.ru
