Identificouse outra vulnerabilidade nos procesadores AMD que permite ataques Meltdown

Un equipo de investigadores da Universidade Técnica de Graz (Austria) e do Centro Helmholtz para a Seguridade da Información (CISPA) divulgou información sobre unha vulnerabilidade (CVE-2021-26318) en todos os procesadores AMD que permite levar a cabo Meltdown-class. ataques de canle lateral (inicialmente asumiuse que os procesadores AMD non se ven afectados pola vulnerabilidade Meltdown). En termos prácticos, o ataque pode usarse para establecer canles de comunicación encubertas, supervisar a actividade no núcleo ou obter información sobre enderezos na memoria do núcleo para evitar a protección KASLR mentres se explotan as vulnerabilidades do núcleo.

AMD considera improcedente tomar medidas especiais para bloquear o problema, xa que a vulnerabilidade, como un ataque similar descuberto en agosto, é de pouca utilidade en condicións reais, está limitada polos límites actuais do espazo de dirección do proceso e require a presenza de certos secuencias preparadas de instrucións (gadgets) no núcleo. Para demostrar o ataque, os investigadores cargaron o seu propio módulo do núcleo cun gadget engadido artificialmente. En condicións reais, os atacantes poden usar, por exemplo, vulnerabilidades que aparecen regularmente no subsistema eBPF para substituír as secuencias necesarias.

Para protexerse contra este novo tipo de ataque, AMD recomendou utilizar técnicas de codificación segura que axuden a bloquear os ataques Meltdown, como as instrucións de LFENCE. Os investigadores que identificaron o problema recomendan habilitar un illamento máis estrito da táboa de páxinas de memoria (KPTI), que antes só se usaba para procesadores Intel.

Durante o experimento, os investigadores conseguiron filtrar información do núcleo a un proceso no espazo do usuario a unha velocidade de 52 bytes por segundo, dada a presenza dun gadget no núcleo que realiza a operación “if (offset < data_len) tmp = LUT[datos[offset] * 4096];” . Propuxéronse varios métodos para recuperar información a través de canles laterais que acaba na caché durante a execución especulativa. O primeiro método baséase en analizar as desviacións no tempo de execución da instrución do procesador “PREFETCH” (Prefetch+Time), e o segundo en cambiar o cambio no consumo de enerxía ao executar “PREFETCH” (Prefetch+Power).

Lembre que a clásica vulnerabilidade Meltdown baséase no feito de que durante a execución especulativa de instrucións, o procesador pode acceder a unha área de datos privadas e despois descartar o resultado, xa que os privilexios establecidos prohiben ese acceso ao proceso do usuario. No programa, o bloque executado de forma especulativa está separado do código principal por unha rama condicional, que en condicións reais sempre dispara, pero debido ao feito de que a instrución condicional usa un valor calculado que o procesador non coñece durante a execución preventiva de o código, todas as opcións de rama realízanse de forma especulativa.

Dado que as operacións executadas de forma especulativa usan a mesma caché que as instrucións executadas normalmente, durante a execución especulativa é posible establecer marcadores na caché que reflictan o contido de bits individuais nunha área de memoria privada e, a continuación, en código executado normalmente para determinar o seu valor a través do tempo. accesos de análise a datos en caché e non.

Fonte: opennet.ru

Engadir un comentario