Kasper, un escàner de dispositius de codi especulatiu al nucli de Linux

Un grup de investigadors de la Universitat Lliure d'Amsterdam van donar a conèixer mitjançant una publicació de bloc una eina anomenada «Kasper» la qual destaquen que està dissenyada per identificar fragments de codi al kernel de Linux que es poden fer servir per explotar les vulnerabilitats de la classe Spectre causades per lexecució especulativa de codi per part del processador.

Per als que desconeixen aquest tipus d'atacs, han de saber que vulnerabilitats de la classe com Spectre v1 permeten determinar el contingut de la memòria, es requereix una determinada seqüència d'ordres (gadgets) al codi privilegiat, cosa que porta a l'execució especulativa d'instruccions.

Per optimitzar, el processador comença a executar aquests dispositius en un mode especulatiuo, després determina que la predicció de la bifurcació no s'ha justificat i reverteix les operacions al seu estat original, però les dades processades durant l'execució especulativa s'assenten a la memòria cau i la microarquitectura búfers i està disponible per a la seva extracció utilitzant diversos mètodes de determinació de dades residuals a través de canals de tercers.

Les eines d'escaneig de gadgets basades en patrons disponibles anteriorment per a la vulnerabilitat de Spectri van mostrar una taxa molt alta de falsos positius, mentre que es van perdre molts gadgets reals (els experiments van demostrar que el 99% dels gadgets detectats per aquestes eines no es podien utilitzar per a atacs, i el 33% dels que funcionaven no es van observar dispositius capaços de conduir a un atac).

Presentem Kasper, un escàner de dispositius dexecució transitòria (o especulativa). Utilitza polítiques d'anàlisi de corrupció per modelar un atacant capaç d'explotar vulnerabilitats arbitràries de programari/maquinari en una ruta transitòria. 

Sobre Kasper

Per millorar la qualitat de la identificació de dispositius problemàtics, Kasper modela les vulnerabilitats que un atacant pot fer servir a cada pas dels atacs de la classe Spectre: els problemes es modelen per permetre el control de les dades (per exemple, la substitució de les dades de l'atacant en estructures de microarquitectura per influir en l'execució especulativa posterior) usant atacs de classe LVI , obtenir accés a informació confidencial (per exemple, quan el memòria intermèdia està fora dels límits o la memòria s'usa després d'haver estat alliberada) i filtrar informació confidencial (per exemple, en analitzar l'estat de la memòria cau del processador o utilitzar el mètode MDS ).

Modela un atacant capaç de controlar dades (p. ex., a través de massatge de memòria o injecció de valor a la LVI), accedir a secrets (p. ex., a través d'accessos fora dels límits o ús després de lliure ) i filtrar aquests secrets (p. ex. , a través de canals encoberts basats en memòria cau, basats en MDS o basats en contenció de ports). 

En realitzar la prova, el nucli es posa en contacte amb les biblioteques de temps d'execució de Kasper i verifica que funcionin al nivell de LLVM. Durant la verificació, l'execució de codi especulatiu s'emula mitjançant el mecanisme de restauració de punt de control, que executa específicament una bifurcació de codi predita incorrectament, després torna al seu estat original abans que comencés la bifurcació.

Kasper també intenta modelar diverses vulnerabilitats de programari i maquinari, analitza la influència dels efectes arquitectònics i microarquitectònics i fa proves de fuzzing de possibles accions d'atacants. Per a l'anàlisi dels fluxos d'execució es fa servir el port DataFlowSanitizer per al nucli de Linux, i per a les proves de fuzzing, una versió modificada del paquet syzkaller.

Com a resultat, Kasper va descobrir 1.379 dispositius prèviament desconeguts al nucli de Linux fortament reforçat. Confirmem les nostres troballes en demostrar un exploit de prova de concepte d'extrem a extrem per a un dels dispositius trobats.

Mentre s'escanejava el nucli de Linux amb Kasper, es van identificar 1379 dispositius prèviament desconeguts, cosa que podria provocar una fuita de dades durant l'execució especulativa d'instruccions.

S'observa que potser només alguns poden presentar problemes reals, però per demostrar que hi ha un perill real, i no només teòric, es va desenvolupar un prototip funcional d'un exploit per a un dels fragments de codi problemàtics, cosa que va provocar una fuita de informació de la memòria del nucli.

Finalment si estàs interessat en poder conèixer més a l'respecte sobre Kasper, has de saber que el codi font es distribueix sota la llicència Apache 2.0.

font: https://www.vusec.net


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.