lunes, 13 de agosto de 2018

Descubren backdoor que activa Modo Dios en antiguos procesadores Via x86

En la conferencia de seguridad Black Hat 2018 y DEF CON 26, el investigador de seguridad Christopher Domas ha encontrado una increíble puerta trasera oculta en una familia de procesadores x86 del año 2001-2003, en concreto los chips Taiwaneses VIA C3 Nehemiah. Resulta que algunas CPU x86 con un chip (coprocesador)  RISC (Reduced Instruction Set Computer) insertado tienen puertas traseras ocultas (backdoor) de hardware que permiten otorgar permisos de root en el sistema. El software antivirus, ASLR y todas las otras medidas de seguridad adicionales son inútiles en estos casos.







A raíz de Spectrum y Meltdown, cuando parece que las cosas no pueden ser más oscuras para los procesadores en materia de seguridad, la última luz se apaga. Esta charla demostró lo que todos tienen en mente.

Hay puertas traseras de hardware en algunos procesadores x86, y están enterradas más profundamente de lo que jamás hubiéramos imaginado. Si bien esta investigación examina específicamente un procesador de terceros, estamos utilizando este método para explorar la viabilidad de puertas traseras de hardware más extendidas.

La puerta trasera rompe por completo el modelo de anillo de protección de la seguridad del sistema operativo, en el que el núcleo del sistema operativo se ejecuta en el anillo 0.

Muchos sistemas operativos usan una estructura de anillo jerárquica, donde los procesos ejecutados en el anillo más interno tienen privilegios para todos los anillos externos. El anillo más interno se llama "anillo 0" y alberga la esencia del sistema operativo y, normalmente, los usuarios tienen acceso al tercer anillo y al anillo menos privilegiado.

La CPU afectada está diseñada para trabajar en PC pero podría estar además en tarjetas inteligentes, cajeros automáticos, plataformas de juego, dispositivos de atención médica y equipos de automatización industrial.




Domas también señala que es muy posible que existan puertas traseras ocultas en muchos otros chipsets.



En su charla del pasado jueves 9 de agosto en la BlackHat, pequeño vídeo en la demostración de la instrucción en ensamblador para activar el "Modo Dios"
/* unlock the backdoor */
__asm__ ("movl $payload, %eax");
__asm__ (".byte 0x0f, 0x3f");




La buena noticia es que el comando solo funciona en siete procesadores de la familia VIA C3 Nehemiah. La mala es que es muy posible que existan puertas traseras similares en otros chipsets.

Los chips VIA C3 Nehemiah se fabricaron en 2003 y se utilizan en sistemas embebidos y clientes ligeros. Pero estos chips RISC se pueden haber instalado en muchos otros chips.

Conferencia del año pasado (2017) de Christopher Domas hablando de "Breaking the x86 Instruction Set"



¿Cómo encontró la vulnerabilidad?

Analizando varias patentes archivadas de la varias compañías de procesadores. en este caso del coprocesador. La patente en cuestión es la US8341419.

Additionally, accessing some of the internal control registers can enable the user to bypass security mechanisms, e.g., allowing ring 0 access at ring 3. In addition, these control registers may reveal information that the processor designers wish to keep proprietary. For these reasons, the various x86 processor manufacturers have not publicly documented any description of the address or function of some control MSRs.


De acuerdo con este documento (página 82), el propósito oculto del coprocesador RISC es proporcionar un "conjunto de instrucciones alternativas" que ofrezca a los proveedores de hardware (OEM) más control sobre la CPU.

Los procesadores VIA / Centaur C3 son internamente RISC y proporcionan instrucciones x86 en instrucciones RISC que ejecuta el procesador.

Este conjunto de instrucciones alternativas incluye un conjunto extendido de instrucciones enteras, MMX, punto flotante y 3DNow! Junto con declaraciones arquitectónicas adicionales" se puede leer en el documento.


En el documento se habla de ciertas instrucciones pueden habilitar, pero la puerta trasera fue descubierta con gran dificultad, ya que los chips pueden fallar mientras utilizaba técnicas de fuzzing.




Finalmente, después de muchos intentos, 3 semanas  y 15 GB de logs (datos de registro), el investigador pudo encontrar la puerta trasera.

Puerta trasera (Backdoor) documentado



Parte del documento donde habla abiertamente de una posible puerta trasera:



Parece que algunos procesadores se entregan con los valores predeterminados incorrectos. Normalmente ALTINST (Alternative Instruction) bit debería estar deshabilitado por defecto.

Si bien la puerta trasera debe requerir acceso al nivel del kernel para activarse, se ha observado que está habilitado de forma predeterminada en algunos sistemas, lo que permite que cualquier código sin privilegios modifique el kernel.

La puerta trasera "Rosenbridge" es completamente diferente de uno de los coprocesadores más conocidos en las CPU x86, como el Intel Management Engine o Platform Security Processor.

ALTERNATE INSTRUCTION EXECUTION
When set to 1, the ALTINST bit in the FCR enables execution of an alternate (not x86) instruction set. While setting this FCR bit is a privileged operation, executing the alternate instructions can be done from any protection level.
This alternate instruction set is intended for testing, debug, and special application usage. Accordingly, it is not documented for general usage. If you have a justified need for access to these instructions, contact your VIA representative. 


This new jump instruction can be executed from any privilege level at any time that ALTINST is 1. The new jump instruction is a two-byte instruction: 0x0F3F

Vía:
https://es.gizmodo.com/descubren-un-comando-secreto-que-activa-el-modo-dios-1828263672

Fuentes:
http://i.blackhat.com/us-18/Thu-August-9/us-18-Domas-God-Mode-Unlocked-Hardware-Backdoors-In-x86-CPUs.pdf

No hay comentarios:

Publicar un comentario