Superficie de ataque en un dispositivo IoT según OWASP
El pasado 23 de noviembre tuve el placer de poder participar, por segundo año consecutivo, en el XI OWASP Spain Chapter Meeting, celebrado en La Salle Campus de la preciosa ciudad de Barcelona. Más información sobre este evento la podéis encontrar en el siguiente enlace: https://www.owasp.org/index.php/Spain/Chapter_Meeting. Este año elegí IoT como temática para mi charla, aprovechando que OWASP tiene un proyecto específico.
El objetivo de la misma era poder mostrarles a los asistentes los diferentes recursos para evaluar la seguridad en dispositivos IoT. No explicaré a estas alturas lo que es IoT, todos sabemos ya que es Internet Insecurity of Things.
Se mostraron varios ejemplos de dispositivos IoT, como el que muestro a continuación, y que, aún no entiendo cómo hemos podido subsistir sin él. Sí, señoras y señores, existe un i.Con. ¡El Internet of Shit ya está aquí!
Una vez que los allí presentes superamos el shock, procedí a explicar en qué consiste el proyecto de seguridad en IoT de OWASP, cuyo sitio web oficial podéis encontrar en este enlace. Pero antes, quise hacer hincapié en la valoración del riesgo que hacemos sobre estos dispositivos. ¿Realmente somos conscientes de cuáles son las amenazas que afectan a estos dispositivos? Si no lo somos, podemos caer en una mala percepción del riesgo, y pasar por alto algunos de los vectores de ataque que pueden poner en peligro la seguridad de éste.
Para no caer en este error, y evaluar todos los controles de seguridad aplicables al dispositivo IoT que vamos a auditar, necesitamos tener claro cuál es el escenario, cuál es el ecosistema habitual en el que nos podemos encontrar este tipo de dispositivos. OWASP nos propone el siguiente esquema como ejemplo:
En este ejemplo podemos ver cómo unos dispositivos IoT son gestionados de forma centralizada por su IoT Gateway, mediante protocolos de comunicación como Zigbee o zWave, que este IoT Gateway se conecta mediante WiFi, GSM o Ethernet a un servicio Cloud para su gestión a través de una web, que a través de una aplicación móvil se pueden gestionar estos dispositivos, ya sea a través de WiFi (vía IoT Gateway) o mediante BLE (Bluetooth Low Energy).Observando este ejemplo, podemos darnos cuenta que auditar la seguridad de según qué dispositivo IoT, no es una tarea sencilla. No podemos caer en el error de evaluar sólo nuestras vulnerabilidades favoritas o las que conocemos, no estaríamos percibiendo correctamente el riesgo y el resultado final no se ajustaría a la realidad. Según el ejemplo habría que evaluar controles de seguridad de diferentes campos como seguridad web, seguridad en aplicaciones móviles (Android e iOS), seguridad en protocolos de comunicación no habituales (Zigbee, zWave o BLE), seguridad en las comunicaciones habituales (WiFi o Ethernet) y seguridad del propio dispositivo (análisis de firmware, análisis de binarios, etc).
Afortunadamente el proyecto IoT de OWASP nos propone una serie de áreas que habría que evaluar en una posible superficie de ataque.
De forma más concreta, os dejo aquí una relación de controles (aún incompleta) que he extraído pertenecientes a estas y que espero os puedan servir de referencia:
- Autenticación
- Autorización
- Gestión de sesiones
- Credenciales en memoria
- Claves de cifrado en memoria
- Extracción de firmware
- Análisis de firmware
- Restauración a estado inseguro
- Escalada de privilegios
- SQL Injection, XSS, CSRF…
- Enumeración de usuarios
- Ataques fuerza bruta
- Ataques de diccionario
- Análisis de tráfico LAN (Cableado)
- Análisis de tráfico WiFi
- Análisis de conexión a APIs
- Seguridad en red WiFi
- Credenciales conocidas
- Contraseñas “hardcodeadas”
- Descubrimiento de URLs sensibles
- Denegación de servicio
- Almacenamiento no cifrado
- Falta de control de integridad
- Comunicaciones no cifradas
- Actualizaciones no cifradas
- Actualizaciones no firmadas
- Mecanismo de lockout usuarios
- Control de integridad de firmware
- Análisis de tráfico Zigbee
- Análisis de tráfico BLE
- Acceso físico a componentes
- Análisis de aplicación móvil
- Seguridad en dispositivos Bluetooth
- Seguridad en servidores de API
Como siempre, espero que os resulte de interés el artículo y aprovecho para comentaros que este artículo nos servirá como introducción a una serie de artículos que iremos publicando sobre seguridad en dispositivos IoT y cómo auditarlos.
¡Hasta pronto amigos!
Miguel A. Arroyo – @miguel_arroyo76