Nuevos vectores de ataque: el propio hardware atentando contra la seguridad
Nuevos vectores de ataque: el propio hardware atentando contra la seguridad
Autor: Adrián Pardo
El uso de vulnerabilidades en el sistema operativo para controlar remotamente computadoras será parcialmente obsoleto en los próximos meses. Tecnologías como ACPI e IPMI crean nuevos vectores para la implementación de rootkits y administración remota sin intervención del usuario (nota: el hardware compatible con los estándares del Trusted Computing Group, básicamente cualquier mother Intel reciente, permite entre otras cosas aplicar DRM).
¿Qué es ACPI?
ACPI (Advanced Configuration and Power Interface) posee un lenguaje propio de alto nivel que puede ser usado para introducir código malicioso en la BIOS.
Todas las motherboard modernas poseen en su memoria flash tablas que asocian comandos en ASL (ACPI Source Language) y AML (ACPI Machine Language) concomandos de hardware. Esto permite añadir funcionalidades y reemplazar las existentes por otras, por ejemplo para elevar los privilegios de un programa (los procesadores actuales permiten controlar esto, aumentando la seguridad del sistema, sin embargo su estrecha relación con la BIOS merma este beneficio).
Otro factor muy importante es el hecho de que los programas escritos en ASL y AML son prácticamente independientes de la plataforma y pueden correr en una gran variedad de hardware sin necesidad de recompilar.
Antecedentes de este tipo de ataques nos remontan hasta 1998, con el virus Chernobyl. Aunque muy poderosas, el principal obstáculo para el mal uso de estas características reside en el hecho de que casi siempre hay una protección física como un jumper en la placa madre para evitar modificaciones en la BIOS.
Se prevé su uso por parte de atacantes internos; un empleado puede flashear su computadora en la empresa y luego, en un supuesto despido acceder a la red interna, dado que el rootkit sobrevivirá a una reinstalación total del sistema.
¿Qué es IPMI?
IPMI (Intelligent Platform Management Interface) es una herramienta de administración remota embebida en el hardware de red (p.ej. placas ethernet).
Implementada entre otros por HP, Dell, Intel y Toshiba [1], esta herramienta escucha peticiones en los puertos UDP 663 y 664 y actúa en forma independiente al sistema operativo instalado.
La sesión comienza con un `Ping de Presencia’ al puerto 663, cualquiera puede envíarlo y si la máquina soporta IPMI devuelve información sobre la misma. Esto funciona aún si la pc está apagada, soporta un modo de `stand by’ y está en red.
Después viene una secuencia de autenticación del tipo challenge-response. Si todo sale bien el equipo está listo para recibir comandos. Algunas cosas que se pueden lograr son:
-. Encender y apagar el equipo, forzar un reset duro (no ctrl+alt+del)
-. Simular una condición de sobretemperatura para que el sistema operativo se apague de una forma `limpia’ (si soporta esta función)
-. Inhabilitar los controles frontales (reset, stand-by, power). También se puede bloquear el teclado y dejar en blanco la pantalla.
-. Modificar opciones de arranque, elegir el sistema operativo y controlarlo. También se puede anular la clave de protección de la BIOS.
Desde una visión administrativa es una herramienta muy útil, y una espada de doble filo, mas aún cuando el sistema operativo puede cooperar añadiendo nuevas funciones (actualmente soportado de forma nativa en Windows).
`Supuestamente’ casi todas las computadoras vienen de fábrica con IPMI deshabilitado.
La autenticación por challenge-response se basa en un método similar al de clave pública. Al establecer una conexión el equipo que oficia de `cliente’ le dice al `servidor’ (equipo a controlar) que pareja de claves usar. Si esta pareja es permitida el servidor procede a encriptar un número aleatorio usando la clave pública del `cliente’ (esto es el challenge), quien lo des-encripta usando su clave privada y lo devuelve al servidor.
El problema está en que no hay forma certera de determinar si nuestro equipo viene con una pareja de claves ya grabadas en su memoria. El fabricante puede insertarlas, dejando una vía libre para controlar totalmente cualquier equipo que haya vendido.
Algunas desventajas:
-. Sólo puede configurarse desde DOS.
-. Requiere de una dirección IP. Si el servidor DHCP no responde toma la última usada. Esto no es bueno si cambiamos la red o si nunca tuvimos una IP (envía peticiones ARP para una dirección que no es la propia).
-. Envía peticiones ARP, aproximadamente una por segundo. En redes pequeñas el impacto en la performance no es notable; en redes grandes el hecho de que *todas* las máquinas hagan esto es devastador.
Las máquinas apgadas _también_ presentan este comportamiento.
Adicionalmente el hecho de autenticar contra IPs y no MAC-address deja una gran brecha libre para ataques basados en ARP poisoning;
Para más información:
- [1] http://www.intel.com/design/servers/ipmi/index.htm
- Especificaciones de IPMI 2.0 revisión 1 :
ftp://download.intel.com/design/servers/ipmi/IPMIv2_0rev1_0.pdf
- OpenIPMI , implementación opensource del estándar:
http://sourceforge.net/projects/openipmi