PDF de programación - UEFI: Un arma de doble filo

Imágen de pdf UEFI: Un arma de doble filo

UEFI: Un arma de doble filográfica de visualizaciones

Publicado el 14 de Septiembre del 2017
1.055 visualizaciones desde el 14 de Septiembre del 2017
2,4 MB
35 paginas
Creado hace 9a (16/12/2014)
La defensa del patrimonio tecnológico
frente a los ciberataques

10 y 11 de diciembre de 2014

UEFI: Un arma de doble filo

© 2014 Centro Criptológico Nacional

C/Argentona 20, 28023 MADRID

www.ccn-cert.cni.es

BIOS UEFI

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

1.1 BIOS / UEFI. ¿Dónde estamos?

• Mucho parque informático aún con sistemas de arranque basados en

BIOS.

• UEFI actualmente evoluciona gracias a la aportación de un grupo de

empresas OEMs, IBVs, ISVs, IHVs.

• A pesar de la irrupción de UEFI, para las plataformas x86 siempre

habrá elementos de código BIOS presentes. (CSM).

• En ambos mundos, siempre habrá unas cuantas líneas en

ensamblador, para inicializar el HW al menos.



• Reducido número de fabricantes de BIOS (IBV)

• Ventaja para el atacante



UEFI – Linea de tiempos

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

UEFI. ¿Qué es?

• UEFI - Es una especificación de una interfaz para interactuar con el

firmware de una plataforma a la hora de arrancar un sistema.

• PI – (Platform Initialization) define el cómo se hace esta inicialización.

• UEFI es una especificación independiente de la plataforma

• PI – Aglutina la parte dependiente de la arquitectura específica

• Participan en el Unified EFI Forum más de 240 empresas

• AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, and

Phoenix Technologies (PROMOTORES).

• Permite una estrategia de generación de código compartida entre

OEMs, IBVs, IHVs

• Crecimiento en volumen de código enorme

• HP Elitebook 2540p (201?): 42 PEIMs, 164 DXE drivers

• HP Elitebook 850 G1 (2014): 117 PEIMs, 392 DXE drivers



VIII JORNADAS STIC CCN-CERT

UEFI – Fases diferenciadas en el arranque



VIII JORNADAS STIC CCN-CERT

UEFI en un flash (1)

• UEFI es una especificación independiente de la arquitectura

• Existe tanto para plataformas de 32 y 64 bits

• Actualmente soporta: ITANIUM, x86, x64, ARM (32/64), EBC.

• PI (Platform Initialization) aglutina la parte dependiente de la

arquitectura

• Modelo formal de extensibilidad de la arquitectura

• Uso de Firmware Volumes (FVs), Firmware File Systems (FFSs)

• GUIDs,

• Formato PE en los ejecutables,

• Análisis de dependencias de módulos.

• Parte del código típicamente reside en FW, parte en soporte externo.

• EFI system Partition (ESP). Mínimo 200 Mb y formateada como FAT32

• Variables BCD se almacenan típicamente en la ESP

• Requiere disco duro particionado como GPT



VIII JORNADAS STIC CCN-CERT

UEFI en un flash (2)

• UEFI corre en long-mode en x64

• Entorno óptimo para utilizar técnicas modernas de programación y

herramientas

• BIOS por el contrario es un entorno de 16-bits en modo real

• Complementa el Advanced Configuration and Power Interface (ACPI).

• Diferentes alternativas de código según el tipo de arranque  Mayor

superficie de ataque

• Run-time Services limitados en UEFI de cara al S.O.

• Básicamente Set/Get Variables que permiten por ejemplo alterar el

proceso de arranque.

• Soporta protocolos IPv4 e IPv6 para la localización de módulos de

arranque por red

• También se puede arrancar por red (PXE).

Proceso de arranque en BIOS

VIII JORNADAS STIC CCN-CERT

Proceso de arranque en UEFI

