Czy istnieje obejście usterki RFC 5961 Linux TCP?

28

Niedawno przeczytałem o tej usterce TCP Linux ( CVE-2016-5696 ), która pozwala atakującemu przerwać lub przejąć połączenie między dwoma komputerami z systemem Linux (na przykład serwerem WWW i klientem). Rozumiem, że problem został wprowadzony w 2012 roku w jądrze Linuksa w wersji 3.6 i dotyczy również wszystkich nowszych wersji.

Obecnie poprawka tego nie została wydana (w chwili pisania tego tekstu), ale czy są jakieś obejścia, ponieważ jest to dość poważny błąd?


źródło
Ubuntu nie wydało poprawki? Niektóre inne dystrybucje opublikowały poprawkę przed opublikowaniem usterki.
Michael Hampton
@MichaelHampton: O ile rozumiem, poprawka została udostępniona w proponowanym kanale, jednak stabilne wydanie nie zostało jeszcze wprowadzone.
Myślę, że planują wydanie poprawki 27.
@MichaelHampton: Zaktualizowałem swoją odpowiedź odpowiednimi informacjami.

Odpowiedzi:

29

Uwaga: Sekcja Obejście zostało zachowane z powodów historycznych, jednak przejdź do sekcji Napraw poniżej.

Obejście:

Jak stwierdzono tutaj :

Dobra wiadomość - i tak, są dobre wiadomości - jest łatwa do naprawienia. Po pierwsze, sam Linux jest załatany, aby zatrzymać wektor ataku na swojej drodze. Następnie wystarczy podnieść „limit ACK wyzwania” do niezwykle dużej wartości, aby praktycznie niemożliwe było wykorzystanie problemu z bocznym kanałem, który umożliwił działanie ataku.

Ponieważ ten problem dotyczy zarówno klienta, jak i serwera lub w rzeczywistości dowolnych dwóch komputerów z systemem Linux rozmawiających przez sieć, ważne jest, aby zaimplementować obejście w obu przypadkach, a także poprawkę, jak tylko zostanie wydana.

Aby wdrożyć obejście, wykonaj następujące czynności:

  1. Otwórz plik konfiguracyjny za pomocą: sudoedit /etc/sysctl.conf
  2. Wstaw linię net.ipv4.tcp_challenge_ack_limit = 999999999do pliku i zapisz
  3. Uruchom, sudo sysctl -paby zaktualizować konfigurację

Możesz również wykonać operację bezpośrednio z terminala:

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

Lub:

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

Następnie uruchomić:

sudo sysctl -p

Naprawić:

Jak stwierdzono tutaj :

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.

Wydana została poprawka:

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

Biegać:

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

Aby upewnić się, że masz najnowszą wersję. Lub skorzystaj z narzędzia Software Updater, jeśli wolisz aktualizować przez GUI.

Możesz sprawdzić, którą wersję używasz i która jest dostępna w:

apt-cache policy linux-image-generic

źródło
Szybka (ale nie trwała) poprawka:echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt