BHI é unha nova vulnerabilidade da clase Spectre nos procesadores Intel e ARM

Un grupo de investigadores da Vrije Universiteit Amsterdam identificou unha nova vulnerabilidade nas estruturas microarquitectónicas dos procesadores Intel e ARM, que é unha versión estendida da vulnerabilidade Spectre-v2, que permite evitar os mecanismos de protección eIBRS e CSV2 engadidos aos procesadores. . A vulnerabilidade recibiu varios nomes: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) e Spectre-BHB (CVE-2022-23960), que describen diferentes manifestacións de o mesmo problema (BHI - un ataque que afecta a diferentes niveis de privilexios, por exemplo, o proceso do usuario e o núcleo, BHB - un ataque no mesmo nivel de privilexios, por exemplo, eBPF JIT e o núcleo).

Os investigadores demostraron unha explotación funcional que permite extraer datos arbitrarios da memoria do núcleo do espazo do usuario. Por exemplo, móstrase como, usando un exploit preparado, é posible extraer dos buffers do núcleo unha cadea cun hash do contrasinal do usuario root cargado desde o ficheiro /etc/shadow. O exploit demostra a posibilidade de explotar unha vulnerabilidade nun nivel de privilexios (ataque de núcleo a núcleo) mediante un programa eBPF cargado polo usuario. Tamén é posible usar, en lugar de eBPF, os gadgets Spectre existentes no código do núcleo, secuencias de comandos que levan á execución especulativa de instrucións.

A vulnerabilidade aparece na maioría dos procesadores Intel actuais, a excepción dos procesadores da familia Atom. Entre os procesadores ARM, Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 e posiblemente algúns chips Cortex-R están afectados polo problema. Segundo a investigación, a vulnerabilidade non aparece nos procesadores AMD. Para eliminar o problema, propuxéronse varios métodos de software para bloquear a vulnerabilidade, que se poden usar antes da aparición da protección de hardware nos futuros modelos de CPU.

Para bloquear ataques a través do subsistema eBPF, recoméndase desactivar de forma predeterminada a posibilidade de que os usuarios sen privilexios descarguen programas eBPF escribindo 1 no ficheiro “/proc/sys/kernel/unprivileged_bpf_disabled” ou executando o comando “sysctl -w kernel. unprivileged_bpf_disabled=1”. Para bloquear ataques de gadgets, recoméndase utilizar a instrución LFENCE en áreas de código que poden levar a execucións especulativas. Cabe destacar que a configuración predeterminada da maioría das distribucións de Linux xa contén as medidas de protección necesarias suficientes para bloquear o ataque eBPF demostrado polos investigadores. As recomendacións de Intel para desactivar o acceso sen privilexios a eBPF tamén son as predeterminadas desde o núcleo de Linux 5.16 e serán retroportadas a ramas anteriores.

Conceptualmente, BHI é unha versión estendida do ataque Spectre-v2, na que, para evitar a protección engadida (Intel eIBRS e Arm CSV2) e organizar a fuga de datos, úsase a substitución de valor no búfer de historial de ramas, que se usa na CPU para aumentar a predición. ramificación de precisión tendo en conta a historia das transicións pasadas. Durante o ataque, mediante manipulacións co historial de transicións, créanse condicións para a predición incorrecta da transición e a execución especulativa das instrucións necesarias, cuxo resultado acaba na caché.

Coa excepción de usar un búfer de historial de ramas en lugar dun búfer de obxectivos de ramas, o novo ataque é idéntico ao Spectre-v2. A tarefa do atacante é crear condicións para que o enderezo, cando se realiza unha operación especulativa, sexa tomado da área dos datos definidos. Despois de realizar un salto indirecto especulativo, o enderezo de salto lido desde a memoria permanece na caché, despois de que un dos métodos para determinar o contido da caché pódese utilizar para recuperalo en función da análise dos cambios no tempo de acceso a caché e non caché. datos.

Fonte: opennet.ru

Engadir un comentario