VIII JORNADAS STIC CCN-CERT



Fuente: www.quarkslab.com.

VIII JORNADAS STIC CCN-CERT

SECURE BOOT -

• Desde la especificación UEFI 2.3.1 se añadió como característica de

seguridad para proteger los sistemas UEFI de Bootkits

• Valida la integridad del cargador de arranque del Sistema Operativo

antes de transferir el control.

• No requiere de TPM (Trusted Platform Module)

• Cuando está habilitado se debe inhabilitar el CSM (legacy boot)

• Se apoya en una jerarquía de claves con una responsabilidad

compartida.

• En plataformas Microsoft, funciona para Windows 8.x y 2012 Server.

VIII JORNADAS STIC CCN-CERT

SECURE BOOT - Claves

• PK – Relación de

confianza entre el dueño
de la plataforma y el FW

• KEKs – Entre el FW y

el/los OSs

• DB – firmas o hashes de

módulos permitidos

• DBx – firmas o hashes de

módulos no permitidos

• Se verifican cuando el

BootLoader carga la
imagen

VIII JORNADAS STIC CCN-CERT

Listado de Claves en Menú BIOS



Powershell – Verificación del estado de las claves

VIII JORNADAS STIC CCN-CERT

• Get/Set-SecureBootUEFI Get-SecureBootPolicy

• Confirm/Format-SecureBootUEFI

VIII JORNADAS STIC CCN-CERT

Proceso de verificación de firmas en SecureBoot

• Realizada por el Boot Manager

• Una vez insertado el hash o firma, se da por bueno.

Fuente: www.oschina.net (intel developers forum 2012).

NVRAM. Ubicación y contenidos.

VIII JORNADAS STIC CCN-CERT

Fuente: www.intel.com

VIII JORNADAS STIC CCN-CERT

Fptw64 - Volcado a disco de la FLASH

• Depende de la configuración de variables NVRAM

VIII JORNADAS STIC CCN-CERT

Grabado de la NVRAM vía HW

• Esta opción siempre es viable.

Fuente: www.minnowboard.org.

VIII JORNADAS STIC CCN-CERT

UEFITOOL – Contenidos de volumen BIOS en UEFI

Volumen PEI – PEIMs.

VIII JORNADAS STIC CCN-CERT

UEFITOOL – Contenidos de volumen BIOS en UEFI

Volumen DXE – Drivers.

VIII JORNADAS STIC CCN-CERT

UEFITOOL – Contenidos de volumen BIOS en UEFI

Capacidad de edición y sustitución de módulos.

UEFI – Puntos de vista de atacante y defensor

VIII JORNADAS STIC CCN-CERT

• Cuanto código tan

ordenadito. Además
se puede programar
en “C”.

• Formato PE…BIEN.

• A mi disposición el
disco donde reside
el S.O.

• Existe módulo

DXE NTFS

• Si puedo añadir mi
driver DXE …. estoy
en mejor situación
que cuando
modificaba el
MBR/VBR… ¿NO?



©1999 20TH CENTURY FOX FILM CORP.



• La estandarización
es buena. Mil ojos
velan por una
especificación
segura.

• Tengo conocimiento

y control del SW
instalado en mi FW

• Puedo saber si ha

habido
modificaciones.

• Aunque el

mantenimiento y
gestión no es aún
muy amigable, lo
veo factible.



VIII JORNADAS STIC CCN-CERT

Una vez realizada la agresión, el camino es largo

• Proceso de infección del Bootkit DreamBoot

Fuente: www.virusbtn.com.

sexy …?

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

COPERNICUS – Herramienta de verificación de
integridad y gestión de configuración

VIII JORNADAS STIC CCN-CERT

CHIPSEC – Platform Security Assessment Framework

Iniciativa de INTEL para verificar la seguridad del FW

• https://github.com/chipsec

• Como tarea programada en WINDOWS, o arranque desde USB

