Los barcos de transporte que hoy día navegan por el mundo son quizás el entorno IoT definitivo ya que integran cientos de sensores, motores, etcétera. Hasta hace relativamente poco tiempo los ICS (Industrial Control System) de estos vehículos de transporte marítimos estaban totalmente asilados utilizando redes internas e incluso protocolos propios de comunicaciones los cuales apenas tenían apenas medidas de seguridad. Esto en principio no era un problema siempre y cuando el acceso físico y los terminales de comunicaciones estuviera controlado y supervisado.
Pero claro, hoy día con Internet todo eso ha cambiado y estos barcos se han conectado a Internet utilizando tecnologías como VSAT, GSM/LTE e incluso WiFi. De hecho, los problemas de base son prácticamente los mismos que se aplican a todos los dispositivos IoT: falta de actualizaciones, contraseñas inseguras, configuraciones de seguridad débiles, etcétera. Muchas de esas vulnerabilidades que pueden ser explotadas las hemos visto en detalle en libros como el de Sistemas de Control Industrial: Auditorías de seguridad y fortificación o el de Hacking de comunicaciones móviles: GSM,GPRS,UMTS, LTE.
Pero esta vez hablamos de auténticas casas o ciudades flotantes, y no de fábricas, llenas de estos aparatos electrónicos (sistemas de navegación, ECDIS, grúas, etcétera) que además surcan los mares del mundo transportando contenedores, vehículos, materiales peligrosos o incluso personas. Estamos ante todos los ingredientes para que se produzca un auténtico desastre y es urgente poner remedio lo antes posible.
Pero hay muchos factores que hacen bastante complicado solucionar este problema de ciberseguridad para la industria marítima. Uno de ellos es que muchos de estos sistemas han sido construidos hace más de treinta años con tecnologías totalmente obsoletas, sin mantenimiento ni actualizaciones. Otro factor que destacar es la tripulación la cual está en constante cambio o relevo, añade un factor más para que se produzca un fallo de ciberseguridad tanto por un error humano (por desconocimiento) como por algún tipo de ataque usando ingeniería social.
Por último, cambiar todos estos complejos sistemas implica también actualizar los mismos dispositivos que existen en las bases localizadas en las compañías navieras, lo que implica una gran inversión.
Jugando a los barquitos por computador con Shodan
Si has leído el libro de Hacking con Buscadores: Bing, Google & Shodan, conocerás la potencia de este último para localizar sistemas con las características que he citado en la primera parte del artículo, así que vamos a utilizar Shodan para comprobar lo sencillo que es localizar y analizar barcos desde Internet. Para empezar, Shodan ya dispone de un servicio el cual nos ofrece un seguimiento de barcos actualmente en ruta en tiempo real
Podemos utilizar la información que nos ofrece este localizador de Shodan o podemos hacerlo nosotros mismo de forma manual. Para encontrar barcos tenemos que centrarnos en los principales proveedores de comunicaciones por vía satélite como por ejemplo Inmarsat, Telenor, Cobham, Iridium, Thuraya, etcétera, así como en las empresas que se dedican a fabricar terminales de comunicaciones como por ejemplo KVH. También hay que poner atención a los diferentes programas de gestión del barco como por ejemplo los ofrecidos por ThinkPalm, Marine Office PMS o DNV-GL. Añadir el término “vessel” como parámetro en el hostname también ayuda a localizar este tipo de vehículos de transporte:
Es realmente sorprendente la cantidad de información que podemos obtener sin ni siquiera acceder como usuario del servicio. Por ejemplo, los dispositivos de la marca Cobham muestran mucha información. Ofrecen datos como el número de serie, dirección IP, posición GPS, modelo, etcétera, como se puede apreciar en la siguiente captura de un ejemplo que hemos encontrado al azar:
Las coordenadas GNSS lo ubican en el momento que hemos escrito este post, en 28.70 grados Sur y 46.78 grados Oeste. Utilizando simplemente Google Maps podemos ver la localización actual del barco en cuestión:
Y si esta información la contrastamos con la web www.vesselfinder.com (AIS Data) podemos saber en un instante más información sobre el barco, incluido su nombre “Ocean ********” además de comprobar que la ubicación que hemos obtenido antes es correcta:
Podemos incluso obtener una ficha completa del barco:
Toda esta información es pública y accesible desde Internet, no ha hecho falta ningún tipo de ataque o búsqueda de una vulnerabilidad para obtenerla. Partiendo de todos estos datos es posible ejecutar un ataque más dirigido para tomar el control de otras funciones del barco empezando por comprobar si existen exploits para este tipo de software y comprobar las versiones firmware de los dispositivos (por ejemplo, de dispositivos de comunicación vía satélite) para buscar las obsoletas.
Pero, es más, sabiendo el nombre del barco también sería factible realizar una búsqueda por redes sociales e Internet para encontrar el nombre del capitán, posibles marineros, etc y con esta información realizar un ataque dirigido utilizando phishing o incluso ingeniería social.
Posibles escenarios de ataque
Uno de los barcos más críticos que pueden ser objetivo de estos ataques son los de transporte de contenedores. Estos utilizan mensajes EDIFACT con una serie de códigos los cuales podrían ser interceptados y modificados. En concreto, se podrían manipular los códigos BAPLIE EDIFACT utilizados para todo tipo de transporte. Estos barcos podían ser muy vulnerables a este tipo de ataques ya que podrían provocar incluso situaciones de balanceo de carga lo cual podría llevar al volcado del barco. Vamos a ver un ejemplo con el siguiente mensaje EDIFACT:
Pero esto no queda aquí, incluso podría ser factible marcar un contenedor que tiene material explosivo o inflamable y quitarle la marca de “material peligroso” lo que podría provocar un incendio o una explosión en caso de una manipulación incorrecta. Es muy importante asegurar al máximo este tipo de comunicaciones para evitar cualquier interceptación y modificación de los códigos. En este artículo tienes más información.
Esto no es nuevo, ya habló bastante de este tema en 2017 pero parece que hoy día sigue más o menos igual. En un estudio más reciente se indica que hay más de 50.000 barcos susceptibles a recibir un ciberataque. Pero esto no es sólo teoría, en 2017 la empresa Moller-Maerks sufrió un ciberataque que provoco retrasos en toda su flota provocando pérdidas económicas.
Parece ser que poco a poco la industria marítima de transporte se empieza a concienciar de este grave problema de seguridad, pero llevará mucho tiempo poder auditar y securizar todos los ICS de los barcos, exactamente el mismo problema que nos ocurre con el IoT en tierra firme. Con la llegada de la Industria 4.0 no podemos olvidar el transporte marítimo e incluirlo como un elemento más a controlar y asegurar dentro del mundo del Internet of Things.
Autor: Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.
Nota del autor: Hay tres aparatos electrónicos de mi infancia a los cuales les tengo un gran cariño, ya que me marcaron de por vida. El primero fue un videojuego portátil llamado Galaxy Invader 1000 (no recuerdo la de horas que pasaba jugando a este sencillo clon de Space Invaders), un ZX81 con 1KB de memoria RAM (menos memoria que un simple SMS de un móvil) y mi querido Hundir la Flota por Computador, cariño que comparto con Chema Alonso sobre este fantástico juego de nuestra infancia. Sirva este post como homenaje a este último ;)
Figura 1: Hundir la flota por computador. Fallos de seguridad en miles de barcos navegando por el mundo. |
Pero claro, hoy día con Internet todo eso ha cambiado y estos barcos se han conectado a Internet utilizando tecnologías como VSAT, GSM/LTE e incluso WiFi. De hecho, los problemas de base son prácticamente los mismos que se aplican a todos los dispositivos IoT: falta de actualizaciones, contraseñas inseguras, configuraciones de seguridad débiles, etcétera. Muchas de esas vulnerabilidades que pueden ser explotadas las hemos visto en detalle en libros como el de Sistemas de Control Industrial: Auditorías de seguridad y fortificación o el de Hacking de comunicaciones móviles: GSM,GPRS,UMTS, LTE.
Pero esta vez hablamos de auténticas casas o ciudades flotantes, y no de fábricas, llenas de estos aparatos electrónicos (sistemas de navegación, ECDIS, grúas, etcétera) que además surcan los mares del mundo transportando contenedores, vehículos, materiales peligrosos o incluso personas. Estamos ante todos los ingredientes para que se produzca un auténtico desastre y es urgente poner remedio lo antes posible.
Figura 2: Barco con contenedores con la carga desplazada |
Pero hay muchos factores que hacen bastante complicado solucionar este problema de ciberseguridad para la industria marítima. Uno de ellos es que muchos de estos sistemas han sido construidos hace más de treinta años con tecnologías totalmente obsoletas, sin mantenimiento ni actualizaciones. Otro factor que destacar es la tripulación la cual está en constante cambio o relevo, añade un factor más para que se produzca un fallo de ciberseguridad tanto por un error humano (por desconocimiento) como por algún tipo de ataque usando ingeniería social.
Por último, cambiar todos estos complejos sistemas implica también actualizar los mismos dispositivos que existen en las bases localizadas en las compañías navieras, lo que implica una gran inversión.
Jugando a los barquitos por computador con Shodan
Si has leído el libro de Hacking con Buscadores: Bing, Google & Shodan, conocerás la potencia de este último para localizar sistemas con las características que he citado en la primera parte del artículo, así que vamos a utilizar Shodan para comprobar lo sencillo que es localizar y analizar barcos desde Internet. Para empezar, Shodan ya dispone de un servicio el cual nos ofrece un seguimiento de barcos actualmente en ruta en tiempo real
Figura 3: Ship Tracker de Shodan |
Podemos utilizar la información que nos ofrece este localizador de Shodan o podemos hacerlo nosotros mismo de forma manual. Para encontrar barcos tenemos que centrarnos en los principales proveedores de comunicaciones por vía satélite como por ejemplo Inmarsat, Telenor, Cobham, Iridium, Thuraya, etcétera, así como en las empresas que se dedican a fabricar terminales de comunicaciones como por ejemplo KVH. También hay que poner atención a los diferentes programas de gestión del barco como por ejemplo los ofrecidos por ThinkPalm, Marine Office PMS o DNV-GL. Añadir el término “vessel” como parámetro en el hostname también ayuda a localizar este tipo de vehículos de transporte:
Figura 4: Ejemplo de búsqueda con Shodan utilizando los términos “vessel” e “Inmarsat” |
Es realmente sorprendente la cantidad de información que podemos obtener sin ni siquiera acceder como usuario del servicio. Por ejemplo, los dispositivos de la marca Cobham muestran mucha información. Ofrecen datos como el número de serie, dirección IP, posición GPS, modelo, etcétera, como se puede apreciar en la siguiente captura de un ejemplo que hemos encontrado al azar:
Figura 5: Datos del dispositivo de conexión vía satélite marca Cobham |
Las coordenadas GNSS lo ubican en el momento que hemos escrito este post, en 28.70 grados Sur y 46.78 grados Oeste. Utilizando simplemente Google Maps podemos ver la localización actual del barco en cuestión:
Figura 6: Ubicación del barco en Google Maps |
Y si esta información la contrastamos con la web www.vesselfinder.com (AIS Data) podemos saber en un instante más información sobre el barco, incluido su nombre “Ocean ********” además de comprobar que la ubicación que hemos obtenido antes es correcta:
Figura 7: Información más detallada del barco usando el servcio www.vesselfinder.com |
Podemos incluso obtener una ficha completa del barco:
Figura 8: Ficha técnica del barco |
Toda esta información es pública y accesible desde Internet, no ha hecho falta ningún tipo de ataque o búsqueda de una vulnerabilidad para obtenerla. Partiendo de todos estos datos es posible ejecutar un ataque más dirigido para tomar el control de otras funciones del barco empezando por comprobar si existen exploits para este tipo de software y comprobar las versiones firmware de los dispositivos (por ejemplo, de dispositivos de comunicación vía satélite) para buscar las obsoletas.
Pero, es más, sabiendo el nombre del barco también sería factible realizar una búsqueda por redes sociales e Internet para encontrar el nombre del capitán, posibles marineros, etc y con esta información realizar un ataque dirigido utilizando phishing o incluso ingeniería social.
Posibles escenarios de ataque
Uno de los barcos más críticos que pueden ser objetivo de estos ataques son los de transporte de contenedores. Estos utilizan mensajes EDIFACT con una serie de códigos los cuales podrían ser interceptados y modificados. En concreto, se podrían manipular los códigos BAPLIE EDIFACT utilizados para todo tipo de transporte. Estos barcos podían ser muy vulnerables a este tipo de ataques ya que podrían provocar incluso situaciones de balanceo de carga lo cual podría llevar al volcado del barco. Vamos a ver un ejemplo con el siguiente mensaje EDIFACT:
MEA+AAE+VGM+KGM:5000Por lo tanto, si podemos modificar el peso y en vez de 5.000 le ponemos 1.000, este se ubicará en una zona distinta dentro del barco creando inestabilidad debido a que se colocará con otros contenedores de menor peso lo que puede llegar a inclinar hacia un lado el barco o incluso llegar a hundirlo por exceso de peso de carga. Si esto se repite con el número suficiente de contenedores podríamos incluso llegar a volcarlo. Estos códigos se utilizan como entrada para software de optimización de carga como por ejemplo IS StowMan o PowerStow, los cuales tienen un aspecto similar al mostrado en la siguiente imagen:
• MEA: medida (measure). Indica el peso físico de los bienes transportados
• AAE: reconocimiento de descripción (parámetro de control)
• VGM: indica que el objeto es una pieza de transporte como por ejemplo un contenedor
• KGM: indica el peso en Kilogramos
Figura 9: Ejemplo de software de distribución de la disposición de los contenedores en función de su tipo de carga y peso |
Pero esto no queda aquí, incluso podría ser factible marcar un contenedor que tiene material explosivo o inflamable y quitarle la marca de “material peligroso” lo que podría provocar un incendio o una explosión en caso de una manipulación incorrecta. Es muy importante asegurar al máximo este tipo de comunicaciones para evitar cualquier interceptación y modificación de los códigos. En este artículo tienes más información.
Esto no es nuevo, ya habló bastante de este tema en 2017 pero parece que hoy día sigue más o menos igual. En un estudio más reciente se indica que hay más de 50.000 barcos susceptibles a recibir un ciberataque. Pero esto no es sólo teoría, en 2017 la empresa Moller-Maerks sufrió un ciberataque que provoco retrasos en toda su flota provocando pérdidas económicas.
Parece ser que poco a poco la industria marítima de transporte se empieza a concienciar de este grave problema de seguridad, pero llevará mucho tiempo poder auditar y securizar todos los ICS de los barcos, exactamente el mismo problema que nos ocurre con el IoT en tierra firme. Con la llegada de la Industria 4.0 no podemos olvidar el transporte marítimo e incluirlo como un elemento más a controlar y asegurar dentro del mundo del Internet of Things.
Autor: Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.
Nota del autor: Hay tres aparatos electrónicos de mi infancia a los cuales les tengo un gran cariño, ya que me marcaron de por vida. El primero fue un videojuego portátil llamado Galaxy Invader 1000 (no recuerdo la de horas que pasaba jugando a este sencillo clon de Space Invaders), un ZX81 con 1KB de memoria RAM (menos memoria que un simple SMS de un móvil) y mi querido Hundir la Flota por Computador, cariño que comparto con Chema Alonso sobre este fantástico juego de nuestra infancia. Sirva este post como homenaje a este último ;)
Jugue mucho a ese exactamente con sus torpedos y todo con mi hermano... Lo que me extraña es que yo tengo 26 años! Gracias por la labor que realizas!! Salds desde canarias!
ResponderEliminar