Matthew Garrett es un ex-desarrollador del kernel que hace unos días compró unas bombillas del estilo Hue y decidió jugar con ellas.
Garrett está trabajando en el estos momento en un proyecto de código abierto llamado Ulfire cuyo objetivo es controlar bombillas leds que pueden modificar la intensidad y tonalidad de la luz remotamente.
Las especificaciones de este tipo de bombillas no son abiertas, por lo que la única forma de poder usarlas con programas externos es mediante ingeniería inversa. Lo primero que hizo Garrett tal y como relata en su blog fue:
Presioné el botón del bridge, ejecuté la app y pude controlar las bombillas. La primera cosa de la que me di cuenta fue que hay dos modos diferentes: ‘blanco’ y ‘color’. El modo blanco era bastante brillante pero el modo color lo era mucho menos (seguramente los leds blancos son completamente independientes de los RGB). Aún así, son potencialmente útiles como iluminación ambiental.
Este pequeño descubrimiento da una buena pista sobre la forma que tiene la app de enviar la información a las bombillas, pero aún queda lo más complicado: comprender el protocolo de comunicaciones.
El siguiente paso fue empezar a jugar con el protocolo, lo que significa encontrar el dispositivo en mi red. Comprobé todo lo que había pillado una IP del servidor DHCP recientemente y le hice un ‘nmap’. La detección del sistema operativo informó de Linux, lo cual no fue una gran sorpresa. No había información sobre la licencia GPL o del código fuente incluido en la caja.
Como la inmensa mayoría de los dispositivos IoT (Internet de la cosas), estos funcionan con Linux, pero la licencia GPL v2 empleada en el kernel obliga a los desarrolladores que cierran sus programas a publicar el código fuente producto de las modificaciones que realizan a Linux. Así pues, de momento parece que este tipo de bombillas no están respetando la licencia.
También informó que había un demonio de ‘telnet’ en ejecución. Me conecté y apareció el diálogo para introducir el nombre de usuario y contraseña. Así que tecleé admin como nombre de usuario y admin como contraseña y entré como root. Así que ahí va. La copia de Busybox incluida venía incluso con ‘tftp’, así que fue fácil obtener copias de ‘tcpdump’ y ‘strace’ de ahí para ver qué pasaba.
El hecho de que sea tan fácil acceder al bridge supone un fallo de seguridad importante ya que de esa forma resulta inmediato poder infectar el sistema de iluminación con cualquier tipo de malware.
Después de esto comienza a enviar comandos y descubre qué hace cada uno, algo que resulta útil para implementar el control en su programa. Una vez que ha comprobado que el bridge tiene un dispositivo Wifi y un servidor DHCP en ejecución, se pregunta sobre la seguridad de esta red.
Todos los dispositivos tienen el SSID «iRainbow» aunque no lo retransmiten. No hay seguridad; cualquiera se puede asociar. Después ofrecerá una dirección IP. Telnetd está en ejecución también en esa interfaz. Puedes saltar de un sitio a otro dentro la red interna del dueño.
Y aquí es donde se descubre el mayor fallo de seguridad de todos. Cualquiera que instale este tipo de bombillas en su casa, está abriendo su red local a cualquier vecino a través de un enlace Wifi sin ningún tipo de seguridad, no solo dando acceso al control de la iluminación sino de todos los dispositivos (impresoras, ordenadores, móviles, etc) conectados a ella.
Este descubrimiento alarma al desarrollador e intenta ponerse en contacto con los fabricantes de las bombillas:
Llamé al fabricante e insistieron en que ese dispositivo fue diseñado en 2012 y que ya no se fabricaba ni recibía soporte, que no tenían código fuente para darme y que no habría arreglos a los fallos de seguridad. El fabricante me quiere pagar para que se las devuelva y se reservan el derecho de restar el coste de los gastos de envío «gratis» de la devolución. Todo es horrible, por lo que acabo de pedir otras cuatro bombillas cualquiera para jugar el fin de semana.
Esta experiencia lleva a una reflexión sobre el Internet de las cosas. Probablemente estas bombillas las han comprado un número reducido de usuarios, pero si el tema prospera, es posible que de aquí a unos años las viviendas tengan cada vez más dispositivos conectados: frigoríficos, lavadoras, sistemas de climatización, puertas automáticas, etc. Desde el momento en que están conectados a Internet, es posible que cualquiera pueda encontrar un resquicio en la seguridad que lleve al control de estas «cosas». Si se tiene en cuenta que el soporte del software es limitado en el tiempo, resulta fácil imaginarse que llegará un momento en el que la mayoría de los hogares tengan IoTs potencialmente vulnerables, a la espera de que cualquiera lance un ataque provocando funcionamientos aleatorios o dejándolos sin servicio.
El relato completo se puede consultar en el blog de Matthew Garrett.
Pero existen desde hace tiempo Smart TV y frigoríficos conectados a internet y no ha habido estos problemas
una smart-tv tan solo recibe información de internet pero el objetivo no es el control del aparato. con los iots el concepto consiste en controlar desde internet el funcionamiento. un fallo de seguridad en un modelo de una lavadora por ejemplo que ya no reciba soporte, puede dejar inservible todos los electrodomésticos del mismo modelo o peor aun puede hacer que alguien encienda y apague nuestros aparatos sin nuestro permiso.