Vulnerabilidades hardware en cerraduras inteligentes
Tabla de contenidos
Evaluamos el nivel de seguridad del hardware de cerraduras inteligentes, desmontando una y analizando los elementos que la componen
Han caído en nuestras manos las cerraduras inteligentes de la marca Yale Linus, de las que puedes manejar desde tu smartphone, así que nos ha parecido una gran ocasión para poner en práctica muchos de los conceptos de hardware hacking y metodologías de auditoría de seguridad IoT que hemos visto por aquí en el pasado. A lo largo de los próximos artículos vamos a hacer un recorrido sobre el proceso de evaluación de seguridad de este dispositivo y te contamos nuestras conclusiones.
Obtención de información para el análisis hardware de cerraduras inteligentes
La existencia de fallos de diseño en el hardware puede provocar que una cerradura inteligente deje de ser segura y nos permita interactuar con el dispositivo sin autorización. Por ello, una revisión en profundidad del hardware es una tarea fundamental.
Si estas familiarizado con OWASP FSTM sabrás que el primer paso de esta metodología es buscar las referencias del fabricante, diseños o filtraciones de código en busca del firmware del dispositivo.
Desafortunadamente la búsqueda inicial en fuentes abiertas, web del fabricante y en repositorios de código como gitlab, github, gitee, etcétera, no ha dado resultados. También se han realizado búsquedas en foros de desarrolladores de electrónica y en el foro de consultas del fabricante Dialog / Renesas del microcontrolador DA14680, empleado en este dispositivo. No ha sido posible localizar información relevante de esta cerradura.
Aspectos a revisar durante el análisis de hardware
Tras haber agotado la vía de identificar y descargar el firmware online se procedió al siguiente paso que recomienda OWASP FSTM, buscar en la placa algún puerto (depuración JTAG / SWD, interfaces UART, SPI a memorias Flash) que permita extraer el firmware del dispositivo físico.
Para localizar estos puertos, se desmonta completamente el dispositivo y se revisan los elementos que lo componen. Es recomendable localizar las regiones de funcionamiento de la placa de la cerradura inteligente, para acotar donde pueden estar presentes puertos que no sean identificables a simple vista.
En el análisis de la PCB se deben localizar tanto los puertos expuestos como los puntos de prueba (test points) que pueden ser parte de una interfaz de depuración para poder comunicarse con el microcontrolador. Un puerto de depuración no debería de estar presente en un diseño hardware de producción, porque cuando está habilitado permite tomar control del hilo de ejecución del firmware.
El microcontrolador encargado del control de funcionamiento de la cerradura inteligente pertenece al fabricante Dialog / Renesas, y concretamente se trata del modelo DA14680A. Se identifica que hace uso de la arquitectura Cortex M4 y que gestiona diversos componentes localizados en la placa, como son un acelerómetro / giroscopio, un magnetómetro, un controlador de iluminación, un reloj de tiempo real y el amplificador de corriente.
Una posterior revisión del datasheet de los componentes puede ayudar a identificar el tipo de bus de comunicaciones utilizado.
Existen múltiples tipos de puertos de depuración para el microcontrolador que se están analizando porque dispone de capacidades de depuración SWD, UART, I2C y SPI. Hay que señalar que los protocolos de comunicación UART, SPI e I2C además de ofrecer capacidades de depuración, pueden ser usados como puertos de comunicación entre los sensores y el microcontrolador.
Las interfaces UART abiertas permiten al usuario conocer el proceso de arranque o la depuración del sistema auditado. Si bien no son tan potencialmente dañinos como un puerto de depuración en ocasiones esta interfaz facilita información que puede resultar vital para vulnerar el sistema y por ello no es recomendable que esté disponible. Por ejemplo, en sistemas con microlinux se puede llevar a cabo el volcado del firmware desde el interfaz serie.
En las interfaces I2C se encuentran en raras ocasiones memorias Flash, por eso hay que examinarlas en busca de estas. Es muy común que estas interfaces gestionen información sensible como el intercambio de credenciales de autenticación. También se pueden encontrar en ellas información extra de los dispositivos que se comunican a través de este bus.
Respecto a las interfaces SPI principalmente realizan transmisiones de datos alta velocidad y lo más común es que intercambien información con dispositivos como memorias RAM o memorias Flash. Es habitual que los datos de las memorias Flash se transmitan cifrados, por lo que para lograr su lectura es mejor recurrir a un puerto de depuración (UART debug).
Como se mencionaba al inicio, en muchos casos no existe un puerto como tal en la placa para hacer la captura de información, Se debe hacer uso de test points, soldando cables o poniendo pinzas de tests en las patas de los componentes, para conseguir identificar si se trata de un bus de comunicaciones y para poder leerlo.
Puertos de comunicaciones localizados en la cerradura inteligente
En la placa del dispositivo que se ha estudiado se han localizado prácticamente todos los puertos que se han mencionado.
Puerto I2C
Se han analizado las comunicaciones del BUS I2C y en ellas se han detectado tramas de comunicación que corresponden a 4 dispositivos distintos (magnetómetro, acelerómetro, controlador de leds y reloj de tiempo real).
No se ha localizado en este análisis la presencia de chips criptográficos en el bus que podrían permitir la extracción de certificados digitales.
Puerto SPI
Se ha identificado la presencia de un bus SPI serigrafiado en la placa (con etiquetas MISO,MOSI,SCK). De este bus se han extraído las tramas de comunicación. Tras la revisión de la información se comprueba que este intercambio de datos no pertenece a una memoria FLASH SPI, por lo que no se obtiene ninguna información útil.
Puerto SWD
Se han localizado dos puertos de depuración SWD a través de las etiquetas serigrafiadas en la PCB, uno en la cara superior de la placa y otro en la cara inferior de la misma. En la cara inferior ha sido necesario soldar las conexiones a los puntos de pruebas localizados. En la cara superior, y siempre que sea posible se recomienda hacerlo así, se ha soldado el conector específico y un adaptador a conectores estándar.
Tras comprobar todas las configuraciones posibles, el microcontrolador no responde a la interfaz de depuración por lo que se intuye que no está conectadas físicamente las pistas con los pines o que están deshabilitados mediante algún mecanismo que no permite la conexión eléctrica directa.
Se llega a estas conclusiones porque tras arrancar la aplicación del fabricante (SmartSnippets Toolbox), haciendo uso de un JTAG configurado como depurador SWD, no ha sido posible leer la identificación del microcontrolador.
Puerto UART
Nuevamente, Se ha identificado a través de la serigrafia de la placa (TX, RX ) un bus UART, en el cual no se ha podido capturar ninguna comunicación. Al igual que con SWD, esto se puede deber a que el dispositivo tiene deshabilitado el modo depuración.
Riesgos asociados a los componentes del dispositivo
Durante una auditoría, la identificación de componentes permite saber si estos están descatalogados y no reciben actualizaciones. En ocasiones los componentes se marcan como NRND (no recomendado para uso en nuevos diseños) porque se ha comprobado que es defectuoso o errático en su funcionamiento, tiene defectos que no pueden ser corregidos o casos de uso en los que supone un problema de seguridad en sí mismo.
Ante estas posibilidades lo más apropiado cuando se acomete un diseño es comprobar el ciclo de vida de los productos a utilizar para evitar sorpresas en un futuro próximo.
Los componentes que más frecuentemente sufren problemas de seguridad son los relacionados con comunicaciones, por ejemplo, buses como CANBUS o Bacnet en los casos cableados y Bluetooth o WiFi en comunicaciones inalámbricas.
En la cerradura analizada destaca el uso del microcontrolador DA14680A que está marcado como NRND.
El microcontrolador es el encargado de las comunicaciones BLE y la actuación de la cerradura. Se llega a la conclusión de que el micro es el encargado de las comunicaciones inalámbricas porque está directamente conectado a la antena de recepción de comunicaciones inalámbricas y se sabe que es el encargado de la apertura y cierre de la cerradura porque no hay más dispositivos que controlen el mismo.
DA14680A ha sido vulnerable a la vulnerabilidad Bluetooth Sweyntooth, vulnerabilidad que ha estado presente durante más de dos años y ha sido recientemente parcheada en este microcontrolador.
Por ello, se deben usar integrados que tengan un periodo de vida extendido. En ocasiones los diseños de un circuito impreso se reutilizan y hay que prestar atención al ciclo de vida previsto. En este caso, si las cerraduras no se hubieran actualizado a través de software, serían vulnerables a reinicios con paquetes Bluetooth malformados, provocando un problema de denegación de servicio.
Se han localizado vídeos en los que se puede ver como un dispositivo con el mismo microcontrolador y del mismo fabricante original se reinicia de manera cíclica. A continuación, el video de cómo ocurren los fallos de denegación de servicio de forma continuada.
Conclusiones
Se han podido identificar todos los componentes del integrado y se han descubierto las comunicaciones utilizadas.
El dispositivo analizado no presenta vulnerabilidades en el diseño si bien hay aspectos de mejora como la presencia de puntos de prueba con serigrafías que ayudan a localizar puertos de comunicaciones.
No se ha identificado información sensible a través de los buses de comunicación I2C y SPI y los buses de depuración UART y SWD (JTAG) se encuentran desactivados.
Al no haber sido posible obtener el firmware a través de las técnicas utilizadas, sería necesario realizar la técnica de chip-off para poder extraer su firmware, lo cual supone una mayor complejidad y tiene el riesgo de dañar el integrado (en este caso el micro DA14680) durante las operaciones de soldadura.
El hardware analizado tiene bastantes componentes y muchas funcionalidades, provocando que se alargue mucho la tarea de obtención de información de todos ellos.
El encapsulado BGA del microcontrolador agrega una seguridad adicional a la cerradura, evitando su lectura sin realizar un chip-off.
El nivel de seguridad en su conjunto es bastante bueno. Si bien se localizó un interfaz UART y el puerto de depuración SWD, ambos gracias a la ayuda de las serigrafías, estos están protegidos y deshabilitados. Las comunicaciones I2C y SPI sí que fueron capturadas, pero no han proporcionado ninguna información útil, ni han permitido volcar el firmware o claves criptográficas
Sí es reseñable el integrado DA14680, ya que este constituye un punto vulnerable que ha dado problemas en el pasado y está anunciado el cese de su soporte.
Este artículo forma parte de una serie de articulos sobre Cerraduras inteligentes desprotegidas
- Vulnerabilidades hardware en cerraduras inteligentes
- Vulnerabilidades Bluetooth en cerraduras inteligentes