Existe uma solução alternativa para a falha do TCP RFC 5961 Linux?

28

Recentemente, li sobre essa falha no Linux TCP ( CVE-2016-5696 ), que permite a um invasor interromper ou seqüestrar uma conexão entre duas máquinas executando o Linux (por exemplo, um servidor da web e um cliente). Entendo que o problema foi introduzido em 2012 no kernel Linux versão 3.6 e afeta todas as versões mais recentes.

Atualmente, uma correção para isso não foi lançada (como no momento em que este artigo foi escrito), mas existem soluções alternativas, pois esse é um bug muito importante?


fonte
Ubuntu não lançou uma correção? Certas outras distribuições tiveram uma correção publicada antes que a falha fosse divulgada.
Michael Hampton
@ MichaelHampton: Até onde eu entendi, uma correção foi disponibilizada no canal proposto, no entanto, uma versão estável ainda não foi feita.
Eu acho que eles estão planejando lançar a correção no dia 27.
@ MichaelHampton: Atualizei minha resposta com as informações relevantes.

Respostas:

29

Nota: A seção Solução alternativa foi mantida por motivos históricos; no entanto, vá para a seção Correção abaixo.

Solução alternativa:

Como indicado aqui :

As boas notícias - e, sim, há boas notícias - é fácil de corrigir. Primeiro, o próprio Linux está sendo corrigido para interromper o vetor de ataque. Em seguida, você simplesmente eleva o 'limite de ACK de desafio' a um valor extremamente alto para tornar praticamente impossível explorar o problema do canal lateral que permitiu que o ataque funcionasse.

Como esse problema afeta o cliente e o servidor, ou de fato duas máquinas Linux falando pela rede, é importante implementar a solução alternativa em ambas e a correção assim que for lançada.

Para implementar a solução alternativa, faça o seguinte:

  1. Abra o arquivo de configuração com: sudoedit /etc/sysctl.conf
  2. Insira a linha net.ipv4.tcp_challenge_ack_limit = 999999999no arquivo e salve-a
  3. Execute sudo sysctl -ppara atualizar a configuração

Você também pode fazer a operação diretamente no Terminal:

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

Ou:

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

Então corra:

sudo sysctl -p

Consertar:

Como indicado aqui :

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.

E uma correção foi lançada:

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

Corre:

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

Para garantir que você tenha a versão mais recente. Ou use o Atualizador de Software se você preferir atualizar através da GUI.

Você pode verificar qual versão está executando e qual está disponível com:

apt-cache policy linux-image-generic

fonte
The fast (but not persistent) fix: echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt