¿Existe una solución para el defecto RFC 5961 Linux TCP?

28

Hace poco leí sobre esta falla TCP de Linux ( CVE-2016-5696 ) que permite a un atacante romper o secuestrar una conexión entre dos máquinas que ejecutan Linux (por ejemplo, un servidor web y un cliente). Entiendo que el problema se introdujo en 2012 en el kernel de Linux versión 3.6 y afecta también a todas las versiones más nuevas.

Actualmente no se ha publicado una solución para esto (al momento de escribir esto), pero ¿hay alguna solución alternativa ya que este es un error bastante importante?


fuente
Ubuntu no ha lanzado una solución? Algunas otras distribuciones tenían una solución publicada antes de que la falla se hiciera pública.
Michael Hampton
@MichaelHampton: Hasta donde yo sé, se ha puesto a disposición una solución en el canal propuesto, sin embargo, aún no se ha realizado una versión estable.
Creo que planean lanzar la solución el 27.
@MichaelHampton: He actualizado mi respuesta con la información relevante.

Respuestas:

29

Nota: La sección Solución alternativa se ha mantenido por razones históricas, sin embargo, pase a la sección Solución a continuación.

Solución alternativa:

Como se indica aquí :

La buena noticia, y sí, hay buenas noticias, es que es fácil de solucionar. Primero, Linux mismo está siendo parcheado para detener el vector de ataque en su camino. A continuación, simplemente aumenta el 'límite de ACK de desafío' a un valor extremadamente grande para que sea prácticamente imposible explotar el problema del canal lateral que permitió que el ataque funcionara.

Como este problema afecta tanto al cliente como al servidor, o de hecho dos máquinas Linux que hablan por la red, es importante implementar la solución en ambos y la solución tan pronto como se lance.

Para implementar la solución alternativa, haga lo siguiente:

  1. Abra el archivo de configuración con: sudoedit /etc/sysctl.conf
  2. Inserte la línea net.ipv4.tcp_challenge_ack_limit = 999999999en el archivo y guárdelo
  3. Ejecutar sudo sysctl -ppara actualizar la configuración

También puede hacer la operación directamente desde la Terminal:

sudo bash -c 'echo "net.ipv4.tcp_challenge_ack_limit = 999999999" >>/etc/sysctl.conf'

O:

echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' | sudo tee -a /etc/sysctl.conf

Entonces corre:

sudo sysctl -p

Fijar:

Como se indica aquí :

net/ipv4/tcp_input.c in the Linux kernel before 4.7 does not properly
determine the rate of challenge ACK segments, which makes it easier for
man-in-the-middle attackers to hijack TCP sessions via a blind in-window
attack.
...
sbeattie> fix is going to land in Ubuntu kernels in this SRU cycle,  
with a likely release date of Aug 27. Earlier access to the kernels  
with the fix will be available from the -proposed pocket, though they 
come with the risk of being less tested.

Y ahora se ha lanzado una solución:

linux (4.4.0-36.55) xenial; urgency=low

  [ Stefan Bader ]

  * Release Tracking Bug
    - LP: #1612305

  * I2C touchpad does not work on AMD platform (LP: #1612006)
    - SAUCE: pinctrl/amd: Remove the default de-bounce time

  * CVE-2016-5696
    - tcp: make challenge acks less predictable

 -- Stefan Bader <[email protected]>  Thu, 11 Aug 2016 17:34:14 +0200

Correr:

sudo apt-get update
sudo apt-get dist-upgrade

Para asegurarte de tener la última versión. O utilice el Actualizador de software si prefiere actualizar a través de la GUI.

Puede verificar qué versión está ejecutando y cuál está disponible con:

apt-cache policy linux-image-generic

fuente
La solución rápida (pero no persistente):echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt