Introduciuse unha nova clase de vulnerabilidades nos procesadores Intel

Intel publicado información sobre novos clase de vulnerabilidade nos seus procesadores - MDS (Mostraxe de datos microarquitectónicos). Do mesmo xeito que os ataques anteriores de Spectre, os novos problemas poden levar á fuga de datos privados do sistema operativo, máquinas virtuais e outros procesos. Suponse que os problemas foron identificados por primeira vez polos empregados e socios de Intel durante unha auditoría interna, tras a cal investigadores independentes proporcionaron información sobre problemas similares a Intel. Os procesadores AMD e ARM non se ven afectados polo problema.

Baseado en problemas identificados por investigadores da Universidade Técnica de Graz (Austria) desenvolvido Algúns ataques prácticos de canles secundarios:

  • ZombieLoad (PDF) - permite extraer información confidencial doutros procesos, o sistema operativo, máquinas virtuais e enclaves protexidos (TEE, Trusted Execution Environment). Por exemplo, demostrouse a capacidade de determinar o historial de apertura de páxinas no navegador Tor que se executa noutra máquina virtual, así como de determinar as claves de acceso e os contrasinais utilizados nas aplicacións;


  • RIDL (PDF) - permite a fuga de información entre varias áreas illadas dos procesadores Intel, como búfers de recheo, búfers de almacenamento e portos de carga. Móstranse exemplos de ataques para organizar filtracións doutros procesos, o sistema operativo, as máquinas virtuais e os enclaves protexidos. Por exemplo, mostra como descubrir o contido do hash do contrasinal de root de /etc/shadow durante os intentos de autenticación periódicos (o ataque levou 24 horas);

    Ademais, móstrase un exemplo de ataque usando JavaScript e WebAssembly ao abrir unha páxina maliciosa no motor SpiderMonkey (nos navegadores modernos de pleno dereito, un ataque deste tipo é improbable debido á limitada precisión do temporizador e ás medidas de protección contra Spectre);

  • Fallout (PDF) - permite ler os datos escritos recentemente polo sistema operativo e determinar a disposición da memoria do SO para simplificar outros ataques;
  • Reenvío de tenda a fuga — explota as optimizacións da CPU para traballar co búfer de almacenamento e pódese usar para evitar o mecanismo de aleatorización do espazo de enderezos do núcleo (KASLR), para supervisar o estado do sistema operativo ou para organización filtracións en combinación con gadgets baseados en métodos Spectre.

Identificado vulnerabilidades:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), recuperación do contido dos buffers de almacenamento. Usado no ataque Fallout. O grao de perigo determínase en 6.5 puntos (CVSS);
  • CVE-2018-12127 - MLPDS (Microarchitectural Load Port Data Sampling), recuperación do contido do porto de carga. Usado no ataque RIDL. CVSS 6.5;
  • CVE-2018-12130 - MFBDS (Microarchitectural Fill Buffer Data Sampling), recuperación do contido do buffer de recheo. Usado en ataques ZombieLoad e RIDL. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), recuperación de contidos de memoria non cacheable. Usado no ataque RIDL. CVSS 3.8.

corazón identificaron problemas na capacidade de aplicar métodos de análise de canles laterais a datos en estruturas microarquitectónicas ás que as aplicacións non teñen acceso directo. Estamos a falar de estruturas de baixo nivel como búfers de recheo (Buffer de recheo de liña), búfers de almacenamento (Store Buffer) e portos de carga (Load Port), que son bloques de construción máis pequenos que a caché de primeiro nivel (L1D), a caché de carga de datos ( RDCL ) ou L1TF (Fallo de terminal L1) e, polo tanto, inclúen menos información e actualízanse de forma máis intensa.

Introduciuse unha nova clase de vulnerabilidades nos procesadores Intel

Os ataques de canles laterais a estruturas microarquitectónicas son moito máis difíciles de levar a cabo en comparación cos métodos para restaurar o contido da caché e requiren un seguimento e análise de cantidades significativas de datos para determinar a súa conexión con certos enderezos na memoria (en esencia, un atacante non pode interceptar determinadas datos, pero pode chegar a acumular filtracións e aplicar métodos estatísticos para reconstruír certos tipos de datos). Ademais, o ataque só afecta aos datos do mesmo núcleo físico da CPU que o código do atacante.

