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
