El administrador del servidor Jabber jabber.ru (xmpp.ru) detectó un ataque de descifrado del tráfico de los usuarios (MITM), llevado a cabo durante un período de entre 90 días y 6 meses en las redes de los proveedores de hosting alemanes Hetzner y Linode, donde se aloja el servidor del proyecto y entornos VPS auxiliares. El ataque fue organizado mediante la redirección del tráfico a un nodo de tránsito que sustituyó el certificado TLS para conexiones XMPP, cifradas utilizando la extensión STARTTLS.
El ataque fue descubierto debido a un error de sus organizadores, que no lograron renovar el certificado TLS utilizado para la suplantación. El 16 de octubre, el administrador de jabber.ru, al intentar conectarse al servicio, recibió un mensaje de error debido a la expiración del certificado, pero el certificado alojado en el servidor no había caducado. Al final se descubrió que el certificado recibido por el cliente difiere del certificado enviado por el servidor. El primer falso certificado TLS fue obtenido el 18 de abril de 2023 a través del servicio Let’s Encrypt, en el cual el atacante, teniendo la posibilidad de interceptar el tráfico, pudo confirmar el acceso a los sitios jabber.ru y xmpp.ru.
Inicialmente, se sospechó que el servidor del proyecto había sido comprometido y que la suplantación se había llevado a cabo en su lado. Sin embargo, la auditoría realizada no encontró ningún rastro de hackeo. Además, en los registros del servidor se observó un breve apagado y encendido de la interfaz de red (NIC Link is Down/NIC Link is Up), que ocurrió el 18 de julio a las 12:58, lo que podría haber indicado manipulaciones con la conexión del servidor al conmutador. Es notable que dos certificados TLS falsos fueron generados unos minutos antes de esto — el 18 de julio a las 12:49 y a las 12:38.
Además, la suplantación no solo se realizó en la red del proveedor Hetzner, donde se aloja el servidor principal, sino también en la red del proveedor Linode, donde se alojaban los entornos VPS con proxies auxiliares que redirigían el tráfico desde otras direcciones. De manera indirecta, se descubrió que el tráfico del puerto de red 5222 (XMPP STARTTLS) en las redes de ambos proveedores se redirige a través de un host adicional, lo que dio motivos para suponer que el ataque fue llevado a cabo por alguien con acceso a la infraestructura de los proveedores.
Teóricamente, el reemplazo podría haberse realizado desde el 18 de abril (fecha de creación del primer certificado falso para jabber.ru), pero los casos confirmados de reemplazo del certificado se registraron solo desde el 21 de julio hasta el 19 de octubre; durante todo este tiempo, el intercambio de datos cifrados con jabber.ru y xmpp.ru se puede considerar comprometido. El reemplazo se detuvo tras el inicio de la investigación, la realización de pruebas y el envío, el 18 de octubre, de una solicitud al servicio de soporte de los proveedores Hetzner y Linode. Sin embargo, una transición adicional en la ruta de los paquetes enviados al puerto 5222 de uno de servidores Linode, se observa aún hoy, pero el certificado ya no se falsifica.
Se supone que el ataque pudo haber sido llevado a cabo con el conocimiento de los proveedores a petición de las fuerzas del orden, como resultado de la violación de la infraestructura de ambos proveedores o por un empleado que tenía acceso a ambos proveedores. Al tener la capacidad de interceptar y modificar el tráfico XMPP, el atacante podría haber accedido a todos los datos relacionados con las cuentas, como el historial de mensajes almacenado en el servidor, y también podría enviar mensajes haciéndose pasar por otros y realizar cambios en mensajes ajenos. Los mensajes enviados utilizando cifrado de extremo a extremo (OMEMO, OTR o PGP) se pueden considerar no comprometidos, siempre que las claves de cifrado sean confirmadas por los usuarios en ambos lados de la conexión. Se recomienda a los usuarios de jabber.ru que cambien sus contraseñas de acceso y verifiquen las claves OMEMO y PGP en sus almacenes PEP en busca de posibles reemplazos.
Fuente: opennet.ru
