Kasper, un escàner per a problemes d'execució de codi especulatius al nucli de Linux, ja està disponible

Un equip d'investigadors de la Universitat Lliure d'Amsterdam ha publicat un conjunt d'eines Kasper dissenyat per identificar fragments de codi al nucli de Linux que es poden utilitzar per explotar vulnerabilitats de classe Spectre causades per l'execució de codi especulativa al processador. El codi font del conjunt d'eines es distribueix sota la llicència Apache 2.0.

Recordem que per dur a terme atacs com Spectre v1, que permeten determinar el contingut de la memòria, es requereix la presència en el codi privilegiat d'una determinada seqüència d'ordres (gadgets), que condueix a l'execució especulativa d'instruccions. . Amb finalitats d'optimització, el processador comença a executar aquests gadgets en mode especulatiu, després determina que la predicció de la branca no estava justificada i torna les operacions al seu estat original, però les dades processades durant l'execució especulativa acaben a la memòria cau i als buffers microarquitectònics i està disponible per a la seva recuperació mitjançant diversos mètodes per determinar les dades residuals a través de canals de tercers.

Les eines disponibles anteriorment per escanejar gadgets per detectar la vulnerabilitat Spectre, basades en la recerca de patrons típics, mostraven un nivell molt alt de falsos positius, mentre que faltaven molts gadgets reals (els experiments van demostrar que el 99% dels gadgets identificats per aquestes eines no es podien utilitzar per a atacs). , i el 33% dels gadgets que funcionen que podrien provocar un atac no es van notar).

Per millorar la qualitat de la identificació de gadgets problemàtics, Kasper modela les vulnerabilitats que un atacant pot explotar en cada pas de la realització d'atacs de classe Spectre; es modelen els problemes que permeten el control de dades (per exemple, substituint les dades de l'atacant per estructures microarquitectòniques per influir en l'execució especulativa posterior utilitzant atacs de classe LVI), obtenir accés a informació confidencial (per exemple, quan es superen els límits de la memòria intermèdia o utilitzant la memòria després d'alliberar-se) i filtrar informació confidencial (per exemple, analitzant l'estat de la memòria cau del processador o utilitzant el mètode MDS).

Kasper, un escàner per a problemes d'execució de codi especulatius al nucli de Linux, ja està disponible

Durant la prova, el nucli s'enllaça amb les biblioteques d'execució de Kasper i les comprovacions que s'executen al nivell LLVM. El procés de verificació emula l'execució de codi especulativa, implementada mitjançant el mecanisme de restauració del punt de control, que executa específicament una branca de codi predita incorrectament i després torna a l'estat original abans que comencés la branca. Kasper també intenta simular diverses vulnerabilitats de programari i maquinari, analitza l'impacte dels efectes arquitectònics i microarquitectònics i realitza proves de fuzz de possibles accions dels atacants. Per analitzar els fluxos d'execució, s'utilitza el port DataFlowSanitizer per al nucli Linux, i per a les proves fuzzing, s'utilitza una versió modificada del paquet syzkaller.

Kasper, un escàner per a problemes d'execució de codi especulatius al nucli de Linux, ja està disponible

Una exploració del nucli de Linux utilitzant Kasper va identificar 1379 aparells desconeguts anteriorment que poden provocar una fuga de dades durant l'execució especulativa d'instruccions. S'observa que potser només alguns d'ells poden plantejar problemes reals, però per demostrar que hi ha un perill real, i no només un teòric, es va desenvolupar un prototip de treball d'explotació per a un dels fragments de codi problemàtics, que condueix a la informació. fuga de la memòria del nucli.

Font: opennet.ru

Afegeix comentari