Vulnerabilidade nos procesadores Intel que provoca fugas de datos a través de canles de terceiros

Un grupo de investigadores de universidades chinesas e americanas identificou unha nova vulnerabilidade nos procesadores Intel que leva á fuga de información sobre o resultado de operacións especulativas a través de canles de terceiros, que pode ser utilizada, por exemplo, para organizar unha canle de comunicación oculta. entre procesos o detectar fugas durante ataques Meltdown.

A esencia da vulnerabilidade é que un cambio no rexistro do procesador EFLAGS, que ocorreu como resultado da execución especulativa de instrucións, afecta o tempo de execución posterior das instrucións JCC (salto cando se cumpren as condicións especificadas). Non se completan as operacións especulativas e descarta o resultado, pero o cambio de EFLAGS descartado pódese determinar analizando o tempo de execución das instrucións JCC. As operacións de comparación previas ao salto realizadas de forma especulativa, se a comparación é exitosa, provocan un pequeno atraso que se pode medir e utilizar como función para facer coincidir o contido.

Vulnerabilidade nos procesadores Intel que provoca fugas de datos a través de canles de terceiros

A diferenza doutros ataques similares a través de canles de terceiros, o novo método non analiza o cambio no tempo de acceso aos datos cachés e non almacenados en caché e non require a fase de restablecer o rexistro EFLAGS ao estado inicial, o que dificulta detectar e bloquear o ataque. Como demostración, os investigadores implementaron unha variante do ataque Meltdown, utilizando un novo método nel para obter información sobre o resultado dunha operación especulativa. O funcionamento do método para organizar a fuga de información durante un ataque Meltdown demostrouse con éxito en sistemas con CPU Intel Core i7-6700 e i7-7700 nun ambiente con Ubuntu 22.04 e kernel Linux 5.15. Nun sistema cunha CPU Intel i9-10980XE, o ataque só foi parcialmente exitoso.

A vulnerabilidade Meltdown baséase no feito de que durante a execución especulativa de instrucións, o procesador pode acceder a unha área privada de datos e despois descartar o resultado, xa que os privilexios establecidos prohiben tal acceso ao proceso do usuario. Nun programa, un bloque executado de forma especulativa está separado do código principal por un salto 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 o código preventivo. execución, todas as opcións de ramificación execútanse de forma especulativa.

Na versión clásica de Meltdown, dado que se usa a mesma caché para operacións executadas de forma especulativa que para 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 pechada, e despois no código executado normalmente para determinar o seu significado mediante a análise do tempo de acceso aos datos cachés e non. A nova variante utiliza o cambio no rexistro EFLAGS como marcador dunha fuga. Na demostración de Covert Channel, un proceso modulou os datos que se enviaban para cambiar o contido do rexistro EFLAGS e outro proceso analizou o cambio no tempo de execución das instrucións JCC para recrear os datos enviados polo primeiro proceso.

Fonte: opennet.ru

Engadir un comentario