Netflix ha identificado varias vulnerabilidades de red TCP en los núcleos FreeBSD y Linux.
Las vulnerabilidades se relacionan específicamente con las capacidades de Tamaño de segmento máximo (MSS) y Reconocimiento selectivo de TCP (SACK). El más serio, denominado "SACK Panic ", permite un pánico de kernel activado de forma remota en los kernels de Linux recientes.
Hay parches que tratan la mayoría de estas vulnerabilidades. Si no se pueden aplicar parches, ciertas mitigaciones serán efectivas. Recomendamos que las partes afectadas promulguen uno de los descritos a continuación, en función de su entorno.
Detalles:
Descripción: Una secuencia de SACK puede estar diseñada de tal manera que uno pueda desencadenar un desbordamiento de enteros, lo que lleva a un pánico en el núcleo.
Solución # 1: bloquee las conexiones con un MSS bajo usando uno de los filtros provistos . (Los valores en los filtros son ejemplos. Puede aplicar un límite superior o inferior, según sea apropiado para su entorno). Tenga en cuenta que estos filtros pueden romper conexiones legítimas que se basan en un MSS bajo. Además, tenga en cuenta que esta mitigación solo es efectiva si el sondeo de TCP está deshabilitado (es decir, net.ipv4.tcp_mtu_probingsysctl se establece en 0, que parece ser el valor predeterminado para ese sysctl).
Solución # 2: Deshabilitar el procesamiento de SACK ( /proc/sys/net/ipv4/tcp_sackestablecido en 0).
(Tenga en cuenta que cualquiera de las soluciones debería ser suficiente por sí sola. No es necesario aplicar ambas soluciones).
2: CVE-2019-11478 : SACK Slowness (Linux <4.15) o Exceso de uso de recursos (todas las versiones de Linux)
Descripción: es posible enviar una secuencia elaborada de SACK que fragmentará la cola de retransmisión de TCP. En los kernels de Linux anteriores a la 4.15, un atacante puede explotar aún más la cola fragmentada para causar una caminata costosa de la lista enlazada para los SACK posteriores recibidos para esa misma conexión TCP.
Solución # 1: bloquee las conexiones con un MSS bajo usando uno de los filtros provistos . (Los valores en los filtros son ejemplos. Puede aplicar un límite superior o inferior, según sea apropiado para su entorno). Tenga en cuenta que estos filtros pueden romper conexiones legítimas que se basan en un MSS bajo. Además, tenga en cuenta que esta mitigación solo es efectiva si el sondeo de TCP está deshabilitado (es decir, net.ipv4.tcp_mtu_probingsysctl se establece en 0, que parece ser el valor predeterminado para ese sysctl).
Solución # 2: Deshabilitar el procesamiento de SACK ( /proc/sys/net/ipv4/tcp_sackestablecido en 0).
(Tenga en cuenta que cualquiera de las soluciones debería ser suficiente por sí sola. No es necesario aplicar ambas soluciones).
3: CVE-2019-5599 : SACK Slowness (FreeBSD 12 usando la pila TCP RACK)
Descripción: es posible enviar una secuencia elaborada de SACK que fragmentará el mapa de envío de RACK. Un atacante puede ser capaz de explotar aún más el mapa de envío fragmentado para causar un recorrido caro de la lista enlazada para los SACK subsiguientes recibidos para esa misma conexión TCP.
Solución # 1: aplique el parche split_limit.patch y configure el net.inet.tcp.rack.split_limitsysctl a un valor razonable para limitar el tamaño de la tabla SACK.
Solución # 2: deshabilite temporalmente la pila TCP RACK.
(Tenga en cuenta que cualquiera de las soluciones debería ser suficiente por sí sola. No es necesario aplicar ambas soluciones).
4: CVE-2019-11479 : Exceso de consumo de recursos debido a valores de MSS bajos (todas las versiones de Linux)
Descripción: un atacante puede forzar al kernel de Linux a segmentar sus respuestas en múltiples segmentos TCP, cada uno de los cuales contiene solo 8 bytes de datos. Esto aumenta drásticamente el ancho de banda requerido para entregar la misma cantidad de datos. Además, consume recursos adicionales (CPU y NIC). Este ataque requiere un esfuerzo continuo por parte del atacante y los impactos finalizarán poco después de que el atacante deje de enviar tráfico.
Solución: Dos parches PATCH_net_3_4.patch y PATCH_net_4_4.patch agregan un sysctl que impone un MSS mínimo, establecido por el net.ipv4.tcp_min_snd_msssysctl. Esto permite a un administrador imponer un MSS mínimo apropiado para sus aplicaciones.
Solución alternativa: bloquee las conexiones con un MSS bajo usando uno de los filtros provistos . (Los valores en los filtros son ejemplos. Puede aplicar un límite superior o inferior, según sea apropiado para su entorno). Tenga en cuenta que estos filtros pueden romper conexiones legítimas que se basan en un MSS bajo. Además, tenga en cuenta que esta mitigación solo es efectiva si el sondeo de TCP está deshabilitado (es decir, net.ipv4.tcp_mtu_probingsysctl se establece en 0, que parece ser el valor predeterminado para ese sysctl).
Nota:
Las buenas prácticas de codificación y configuración de las aplicaciones y sistemas (limitar los buffers de escritura al nivel necesario, monitorear el consumo de memoria de conexión a través de SO_MEMINFO y cerrar agresivamente las conexiones que se comportan mal) pueden ayudar a limitar el impacto de los ataques contra este tipo de vulnerabilidades.
Datos obtenidos desde: github.com/Netflix
Comentarios
Publicar un comentario