Siguiendo con la temática de la seguridad en dispositivos IoT, hoy nos vamos a centrar en aquellos aspectos a tener en cuenta para poder tener cierta seguridad en cuanto al funcionamiento de los dispositivos IoT.
Como comentábamos en el post anterior, los principales ataques a los que se enfrentan los dispositivos IoT son:
- Ataques por Denegación de Servicio, que producen indisponibilidad de los dispositivos.
- Utilización como plataforma de ataque hacia otros dispositivos del entorno, ya que inicialmente suelen estar menos fortificados y son más accesibles desde el exterior de la red donde se encuentran.
- Obtención de datos de carácter personal de los usuarios como hábitos de uso, contraseñas de acceso a servicios web o incluso datos de tarjetas de crédito.
Teniendo en cuenta que los vectores de ataque pueden ser dispares, tendremos que repasar los siguientes puntos para asegurarnos de que los dispositivos IoT ofrecen cierta seguridad al conectarlos a nuestras redes privadas.
- Actualizaciones y Parches.
Lo primero es comprobar que el dispositivo tiene instalada la última versión del software que lo hace funcionar (sistema operativo, firmware, etc.), para evitar tener algún tipo de vulnerabilidad conocida por el fabricante y para la que haya desarrollado algún tipo de parche.
Para comprobar las distintas vulnerabilidades conocidas tenemos webs como la de MITRE https://cve.mitre.org o CVE-Details http://www.cvedetails.com, donde podemos buscar por el nombre de nuestro dispositivo y ver el estado en el que se encuentra.
Hay que tener en cuenta que también existen vulnerabilidades Zero Day, que son aquellas para las que el fabricante todavía no ha aportado una solución, por lo que tendremos que prestar especial atención a la hora de protegerlos.
- Autenticación y Control de Accesos.
Una vez comprobado que nuestros dispositivos están actualizados, es necesario comprobar que los fabricantes han implementado algún tipo de mecanismo de seguridad para la autenticación y el control de accesos.
Con esto queremos decir que el dispositivo debe solicitar usuario y contraseña para poder acceder a la configuración, debiendo además bloquear el acceso durante un periodo de tiempo si se introduce varias veces una contraseña no válida.
El acceso al dispositivo debe realizarse utilizando protocolos seguros en los que la información vaya cifrada y no en texto plano, para que no pueda ser interceptada por un posible ataque MITM – Man In the Middle.
Otro punto también muy importante dentro del control de accesos es mantener un sistema de almacenamiento de logs con todos los intentos de acceso al sistema (tanto accesos válidos como no válidos). Este sistema debería almacenar el usuario que se utilizó para el acceso junto con la fecha y hora del acceso, para poder realizar una investigación en caso de que ocurra un incidente de seguridad.
- Protección de los datos almacenados.
Teniendo en cuenta que la mayoría de los dispositivos IoT almacenan datos de sus usuarios, es interesante preguntarse si dichos datos van a ser posteriormente enviados a los fabricantes de los dispositivos para su tratamiento.
En caso de que sea así ¿Podemos controlar que datos son los que vamos a permitir que se envíen? ¿Se van a enviar más datos además de los estrictamente necesarios sobre los hábitos de consumo? ¿Credenciales de acceso a otros servicios como redes sociales, etc.? ¿Números de tarjeta de crédito?
Es importante que podamos controlar el envío de dicha información, además de poder revocar los permisos para ciertos dispositivos que estén instalados en infraestructuras que puedan ser consideradas críticas. Además, debe haber constancia de que el envío de dicha información al fabricante se realiza mediante protocolos seguros, y que su almacenamiento en el dispositivo se realiza con algún tipo de cifrado que impida acceder en el caso de un incidente de ciberseguridad.
- Uso de Protocolos Seguros
Como ya hemos indicado anteriormente, los dispositivos IoT están diseñados para que puedan comunicarse con otros dispositivos, no solamente en su red local, sino con otros equipos y servicios que están ubicados en la nube.
Esta capacidad de comunicación es la que nos debe hacer pensar que dichos datos deben permanecer seguros durante este proceso de comunicación, hecho que solo se consigue si los dispositivos implementan protocolos y estándares seguros.
Pongámonos en el caso de dispositivos que disponen de conexión WiFi a la red local de nuestra organización. Si estos dispositivos implementan protocolos de cifrado que están catalogados como inseguros, como WEP o WPA, esto podría facilitar la labor de un atacante que intente acceder a nuestra red, utilizando vulnerabilidades conocidas asociadas a dichos protocolos. Podemos ver alguna de las vulnerabilidades de estos protocolos de cifrado en el siguiente enlace.
Por otro lado, a nivel de aplicación, debemos asegurarnos de que en los procedimientos de administración remota también se utilicen protocolos con cifrado seguro en sus versiones más actualizadas, ya que podrían ser otro vector de ataque muy común en incidentes de ciberseguridad. El uso de protocolos como HTTPS o SSH, deberían ser imprescindibles en la gestión de cualquier dispositivo IoT. (Vulnerabilidad crítica en el cifrado HTTPS http://www.silicon.es/descubren-una-vulnerabilidad-que-afecta-al-protocolo-de-cifrado-web-https-34394 )
- Administración de los dispositivos.
Enlazando justo con el punto anterior, debemos preguntarnos como se realiza la administración de nuestros dispositivos, ya que si solo se puede realizar de manera local, evitamos que se puedan producir ataques desde redes externas directamente sobre el mismo.
En el caso de que la administración del dispositivo pueda realizarse desde la nube, entonces deberemos aplicar controles extra para asegurarnos de que la comunicación garantiza los tres aspectos de la seguridad, Disponibilidad, Integridad y Confidencialidad, ante posibles ciberataques.

- Plan de Continuidad del Servicio.
Por último, deberíamos establecer un Plan de Continuidad del Servicio que nos permita seguir operando con normalidad cuando se produzca algún problema o fallo en el funcionamiento de los dispositivos IoT que estamos analizando.
Los problemas pueden originarse según dos aspectos principales:
- Un fallo o indisponibilidad de la red en la que se encuentra conectado.
- Un fallo o indisponibilidad en el propio dispositivo.
En el caso de que el fallo provenga de una indisponibilidad de la red ¿Está el dispositivo preparado para operar autónomamente sin supervisión remota? En el caso de no poder operarlo remotamente ¿Hay algún procedimiento de parada manual sin tener conexión a la red?
Si el fallo está originado en el dispositivo, sería imprescindible contar con algún procedimiento interno que almacene logs del sistema para que puedan ser recuperados posteriormente e investigar las causas que lo produjeron.
Conclusiones:
Como hemos visto en los puntos anteriores, la seguridad es un proceso dinámico que debe ser tenido en cuenta en todas las fases de la vida de un dispositivo, desde el diseño del mismo, pasando por la operación en producción y su administración, hasta su retirada al final de la vida útil, donde debe realizarse algún procedimiento de borrado seguro de la información almacenada antes de proceder a su reciclado.
Si no tenemos en cuenta todos estos aspectos que hemos analizado, podemos ser potenciales víctimas de un incidente de ciberseguridad, que podría no solo afectar al dispositivo en cuestión, sino a otros cercanos.
Aunque todas las indicaciones anteriores pueden ser aplicadas a dispositivos tanto de consumo personal como de uso industrial, debemos prestar especial interés a estos últimos, debido a la criticidad que pueden presentar. En este caso suele ser primordial realizar auditorías técnicas que aseguren la correcta configuración y operación de los mismos, tema que será tratado en próximas entregas.