Kasper, un scanner per i prublemi di esecuzione di codice speculativu in u kernel Linux, hè avà dispunibule

Un squadra di circadori da l'Università Libera di Amsterdam hà publicatu un toolkit Kasper cuncepitu per identificà frammenti di codice in u kernel Linux chì pò esse usatu per sfruttà e vulnerabilità Spectre-class causate da l'esekzione di codice speculativa in u processatore. U codice fonte per u toolkit hè distribuitu sottu a licenza Apache 2.0.

Ricurdemu chì per realizà attacchi cum'è Spectre v1, chì permettenu di determinà u cuntenutu di a memoria, hè necessaria a presenza in u codice privilegiatu di una certa sequenza di cumandamenti (gadgets), chì porta à l'esekzione speculativa di istruzzioni. . Per scopi d'ottimisazione, u processatore cumencia à eseguisce tali gadgets in modu speculativu, poi determina chì a predizione di ramu ùn era micca ghjustificata è torna l'operazioni à u so statu originale, ma i dati processati durante l'esecuzione speculativa finiscinu in u cache è i buffer microarchitectural è hè dispunibule per ritruvà da elli utilizendu diversi metudi di determinazione di dati residuali attraversu canali di terzu.

Strumenti dispunibuli in precedenza per scanning gadgets per a vulnerabilità Spectre, basatu annantu à a ricerca di mudelli tipici, dimustravanu un livellu assai altu di falsi pusitivi, mentre chì mancavanu assai gadgets veri (esperimenti anu dimustratu chì u 99% di i gadgets identificati da tali strumenti ùn puderanu micca esse usatu per attacchi. , è u 33% di i gadgets di travagliu chì puderanu guidà à un attaccu ùn sò micca stati nutati).

Per migliurà a qualità di l'identificazione di i gadgets problematichi, Kasper modella vulnerabilità chì un attaccu pò sfruttà in ogni passu di a realizazione di attacchi di classe Spectre - i prublemi chì permettenu u cuntrollu di dati sò modellati (per esempiu, rimpiazzà i dati di l'attaccante in strutture microarchitecturale per influenzà l'esekzione speculativa successiva utilizendu Attacchi di classi LVI), accede à l'infurmazioni cunfidenziale (per esempiu, quandu si va oltre i limiti di u buffer o aduprendu a memoria dopu chì hè liberata) è filtra l'infurmazioni cunfidenziale (per esempiu, analizendu u statu di u cache di u processatore o utilizendu u metudu MDS).

Kasper, un scanner per i prublemi di esecuzione di codice speculativu in u kernel Linux, hè avà dispunibule

Quandu teste, u kernel hè ligatu cù e librerie di runtime Kasper è cuntrolli in esecuzione à u livellu LLVM. U prucessu di verificazione emula l'esekzione di codice speculativu, implementatu cù u mecanismu di ricuperazione di u puntu di cuntrollu, chì eseguisce specificamente un ramu di codice preditu in modu incorrectu, è poi torna à u statu originale prima di a ramu principia. Kasper prova ancu di simulà diverse vulnerabilità di software è hardware, analizà l'impattu di l'effetti architettonichi è microarchitecturali, è eseguisce fuzz test di pussibuli azzioni di l'attaccante. Per analizà i flussi di esecuzione, u portu DataFlowSanitizer per u kernel Linux hè utilizatu, è per a prova di fuzzing, una versione mudificata di u pacchettu syzkaller hè aduprata.

Kasper, un scanner per i prublemi di esecuzione di codice speculativu in u kernel Linux, hè avà dispunibule

Una scansione di u kernel Linux utilizendu Kasper hà identificatu 1379 gadgets precedentemente scunnisciuti chì potenzialmente portanu à a fuga di dati durante l'esecuzione speculativa di l'istruzzioni. Hè nutatu chì forsi solu alcuni di elli ponu esse prublemi veri, ma per dimustrà chì ci hè un veru periculu, è micca solu teoricu, un prototipu di travagliu di sfruttamentu hè statu sviluppatu per unu di i frammenti di codice problematicu, chì porta à l'infurmazioni. perdita da a memoria di u kernel.

Source: opennet.ru

Add a comment