NetCAT una nueva técnica que permite la detección de pulsaciones de teclas en una sesión SSH
Un grupo de investigadores de la Universidad de Amsterdam y la Escuela Técnica Superior Suiza de Zúrich desarrollaron la técnica de ataque en red “NetCAT” (Network Cache ATtack) que permite utilizar métodos de análisis de datos de canales de terceros para determinar de forma remota las teclas que presiona un usuario mientras trabaja en una sesión SSH. El problema solo se manifiesta en servidores que utilizan las tecnologías RDMA (acceso directo a memoria remota) y DDIO (E/S directa a datos).
Intel cree que el ataque es difícil de implementar en la práctica, ya que requiere el acceso del atacante a la red local, además de que las condiciones y la organización de las comunicaciones del host utilizando las tecnologías RDMA y DDIO, que generalmente se utilizan en redes aisladas, por ejemplo, en las que operan los clústeres.
El método utilizado para el ataque se asemeja a la vulnerabilidad Throwhammer, que permite cambiar el contenido de bits individuales en la RAM a través de la manipulación de paquetes de red en sistemas con RDMA.
Los investigadores comentan que:
El nuevo problema es el resultado de minimizar los retrasos al usar el mecanismo DDIO, que proporciona interacción directa entre la tarjeta de red y otros dispositivos periféricos con el caché del procesador (durante el procesamiento de los paquetes de la tarjeta de red, los datos se almacenan en el caché y se recuperan del caché, sin acceder a la memoria).
Gracias a DDIO, la memoria caché del procesador también incluye datos generados durante la actividad maliciosa de la red.
El ataque de NetCAT se basa en el hecho de que las tarjetas de red almacenan datos en caché activamente, y la velocidad de procesamiento de paquetes en las redes locales modernas es suficiente para influir en el llenado del caché y determinar la presencia o ausencia de datos en el caché a través del análisis de los retrasos en la transmisión de datos.
Cuando se usan sesiones interactivas, por ejemplo a través de SSH, se envía un paquete de red inmediatamente después de presionar una tecla, es decir, los retrasos entre paquetes se correlacionan con retrasos entre las pulsaciones de teclas.
Utilizando métodos de análisis estadístico y teniendo en cuenta que los retrasos entre pulsaciones generalmente dependen de la posición de una tecla en el teclado, es posible con cierta probabilidad recrear la información de entrada. Por ejemplo, la mayoría de las personas suelen escribir “s” después de “a” mucho más rápido que “g” después de “s”.
La información depositada en la memoria caché del procesador también le permite juzgar la hora exacta de los paquetes enviados por la tarjeta de red al procesar conexiones como SSH.
Al generar un cierto flujo de tráfico, un atacante puede determinar cuándo aparecen nuevos datos en la memoria caché asociada con una determinada actividad en el sistema.
Para analizar el contenido de la memoria caché, se utiliza el método Prime + Probe , que consiste en llenar la memoria caché con un conjunto de valores de referencia y medir el tiempo de acceso a ellos al rellenar para determinar los cambios.
Es posible que la técnica propuesta se pueda utilizar para determinar no solo las pulsaciones de teclas, sino también otros tipos de datos confidenciales depositados en la memoria caché de la CPU.
En nuestro ataque, aprovechamos el hecho de que el servidor de aplicaciones habilitado para DDIO tiene un recurso compartido (el caché de último nivel) entre los núcleos de la CPU y la tarjeta de red. Realizamos ingeniería inversa de las propiedades importantes de DDIO para comprender cómo se comparte la memoria caché con DDIO.
Potencialmente, se puede llevar a cabo un ataque cuando RDMA está desactivado, pero sin RDMA su efectividad se reduce y la ejecución es significativamente complicada.
También es posible usar DDIO para organizar un canal de comunicación encubierto utilizado para transferir datos después de que un servidor se ha visto comprometido, sin pasar por los sistemas de seguridad.
Fuente: https://www.vusec.net