8. https://es.surveymonkey.com/s/JP6D5NC
¿En qué capas puede ejecutarse código?
Ring 3
Userland
Ring 2
I/O
Ring 1
Drivers
Ring 0
Kernel
Ring -1
Hypervisor
Ring -1.5
Bootkits
Ring -2
SMM
Ring -2.5
BIOS/UEFI
Ring -3
Chipset
17. https://es.surveymonkey.com/s/JP6D5NC
POST ( Power On Self Test) – Legacy
BIOS
1. Comprueba el procesador (CPU)
2. Verifica su código a través de checksums
3. Comprueba la memoria
4. Comprueba otros controladores (chips) de la placa madre
5. Comprueba que funcionan las interrupciones
6. Comprueba e inicializa los interfaces E/S e identifica los dispositivos conectados
7. Comprueba los puertos serie
8. Identifica los dispositivos que puedan tener BIOS propia (Option ROM)
9. Verifica su código usando checksums
10. Permite a esos dispositivos ejecutar su BIOS
11. Inicializa el área de la BIOS en memoria
12. Comprueba si existe algún dispositivo para arrancar un sistema operativo
13. Carga y ejecuta el MBR (0000h:7C00h)
14. Se ejecuta el boot loader que carga el kernel del sistema operativo
18. https://es.surveymonkey.com/s/JP6D5NC
¿Por qué atacar la BIOS?
• Sobrevive al reinicio de la máquina
• No deja trazas en el disco
• Sobrevive a reinstalaciones del sistema operativo
• Difícil de detectar
• Difícil de eliminar
¿Quién analiza la BIOS? ¿Productos
de seguridad? ¿Antivirus?
22. https://es.surveymonkey.com/s/JP6D5NC
CIH – Chernobyl (1998)
• Afecta a Windows 9x (95, 98, Me)
• Autor: Chen Ing-hau (陳盈豪), estudiante en Taiwán.
• Motivo: como desafío ante las declaraciones de los antivirus
• Propagación: Wing Commander, CDs en revistas de informática,
• 60 millones de ordenadores infectados
• Infecta ficheros Windows PE (1kb)
• Rellenaba los primeros 1024kb del disco con ceros y sobreescribía
parte de la BIOS
• Activación: 26 de abril
• Hijos:
– Win32.Kriz (1999)25 diciembre
– Win95.Fonos (2000) Borra CMOS
o pone contraseña
24. https://es.surveymonkey.com/s/JP6D5NC
IceLord & Sun Bing (2007)
• Afecta a Windows 2000, Windows XP, Windows 2003
• Award BIOS 6.0 PG
• Se analiza la herramienta WinFlash de Award y se
descubre un método para flashear la BIOS utilizando un
servicio del SMM
• Instala un nuevo ISA BIOS ROM que se ejecutará
cuando se ejecutan todas las PCI Expansion ROMs
• Top-Block Swap (Sun Bing, 2007): intel ICHx south
bridge.
– Cambia el top-block (boot block) con otro.
– Problema en el actualizador de BIOS
– Permite reflashear la BIOS
25. https://es.surveymonkey.com/s/JP6D5NC
Infección de Legacy BIOS (2009)
• Anibal Sacco, Alfredo Ortega
• Infección de BIOS Phoenix y Award
• Modifican la rutina de decomprensión de módulos de
la BIOS (LZH)
• Hace falta ‘flashear’ la BIOS con la versión infectada
• Modificación de archivos en disco:
– /etc/shadow
– Inyección de código en binarios de Windows
• Shellcode en 16 bits utilizando interrupciones de BIOS
26. https://es.surveymonkey.com/s/JP6D5NC
Mebromi/MyBIOS/BiosKits (2011)
• Primera versión: afecta a ordenadores que tengan instalados AV
chinos:
– Rising Antivirus
– Jiangmin KV Antivirus
• Basado en la idea de IceLord
• Instala un driver en el sistema (bios.sys) que accede a la zona de
memoria de la BIOS:
– Comprueba si la BIOS es Award ($@AWDFLA)
– Busca el puerto SMI (System Management Interrupt)
– Hace una copia de la BIOS en disco (C::bios.bin)
– Modifica el fichero bios.bin incluyendo un rootkit
– Borra la BIOS ROM y ‘flashea’ con el nuevo archivo troyanizado
• La nueva BIOS al arrancar infecta el MBR que a su vez inyecta
código en winlogon.exe y wininit.exe
28. https://es.surveymonkey.com/s/JP6D5NC
BlackEnergy2 (2014)
• Plugin bs.dll: obtiene información de
– BIOS
– Motherboard
– Procesador
– OS
• Usa WMI, CPUID, win32 API
• SELECT Description, Manufacturer, Name, ProcessorId FROM
Win32_Processor
• SELECT Product, Manufacturer, Version FROM Win32_BaseBoard
• SELECT Name, OSArchitecture, Version, BuildNumber FROM
Win32_OperatingSystem
• SELECT SerialNumber, Description, Manufacturer,
SMBIOSBIOSVersion FROM Win32_BIOS
29. https://es.surveymonkey.com/s/JP6D5NC
Computrace (2005-)
• Búsqueda de equipos robados
• Presente desde que en 2005
Phoenix y Absolute hicieron un acuerdo
• PCI Option ROM
• Modifica Windows desde la BIOS instalando un nuevo servicio
y modificando el registro y varios archivos
• Capaz de funcionar con Bitlocker
• Soporta Windows 98, Windows XP, Windows Vista, Windows
7, Windows 8, Mac OS X > 10.6, Android > 2.3, Linux
• Otros: Phoenix Failsafe (SMM), Intel Anti-theft (vPRO)
30. https://es.surveymonkey.com/s/JP6D5NC
Modos de operación en x86
Modo de operación Sistema Operativo Address Size
Long mode 64-bit 64-bit 64 bits
Compatibility 32 bits
16 bits
SMM 16 bits
Legacy mode Protected 32-bit 32 bits
16 bits
Virtual 8086 16 bits
Real 16-bit
31. https://es.surveymonkey.com/s/JP6D5NC
SMM – System Managed Mode
• Maneja eventos de hardware de bajo nivel (temperatura, power, etc.)
• Interesante: tiene un espacio de memoria (SMRAM) y entorno de
ejecución aislado que puede ser invisible en otros modos. Tiene acceso a
toda la memoria.
• Crear un nuevo handler SMM que sustituye a algún otro (ojo portátiles)
• Ataques:
– Loic Duflot (2006): escalada de privilegios en OpenBSD
– Phrack #65 y #66 (2008, 2009)
– BlackHat 2008: Keylogger y network backdoor
– Invisible Things Labs:
• 2008: Bug en Q35 BIOS
• 2009: VU#127284 espacio de memoria no protegido
• 2009: Caching attacks in SMM
– Gazet (2011) Buffer overflow en SMM cuando habla con el Keyboard Controller (KBC)
• Problema:
– Está en memoria, no sobrevive a reinicios
– Específico de hardware (direcciones de memoria)
32. https://es.surveymonkey.com/s/JP6D5NC
ACPI – Advanced Configuration and
Power Interface
• John Heasman (2006)
• ACPI: tablas ACPI, registros ACPI,
• Modificación de las tablas ACPI de la BIOS y
reflasheo
• ACPI Machine Language (AML) malicioso que
interactua con la memoria del sistema y el
espacio de E/S
• Problemas:
– Intel SecureFlash o Phoenix TrustedCore
33. https://es.surveymonkey.com/s/JP6D5NC
PCI Expansion ROM
• PCI, PCIe, Thunderbolt, ExpressCard, etc.
• John Heasman (2007)
• Se ejecuta código por parte de la BIOS en el arranque
• Se reprograma el EEPROM donde se encuentra
• PoC en tarjetas de red, PXE (TFTP+UDP)
• "If a Legacy card’ s option ROM code hooks INT 19h during its initialization
call it controls the boot process.”
• Arrigo Triulzi
– Project Maux (2007): infección firmware tarjetas de red
– Project Maux II (2008): infección de firmware nVidia GPU para usar su
memoria (128Mb) para infectar tarjetas de red
– Project Maux III (2009): persistencia en sectores de disco, módulos UEFI
– Project Maux IV( 2011): módulos UEFI maliciosos para infectar en firmware de
dispositivo
• Firmware : DEB (Harddisk, 2012), Delugré (Broadcom, 2010), Duflot
(Broadcom, 2010)
34. https://es.surveymonkey.com/s/JP6D5NC
PCI Expansion ROM
• PCI, PCIe, Thunderbolt, ExpressCard, etc.
• John Heasman (2007)
• Se ejecuta código por parte de la BIOS en el arranque
• Se reprograma el EEPROM donde se encuentra
• PoC en tarjetas de red, PXE (TFTP+UDP)
• "If a Legacy card’ s option ROM code hooks INT 19h during its initialization
call it controls the boot process.”
• Arrigo Triulzi
– Project Maux (2007): infección firmware tarjetas de red
– Project Maux II (2008): infección de firmware nVidia GPU para usar su
memoria (128Mb) para infectar tarjetas de red
– Project Maux III (2009): persistencia en sectores de disco, módulos UEFI
– Project Maux IV( 2011): módulos UEFI maliciosos para infectar en firmware de
dispositivo
• Firmware : DEB (Harddisk, 2012), Delugré (Broadcom, 2010), Duflot
(Broadcom, 2010)
35. https://es.surveymonkey.com/s/JP6D5NC
PCI Expansion ROM
• @snare 2012: Malicious Thunderbolt Option
ROM
– Problema: se cargan en la fase DXE y no puede
sobreescribir la ROM
• 2014 Thunderstrike (Trammell Hudson):
Malicious Option ROM que puede sobreescribir la
clave RSA con la que se firman las actualizaciones
de firmware porque se cargan las Option ROM en
arranque Recovery Mode
36. https://es.surveymonkey.com/s/JP6D5NC
PCI Expansion ROM
• @snare 2012: Malicious Thunderbolt Option
ROM
– Problema: se cargan en la fase DXE y no puede
sobreescribir la ROM
• 2014 Thunderstrike (Trammell Hudson):
Malicious Option ROM que puede
sobreescribir la clave RSA con la que se firman
los firmware updates porque se cargan las
Option ROM en arranque Recovery Mode
37. https://es.surveymonkey.com/s/JP6D5NC
Ataque al proceso de actualización de
UEFI
• Wojtczuk y Atk (2009)
– Todo el código de actualización viene firmado, excepto algún fichero,
como la imagen que sale en el arranque (para los OEM)
– Buffer overflow en el parsing del fichero BMP de la imagen
• Kallenberg, Kovah, Butterworth, Cornwell (2013)
– Salto de Ring3 a ejecutar código en UEFI en Windows 8
– 4 Integer overflow (CVE-2014-4859, CVE-2014-4860)
– Difícil explotación
• Kallenberg, Kovah, Butterworth, Cornwell (2013)
– CVE-2013-3582: Buffer overflow en Dell Latitude que permite
reflashear la BIOS con una imagen maliciosa aunque se compruebe la
firma digital.
• Wojtczuk & Kallenberg - Dmytro Oleksiuk – (2015) Exploiting UEFI
boot script table vulnerability – Inyecta código que se ejecuta
después de un ACPI S3 resume
40. https://es.surveymonkey.com/s/JP6D5NC
Virtualización
• Subvirt (Microsoft Research, 2006): Virtual PC, VMWare
– VMBR: Virtual Machine Based Rootkits
– Virtualiza’ el sistema operativo y lo controla con un hypervisor
• BluePill (Rutkowska, 2006): explota extensiones SVM (Secure Virtual
Machine) de AMD
– ‘Virtualiza’ el sistema operativo y lo controla con un hypervisor
– No modifica ni la BIOS, ni sectores de arranque (MBR/VBR)
– No sobrevive al reinicio
• Vitriol (Dino A. Dai Zovi, 2006): explota VT-x de Intel
• ‘Virtualiza’ el sistema operativo y lo controla con un hypervisor
– Rootkit para OSX
• Vulnerabilidades en VMWare (Sun Bing, 2007)
• Rutkowska:Inyección de código en Intel Q35 (AMT – Active Management
Technology)
• Rutkowska, Wojtczuk (2011): Atacando Intel TXT y VT-d (controlar el
hypervisor)
45. https://es.surveymonkey.com/s/JP6D5NC
SecureBoot
• UEFI 2.2 (2008)
• Opcional
• Comprueba que el código de arranque no es modificado mediante firma
digital
• Firma digital incluida en cada sección ejecutable
• Platform Key (PK) por el fabricante ,Key Exchange Key (KEK) protege la
base de datos de firmas
• Listado de Trusted Signers (CAs) para firmar Option ROMs, bootloaders,
drivers y aplicaciones
• Puede ser usado en conjunción con un TPM
• Intel BootGuard: ventajas e incovenientes
• Ataques:
– PK puede ser modificada en NVRAM
– Se puede deshabilitar en el SPI Flash de muchas maneras (variable UEFI)