La empresa de
seguridad IOActive ha descubierto dos vulnerabilidades críticas en AmosConnect
8, un software de comunicaciones marítimas. Estas vulnerabilidades permiten
comprometer el servidor del barco que contiene este software.
AmosConnect 8 es un
sistema de comunicaciones marítimas enfocado a barcos. Optimizado para trabajar
con el recurso costoso que es una conexión satélite a Internet, permite el
envío de correos, la navegación por Internet, reportar la posición del barco,
mensajería instantánea... Este software se instala en un servidor conectado a
un terminal de comunicación de datos via satélite.
IOActive, que lleva
unos años analizando la seguridad de este tipo de sistemas, ha encontrado dos
vulnerabilidades en el panel web de acceso al servidor de AmosConnect. Ambas
vulnerabilidades llaman la atención, pues una de ellas usa una variante
sofisticada del ataque de inyección SQL, y otra permite ejecutar código
arbitrario con privilegios de administrador gracias a una cuenta oculta de
administración con contraseña fácilmente calculable.
La primera de las
vulnerabilidades es de la familia de las inyecciones SQL (concretamente la
variante a ciegas, blind). La variante básica de este ataque está a punto de
cumplir 20 años (se considera que la primera mención pública fue en 1998), y la
solución simplemente consiste en usar una librería muy fácil de usar (habrá
cientos de ellas, y para cualquier plataforma). Es por esto que llama la
atención esta vulnerabilidad a estas alturas de la película. La variante blind
complica la extracción de información, pero no la hace imposible.
En este caso, el
nombre de usuario y la contraseña de los usuarios en el servidor de AmosConnect
se almacena en texto plano en la base de datos, con lo que es trivial extraer
esa información con las herramientas adecuadas. Concretamente, la URL
vulnerable es aquella que recibe la petición de autorización en el panel de
acceso web (en su parámetro 'data[MailUser][emailAddress]'):
La segunda
vulnerabilidad es más grave todavía, combinación de dos errores clásicos: la
existencia de una cuenta de administración oculta, y que una contraseña se
genere usando información pública. Los investigadores se dieron cuenta de la
existencia de código dentro del sistema de autenticación que manejaba la
posibilidad de autenticarse con una cuenta oculta que además poseía privilegios
de administración, con nombre SysAdmin. Y dentro de ese código, vieron cómo la
contraseña de esa cuenta se generaba únicamente usando la ID de soporte del
producto, que aparece públicamente en el panel web de acceso...
Una vez dentro de
esta cuenta de administración, es posible crear tareas desde el panel para que
se ejecuten a nivel de sistema operativo con
privilegios de administrador, con lo que se puede ejecutar código
arbitrario y comprometer completamente el servidor.
La pregunta clave es:
¿Cómo de grave es esto?
Pues bien, la
respuesta es que bastante, pero no como para causar un escándalo. La
vulnerabilidad no se puede explotar desde fuera de la red del barco, pero
comprometer desde cero un servidor local no es ninguna tontería. Y además, está
el problema de que la red no esté bien aislada y se pueda saltar a otros
servidores, o que incluso en el mismo servidor estén instalados otros servicios
críticos de navegación... En cualquier caso, la versión a la que afecta dejó de
ser soportada hace meses. Los servidores proporcionados por la empresa del
software están cerrados para la versión afectada, para forzar a sus usuarios a
que cambien de versión.
Más información:
- Backdoor Account Found in Popular Ship Satellite Communications System http://blog.ioactive.com/2017/10/amosconnect-maritime-communications.html
- AmosConnect: Maritime Communications Security Has Its Flaws https://www.bleepingcomputer.com/news/security/backdoor-account-found-in-popular-ship-satellite-communications-system/
- Two critical vulnerabilities found in Inmarsat's satcom systems https://threatpost.com/two-critical-vulnerabilities-found-in-inmarsats-satcom-systems/128632/