Existe-t-il une solution de contournement pour la faille TCP TCP RFC 5961 Linux?

28

J'ai récemment lu à propos de cette faille TCP Linux ( CVE-2016-5696 ) qui permet à un attaquant de casser ou détourner une connexion entre deux machines exécutant Linux (par exemple un serveur Web et un client). Je comprends que le problème a été introduit en 2012 dans la version 3.6 du noyau Linux et affecte également toutes les versions plus récentes.

Actuellement, un correctif n'a pas été publié (au moment de la rédaction de ce document), mais y a-t-il des solutions de contournement car il s'agit d'un bug assez important?


la source
Ubuntu n'a pas publié de correctif? Certaines autres distributions avaient publié un correctif avant que la faille ne soit rendue publique.
Michael Hampton
@MichaelHampton: Si je comprends bien, un correctif a été mis à disposition dans le canal proposé, mais aucune version stable n'a encore été faite.
Je pense qu'ils prévoient de publier le correctif le 27.
@MichaelHampton: J'ai mis à jour ma réponse avec les informations pertinentes.

Réponses:

29

Remarque: La section Contournement a été conservée pour des raisons historiques, mais veuillez passer à la section Fix ci-dessous.

Solution de contournement:

Comme indiqué ici :

La bonne nouvelle - et, oui, il y a de bonnes nouvelles - est facile à corriger. Premièrement, Linux lui-même est corrigé pour arrêter le vecteur d'attaque sur sa trace. Ensuite, vous augmentez simplement la «limite ACK de défi» à une valeur extrêmement élevée pour qu'il soit pratiquement impossible d'exploiter le problème du canal latéral qui a permis à l'attaque de fonctionner.

Comme ce problème affecte à la fois le client et le serveur, ou en fait deux machines Linux parlant sur le réseau, il est important d'implémenter la solution de contournement dans les deux, et le correctif dès qu'il est publié.

Pour implémenter la solution de contournement, procédez comme suit:

  1. Ouvrez le fichier de configuration avec: sudoedit /etc/sysctl.conf
  2. Insérez la ligne net.ipv4.tcp_challenge_ack_limit = 999999999dans le fichier et enregistrez-la
  3. Exécuter sudo sysctl -ppour mettre à jour la configuration

Vous pouvez également effectuer l'opération directement depuis le 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

Exécutez ensuite:

sudo sysctl -p

Réparer:

Comme indiqué ici :

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.

Et un correctif a maintenant été publié:

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

Courir:

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

Pour vous assurer que vous disposez de la dernière version. Ou utilisez le logiciel de mise à jour si vous préférez effectuer la mise à jour via l'interface graphique.

Vous pouvez vérifier quelle version vous utilisez et laquelle est disponible avec:

apt-cache policy linux-image-generic

la source
Le correctif rapide (mais pas persistant):echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt