Los secretos de tu chip IoT - CCN-CERT

76
Los secretos de tu chip IoT

Transcript of Los secretos de tu chip IoT - CCN-CERT

Page 1: Los secretos de tu chip IoT - CCN-CERT

Los secretos de tu

chip IoT

Page 2: Los secretos de tu chip IoT - CCN-CERT

Javier Tallón – Technical Director

[email protected]@javiertallon / @jtsecES

Page 3: Los secretos de tu chip IoT - CCN-CERT

Índice1. Introducción

1. Vulnerabilidades del IoT

2. Accediendo al firmware

3. Técnicas de ataque a la protección contra lectura

1. Heart of Darkness

2. UV-C Security Fuse Erase

3. Coold Boot Stepping

4. Flash Lock Race

5. Inyección de Faltas

6. Side Channel Attack

4. Conclusiones

Page 4: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Predicción del Crecimiento IoT

Fuente: https://www.ericsson.com/en/mobility-report/internet-of-things-forecast

Page 5: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

IoT en el Punto de Mira de los Hackers

• IoT botnets

• Denegación de Servicio Distribuido(DDOS)

• Okiru y Masuta: Más de 700,000dispositivos infectados

Fuente: https://krebsonsecurity.com/2019/09/satori-iot-

botnet-operator-pleads-guilty/

Page 6: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Vulnerabilidades IoT. eHealth

Fuente: https://www.theregister.co.uk/2019/06/13/medical_workstation_vulnerabilities/

Fuente: https://www.ccn-cert.cni.es/seguridad-al-dia/noticias-seguridad/8342-las-bombas-

de-insulina-de-medtronic-anteriores-a-2013-podrian-sufrir-ciberataques.html

Page 7: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Vulnerabilidades IoT. Smart Cities

Fuente: https://iot-analytics.com/top-10-iot-segments-2018-real-iot-projects/

Page 8: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Vulnerabilidades IoT. Smart Cities

Fuente: https://www.kaspersky.com/blog/blackhat-jeep-cherokee-hack-explained/9493/

Page 9: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Vulnerabilidades IoT

1. Contraseñas débiles, inseguras o por defecto.

2. Servicios expuestos a Internet inseguros

3. Ecosistema inseguro (cifrado débil, falta de autenticación,integridad, etc.)

4. Falta de mecanismos de actualización seguros

5. Uso de componentes desactualizados

6. Protección de privacidad insuficiente

7. Transferencia y almacenamiento de datos de forma insegura

8. Monitorización insuficiente

9. Configuración por defecto insegura

10. Falta de seguridad física

Fuente: https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project

Page 10: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Vulnerabilidades IoT

1. Contraseñas débiles, inseguras o por defecto.

2. Servicios expuestos a Internet inseguros

3. Ecosistema inseguro (cifrado débil, falta de autenticación,integridad, etc.)

4. Falta de mecanismos de actualización seguros

5. Uso de componentes desactualizados

6. Protección de privacidad insuficiente

7. Transferencia y almacenamiento de datos de forma insegura

8. Monitorización insuficiente

9. Configuración por defecto insegura

10. Falta de seguridad física

Fuente: https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project

Page 11: Los secretos de tu chip IoT - CCN-CERT

1. Introducción

Acceso Físico a un Dispositivo IoT

Game Over

Page 12: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Microcontrolador vs Microprocesador

1. Microcontrolador

• Memoria RAM y flash en un único chip

• Code Readout Protection (CRP) protege lamemoria flash

• Tamaño de memoria RAM y flash reducido

• Generalmente, no es capaz de alojar un sistemaoperativo

2. Microprocesador

• Memoria RAM y flash en chips separados

• Comunicaciones expuestas entre CPU y memoriaflash

• Mayor tamaño de memoria RAM y flash

• Más difícil proteger los contenidos de la memoriaflash

Page 13: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

De Caja Negra a Caja Gris

Page 14: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Obtener Información o Secretos

Page 15: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

De Caja Negra a Caja Gris

Page 16: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Métodos

• Internet. Accesible al público

• Interceptar durante actualización

• Comunicación por puerto de debug

• SWD

• JTAG

• Desoldar (chipoff attack)

Page 17: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Internet. Acceso Público

• Requiere que el firmware esté disponible al público

Fuente: https://downloads.rakwireless.com/en/LoRa/RAK811/Firmware/History-Release-Verison/

Page 18: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Interceptación

• El servidor central envía unaactualización al dispositivo

• Canal de comunicación inseguro

• Atacante obtiene información sensible sobre el firmware

