Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Infección en BIOS, UEFI y derivados

2,080 views

Published on

Infección en BIOS, UEFI y derivados

Published in: Technology

Infección en BIOS, UEFI y derivados

  1. 1. Infección en BIOS, UEFI y derivados Desde el mito a la realidad David Barroso @lostinsecurity
  2. 2. https://es.surveymonkey.com/s/JP6D5NC #BadBIOS
  3. 3. https://es.surveymonkey.com/s/JP6D5NC
  4. 4. https://es.surveymonkey.com/s/JP6D5NC
  5. 5. https://es.surveymonkey.com/s/JP6D5NC
  6. 6. https://es.surveymonkey.com/s/JP6D5NC
  7. 7. https://es.surveymonkey.com/s/JP6D5NC
  8. 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
  9. 9. https://es.surveymonkey.com/s/JP6D5NC Fuente: http://marlon-becerra.blogspot.com.es/2013/03/la-placa- base-la-bios-etc.html
  10. 10. https://es.surveymonkey.com/s/JP6D5NC Halt and catch fire - AMC
  11. 11. https://es.surveymonkey.com/s/JP6D5NC Clean room – Chinese Wall
  12. 12. https://es.surveymonkey.com/s/JP6D5NC Historia de la BIOS • 1975: Gary Kildall utiliza la palabra BIOS para definir parte del boot de CP/M (IMSAI 8080 - Altair 8800) (IBM - PC-DOS $40 vd CP/M $240) • 1981: IBM Personal Computer (Ctrl+Alt+Del) • 1983: PC/XT • 1984: Phoenix PC ROM BIOS • 1984: Award Software • 1984: PC/AT incluye pila CMOS • 1985: American Megatrends Incorporated (AMI) • 1999: Coreboot/LinuxBIOS (ChromeBook) • 2000: Intel crea EFI (Extensible Firmware Interface) • 2004: Comunidad EFI Open Source (tianocore.org) • 2005: Unified EFI (UEFI). Esfuerzo conjunto de la industria: – AMD, American Megatrends, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, Phoenix • 2013: LibreBoot (Coreboot sin módulos propietarios) • 2014: 233 miembros. UEFI 2.4b (Abril 2014)
  13. 13. https://es.surveymonkey.com/s/JP6D5NC Legacy BIOS
  14. 14. https://es.surveymonkey.com/s/JP6D5NC UEFI
  15. 15. https://es.surveymonkey.com/s/JP6D5NC Fuente: http://mike820324.blogspot.com.es/2011/06/simple-os-bootloader-part1.html
  16. 16. https://es.surveymonkey.com/s/JP6D5NC Fuente: http://logica10mobile.blogspot.com.es/2012/10/la-revolucion-silenciosa-uefi-y-el.html
  17. 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. 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?
  19. 19. https://es.surveymonkey.com/s/JP6D5NC Primera infección de BIOS (1994-1995) 04/04/93: ROMs de AMI BIOS troyanizadas supuestamente en su fábrica de Corea del Sur. Sonaba ‘Cumpleaños Feliz’ cada 13 de noviembre.
  20. 20. https://es.surveymonkey.com/s/JP6D5NC CMOSDEAD (1998) • MS-DOS, infecta ficheros .COM • Borra el contenido del CMOS • Muestra imagen por pantalla y sonidos por el altavoz • Huevo de Pascua si el usuario resetea el equipo con Ctrl-Alt-Del
  21. 21. https://es.surveymonkey.com/s/JP6D5NC CMOSDEAD (1998) • MS-DOS, infecta ficheros .COM • Borra el contenido del CMOS • Muestra imagen por pantalla y sonidos por el altavoz • Huevo de Pascua si el usuario resetea el equipo con Ctrl-Alt-Del
  22. 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
  23. 23. https://es.surveymonkey.com/s/JP6D5NC CIH - Demonstración
  24. 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. 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. 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
  27. 27. https://es.surveymonkey.com/s/JP6D5NC Mebromi/MyBIOS/BiosKits (2011) Source: https://blogs.mcafee.com/mcafee-labs/bioskits-join-ranks-of-stealth-malware
  28. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  38. 38. https://es.surveymonkey.com/s/JP6D5NC Demo ataque
  39. 39. https://es.surveymonkey.com/s/JP6D5NC ¿Qué ha pasado entre 2008 y 2013?
  40. 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)
  41. 41. https://es.surveymonkey.com/s/JP6D5NC Fuente: http://mike820324.blogspot.com.es/2011/06/simple-os-bootloader-part1.html
  42. 42. https://es.surveymonkey.com/s/JP6D5NC Fuente: http://logica10mobile.blogspot.com.es/2012/10/la-revolucion-silenciosa-uefi-y-el.html
  43. 43. https://es.surveymonkey.com/s/JP6D5NC Bootkits Fuente: ESET DOS Boot Virus
  44. 44. https://es.surveymonkey.com/s/JP6D5NC Clasificación de Bootkits ‘clásicos’ Fuente: ESET
  45. 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)
  46. 46. https://es.surveymonkey.com/s/JP6D5NC Recursos • Guías: – NIST 800-147 BIOS Protection Guidelines – NIST 800-147B BIOS Protection Guidelines for servers – NIST 800-155 BIOS Integrity Measurement Guidelines • BIOS Update Authentication • Secure Local Update • Integrity Protection • Non-Bypassability • Herramientas: – UEFI Security Response Team (USRT) – Copernicus de MITRE (bios_diff) – Subzero.io – CHIPSEC: Platform Security Assessment Framework – RDFU (Rootkit Detection Framework for UEFI) – Danooct1 Vintage Virus YouTube Channel 
  47. 47. Infección en BIOS, UEFI y derivados Desde el mito a la realidad David Barroso @lostinsecurity

×