jueves, 30 de junio de 2016

Jugando con taxímetros con la ayuda de Shodan

Hace ya varias semanas que leí un artículo escrito por Diego Soto en el blog del "Maligno" en el que nos explicaba los peligros asociados con el llamado "IoT" (Internet of Things). Estos riesgos aumentan exponencialmente a la cantidad de dispositivos inteligentes que conectamos a internet cada día, por lo que ya no nos sorprenden noticias en las que podemos leer que investigadores han conseguido vulnerar remotamente la seguridad de cierto vehículo, o determinados sistemas que controlan infraestructuras críticas, juguetes para niños, incluso armas de fuego, junto a un largo etc ...

Imagen 1: hacking en taxímetros con Shodan 

La cantidad de dispositivos diferentes que existen en la actualidad, nos complica mucho el echo de solucionar todos estos fallos de seguridad existentes, ya que en muchos casos no existe ningún tipo de actualización para estos dispositivos o simplemente el coste del mismo no permite gestionar la seguridad a largo plazo.

Debemos tener en consideración que cuando conectamos cualquier dispositivo a Internet, realmente estamos dejándolo expuesto al resto del mundo. Cualquier persona con el conocimiento suficiente puede testar la integridad de ese dispositivo o plataforma, y como consecuencia explotar sus fallos. Este es el motivo por el que es tan importante tener en cuenta todos los aspectos respectivos a la seguridad de un dispositivo que en algún momento tendrá que conectarse a la red. En el mundo empresarial, los responsables de seguridad muchas veces ni siquiera saben que existen esos dispositivos, esto es lo que llamamos Shadow IoT.

Como nos explicaba Diego en su artículo, algunos tipos de taxímetros utilizados en España están conectados a Internet sin haber tenido muy en cuenta su seguridad. En la actualidad muchos de estos taxis están empezando a utilizar taxímetros con conexión vía 3G a Internet para poder conectarlos con sistemas de Big Data o diferentes aplicaciones que localicen al vehículo en todo momento para enviarle nuevas peticiones de transporte. Esto que en un principio nos parece muy beneficioso se puede convertir en un problema , ya que si un atacante consigue vulnerar la seguridad del taxímetro, podría llegar a modificar el precio del trayecto.

Imagen 2: taxímetros TXD70 de Taxitronic

Vamos a ver un ejemplo en el que utilizaremos los Taxímetros 3G de Taxitronic. Solo tenemos que buscar la documentación oficial publicada en su propia página web para saber que estos utilizan un sistema GNU/Linux embebido, y buscando un poco más por Internet es muy fácil descubrir que la distribución de la que hacen uso es Pengutronix.

Imagen 3: distribución Pengutronix utilizada por Taxitronic

Una vez sabemos el tipo de sistema que utilizan y que están conectados a Internet de forma autónoma, solo nos quedaría hacer un poco de hacking con Shodan para intentar localizar estos dispositivos y descubrir qué servicios tienen abiertos. Para ello localizamos la firma de los banners del dispositivo que vamos a buscar, en este caso para los que usan la plataforma Pengutronix, la firma sería "Ptxdist.

Imagen 4: búsqueda en shodan de la firma de los banners

Imagen 5: puerto 6000 abierto en un server "X" 

En la imagen anterior se puede observar como obtenemos más de 70 resultados, y si nos fijamos tienen abierto el puerto 6000, utilizado por el servicio X11. El echo de que tengan el servicio X11 abierto significa que está haciendo uso de alguna aplicación gráfica, en este caso la aplicación del taxímetro que se está ejecutando en la distribución Linux. Este sistema en particular es especialmente modular, ya que igual que se está lanzando contra el servidor X local, también se podría forzar a ejecutar la aplicación contra un servidor remoto X situado en otra máquina.

Shodan, no solo muestra qué puertos están abiertos en un determinado servidor, sino que además tiene implementado algunos que nos revelan más información pública. Por ejemplo, en el caso de los servidores VNC sin autenticación, Shodan nos devuelve un screenshot de la sesión. En el caso de servidores X11 sin autenticación, muestra una captura de lo que se está ejecutando allí en ese mismo momento. En este caso, varios taxímetros distribuidos por diferentes taxis de España.

Imagen 6: táximetro en estado libre en ese momento

Imagen 7: táximetro ocupado mostrando el importe

Teniendo todo esto en cuenta, podríamos saber lo que está siendo mostrado en la pantalla del taxímetro de una forma tan sencilla como conectarnos remotamente al servidor X11 cada cierto tiempo, después pedimos una captura de pantalla para generar un archivo con la imagen que allí se está viendo.

De la misma manera, podríamos simular presiones de teclado o ciertos movimientos para controlarlo. En este entorno también podríamos llegar a conseguir que el taxímetro marque 0. Esto se podría conseguir con una shell lanzada sobre el taxímetro. Solo tendríamos que conectarnos a esa dirección IP y ese puerto para tener un terminal y ejecutar comandos en el taxímetro. Incluso podríamos divertirnos un poco poniendo el salvapantallas en el taxímetro o cosas parecidas.

Esto ha sido solo un ejemplo de todos esos riesgos asociados a la evolución del IoT de los que oímos hablar día a día y que parecen tan lejanos, pero que como podemos ver ya están muy presentes en todos los ámbitos de nuestra vida. Como reflexión final comentar que todos los implicados en el comercio y la fabricación de estos dispositivos conectados, son los únicos responsables de este tipo de "fallos" o "configuraciones" que pueden parecer muy inofensivos, pero que extrapolándolos a sistemas críticos estas "tonterías" se convierten en un gran peligro para todos.


Fuente: Un informático en el lado del mal

No hay comentarios:

Publicar un comentario