Чи існує вирішення вади TCP RFC 5961 Linux?


28

Нещодавно я читав про цей недолік TCP в Linux ( CVE-2016-5696 ), який дозволяє зловмиснику розірвати або викрасти з'єднання між двома машинами під управлінням Linux (наприклад, веб-сервером і клієнтом). Я розумію, що проблема була введена ще в 2012 році у версії ядра Linux 3.6 і стосується і всіх нових версій.

Наразі виправлення цього не було випущено (як на час написання цього запису), але чи є якісь обхідні шляхи, оскільки це досить велика помилка?


Ubuntu не випустив виправлення? Деякі розповсюдження мали виправлення, опубліковані до оприлюднення цього недоліку.
Майкл Хемптон

@MichaelHampton: Наскільки я розумію, виправлення було доступне у запропонованому каналі, проте стабільного випуску ще не було зроблено.

Я думаю, вони планують випустити виправлення 27-го.

@MichaelHampton: Я оновив свою відповідь відповідною інформацією.

Відповіді:


29

Примітка. Розділ " Обхід " вирішено з історичних причин, проте, будь ласка, перейдіть до розділу " Виправлення " нижче.

Обхід:

Як зазначено тут :

Хороші новини - і, так, є хороші новини - це легко виправити. По-перше, сам Linux виправляється, щоб зупинити вектор атаки на його сліді. Далі ви просто піднімете «виклик ліміту ACK» до надзвичайно великого значення, щоб практично неможливо було використати проблему бічного каналу, яка дозволила атаці працювати.

Оскільки ця проблема стосується і клієнта, і сервера, або фактично будь-яких двох машин Linux, які розмовляють по мережі, важливо здійснити обхід і в обох, і виправити, як тільки він буде випущений.

Для втілення рішення виконайте наступне:

  1. Відкрийте конфігураційний файл за допомогою: sudoedit /etc/sysctl.conf
  2. Вставте рядок net.ipv4.tcp_challenge_ack_limit = 999999999у файл і збережіть його
  3. Запустіть, sudo sysctl -pщоб оновити конфігурацію

Ви також можете виконати операцію безпосередньо з терміналу:

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

Або:

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

Потім запустіть:

sudo sysctl -p

Виправити:

Як зазначено тут :

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.

І тепер випущено виправлення:

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 <stefan.bader@canonical.com>  Thu, 11 Aug 2016 17:34:14 +0200

Виконати:

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

Щоб переконатися, що у вас є остання версія. Або скористайтеся оновленням програмного забезпечення, якщо ви бажаєте оновити через GUI.

Ви можете перевірити, яку версію запущено, а яку можна:

apt-cache policy linux-image-generic

Швидке (але не наполегливе) виправлення:echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.