VIII JORNADAS STIC CCN-CERT

CONCLUSIONES I

• La seguridad tradicional todavía no ha puesto el foco en UEFI
• Un montón de código se ejecuta antes de que el S.O. tome el control

• Este código tiene capacidad casi “ilimitada” sobre la plataforma hasta que se

cede el control al S.O. Después casi NULA.

• La Integridad de los módulos en UEFI es a día de hoy un punto clave.

• Control de las claves PK, KEK,…
• Control e inventario de los módulos instalados.

• Si puedes grabar la NVRAM vía HW o SW

• Si además están las claves PK, KEK, …-> GAME OVER.

• Solo con el “abuso” de las propias características de la plataforma

puede ser suficiente.

• Las carencias detectadas están en la implementación, no en la

especificación

• La complejidad de las plataformas y módulos adicionales
• Los diferentes módulos que se arrancan en función del tipo de arranque

(hibernación, suspensión, FastBoot ..) hacen mayor la superficie de ataque

VIII JORNADAS STIC CCN-CERT

CONCLUSIONES II

• Ya existen POCs de “exploits” sobre código UEFI en el proceso de

update.

• La utilización de herramientas como COPERNICUS debe ayudar a

gestionar la seguridad UEFI de un parque informático.

• La utilización del TPM para el almacenamiento de las claves ayudará a

mejorar notablemente la implementación de SecureBoot.

• En el futuro inmediato es de esperar ver aplicaciones y drivers EFI

implementando servicios de seguridad.



• Ya existen ataques viables. Su complejidad apunta a su utilización en

objetivos escogidos. Ojo a “insiders”.



UEFI – UN ARMA DE DOBLE FILO

VIII JORNADAS STIC CCN-CERT

DEMO explicada

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

Referencias (1)

 UEFI SPECS

www.uefi.org

• BEYOND BIOS: Developing with the Unified Extensible Firmware

Interface

Vincent Zimmer et al

SAFERBYTES IT SECURITY

http://news.saferbytes.it/analisi/2012/09/uefi-technology-say-hello-to-the-

windows-8-bootkit/
CANSECWEST 2014

Platform Firmware Security Assessment wCHIPSEC-csw14-final.pdf

MICROSOFT TECHNET

http://technet.microsoft.com/en-us/library/hh824898.aspx



VIII JORNADAS STIC CCN-CERT

Referencias (2)

• [1] Attacking Intel BIOS – Alexander Tereshkin & Rafal Wojtczuk – Jul. 2009

• http://invisiblethingslab.com/resources/bh09usa/Attacking%20Intel%20BIOS.pdf

• [2] TPM PC Client Specification - Feb. 2013

• http://www.trustedcomputinggroup.org/developers/pc_client/specifications/

• [3] Evil Maid Just Got Angrier: Why Full-Disk Encryption With TPM is Insecure on Many

Systems – Yuriy Bulygin – Mar. 2013

• http://cansecwest.com/slides/2013/Evil%20Maid%20Just%20Got%20Angrier.pdf

• [4] A Tale of One Software Bypass of Windows 8 Secure Boot – Yuriy Bulygin – Jul. 2013

• http://blackhat.com/us-13/briefings.html#Bulygin

• [5] Attacking Intel Trusted Execution Technology - Rafal Wojtczuk and Joanna Rutkowska –

• http://invisiblethingslab.com/resources/bh09dc/Attacking%20Intel%20TXT%20-%20paper.pdf

• [6] Another Way to Circumvent Intel® Trusted Execution Technology - Rafal Wojtczuk,

• Joanna Rutkowska, and Alexander Tereshkin – Dec. 2009

• http://invisiblethingslab.com/resources/misc09/Another%20TXT%20Attack.pdf

• [7] Exploring new lands on Intel
  • Links de descarga
http://lwp-l.com/pdf6939

Comentarios de: UEFI: Un arma de doble filo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad