Monday, April 19, 2010

Duro de matar, facil de controlar


Esta escena tomada de Duro de Matar 4 muestra la tecnología de vigilancia y control de vehículos existente en el mercado.

Este post fue publicado hace mas de 19 dias, durante unas horas. Un visitante con toda razon me recomendo ponerme en contacto con la empresa que provee el software que van a ver a continuacion para alertarlos de los problemas.

Quite el post y me comunique en forma telefonica con esta empresa y con uno de sus clientes que es del interior del pais, por lo que el costo de la comunicacion corrio por mi cuenta.

No pude dejar el comentario con las recomendaciones en el sitio web de la empresa que hace el software para geolocalizacion ya que el formulario no funciona.

Luego de hablar con un empleado por telefono envie un mail con los problemas detectados y pedi una fecha estimada de aplicacion de las correciones, para publicar el post.

Una semana despues el director comercial, me envio un mail pidiendome el telefono para conversar sobre los problemas. Luego de enviar el mail, no volvio a comunicarse por ningun medio. El jueves pasado volvi a enviar un mail reclamando un fecha de aplicacion de las correciones, al dueño de la empresa. No obtuve respuesta.

Por lo tanto considero que el problema esta resuelto o no reviste gravedad como para ser publicado.


Días atrás fue noticia en Wired el caso de un ex empleado disgustado con sus empleadores, el cual se conecto a la empresa de vigilancia de vehiculos y tomo control de unos 100 autos.
Esto le permitio entre otras cosas, hacer sonar las bocinas ( claxon ) en altas horas de la noche y en otros casos directamente apagar el motor del vehiculo.

Esto motivo mi curiosidad, y ( a mi entender ) esta dentro de los parámetros de un sistema SCADA ( supervisory control and data acquisition), dado que permite tomar el control de los parámetros de un dispositivo en forma remota.
Según la definición en Wikipedia SCADA "Es una aplicación de software especialmente diseñada para funcionar sobre ordenadores (computadores) en el control de producción, proporcionando comunicación con los dispositivos de campo (controladores autónomos) y controlando el proceso de forma automática desde la pantalla del ordenador. ." en este caso los dispositivos de campo son los vehículos.

Como advertencia antes de continuar, aclaro que toda la información que sigue fue obtenida de Internet, no tengo experiencia en la tecnología de rastreo satelital, solo me motivo la curiosidad.
Esto fue como realizar un pentest en modo BlackBox, por lo tanto hay datos que deducí y que pueden haberme llevado a interpretaciones erróneas.
Realizadas las aclaraciones, continuemos.



Como funcionan los sistemas de Geotracking ?



El esquema de funcionamiento básico es el representado en el diagrama anterior. En los vehículos se instalan equipos de rastreo satelital, que cuentan con un GPS y un equipo de telefonía mobil y/o satelital, conformando un sistema llamado Rastreo Vehicular Automatizado.

Existen diversos fabricantes/desarrolladores de estos equipos , los cuales básicamente tienen las mismas características.

El equipo Virloc 10 ( fabricado por Virlotech ) como el que vemos en la siguiente imagen, es un ejemplo de este tipo de dispositivos.


Según sus fabricantes Virloc10 incorpora la más avanzada tecnología electrónica en seguimiento vehicular a gran escala. Reúne en una sola placa un GPS , un modem GSM Quad band y un poderoso micro ARM7 de 32 bits .

Los fabricantes de los equipos TRAX S4, informan que los sistemas RVA, permiten mediante estos equipos proteger la flota de vehículos contra robo o uso no autorizado, si se define el horario en el que los vehículos no son utilizados y deberían estar estacionados.

Así, en el caso de que se le dé arranque al vehículo durante estas horas, se puede reportar a la base con exactitud la hora y lugar en donde se encuentra éste. Estos reportes pueden ser generados a intervalos periódicos cortos de tiempo, teniendo así una actualización constante de la situación del vehículo. También está la posibilidad de disparar un evento si el vehículo está en movimiento pero no se haya encendido el motor, como puede ser el caso de que lo remolquen. Otra alternativa es implementar un sistema de corte de corriente o combustible a través de las salidas del dispositivo.


La programación de los dispositivos se realiza mediante una conexión serial, aunque los últimos modelos pueden actualizarse en forma remota.

El programa contendrá todas las acciones y parámetros que deberá controlar el sistema, ademas de las IP de los equipos a los cuales reportara las actualizaciones.

La configuración de un equipo puede realizarse linea por linea mediante un programa como Hiperterminal o realizando un copy&paste.

La siguiente es una configuración de ejemplo de un dispositivo TRAX S4( información publica ):

>SFD55AA<>
SGR INTERNET.GPRS.UNIFON.COM.AR,WAP,WAP
<>
SGR*<>SIP0 210.089.185.150
<>
SDU2030<>
SSM0 12345678
<>STD00000180000000
<>SIT1010010
<>SIT2010020
<>SIT6100100
<>SIT7100100
<>SKO072001200300
<>SAU0000000
<>SAU1000000
<>
SED01 TD00-+ + PF IP0LOG<>SED02 IN00+- + PF IP0LOGTRM<>SED03 IN01+- + PF IP0LOGTRM
<>SED04 IN02-+ - PF IP0LOGTRM
<>SED05 IN06+- + PF IP0LOGTRM<>SED06 IN07-+ + PF IP0LOGTRM
<>SED07 IN07+- + PF IP0LOGTRM<>SDAIP0EA
<>SDAIP1EA<>SDASM0EA<>SDASM1EA<>


( lamentablemente el editor de Blogger no respecto el formato )


Esta es la configuración de un Virloc4

>SPK11001200 097310741346 063052003018<
>SKO0000240H000010<
>SISA+++<
>SISBATE0+IFC=0,0r<
>SISCAT+WS46=24r<
>SISDAT+WS45=3r<
>SISEATr<
>SISFATr<
>SISGATr<
>SISHATr<
>SISIATr<
>SISJATr<
>SISKATr<
>SISLATDr<
>SPD50001010230<
>SGG15250318001111_ES_ON_NO_CORR_FT_FP_FD<
>SIP0 200.31.18.106<
>SSU4096<
>SDU5001<
>SPM03600<
>SCM00010<
>SEAM1A1<
>SVI005010103<
>STD009000000000000000<
>STD010015000000000000<
>STD021800000000000000<
>STD033600000000000000<
>STD041440000000000000<
>STR00 050000<
>SUC03 QTT,4,78 QDM,4,4 QAS,4,3 QMS,4,3 QTM,4,6 QAL,4,6<
>SGS00080150<
>SUT00,QAC1,4,20,-100,-20<
>SAR000411101150<
>SED01 RT00++ +- SGN GP {SCC01 3600}<
>SED02 TD00++ +- SGN GP {SVP000}<
>SED03 TD01++ IN07++&&IF04++ IP0 U3<
>SED04 TD01++ IN07++&&IF04-- LOG GP<
>SED05 TD04++ IN07--&&IF04++ IP0 U3<
>SED06 TD04++ IN07--&&IF04-- LOG GP<
>SED07 TR00++ +- SGN NN {CDM}{CTM}{CAS}{CMS}<
>SED08 UC00++ +- IP00 TT<
>SED09 GS00++ +- IP00 TT<
>SED10 TD03++ IF04++ SGN GP {QDLNZfIP0}<
>SED11 AR00++ +- IP0 TT<
>SED12 IN07++ +- IP0 TT {SFX0}
>SED13 IN07-- +- IP0 TT {SFX1}
>SED14 FX00++ +- IP0 TT<
>SED15 IN00-- +- IP0 U3<
>SED16 XX00++ +- IP0 B0<
>SXT001001011<

En el caso del primer equipo al cual tuve acceso al manual ( TRAXs4), es posible implementar un password de 8 dígitos y utilizar un algoritmo de encripción de los paquetes mediante Tiny Encryption Algorithm (TEA)

Como vimos en la configuración del TRAX el dispositivo se comunica a una dirección IP para transmitir sus datos. Alli se encuentra la base de datos que almacena y despliega en un mapa la información de los diferentes vehículos.


Muy bien, hasta aquí tenemos los dispositivos, los cuales a menos de tener acceso a los mismos es difícil de modificar.

Pero como en todo sistema, siempre hay un eslabón débil y en este caso se encuentra en el backoffice, lugar donde se almacena la informacion y se da acceso a los usuarios.

En general, el negocio de sistemas de monitoreo satélital están divididos en cuatro grupos de empresas, aquellas que fabrican los dispositivos de rastreo y control, las que desarrollan el software de gestión, las que proveen la geolocalizacion mediante mapas y por ultimo las empresas que instalan y proveen el servicio a terceros.

Es decir que compran un numero de rastreadores, un sistema, accesorios y venden el servicio al publico.

Estos sistemas se utilizan por dos motivos fundamentales, protección de mercadería muy valiosa en transito ( camiones de transporte ) y protección de vehículos ante robos.
Como podemos ver, están íntimamente ligados a la protección de activos valiosos, por lo tanto pueden ser objetivos de delincuentes "reales" no virtuales.

Haciendo un estudio "limitado" a un grupo del total de empresas que forman la cadena de valor de los productos de posicionamiento satelital, aparecen serias falencias que representan un riesgo para los usuarios de estos sistemas.

Equipos de rastreo :

En lo que respecta a los equipos propiamente dichos, no tuve posibilidad de trabajar con ellos, la informacion que tengo esta limitada al manual de operaciones de un equipo, por lo tanto no puedo emitir opinión sobre que tan seguro es su sistema operativo o las medidas de seguridad física para su protección ante modificaciones.


Software Central de Seguimiento Satelital de vehículos

El software esta dividido en una plataforma central, la cual se encuentra en las oficinas de las operadoras del servicio y un programa cliente.
El cliente puede ser web o una aplicación cliente/servidor.
Respecto al software que se ejecuta en el servidor, no tuve acceso directamente, por lo tanto tampoco puedo emitir opinión sobre del mismo en su totalidad. Hay ciertas pautas que muestran un diseño alejado de las buenas practicas de seguridad.

En cambio si pude acceder a clientes web de varios de estos servicios y baje el programa cliente/servidor de una empresa que provee este software.

Veamos algunos problemas detectados y sus posibles consecuencias.

Las aplicaciones no utilizan ningún tipo de encripcion al comunicarse con el servidor, por lo tanto transmite los datos de usuarios y password en claro, con el consiguiente peligro de robo de cuentas y abuso por parte de terceros.



Los problemas no terminan aqui, ya que dentro de las aplicaciones hay errores mas groseros y peligrosos para los clientes.

Los valores de los parámetros de las consultas se pasan por medio de GET, lo cual hace que puedan ser fácilmente modificables antes de ser enviados al servidor.
Si bien el envió por medio de un POST oculta estos parámetros, es insuficiente para detener a una persona con interés en conocer mas allá de sus permisos.

En el caso de una de las aplicaciones que se encuentran en el mercado, una vez ingresado, se puede
consultar los diferentes vehículos que conforman una flota.

Los parámetros enviado por la aplicacion para consultar el recorrido de un vehículo, son los siguientes :

vehiculoNombre
vehiculo
empr_id
patente
puerto
usua_id

Donde "suponemos" que los accesos están restringidos por flota y usuario. Es decir que un usuario de una empresa, debe poder ver solo los vehiculos de su empresa. Filtrando por los campos :

usua_id
empr_id
vehiculo

Esto mostrara el recorrido o posición de un vehículo en particular.

El problema es que, si uno modifica el parámetro

vehículo

El cual es un numero de cuatro dígitos, puede acceder a la posición de cualquier otro vehículo, independientemente de la flota o usuario. ( Parameter tampering )

Vimos que para el usuario con el cual se accedió en el ejemplo anterior, teníamos cinco transportes :

Dos Mercedes Benz c-220 y c-230 ,
Una Toyota Hilux y otro par de vehiculos que no reconozco.
( Este es un Mercedez Benz c-230 )


Modificando el parámetro vehículo podemos por acceder a transportes que no corresponden a la flota de la consulta:





Una de las consecuencias graves que trae el hecho de no incorporar encripcion entre el usuario y el server, es que un ataque de Man in the Midle puede modificar en tiempo real la ubicación de un transporte.

El camión, puede ser desviado del camino y quienes acceden al sistema pueden ver el recorrido normal.
( A menos que la empresa que tiene la custodia controle directamente desde el server la posición de los vehículos, pero como veremos mas adelante esto tampoco es garantía de seguridad )

Por ejemplo, realizo una consulta de la posición de un vehículo,

Posición Original


Cuando regresan los datos, modifico los parámetros de Longitud y Latitud. Esto mueve el vehículo de ubicación.

Posición modificada, cuando llega la respuesta.


Dubai esta de moda


Los campos que aparecen en el recuadro de informacion también se pueden modificar fácilmente.
Es decir, podemos engañar a los usuarios respecto a la posición real de los transportes.

Hay otros problemas que sufren estos sistemas como SQL Injection , CRSFy XSS los cuales no voy a publicar, pero existen.


Empresas que realizan la instalación y gestionan el servicio de monitoreo.


Aquí es donde esta el talón de Aquiles de estos sistemas, las empresas que proveen estos servicios no tienen idea de lo que significa la seguridad informática, exponiendo a los usuarios a una falsa sensación de seguridad, dado que por malas implementaciones y vulnerabilidades en el software puede ser posible desde el acceso al equipo donde se gestiona la informacion, hasta ataques mas sofisticados como el apagado de los vehículos en forma remota.

Problemas que detecte hay muchos, la mayoría de las empresas publicadas tiene una pobre infraestructura de seguridad informática, en algunos casos hasta se publican las empresas clientes.
Información que debería ser confidencial.

Una empresa tenia configurado el acceso desde internet a sus sistemas de gestión de flota, de esta manera :



Esta empresa y sus clientes en particular, estában expuestos a graves amenazas.

Imaginen que alguien quiere robar una carga, un automóvil o secuestrar a una persona.

Accediendo al sistema de rastreo satelital del vehículo objetivo, se tiene toda la inteligencia previa.
La victima esta totalmente confiada en que se encuentra protegida por un sistema de rastreo.
Pero en verdad una mala implementacion, un desconocimiento de las normas de seguridad informática lo dejan mas vulnerable que sin el sistema.

Por lo tanto, los organismos de gestión del gobierno deberían tomar cartas y definir requisitos mínimos en la infraestructura de seguridad informática para las empresas que brinden estos servicios.
Desconozco si deben cumplir con normativas de seguridad como las empresas de vigilancia.

También se debería ser mas estricto respecto del software que gestiona los equipos de rastreo, estos desarrollos deben seguir un ciclo de trabajo que involucre a personal de SI en todo el proyecto.




9 comments:

FaKeeX said...

muy bueno el post...muy buena la info pero creo q tendria q haber sido avisada la empresa y buscar fixear los problemas...una vez resueltos recien postear esto...ahora dejas volar la imaginacion de mucha gente...

SLDS!

FaKeeX

amash// said...

Monsieur!!!

Muy bueno el post. Realmente siempre me interesó o me dio curiosidad este tipo de tecnologías.

Como siempre, una excelente herramienta que mal administrada es un riesgo gigante.

Un Abrazo!

amash//

FaKeeX said...

y bueno, si no te dieron bola, hay q demostrar q estas vulnerabilidades en su sistema puede llegar a ser bastante peligrosa...
cuando le desaparezcan un par de camioncitos de caudales de la faz de la tierra se van a preocupar jajaja



SALUDOS!!!!

Syn said...

excelente información. y más allá del descubrimiento, es para destacar tu curiosidad e iniciativa :)

Julio Jaime said...

Amash bienvenido por aquí.

FakeeX gracias por tus comentarios.

Syn si vos fueras mecánico de autos, seguramente antes de comprar uno lo revisarías mucho mejor que un usuario común.

El problema de esto, es la falsa sensación de seguridad que producen.

Slds

Esteban said...

Tendras por casualidad la configuración de un Virloc 10?? te lo agradeceria mucho.

Cesar said...

Hola, trabajo constantemente con virloc10 tengo a cargo una flota de 117 veiculos, y la configuracion puede variar segun los requerimientos, se puede hacer casi cualquier cosa con estos equipos.-

humofluor@hotmail.com said...

Hola tenes un correo te quiero hacerte una pregunta ya que veo la tenes super clara.

Anonymous said...

Hola, me interesaria aprender sobre virlc10. Podrias pasarme tu mail asi te consulto. Gracias!