Vulnerabilidades en proyectos IoT y cómo encontrarlas
Tiempo de lectura estimado: 12 minutos
Esta conferencia magistral pertenece al Módulo 11 "IoT y Seguridad" de C1b3rWall Academy 2021/2022. El objetivo de la misma es entender mejor el IoT para comprender, a través de ejemplos, las principales amenazas y vulnerabilidades y aprender de ellas.
Introducción al IoT
Hace varios años, IBM empezó a hablar del smart planet (planeta inteligente), considerando la posibilidad de empotrar la tecnología en el mundo físico para conseguir un contexto más inteligente. Esto evolucionó de distintas formas, y una de las más interesantes fue el internet de las cosas, en el que conectamos a internet distintos objetos empotrados en nuestra realidad. Esto tiene muchas ventajas desde el punto de vista social, gubernamental y corporativo.
Hay algunas arquitecturas estándares o de referencia en proyectos IoT:
- AIOTI High Level Architecture functional model.
- FP7-ICT - IoT - A Architectural reference model.
- NIST Network of Things (NoT).
- ITU-T IoT reference model.
- ISO/IEC CD 30141 Internet of Things Reference Architecture (IoT RA).
De la misma forma, también se van proponiendo arquitecturas para las mejores prácticas de seguridad e intentar medir la madurez de los proyectos IoT. Desde el punto de vista defensivo, estos modelos de madurez ayudan a saber en qué punto se está inicialmente e ir incorporando mejores prácticas y reduciendo el riesgo.
Seguridad y ciclo de vida
En un proyecto IoT, se habla de ciclo de vida entendiéndolo como un proceso que sigue una serie de fases: diseño, fabricación, despliegue, operación, mantenimiento y retirada.
La fase de diseño tiene las siguientes características u objetivos:
- Establecer requisitos de seguridad y privacidad.
- Definir mínimos de calidad y certificarlos.
- Mínimo privilegio.
- Mínima superficie de exposición.
- Análisis de esta superficie y modelo de amenazas.
- Análisis de riesgos.
- Dar prioridad al I+D.
Por su parte, en la fase de fabricación conviene:
- Confiar en capacidades de seguridad integradas.
- Establecer normativas claras para los fabricantes.
- Gestionar adecuadamente la cadena de suministro.
- Definir procedimientos para probar y evaluar todos los dispositivos y servicios adquiridos.
- Proponer y cumplir requisitos de aceptación.
En la fase de despliegue:
- Seguir las instrucciones proporcionadas por el fabricante.
- Elaborar y decidir cómo actualizar inventarios de activos.
- Definir configuraciones base seguras, documentarlas y automatizar su aplicación y pruebas.
- Aplicar control de accesos para las modificaciones de configuración.
- Definir y mantener actualizado un plan de respuesta a incidentes.
En la fase de operación, es decir, en la que el proyecto ya está funcionando, hay que centrarse en distintas capas que se señalan más adelante.
La fase de mantenimiento se caracteriza por las siguientes necesidades:
- Planificar mantenimientos y actualizaciones que sigan las instrucciones del fabricante. Es necesario contar con mecanismos OTA seguros (Over The Air).
- Identificar la lista de personal y organizaciones autorizadas para realizar estas labores.
- Monitorizar que las configuraciones y capacidades de seguridad siguen funcionando de manera adecuada tras las actividades de mantenimiento.
Respecto a la fase de retirada:
- Establecer los mecanismos de retirada de archivos que permitan borrar datos y credenciales antes de que sean dados de baja.
Principales amenazas y vulnerabilidades
La falta de concienciación y conocimientos en proyectos IoT es una de las fuentes principales de vulnerabilidades. En muchos casos, aunque sea vea necesaria la concienciación, cuesta encontrar gente que tenga los conocimientos adecuados debido a la novedad en los programas y la ausencia de documentación.
En lo relativo a IoT, hay poco estándar, regulación y normativa. En los últimos años se ha hecho un esfuerzo importante por regular, pero se han propuesto tantos estándares o marcos que no se sabe a cuál acudir.
La superficie de ataque en dispositivos IoT pasa por las interfaces físicas, la memoria, el firmware, los servicios, el sistema operativo y las interfaces web.
- Las interfaces físicas plantean problemas en dispositivos IoT como la destrucción o tampering, la manipulación de sensores, la extracción de firmware, el acceso a la consola de comandos, el reseteo a estado de fábrica o la retirada de medios de almacenamiento externo.
- Los riesgos de la memoria pasan por la exposición de información sensible (nombres de usuario, contraseñas, claves de cifrado, código...).
- Respecto al firmware, se puede extraer otra información sensible, la versión instalada, servicios vulnerables como http(s), ssh, ftp o alternativas para el downgrade.
- En lo relativo a los servicios, los problemas están relacionados con criptografía inexistente o mal implementada, ataques de replay, falta de mecanismos de integridad, corrupciones de memoria y overflows, denegaciones de servicio y mala gestión de identidades y accesos.
- En el sistema operativo del dispositivo se pueden encontrar vulnerabilidades estándar y otras específicas de sistemas empotrados o tiempo real, de módulos TPM, etc.
- Por último, las interfaces web también presentan vulnerabilidades estándar y mala gestión de identidades y accesos (contraseñas por defecto o débiles, mala gestión de sesiones...).
La superficie de ataque en protocolos pasa por los mecanismos de actualización, el tráfico de datos e IAM (Identity and Access Management).
- Los mecanismos de actualización presentan vulnerabilidades específicas relacionadas con la falta de mecanismos de actualización manuales y automáticos, cifrado inexistente o débil, actualizaciones sin firma...
- El tráfico de datos presenta vulnerabilidades estándar y otras específicas de los protocolos IoT, así como el mal uso de health checks, heartbeats, etc.
- En el caso de los IAM, puede haber falta de estos protocolos, revelación de datos sensibles, reutilización de secretos criptográficos, problemas con el enrollment y falta de logs y de capacidad de autoría.
La superficie de ataque en aplicaciones, plataformas y datos pasa por interfaces administrativos, interfaces cloud, APIs, aplicaciones web, aplicaciones móviles, almacenamiento local y almacenamiento en la nube.
¿Cómo encontrar vulnerabilidades en proyectos IoT?
- Intenta manipular los dispositivos, sus interfaces y su memoria.
- Recupera el firmware de los dispositivos y juega con él (herramientas como binwalk o firmwalker).
- Identifica los sistemas operativos que se usan y sus versiones.
- Utiliza nmap para ver qué servicios se ofrecen en la red, qué puertos están abiertos, etc.
- Intercepta el tráfico con un sniffer y analízalo. ¿Qué protocolos se usan?
- Busca funcionalidades de autoupdate. Si existen, intenta hacer un Man in the Middle.
- ¿Cómo se controlan los accesos a los dispositivos? ¿Y los interfaces y APIs a diferentes niveles?
- Busca tecnologías web en los dispositivos e intenta acceder a ellos explotando las vulnerabilidades tradicionales.
Para finalizar, en el último apartado de la ponencia se ponen ejemplos (libros, conferencias, sitios web...) con intención de conseguir información para estar actualizados en la seguridad IoT, por lo que su visionado es recomendable.
¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras 30.000 personas desde este enlace.
Si te interesa este tema, puedes consultar la información y cursar el Máster en IoT o ver la oferta de másteres desde aquí.
Ponente: Marta Beltrán
Marta es profesora titular en la Universidad Rey Juan Carlos y representa a la comunidad HackOn (estudiantes y profesores del grado en Ingeniería de la Ciberseguridad). También es directora del Máster en Ciberseguridad y Privacidad, temática que coincide con sus principales líneas de investigación: sistemas distribuidos, ciberseguridad y privacidad.
¿Cuál es tu reacción?