26 marzo 2015

Hasta la cocina de las gasolineras españolas

Muchas gasolineras utilizan túneles serie sobre Ethernet para poder enviar datos a un servidor y monitorizar el estado de los tanques de combustible: tipo de combustible almacenado, temperatura del combustible dentro del tanque, cantidad de combustible que queda, etc…

Figura 1. Tanques de combustible.

De esta forma, si el operario advierte que no queda combustible en los tanques, podría tener que cerrar la gasolinera y avisar a un camión para el llenado de los tanques. O, si la temperatura del tanque de combustible fuera elevada, podría considerarse como una situación de riesgo y tomar las medidas oportunas.

Más grave sería aún si el sistema de monitorización no disparase las alarmas oportunas en caso de detectar una temperatura extrema en los tanques, o de no informar cuando un tanque se queda sin combustible.

Para el envío de la información de los datos del estado de un tanque de combustible a un PC para su monitorización, se utilizan conversores de serie a Ethernet del tipo GC-NET2 32-DTE.

Figura 2. Conversor Serial - Ethernet.

El esquema de cómo implementar el túnel serie con el dispositivo anterior para la monitorización de los datos se muestra en la siguiente figura:

Figura 3. Esquema de conexión del conversor serie a Ethernet.

En este artículo se realizará una pequeña prueba de concepto para comprobar cuál es el nivel de seguridad de estos dispositivos.


Localización de conversores en gasolineras españolas.

El primer paso es localizar conversores accesibles desde Internet en las gasolineras de España. Algunos de ellos, para su configuración remota, utilizan el servicio de telnet. Haciendo un poco de hacking con buscadores, buscamos en Shodan conversores en gasolineras de España que usen el puerto 10001 TCP para su configuración:

Figura 4. Estado de un tanque de combustible de una gasolinera de Palencia.


Servidor telnet no securizado.

Una vez que ya tenemos un listado de gasolineras que usan este tipo de conversores para el envío de la información y su monitorización a través de un PC, el siguiente paso es detectar algún conversor con un servicio de telnet sin securizar. En la siguiente imagen se muestra uno de estos sistemas con un servidor telnet escuchando por el puerto 999 TCP.

Figura 5. Conversor con el servicio telnet corriendo en el puerto 9999.

Realizando una conexión desde un cliente telnet al puerto 9999 TCP, observamos cómo el dispositivo no solicita ningún dato de acceso. Directamente podemos acceder a su configuración permitiendo por completo la manipulación de los parámetros del sistema de adquisición y envío de la información de los tanques de combustible al PC de monitorización.



Figura 6. Conexión por telnet sin autenticación.

Comprobamos cómo el sistema no solicita ningún dato de acceso para la configuración  del conversor vía telnet. Una vez dentro de él se podrían deshabilitar todos los disparadores (triggers) que avisasen de situaciones anormales o peligrosas para no ser monitorizadas.


Más servicios no securizados.

Escogiendo la IP pública de la gasolinera tras la cual "se esconde" la red con IP privada y todos los dispositivos y PCs de monitorización, realizamos un escaneo de puertos con nmap para ver qué más servicios están activos detrás del router de una de las gasolineras:

Figura 7. Servicios accesibles desde la IP pública de la gasolinera.

Probando una conexión por HTTP al puerto 90, comprobamos que tenemos acceso a las cámaras IP instaladas en la gasolinera. Tampoco se requiere ningún tipo de autenticación para acceder al panel de monitorización de las cámaras IP:

Figura 8. Cámaras IP de la gasolinera.

Y es más, algunos de los servidores que monitoriza la información recogida por los conversores tiene instalado un Windows XP (sistema operativo sin soporte desde el 8 de abril de 2014) y con escritorio remoto abierto (puerto 3389 TCP), como se muestra en las siguientes figuras:


Figura 9. Servicio de escritorio remoto activo.


Figura 10. Acceso a través del escritorio remoto a un PC con Windows XP.

En este escenario, podrían probarse técnicas como las Sticky Keys para saltarse las aplicaciones de bloqueo del sistema y llegar al menú de impresoras y desde allí a la raíz del sistema de ficheros


Conclusión.

Con lo recogido anteriormente, sería muy fácil realizar un ataque dirigido a gasolineras para sabotear el sistema de monitorización y que éste ofreciese datos erróneos al operador de la gasolinera.
¿Qué pasaría si el operador pensando que ya no hay más combustible en los tanques cierra la gasolinera hasta que vengan los camiones de repostaje de combustible? ¿Qué ocurriría si la temperatura de los depósitos de combustible es elevada y el operario no se percata de esta situación? ¿Qué sucedería si de repente el sistema muestra que no queda más combustible en los tanques en plena hora punta de una operación salida o retorno? ¿Cuáles serían las pérdidas de las gasolineras?

Y lo más importante, ¿en qué grado afectaría a la seguridad de las personas?


PD: los resultados obtenidos en esta prueba de concepto ya han sido reportados.

Artículo por cortesía de: Amador Aparicio de la Fuente (@amadapa)

13 comments :

xx dijo...

Deberíais de tapar más los datos de la gasolinera (fig 4) es fácil averiguar cual es.

Colomer dijo...

Mola como ejercicio teorico, pero poco mas. Hasta hace 15 o 20 años las gasolineras no tenian estos sistemas, y ni explotaban ni se quedaban sin combustible.
Los tanques de la estación de servicio estan enterrados precisamente para evitar variaciones de temperatura. La medición de temperatura se usa para saber los kilos de combustible que tenemos, porque no es lo mismo gasolina a 40 grados que a 10.
En general, en las estaciones de servicio se comprueba manualmente el nivel de los tanques periodicamente. Si aparentemente el tanque se quedase sin combustible, el operario de turno extrañado de tener cero litros cuando ayer tenia 30.000, cogeria la varilla y mediría.
En cualquier caso, muy mal por los instaladorez y el fabricante de los equipos.

Ramon dijo...

Interesante este ejercicio.
Incluso, quizás se podría rascar un poco más e intentar haber llegado a otros equipos como los Puntos de Venta ????


También quiero indicar que hace 8 años ya estaba este sistema funcionando en esta estación (y todas las de la misma operadora), pero NO era posible acceder, se cambió de Compañía Petrolífera y algunas cosas cambian también.

Amador dijo...

Rascar un poco más para haber llegado hasta los TPV, facturas, etc...?

Amador dijo...

Mas que saber qué gasolinera es, lo preocupante es esa cantidad de agua que marca en los depósitos de gasoleo. ¿Habrá filtraciones?

aureolus dijo...

normalmente los XPORT se encriptan sus comunicaciones en AES (punto 6 "Security", en su configuracion) para solucionar lo que comentas en tus conclusiones.

Jonathan Novel dijo...

Thx ;-)

Jonathan Novel dijo...

Ala, corregido, ya puedes recuperar el sueño, para que veas que soy buena gente :-)

OLM dijo...

Enhorabuena por la entrada,
Acabo de probar y cuesta creer la poca seguridad, solo con leerme el manual he conseguido acceder al setup, y he accedido "ya de paso" también a las cámaras.
Para el tema de facturas, TPV, etc, seguro que hay un XP en alguna estación con toda la información, Metasploit y .....

janderclander dijo...

JAJAJAJAJ me parto! A buen entendedor pocas palabras bastan xD . Enhorabuena por el articulo.

Amador dijo...

Thanks!!

jamelgos dijo...

Creo que se está creando una alarma social debido por un
lado a la ingenuidad de los lectores y por otra a la falta de conocimiento en
el sector y las normas de seguridad por parte del autor de este articulo. Parece que
accediendo a estar vulnerabilidad una persona puede hacer estallar un tanque de
combustible pulsando un botón rojo, en ningún caso es así, los sistemas de
alarmas de sondas son un monitor de información para la estación de servicio, facilitándole datos del estado del tanque, por ejemplo, el nivel del tanque por si requiere
hacer un pedido de carburante, antiguamente se usaba una varilla y se anotaba
en un papel, ahora es automática esa gestión, por otro lado, ya hay una
serie de normas y medidas de seguridad definidas por industria y publicadas que
detallan los requisitos para soterrar los tanques de combustible y las medidas
de emergencia que se deben adoptar, además los puntos de inflamabilidad de los
diferentes combustibles, que en ningún caso al estar soterrados sobrepasan los márgenes de seguridad, por lo tanto un cambio en los datos de las alarmas de temperatura solo puede causar que el nivel de carburante no sea el "optimo" ya
que en función de la temperatura el mismo varia.

En relación a las estaciones de servicio, se hace referencia a grandes petroleras, pero no se explica en ningún caso la gestión de las mismas entre abanderadas y red propia, que son situaciones totalmente diferentes y la gestión a nivel de sistema informática es totalmente diferente. En otros blogs se evidencia que se pueden obtener los datos de los clientes que pagan con tarjeta, esto es totalmente falso, los sistemas de venta de las estaciones de servicio no guardan ningún dato de tarjeta, podéis
consultar a REDSYS/4B por ejemplo, y que os expliquen cómo se trata la información
de tarjetas en España en base al protocolo de cifrado nacional de pista, lo máximo
que se podría adquirir serian los datos de clientes que solicitan factura, y para esos fallos ya está la LOPD.

Para resumir, antes de crear una entrada de blog
totalmente alarmista que nada tiene que ver con la realidad, yo me documentaría
y hablaría directamente con los afectados para entender los diferentes
funcionamientos, y si de verdad esto implicase un fallo grave, no haría un
publicación de este tipo y lo gestionaría a través de las diferentes autoridades.

Amador dijo...

Buenos días, soy Amador Aparicio, autor del artículo. Lo primero de todo, saludarte y agradecerte que hayas leído mi artículo con tanta atención. Sobre lo que comentas en el último párrafo, te falta información. Un saludo!