Gibt es eine Problemumgehung für den RFC 5961 Linux TCP-Fehler?

28

Ich habe kürzlich über diesen Linux-TCP-Fehler ( CVE-2016-5696 ) gelesen, der es einem Angreifer ermöglicht, eine Verbindung zwischen zwei Linux-Computern (z. B. einem Webserver und einem Client) zu unterbrechen oder zu entführen. Ich verstehe, dass das Problem bereits 2012 in der Linux-Kernel-Version 3.6 eingeführt wurde und auch alle neueren Versionen betrifft.

Derzeit wurde noch kein Fix für dieses Problem veröffentlicht (zum Zeitpunkt des Schreibens). Gibt es jedoch Problemumgehungen, da dies ein ziemlich großer Fehler ist?


quelle
Ubuntu hat noch keinen Fix veröffentlicht? Bestimmte andere Distributionen hatten einen Fix veröffentlicht, bevor der Fehler veröffentlicht wurde.
Michael Hampton
@MichaelHampton: Soweit ich weiß, wurde ein Fix im vorgeschlagenen Channel zur Verfügung gestellt, es wurde jedoch noch keine stabile Version veröffentlicht.
Ich denke, sie planen, das Update am 27. zu veröffentlichen.
@MichaelHampton: Ich habe meine Antwort mit den relevanten Informationen aktualisiert.

Antworten:

29

Hinweis: Die Problemumgehung Abschnitt wird aus historischen Gründen gehalten worden, aber gehen Sie bitte direkt auf den nach unten Fix Abschnitt weiter unten.

Problemumgehung:

Wie hier angegeben :

Die gute Nachricht - und ja, es gibt gute Nachrichten - ist einfach zu beheben. Zunächst wird Linux selbst gepatcht, um den Angriffsvektor zu stoppen. Als nächstes erhöhen Sie einfach das 'Challenge ACK-Limit' auf einen extrem hohen Wert, um es praktisch unmöglich zu machen, das Seitenkanalproblem auszunutzen , das den Angriff ermöglicht hat.

Da sich dieses Problem sowohl auf den Client als auch auf den Server auswirkt, oder auf zwei Linux-Maschinen, die über das Netzwerk kommunizieren, ist es wichtig, die Problemumgehung in beiden und dem Fix zu implementieren, sobald dieser veröffentlicht wird.

Gehen Sie folgendermaßen vor, um die Problemumgehung zu implementieren:

  1. Öffne die Konfigurationsdatei mit: sudoedit /etc/sysctl.conf
  2. Fügen Sie die Zeile net.ipv4.tcp_challenge_ack_limit = 999999999in die Datei ein und speichern Sie sie
  3. Führen Sie aus sudo sysctl -p, um die Konfiguration zu aktualisieren

Sie können die Operation auch direkt vom Terminal aus ausführen:

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

Oder:

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

Dann renne:

sudo sysctl -p

Fix:

Wie hier angegeben :

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.

Und ein Update wurde jetzt veröffentlicht:

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

Lauf:

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

Um sicherzustellen, dass Sie die neueste Version haben. Oder verwenden Sie den Software Updater, wenn Sie ein Update über die GUI bevorzugen.

Sie können überprüfen, welche Version Sie ausführen und welche verfügbar ist mit:

apt-cache policy linux-image-generic

quelle
Die schnelle (aber nicht hartnäckige) Lösung:echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt