Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Rafael Boix - Reventando IOT con ataques hardware por menos de 50 euros [rootedvlc2018]

197 visualizaciones

Publicado el

Los ataques hardware a dispositivos embebidos se suelen considerar de difícil acceso para personas con bajo presupuesto y poca experiencia en el campo de la seguridad informática. Esta charla pondrá a prueba esta creencia, mostrando que solamente con herramientas de código libre y hardware de súper bajo coste (y dudosa calidad) se puede montar ataques hardware exitosos en dispositivos Internet-of-Things (IoT), accesibles para cualquiera. En concreto, con menos de 50 euros de presupuesto veremos en directo cómo montar herramientas para extraer claves AES con ataques Side-Channel Analysis y cómo saltarse comprobaciones de seguridad con Fault Injection en un dispositivo IoT.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Rafael Boix - Reventando IOT con ataques hardware por menos de 50 euros [rootedvlc2018]

  1. 1. 1 Reventando IoT por menos de 50 euros Rafael Boix Carpi Principal Trainer & Security Specialist Valencia, 15 de septiembre, 2018
  2. 2. 2 Sobre mi • Principal Trainer & Security specialist en Riscure (Holanda) • Ingeniero informático por la UPV • Trabajando en seguridad en sistemas embebidos desde 2013 • Análisis de software y hardware de aplicaciones de alta seguridad: pago móvil, tarjetas inteligentes, módulos HSM, evaluaciones CC de dispositivos, etc…
  3. 3. 3 Breve historia sobre un CTF y dispositivos IoT
  4. 4. 4 Breve historia sobre un CTF e IoT Introducción 2017: Mas de 8400 millones de “cosas” conectadas a internet Mi cafetera ya no me sigue en Twitter
  5. 5. 5 Breve historia sobre un CTF e IoT Introducción Dispositivo IoT = Internet of Things (internet de las cosas) • Pieza central: microcontrolador de propósito general (MCU) • Súper barato (MCU < 5 euros) • Hace miles de cosas – WiFi / Bluetooth / memoria / USB / … – Múltiples interfaces y sensores – Kit de desarrollo típicamente < 20 euros
  6. 6. 6 Breve historia sobre un CTF e IOT Introducción Dispositivo IoT = Internet of Things (internet de las cosas) • Pieza central: microcontrolador de propósito general (MCU) • Súper barato (MCU < 5 euros) • Hace miles de cosas – WiFi / Bluetooth / memoria / USB / … – Múltiples interfaces y sensores – Kit de desarrollo típicamente < 20 euros
  7. 7. 7 Los microcontroladores de propósito general (MCU) NO SON SEGUROS contra ataques SCA o FI
  8. 8. 8 (Foto de RootedCON con Eloi enseñando SCA/FI)
  9. 9. 9
  10. 10. 10
  11. 11. 11 Los microcontroladores de propósito general NO SON SEGUROS contra ataques SCA o FI
  12. 12. 12 Los microcontroladores de propósito general NO SON SEGUROS contra ataques SCA o FI
  13. 13. 1313
  14. 14. 14 Breve historia sobre un CTF e IoT Introducción Muchos resolvieron las pruebas de software  Pero casi nadie resolvió las pruebas de SCA o FI  Excusas más frecuentes: • “El equipo para ataques hardware tipo SCA o FI es muy caro” • “Los ataques SCA o FI son muy complicados” • “Eso solo lo hacen los laboratorios de seguridad hardware” • “Tengo alergia a las matemáticas” • “Romperé mi dispositivo”
  15. 15. 15 Breve historia sobre un CTF e IoT Introducción Mis objetivos de hoy: • Enseñaros que los ataques SCA están al alcance de todos • Enseñaros que los ataques FI están al alcance de todos • Si desarrollas sw/hw de cosas conectadas a internet, y: – manejas información sensible – crees que estos ataques no pasan en tu desarrollo – no pruebas estos ataques – no investigas cómo defenderse ante estos ataques ten por SEGURO que te hackearán: ¡¡¡¡por favor haz algo!!!!
  16. 16. 16 Reglas del juego Introducción Usar las herramientas más baratas que pude encontrar Ataques genéricos para (casi) cualquier dispositivo IoT Usando solo código abierto Ataques reproducibles por un perfil atacante “script-kiddie” Script-kiddie:
  17. 17. 17 Side-Channel Analysis(SCA): Teoría y práctica Rompiendo implementaciones de cifrado AES
  18. 18. 18 Mensaje Msj. cifrado SCA: teoría y práctica SCA: teoría y práctica Prueba: Piece of SCAke (disponible en riscure.com/Github) Objetivo Extraer la clave AES128 del dispositivo IoT Información adicional 1) El dispositivo IoT recibe mensajes 2) El dispositivo responde los mismos mensajes cifrados con AES128bit
  19. 19. 19 SCA: teoría y práctica SCA: teoría y práctica Nota: existen ataques SCA para cualquier tipo de criptografía Solo hace falta tener acceso físico al dispositivo*
  20. 20. 20 SCA: receta SCA: teoría y práctica 1 – Enviar (o escuchar) mensajes al dispositivo 2 – Medir el side-channel (hardware: consumo de potencia) durante la operación de cifrado con AES 128bit 3 – Un programa SCA “hace matemáticas” con lo obtenido en los dos primeros pasos 4 – Obtienes la clave criptográfica 
  21. 21. 21 SCA paso a paso SCA: teoría y práctica Medir trazas de consumo Procesado de señal Detección de fuga de datos (opcional) Atacar la clave criptográfica
  22. 22. 22 SCA paso a paso SCA: teoría y práctica Medir trazas de consumo Procesado de señal Detección de fuga de datos (opcional) Atacar la clave criptográfica ¿Cómo se mide el consumo de potencia?
  23. 23. 23 Ordenador Sensor de consumo Medida de potencia Traza de potencia: - Medida de potencia - Mensaje de entrada/salida Medir potencia en sistemas embebidos
  24. 24. 24 Medir potencia en sistemas embebidos SCA: teoría y práctica • Hay maneras “más eficientes” para medir potencia (sensor de corriente, antenas, etc.) pero no las veremos hoy… Ri  Dispositivo IoT ¡¡Porque una resistencia es barata!! (<0.01euro) línea de masa (99% veces es el cable negro)
  25. 25. 25 Coste del equipamiento SCA: teoría y práctica Resistencia 0.01 eur Cable USB del cubo de la basura Gratis Soldador USB 3.77 euros, ¡envío gratis! ¡Estaño incluido! ¡Y encima funciona! ¡¡INCREIBLE!! “Osciloscopio” Hantek 6022BE 43.34 euros, ¡envío gratis! ¡Cables y sondas incluidas! Cable USB a UART (opcional) 0.89 euros, ¡envío gratis! Coste total del equipamiento: 48.01 euros
  26. 26. 26 Demo time
  27. 27. 27 SCA paso a paso SCA: teoría y práctica Medir trazas de consumo Procesado de señal Detección de fuga de datos (opcional) Atacar la clave criptográfica ¿Se puede “mejorar” la captura de potencia?
  28. 28. 28 SCA paso a paso SCA: teoría y práctica Para calcular estadísticos, hay que comparar “peras con peras” Los dispositivos IoT suelen tener un LED para indicar actividad El dispositivo RHMe2 enciende un LED si está ocupado  Vamos a alinear las medidas de potencia con el LED alineado
  29. 29. 29 Demo time
  30. 30. 30 SCA paso a paso SCA: teoría y práctica Medir trazas de consumo Procesado de señal Detección de fuga de datos (opcional) Atacar la clave criptográfica ¿El dispositivo filtra información?
  31. 31. 31 SCA paso a paso SCA: teoría y práctica Existen herramientas libres para cálculo estadístico (R, SciPy, Octave, etc.) Estadístico útil para detectar fuga de información: Welch T-test • Este test detecta si el dispositivo muestra un consumo diferente dependiendo de si el mensaje de entrada es constante o aleatorio
  32. 32. 32 SCA paso a paso SCA: teoría y práctica Medir trazas de consumo Procesado de señal Detección de fuga de datos (opcional) Atacar la clave criptográfica ¿Reventamos la clave?
  33. 33. 33 Advertencia: matemáticas Voy a explicar un ataque SCA en detalle Si no queda del todo claro, no pasa nada: • Los programas SCA (p.ej. jlSCA) tienen todo implementado • Ejecutad los scripts del tutorial y ya • Revisad luego la presentación hasta que llegue la iluminación • O preguntadme luego en un descanso/email/etc… SCA: ataque CPA
  34. 34. 34 S-box S-box S-box Mensaje entrada Clave 128bit AES S-box S-box S-box 128 bits 128 bits 8 bits8 bits8 bits8 bits8 bits8 bits Más operaciones … ………………. (16 boxes) + Sub-claves en AES • independientes entre si • atacables por separado Ataque fuerza bruta: 2128 Divide y vencerás: 16*28 = 212 = 4096 intentos Reducimos 2128 a 4096!!! Ataque CPA: divide y vencerás SCA: ataque CPA
  35. 35. 35 99.999% de los algoritmos de cifrado modernos son públicos Si asumo un valor para un byte de clave  puedo calcular partes Teniendo partes del algoritmo: • ¿mis valores calculados se parecen a la traza de potencia? • ¿hay alguna manera de comprobarlo? Comodín de Internet: Ataque CPA: divide y vencerás SCA: ataque CPA
  36. 36. 36 Ataque CPA: divide y vencerás SCA: ataque CPA TrazaByte Traza de correlaciónHW FF C7 09 8B Bits 8 5 2 410001011 11111111 11000111 00001001
  37. 37. 37 Demo time! DEMO: CPA
  38. 38. 38 Conclusiones SCA Conclusiones: CPA Conclusión 1: ataques SCA son ultra-baratos y escalables • Coste total del equipamiento: menos de 50 euros • P: ¿Coste en tiempo? 2 días enteros para el primer ataque* – 1.8 días peleándome con el “osciloscopio” & drivers & software libre – 0.1 días para construir el montaje (quitar condensadores) – 0.1 días para montar el toolchain SCA con software libre y medir potencia – *Nota: con ~200 euros de osciloscopio, tiempo ~2 horas. Con herramientas profesionales: <2 minutos • P: ¿Y repetir el ataque con las mismas herramientas? ¡¡2 minutos!! • Resultado: reventada la clave entera & ataque escalable Conclusión 2: Montar un equipo SCA con software libre para atacar dispositivos tipo IoT es (casi) trivial
  39. 39. 39 Inyección de fallos (Fault Injection, FI): Teoría y práctica Rompiendo comprobaciones de seguridad
  40. 40. 40 FI: teoría y práctica FI: teoría y práctica Prueba: FIesta (disponible en riscure.com/Github) Objetivo Desbloquear el candado IOT Información adicional El dispositivo IoT se enciende El dispositivo imprime el mensaje “Lock” infinitamente Lock Lock Lock Lock …
  41. 41. 41 ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? FI: teoría FI: teoría y práctica
  42. 42. 42 FI: teoría y práctica Sobrevoltaje Infravoltaje
  43. 43. 43 Glitch! Glitch! FI: teoría y práctica
  44. 44. 44 FI: receta 1 – Inyectar una perturbación eléctrica en el chip 2 – Repetir (1) muchas veces y cruzar los dedos 3 – Con suerte*, (2) corromperá el estado del chip: • Datos almacenados • Instrucciones almacenadas o en ejecución 4 – El dispositivo empieza a hacer cosas interesantes  FI: teoría y práctica
  45. 45. 45 FI: Hipótesis inicial FI: teoría y práctica Hipótesis inicial: el código en el dispositivo se parece algo a esto: boolean desbloqueado=false; inicializa_dispositivo(); while(1){ desbloqueado=comprueba_algun_secreto(); if(desbloqueado){ print(secreto); } else{ print(“Lock”); } }
  46. 46. 46 FI: Definición del ataque (en el lab) FI: teoría y práctica Definición del ataque: ¿Que dato o instrucción podemos cambiar para ejecutar el desbloqueo? boolean desbloqueado=false; inicializa_dispositivo(); while(1){ desbloqueado=comprueba_algun_secreto(); if(desbloqueado){ desbloquear(); } else{ print(“Lock”); } }
  47. 47. 47 FI: Definición del ataque (versión practica) FI: teoría y práctica En la práctica: boolean desbloqueado=false; inicializa_dispositivo(); while(1){ desbloqueado=comprueba_algun_secreto(); if(desbloqueado){ desbloquear(); } else{ print(“Lock”); } }
  48. 48. 48 Cómo generar un glitch 101 FI: teoría y práctica Ataque FI más simple: glitching en voltaje Reloj del MCU en el dispositivo IoT: 16MHz – 1 ciclo de reloj = 62.5ns – Generar un pico de voltaje de ese tiempo es muy fácil hoy en día Brainstorming para montar un dispositivo de glitching – MCU, un transistor y dos fuentes de alimentación – MCU con un DAC y un buffer – MCU con un multiplexor y un buffer – ….
  49. 49. 49 CheapoGlitcher 2 FI: teoría y práctica Kit de desarrollo con un MCU ARM @ 180MHz – Si queréis comprar el mismo, cuesta ~US$ 15 – Webinars de fabricantes: suelen dar placas gratis GPIO pins @ 90MHz máx.  glitches de 11ns  “sobrao”  GPIO proporciona suficiente corriente para el dispositivo IoT Vamos a encender/apagar los pins aleatoriamente ¿Funcionará?
  50. 50. 50 CheapoGlitcher 2 Después de 5 horas tomando cafés en la conferencia SHA2017 en Ámsterdam… Probabilidad de éxito: 100% FI: teoría y práctica
  51. 51. 51 CheapoGlitcher 2 vs IoT: LOL
  52. 52. 52 Conclusiones FI FI: conclusiones Conclusión 1: se puede hacer glitching en MCUs con casi cualquier cosa RHMe2: 100% reproducible, herramienta de glitching súper barata y 5 horas de esfuerzo Conclusión 2: obligatorio implementar defensas contra FI Bucle infinito en código: intentos ilimitados En tu desarrollo: ¿tienes alguna estructura similar?
  53. 53. 53 Conclusiones y recomendaciones
  54. 54. 54 Conclusiones Conclusiones Mis objetivos de hoy Ataques SCA al alcance de todos:  Ataques FI al alcance de todos:  Movilizar a los desarrolladores: ?
  55. 55. 55 Conclusiones Conclusiones Mis objetivos de hoy Desarrolladores de dispositivos tipo IoT: ¿deberíais hacer algo? ¿Podéis contestar a estas preguntas? – ¿Se puede romper la seguridad de mi dispositivo con FI? – ¿Se pueden revelar los secretos de mi dispositivo con SCA?
  56. 56. 56 Recomendaciones Recomendaciones 1. Entender cómo funciona y por qué es un problema – Aprende cómo funcionan estos ataques SCA/FI (p.ej. training o lee algún paper) – ¡Prueba los ataques tú mismo! 2. Desarrolla una solución – Importante: lo que he mostrado aquí no es nada comparado con los ataques profesionales • Pero defenderse contra ataques como los presentados es un muy buen comienzo – Poner defensas a todos los niveles • Software • Hardware • Protocolos – Usar patrones de diseño seguro de hardware/software: https://www.riscure.com/gocheap/ 3. Verifica que la solución implementada funciona de verdad – Diseño != implementación  problemas más persistentes de lo que parece – Testeo independiente ayuda a evitar puntos ciegos pentesters / laboratorios de evaluación son tus amigos
  57. 57. 57 Q&A Q&A
  58. 58. 58 Challenge your security Riscure B.V. Frontier Building, Delftechpark 49 2628 XJ Delft The Netherlands Phone: +31 15 251 40 90 www.riscure.com Riscure North America 550 Kearny St., Suite 330 San Francisco, CA 94108 USA Phone: +1 650 646 99 79 inforequest@riscure.com Riscure China Room 2030-31, No. 989, Changle Road, Shanghai 200031 China Phone: +86 21 5117 5435 inforcn@riscure.com Para más información / preguntas: Rafael Boix Principal Security Specialist 📩 rafael@Riscure.com

×