Page 19: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Puerto de Debug

• Ataque:

1. Identificar los pines UART

2. Conectar dispositivo receptor

3. Identificar la velocidad de transmisión (baudios)

4. Utilizar la interfaz de debugging para obtener accesoFuente:

https://blog.securityinnovation.com/iot_uart

Page 20: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

¿Qué es JTAG?

Page 21: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

¿Qué es SWD?

Page 22: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Funciones JTAG/SWD

• Siempre disponemos de:

1. Interfaz eléctrica JTAG y SWD

2. Máquina de estados. Usando la señal TMS nos movemos por el flujo.

Fuente: https://www.xjtag.com/about-jtag/jtag-a-technical-

overview/

Page 23: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Funciones JTAG/SWD

• Casi siempre disponemos de:

1. IDCODE (Identificador)

2. BYPASS (TDI → TDO)

3. Boundary scan. Control de pines

Fuente: https://www.xjtag.com/about-jtag/jtag-a-technical-

overview/

Page 24: Los secretos de tu chip IoT - CCN-CERT

2. Accediendo al Firmware

Funciones JTAG/SWD

• No estándar:

1. Acceso a los registros de la CPU

2. Acceso a la memoria RAM

3. Acceso a la memoria flash

4. Seguridad en JTAG

Fuente: https://www.xjtag.com/about-jtag/jtag-a-technical-

overview/

Page 25: Los secretos de tu chip IoT - CCN-CERT

Fuente: https://www.openpcd.org/dl/HID-iCLASS-security.pdf

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 26: Los secretos de tu chip IoT - CCN-CERT

Fuente: http://ww1.microchip.com/downloads/en/DeviceDoc/39576b.pdf

• PIC18FXX2/XX8

• Dividido en bloques

• Configuración individual para cada bloque

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 27: Los secretos de tu chip IoT - CCN-CERT

Fuente: http://ww1.microchip.com/downloads/en/DeviceDoc/39576b.pdf

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 28: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 29: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 30: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 31: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 32: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 33: Los secretos de tu chip IoT - CCN-CERT

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 34: Los secretos de tu chip IoT - CCN-CERT

Fuente: https://www.silabs.com/documents/public/reference-manuals/EM359x-RM.pdf

Heart of Darkness

3. Técnicas de Ataque a la Protección Contra Lectura

Page 35: Los secretos de tu chip IoT - CCN-CERT

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://www.usenix.org/system/files/conference/woot17/woot17-paper-obermaier.pdf

UV-C Security Fuse Erase

Page 36: Los secretos de tu chip IoT - CCN-CERT

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://usermanual.wiki/Pdf/STM32Fxreference20manual.1209178456/view

UV-C Security Fuse Erase

Page 37: Los secretos de tu chip IoT - CCN-CERT

UV-C Security Fuse Erase

3. Técnicas de Ataque a la Protección Contra Lectura

Page 38: Los secretos de tu chip IoT - CCN-CERT

UV-C Security Fuse Erase

3. Técnicas de Ataque a la Protección Contra Lectura

Page 39: Los secretos de tu chip IoT - CCN-CERT

Fuente: https://www.bunniestudios.com/blog/?page_id=40

UV-C Security Fuse Erase

3. Técnicas de Ataque a la Protección Contra Lectura

Page 40: Los secretos de tu chip IoT - CCN-CERT

3. Técnicas de Ataque a la Protección Contra Lectura

UV-C Security Fuse Erase

Page 41: Los secretos de tu chip IoT - CCN-CERT

UV-C Security Fuse Erase

3. Técnicas de Ataque a la Protección Contra Lectura

Page 42: Los secretos de tu chip IoT - CCN-CERT

UV-C Security Fuse Erase

3. Técnicas de Ataque a la Protección Contra Lectura

Page 43: Los secretos de tu chip IoT - CCN-CERT

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://www.usenix.org/system/files/conference/woot17/woot17-paper-obermaier.pdf

Flash Lock Race

Page 44: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 45: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

No conocemos los detalles de la implementación

Page 46: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 47: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 48: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

• Minimización de SWD

• Solicitar acceso a la memoria flash

• Condición de carrera, debemos leer la memoria antes de que esta sea bloqueada

1. Reiniciamos el sistema

2. Inicializamos la interfaz de debug

3. Establecemos la dirección de memoria que queremos leer

4. Leemos la memoria

5. Si tenemos éxito, repetimos el proceso para subsecuentes secciones de memoria

Page 49: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://www.usenix.org/system/files/conference/woot17/woot17-paper-obermaier.pdf

