Три вразливості, виявлені в стеках TCP Linux, що призводять до віддаленої відмови в обслуговуванні

збій Linux

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

Проблеми спричинені помилками в дескрипторах максимального розміру блоку даних в пакеті TCP (MSS, максимальний розмір сегмента) та механізм селективного розпізнавання з'єднання (SACK, селективне розпізнавання TCP).

Що таке вибіркове визнання?

Вибіркове розпізнавання TCP (SACK) це механізм, за допомогою якого отримувач даних може інформувати відправника про всі успішно прийняті сегменти.

Це Дозволяє відправнику повторно передавати відсутні сегменти потоку з його "добре відомого" набору. Коли TCP SACK вимкнено, для повторної передачі всієї послідовності потрібен значно більший набір повторних передач.

У ядрі Linux проблеми вирішено у версіях 4.4.182, 4.9.182, 4.14.127, 4.19.52 та 5.1.11. Рішення для FreeBSD доступне у вигляді виправлення.

Випущено оновлення пакета ядра для Debian, RHEL, SUSE / openSUSE, ALT, Ubuntu, Fedora та Arch Linux.

CVE-2019-11477 (SACK Panic)

Проблема проявляється в ядрах Linux станом на 2.6.29 і дозволяє розбити ядро (паніка) під час надсилання серії пакетів SACK через переповнення цілого числа в контролері.

Для атаки достатньо встановити значення MSS на 48 байт для TCP-з'єднання і відправлення послідовності упорядкованих пакетів SACK певним чином.

Суть проблеми полягає в тому, що структура tcp_skb_cb (буфер розетки) призначений для зберігання 17 фрагментів ("Визначити MAX_SKB_FRAGS (65536 / PAGE_SIZE + 1) => 17").

У процесі надсилання пакета він розміщується в черзі надсилання, і tcp_skb_cb зберігає деталі про пакет, такі як порядковий номер, прапори, а також поля "tcp_gso_segs" і "tcp_gso_size", які використовуються для надсилання Інформація про сегментацію контролеру (TSO, Segment Segment Download) для обробки сегментів на стороні мережевої карти.

Шматки зберігаються, коли втрачається пакет або виникає потреба у вибірковій повторній передачі пакетів, якщо SACK увімкнено і TSO підтримується драйвером.

Як обхідний спосіб захисту ви можете вимкнути обробку SACK або заблокувати підключення за допомогою невеликого MSS (працює лише тоді, коли sysctl net.ipv4.tcp_mtu_probing встановлено на 0 і може порушити нормальну ситуацію при низькому рівні MSS).

CVE-2019-11478 (повільність МІШКА)

Ця невдача спричиняє переривання механізму SACK (при використанні ядра Linux у 4.15) або надмірне споживання ресурсів.

Проблема проявляється при обробці спеціально створених пакетів SACK, які можуть бути використані для фрагментації черги повторної передачі (повторна передача TCP). Рішення для захисту подібні до попередніх вразливостей

CVE-2019-5599 (повільність МІШКА)

Дозволяє викликати фрагментацію карти пакетів, відправлених під час обробки послідовності SACK в межах одного TCP-з'єднання та спричиняє запуск ресурсоємної операції пошуку списку.

Проблема проявляється у FreeBSD 12 із механізмом виявлення втрат пакетів RACK. Як обхідне рішення ви можете відключити модуль RACK (не завантажується за замовчуванням, вимикається, вказавши sysctl net.inet.tcp.functions_default = freebsd)

CVE-2019-11479

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

Крім того, це споживає додаткові ресурси (потужність процесора та мережева карта).

Ця атака вимагає постійних зусиль з боку зловмисника, і наслідки припиняться незабаром після того, як зловмисник припинить надсилати трафік.

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

Віддалений користувач може викликати цю проблему, встановивши максимальний розмір сегмента (MSS) TCP-з'єднання на найнижчій межі (48 байт) і надсилання послідовності спеціально створених пакетів SACK.

Як обхідне рішення рекомендується блокувати з'єднання з низьким рівнем MSS.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.