El nuevo ataque de NetSpectre no requiere que la víctima descargue o ejecute código malicioso

Seguridad / El nuevo ataque de NetSpectre no requiere que la víctima descargue o ejecute código malicioso

NetSpectre bombardea los puertos de las máquinas para obtener acceso

4 minutos de lectura

Un nuevo ataque de CPU de clase Spectre ha recibido atención de científicos académicos, ya que recientemente publicaron un artículo de investigación titulado 'NetSpectre: Leer memoria arbitraria en red', que detalla en profundidad cómo funciona esta clase de ataque de CPU.



Lo que hace que el nuevo ataque de CPU Spectre sea un poco aterrador es que no requiere el atacante para engañar a su víctima para que descargue y ejecute scripts maliciosos en su máquina, o incluso acceda a un sitio web que ejecuta JavaScript malicioso en el navegador del usuario.

NetSpectre simplemente bombardeará los puertos de red de una máquina hasta que encuentre una forma de lograr sus objetivos.



'Los ataques de espectro inducen a una víctima a realizar operaciones especulativas que no ocurrirían durante el procesamiento en orden estrictamente serializado de las instrucciones del programa, y ​​que filtran información confidencial de la víctima a través de un canal encubierto a un atacante'



Sin embargo, NetSpectre no viene sin sus propios defectos. Tiene una velocidad de exfiltración increíblemente lenta, alrededor de 15 bits por hora para que los ataques se lleven a cabo a través de una conexión de red y apunten a los datos almacenados en la caché de la CPU.



En el trabajo de investigación, los académicos pudieron lograr hasta 60 bits / hora con una variación especial de NetSpectre que apuntaba a los datos procesados ​​a través del módulo AVX2 de la CPU, que es específico de las CPU Intel.

En cualquier caso, NetSpectre se considera actualmente demasiado lento para ser valioso para los atacantes, lo que significa que NetSpectre es solo un teórico amenaza, no algo que las empresas deban esquivar para cubrirse todavía . Sin embargo, a medida que avanza la tecnología, las velocidades de exfiltración sin duda aumentarán y luego tendremos una clase completamente nueva de ataques de CPU viables e increíblemente fáciles de realizar de los que preocuparnos.

El nuevo ataque de NetSpectre está relacionado con la vulnerabilidad Spectre V1 (CVE-2017-5753) que los investigadores de Google revelaron a principios de este año (2018). Esto significa que también se cree que todas las CPU que podrían verse afectadas por Spectre V1 son NetSpectre, si se implementa con el sistema operativo y el firmware de CPU adecuados.



Actualmente, existen dos variantes de ataque para NetSpectre: extraer datos del sistema de destino y romper ASLR (asignación al azar del diseño del espacio de direcciones) de forma remota en el sistema de destino.

La cadena de eventos para el primer tipo de ataque es la siguiente:

  1. Mistrain el predictor de rama.
  2. Restablecer el estado del elemento de microarquitectura.
  3. Fuga un poco al elemento de microarquitectura.
  4. Exponer el estado del elemento de microarquitectura a la red.
  • En el paso 1, el atacante maltrata el predictor de rama de la víctima para ejecutar un ataque Spectre. Para mal entrenar el predictor de rama, el atacante aprovecha el dispositivo de fuga con índices válidos. Los índices válidos aseguran que el predictor de rama aprenda a tomar siempre la rama, es decir, el predictor de rama especula que la condición es verdadera. Tenga en cuenta que este paso solo se basa en el dispositivo de filtración. No hay retroalimentación para el atacante y, por lo tanto, el estado de la microarquitectura no tiene que reiniciarse ni transmitirse.
  • En el paso 2, el atacante tiene que restablecer el estado de la microarquitectura para permitir la codificación de los bits filtrados utilizando un elemento de microarquitectura. Este paso depende en gran medida del elemento de microarquitectura utilizado, por ejemplo, al aprovechar la caché, el atacante descarga un archivo grande de la víctima; si se usa AVX2, el atacante simplemente espera más de 1 milisegundo. Después de este paso, se cumplen todos los requisitos para filtrar un poco a la víctima.
  • En el paso 3, el atacante aprovecha la vulnerabilidad Spectre para filtrar un solo bit de la víctima. Como el predictor de rama está mal entrenado en el paso 1, proporcionar un índice fuera de límites al dispositivo de fuga ejecutará la ruta dentro de los límites y modificará el elemento de microarquitectura, es decir, el bit está codificado en el elemento de microarquitectura.
  • En el paso 4, el atacante debe transmitir la información codificada a través de la red. Este paso corresponde a la segunda fase del ataque Spectre original. El atacante envía un paquete de red que es manejado por el dispositivo de transmisión y mide el tiempo desde el envío del paquete hasta que llega la respuesta.

Método de ataque n. ° 2: romper ASLR de forma remota

  1. Mistrain el predictor de rama.
  2. Acceda a un índice fuera de límites para almacenar en caché una ubicación de memoria (conocida).
  3. Mida el tiempo de ejecución de una función a través de la red para deducir si el acceso fuera de los límites almacenó en caché una parte de ella.

Contramedidas de espectro

Intel y AMD recomiendan usar la instrucción lfence como barrera a la especulación. Esta instrucción debe insertarse después de la verificación de los límites críticos para la seguridad para detener la ejecución especulativa. Sin embargo, agregar esto a cada verificación de límites tiene una sobrecarga de rendimiento significativa.

Como NetSpectre es un ataque basado en la red, no solo se puede prevenir mitigando Spectre sino también mediante contramedidas en la capa de red. Una protección DDoS puede detectar fácilmente un ataque NetSpectre trivial, ya que varios miles de paquetes idénticos se envían desde la misma fuente.

Sin embargo, un atacante puede elegir cualquier compensación entre paquetes por segundo y bits filtrados por segundo. Por lo tanto, la velocidad a la que se filtran los bits simplemente se puede reducir por debajo del umbral que puede detectar el monitoreo DDoS. Esto es cierto para cualquier monitoreo que intente detectar ataques en curso, por ejemplo, sistemas de detección de intrusos.

Aunque teóricamente no se previene el ataque, en algún momento el ataque se vuelve inviable, ya que el tiempo necesario para filtrar un poco aumenta drásticamente. Otro método para mitigar NetSpectre es agregar ruido artificial a la latencia de la red. Como el número de mediciones depende de la variación en la latencia de la red, el ruido adicional requiere que un atacante realice más mediciones. Por lo tanto, si la variación en la latencia de la red es lo suficientemente alta, los ataques de NetSpectre se vuelven inviables debido a la gran cantidad de mediciones necesarias.