Page 50: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 51: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 52: Los secretos de tu chip IoT - CCN-CERT

Flash Lock Race

3. Técnicas de Ataque a la Protección Contra Lectura

Page 53: Los secretos de tu chip IoT - CCN-CERT

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://damien.courousse.fr/pdf/2019-NEWCAS-preprint.pdf

Page 54: Los secretos de tu chip IoT - CCN-CERT

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 55: Los secretos de tu chip IoT - CCN-CERT

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 56: Los secretos de tu chip IoT - CCN-CERT

• Bootloader comprueba la integridad de la memoria flash usando CRC

• Dependiendo de la implementación, el resultado del CRC es almacenado en SRAM

• CRC posiblemente reversible → Obtenemos los contenidos de la memoria flash

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 57: Los secretos de tu chip IoT - CCN-CERT

• Cada iteración CRC tarda T segundos

• Poco nivel de control con pulsos de reloj rápidos

• Podría ser de utilidad un reloj externo

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 58: Los secretos de tu chip IoT - CCN-CERT

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 59: Los secretos de tu chip IoT - CCN-CERT

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 60: Los secretos de tu chip IoT - CCN-CERT

• Ralentizar el reloj usando un oscilador externo

• No siempre es posible, depende del chip

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 61: Los secretos de tu chip IoT - CCN-CERT

Fuente: https://www.usenix.org/system/files/conference/woot17/woot17-paper-obermaier.pdf

Cold Boot Stepping

3. Técnicas de Ataque a la Protección Contra Lectura

Page 62: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

• El éxito y el tiempo que se necesita para llevar a cabo este ataque son poco predecibles

• El objetivo es enviar un pulso de reloj en un intervalo de tiempo no esperado, causando que se salten instrucciones

Page 63: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

• El éxito y el tiempo que se necesita para llevar a cabo este ataque son poco predecibles

• El objetivo es enviar un pulso de reloj en un intervalo de tiempo no esperado, causando que se salten instrucciones

Page 64: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

• Existen diferentes bootloaders

• U-Boot es el más común

Fuente: https://github.com/u-boot/u-boot

Fuente: https://wikidevi.com/wiki/Property:Stock_bootloader/full

Page 65: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

• Si la función autoboot_commandfalla, obtenemos un Shell

• Hacemos que falle mediante inyección de faltas

Fuente: https://gitlab.denx.de/u-boot/u-

boot/blob/master/common/main.c

Page 66: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://www.kickstarter.com/projects/coflynn/chipwhisperer-lite-a-new-era-of-hardware-security

Page 67: Los secretos de tu chip IoT - CCN-CERT

Inyección de Faltas

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://github.com/newaetech/chipwhisperer

• Conjunto de herramientas para la investigación de la seguridad en sistemas empotrados

• Facilita la exploración de side-channel attacks e inyecciones de falta

• Open Source

Page 68: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://eprint.iacr.org/2016/1047.pdf

Page 69: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://eprint.iacr.org/2016/1047.pdf

Page 70: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://eprint.iacr.org/2016/1047.pdf

Page 71: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

Fuente: https://eprint.iacr.org/2016/1047.pdf

ChipWhisperer-Lite

Page 72: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

• Permite inferir el valor de uno o varios bits

• Realizable con herramientas como: osciloscopio o ChipWhisperer

• Posible ataque: extraer las claves de cifrado

Fuente: https://eprint.iacr.org/2016/1047.pdf

Page 73: Los secretos de tu chip IoT - CCN-CERT

Side Channel Attack

3. Técnicas de Ataque a la Protección Contra Lectura

• Se extraen las claves de cifrado

• Podemos inyectar firmware, firmado con las claves extraídas

• Usamos el firmware para propagarlo a otros dispositivos usando Over-The-Air UpgradingCluster → Gusano IoT

• Requiere una densidad mínima de dispositivos para que se propague por toda la ciudad

Page 74: Los secretos de tu chip IoT - CCN-CERT

3. Técnicas de Ataque a la Protección Contra Lectura

Page 75: Los secretos de tu chip IoT - CCN-CERT

4. Conclusiones

• Normalmente no tenemos acceso físico a los dispositivos

• Este paradigma cambia con la introducción de las Smart cities e IoT

• Con acceso físico la superficie de ataque incrementa considerablemente

• Evitar la seguridad por oscuridad

• Diseñar el firmware asumiendo que la protección de lectura fallará

• Importancia de la certificación para los dispositivos IoT (Common Criteria, LINCE…)

Page 76: Los secretos de tu chip IoT - CCN-CERT