Os métodos propostos para determinar o contido das estruturas microarquitectónicas baséanse no feito de que estas estruturas se utilizan durante o manexo especulativo de excepcións (fallas) ou operacións de carga e almacenamento.
Durante a execución especulativa, os contidos das estruturas internas son redirixidos a rexistros ou cachés para o seu procesamento. As operacións especulativas non se completan e descarta o resultado, pero o contido redirixido pódese determinar mediante técnicas de análise de caché de canles laterales.

Os portos de carga son utilizados polo procesador para recibir datos da memoria ou do subsistema de E/S e proporcionar a información recibida aos rexistros da CPU. Debido á función de implementación, os datos das operacións de descarga antigas permanecen nos portos ata que son sobrescritos por novos datos, o que permite determinar indirectamente o estado dos datos no porto de descarga manipulando excepcións (fallas) e SSE/AVX/ Instrucións AVX-512 que cargan datos de máis de 64 bits. En tales condicións, as operacións de carga expoñen de forma especulativa os valores de datos obsoletos das estruturas internas ás operacións dependentes. Do mesmo xeito, organízase unha fuga a través do búfer de almacenamento, que se utiliza para acelerar a escritura na caché da CPU e inclúe unha táboa de enderezos, valores e marcas, así como a través do búfer de recheo, que contén datos que aínda non está na caché L1 (cache-miss), polo momento cargando desde cachés doutros niveis.

Introduciuse unha nova clase de vulnerabilidades nos procesadores Intel

problema afecta Modelos de procesadores Intel producidos desde 2011 (a partir da 6ª xeración). Neste caso, as vulnerabilidades de hardware están bloqueadas a partir dalgúns modelos das 8ª e 9ª xeracións de Intel Core e 2ª xeración de Intel Xeon Scalable (podes comprobalo usando o bit ARCH_CAP_MDS_NO en IA32_ARCH_CAPABILITIES MSR). As vulnerabilidades tamén están xa eliminado a nivel de firmware, microcódigo e sistemas operativos. Intel estima a perda de rendemento despois de activar o parche para a maioría dos usuarios menos que 3%. Cando a tecnoloxía Hyper-Threading está desactivada, a degradación do rendemento pode alcanzar ata un 9 % na proba SPECint_rate_base, ata un 11 % nos cálculos de enteiros activos e ata un 19 % cando se executan aplicacións Java no servidor (con HT activado, hai case sen degradación do rendemento). Os parches teñen pouco impacto no rendemento de E/S.

O núcleo de Linux protexe contra MDS engadido na de hoxe actualizacións 5.1.2, 5.0.16,
4.19.43, 4.14.119 e 4.9.176. Método de protección en construcción ao limpar o contido dos búfers microarquitectónicos no momento de volver do núcleo ao espazo do usuario ou ao transferir o control ao sistema convidado, para o que se utiliza a instrución VERW. Para que a protección funcione, require compatibilidade co modo MD_CLEAR, implementado na última actualización de microcódigo. Para unha protección completa, tamén se recomenda desactivar Hyper Threading. Para comprobar a exposición do sistema ás vulnerabilidades do núcleo de Linux engadido controlador "/sys/devices/system/cpu/vulnerabilities/mds". Para controlar a inclusión de varios modos de bloqueo de vulnerabilidades, engadiuse ao núcleo o parámetro "mds=", que pode tomar os valores "full", "full,nosmt" (desactivando Hyper-Threads), "vmwerv" e "desactivado".

Xa se publicaron actualizacións de paquetes para RHEL и Ubuntu, pero non están dispoñibles polo momento Debian, Fedora и SUSE.
Unha corrección para bloquear tamén as fugas de datos das máquinas virtuais formado para o hipervisor Xen. Para protexer os sistemas de virtualización que emiten o comando L1D_FLUSH antes de transferir o control a outra máquina virtual e para protexer os enclaves Intel SGX, é suficiente unha actualización de microcódigo.

Fonte: opennet.ru

Engadir un comentario