Apakah ada solusi untuk RFC 5961 Linux TCP cacat?

28

Baru saja saya membaca tentang ini cacat Linux TCP ( CVE-2016-5696 ) yang memungkinkan penyerang untuk istirahat atau membajak hubungan antara dua mesin yang menjalankan Linux (misalnya webserver dan klien). Saya mengerti bahwa masalahnya diperkenalkan kembali pada tahun 2012 di Linux kernel versi 3.6 dan mempengaruhi semua versi yang lebih baru juga.

Saat ini perbaikan untuk ini belum dirilis (seperti saat penulisan ini), tetapi apakah ada solusi karena ini adalah bug yang cukup besar?


sumber
Ubuntu belum merilis perbaikan? Distribusi tertentu lainnya memiliki perbaikan yang diterbitkan sebelum cacat itu dipublikasikan.
Michael Hampton
@MichaelHampton: Sejauh yang saya mengerti perbaikan telah tersedia di saluran -proposed, namun rilis stabil belum dibuat.
Saya pikir mereka berencana untuk merilis perbaikan pada tanggal 27.
@MichaelHampton: Saya telah memperbarui jawaban saya dengan informasi yang relevan.

Jawaban:

29

Catatan: Bagian Penanganan Masalah telah disimpan karena alasan historis, namun silakan lewati bagian Perbaiki di bawah ini.

Penanganan masalah:

Seperti yang dinyatakan di sini :

Berita baiknya - dan, ya, ada kabar baik - mudah diperbaiki. Pertama, Linux sendiri sedang ditambal untuk menghentikan vektor serangan di jalurnya. Selanjutnya, Anda cukup menaikkan 'batas tantangan ACK' ke nilai yang sangat besar untuk menjadikannya mustahil untuk mengeksploitasi masalah saluran samping yang memungkinkan serangan untuk bekerja.

Karena masalah ini memengaruhi klien dan server, atau bahkan dua mesin Linux mana pun yang berbicara melalui jaringan, penting untuk menerapkan solusi di keduanya, dan perbaikan segera setelah dirilis.

Untuk menerapkan solusi lakukan hal berikut:

  1. Buka file konfigurasi dengan: sudoedit /etc/sysctl.conf
  2. Masukkan baris net.ipv4.tcp_challenge_ack_limit = 999999999ke dalam file dan simpan
  3. Jalankan sudo sysctl -puntuk memperbarui konfigurasi

Anda juga dapat melakukan operasi langsung dari Terminal:

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

Atau:

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

Lalu lari:

sudo sysctl -p

Memperbaiki:

Seperti yang dinyatakan di sini :

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.

Dan perbaikan sekarang telah dirilis:

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

Menjalankan:

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

Untuk memastikan Anda memiliki versi terbaru. Atau gunakan Pembaruan Perangkat Lunak jika Anda lebih memilih untuk memperbarui melalui GUI.

Anda dapat memeriksa versi mana yang Anda jalankan dan yang tersedia dengan:

apt-cache policy linux-image-generic

sumber
Perbaikan cepat (tetapi tidak gigih):echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt