Situación: dos vulnerabilidades en la pila TCP del kernel de Linux están cerradas

A principios de este mes, los expertos en seguridad descubrieron dos nuevas vulnerabilidades en el kernel de Linux: SegmentSmack y FragmentSmack. Ambos están relacionados con el trabajo de la pila TCP y permiten a los atacantes realizar ataques DoS y DDoS en el sistema de la víctima. Ya se han lanzado "parches" para la mayoría de las distribuciones.

Debajo del corte: más sobre la esencia.


/ foto Eli Duke CC

¿Por qué son peligrosas estas vulnerabilidades?


Raíz de Evil SegmentSmack: funciones tcp_collapse_ofo_queue () y tcp_prune_ofo_queue (). Un atacante los llama utilizando segmentos TCP especialmente modificados enviados al servidor, computadora personal o dispositivo móvil de la víctima.

Esto conduce a un uso excesivo de la memoria y los recursos del procesador. Por lo tanto, un hacker puede "colgar" un host o dispositivo con tráfico de solo 2 mil paquetes por segundo.

El sitio web de RedHat proporciona un ejemplo del resultado de dicho ataque. El comando superior muestra la carga completa de cuatro núcleos de CPU y retrasos en el procesamiento de paquetes de red:

$ top %Cpu25 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.5 si, 0.0 st %Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st %Cpu28 : 0.0 us, 0.3 sy, 0.0 ni, 0.7 id, 0.0 wa, 0.0 hi, 99.0 si, 0.0 st %Cpu30 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 141 root 20 0 0 0 0 R 97.3 0.0 1:16.33 ksoftirqd/26 151 root 20 0 0 0 0 R 97.3 0.0 1:16.68 ksoftirqd/28 136 root 20 0 0 0 0 R 97.0 0.0 0:39.09 ksoftirqd/25 161 root 20 0 0 0 0 R 97.0 0.0 1:16.48 ksoftirqd/30 

Tenga en cuenta que mantener un "estado DoS" requiere una sesión TCP abierta, por lo que no puede llevarse a cabo un ataque utilizando suplantación de IP.

El ataque FragmentSmack explota las características de fragmentación de los datagramas IP . Cuando se transmite un datagrama IP a la capa de enlace, se fragmenta si no cabe en la trama . Por lo tanto, se transmite en pedazos, y el host luego lo recopila. Sin embargo, solo conoce la longitud final del datagrama cuando recibe el último fragmento.

Los atacantes usan esta función y ajustan los valores de desplazamiento de fragmentos para que el procesador del servidor esté constantemente ensamblando paquetes IPv4 e IPv6.

FragmentSmack le permite trabajar con direcciones IP falsas para engañar a los sistemas de seguridad (puede usar la suplantación de IP). Sin embargo, requiere más velocidad de envío de paquetes que SegmentSmack: 30 mil paquetes por segundo.

RedHat también da el resultado de un ataque similar (el núcleo está cargado al 99%):

 top - 08:59:45 up 1:34, 2 users, load average: 0.39, 0.15, 0.08 %Cpu9 : 0.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi,100.0 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 54 root 20 0 0 0 0 R 99.7 0.0 0:47.53 ksoftirqd/9 

Tales vulnerabilidades no se descubren por primera vez. En los años noventa, se encontró un error similar en Windows NT 4.0, Windows 95 y las versiones de kernel de Linux hasta 2.0.32. El exploit se conoce como un ataque de lágrima : un atacante también envió paquetes fragmentados a un dispositivo (red) de destino, causando DoS. La vulnerabilidad fue parchada, pero apareció más tarde.

En 2009, el error se encontró nuevamente en Windows 7 y Windows Vista.

Quien duele


FragmentSmack amenaza todas las versiones del kernel de Linux a partir de 3.9, y SegmentSmack amenaza con 4.9. Puede encontrar una lista de proveedores cuyos sistemas tienen estas vulnerabilidades en el sitio web del CERT .

La semana pasada, Cisco informó que su sistema operativo AsyncOS fue atacado por SegmentSmack y FragmentSmack. Por lo tanto, la compañía lanzó una serie de parches.

Como se señaló en Cisco, los "síntomas" de las vulnerabilidades se pueden rastrear utilizando el comando netstat (un ejemplo está en el sitio web de Cisco en la sección Indicadores de compromiso ). Si la salida del comando muestra una gran cantidad de conexiones TCP en el estado CLOSE_WAIT, es probable que el dispositivo se vea afectado por estas vulnerabilidades.

Que tratar


Los detalles sobre los parches SegmentSmack para varias distribuciones ya se han publicado en CVE (por ejemplo, aquí hay un parche para Ubuntu 14.04 LTS ). Allí encontrará instrucciones y archivos de parches para todas las distribuciones de Linux. En cuanto a FragmentSmack, los desarrolladores de Ubuntu, Red Hat, Debian y Android OS ya han implementado los parches contra esta vulnerabilidad.


/ foto Christopher Michel CC

Como solución temporal al problema FragmentSmack (si el parche no se puede instalar por algún motivo), puede cambiar los valores de net.ipv4.ipfrag_high_thresh y net.ipv4.ipfrag_low_thresh a 256 y 192 KB, respectivamente (en lugar de 4 MB y 3 MB).

El primer parámetro establece la cantidad máxima de memoria asignada a la cola de paquetes fragmentados. Si la longitud de la cola la excedió, el controlador de fragmentos ignorará todos los paquetes hasta que la longitud de la cola sea menor que el valor de ipfrag_low_thresh.

Los propietarios de Android, según Kevin Beaumont, un experto en ciberseguridad (así como el autor de un blog independiente sobre el tema), pueden cambiar estos valores utilizando dichos comandos (deberían funcionar sin reiniciar el dispositivo).



Lo que hacemos en IT-GRAD - las principales áreas:

Infraestructura virtual (IaaS)Alojamiento de PCI DSSCloud FZ-152



Otro contenido de nuestro blog IaaS:



Source: https://habr.com/ru/post/es421207/


All Articles