[ON] В различных реализациях протокола HTTP/2 выявлено 8 DoS-уязвимостей

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6013
ОС: gnu/linux

[ON] В различных реализациях протокола HTTP/2 выявлено 8 DoS-уязвимостей

Сообщение rssbot » 13.08.2019 22:41

Исследователи из компаний Netflix и Google выявили в различных реализациях протокола HTTP/2 восемь уязвимостей, которые позволяют вызвать отказ в обслуживании через отправку определённым образом оформленного потока сетевых запросов. Проблемы в той или иной мере затрагивают большинство HTTP-серверов с поддержкой HTTP/2 и приводят к исчерпанию доступной для рабочего процесса памяти или созданию слишком высокой нагрузки на CPU. Обновления с устранением уязвимостей уже представлены в nginx 1.16.1/1.17.3 и H2O 2.2.6, но пока недоступны для Apache httpd, HA Proxy и других продуктов (дополнение: исправление также выпущено для Netty, Go net/http2, Caddy, SwiftNIO, Envoy и продуктов Microsoft. Для Node.js исправление ожидается 15 августа).

Проблемы стали следствием внесённых в протокол HTTP/2 усложнений, связанных с применением бинарных структур, системой лимитирования потоков данных внутри соединений, механизмом приоритизации потоков и наличия ICMP-подобных управляющих сообщений, работающих на уровне соединения HTTP/2 (например, операции ping, сброса и настройки потока). Многие реализации должным образом не ограничивали поток управляющих сообщений, неэффективно организовывали работу очереди приоритетов при обработке запросов или использовали неоптимальные реализации алгоритмов управления потоком.

Большинство выявленных методов атаки сводятся к отправке на сервер определённых запросов, приводящих к генерации большого числа ответов. Если при этом клиент не читает из сокета данные и не разрывает соединение, очередь буферизации ответов на стороне сервера непрерывно заполняется. Подобное поведение создаёт нагрузку на систему управления очередью обработки сетевых соединений и в зависимости от особенностей реализации приводит к исчерпанию доступной памяти или ресурсов CPU.

Выявленные уязвимости:
  • CVE-2019-9511 (Data Dribble) - атакующий запрашивает большой объём данных в несколько потоков, манипулируя размером скользящего окна и приоритетом потока, принуждая сервер помещать данные в очередь блоками по 1 байту;
  • CVE-2019-9512 (Ping Flood) - атакующий непрерывно отравляет ping-сообщения через соединение HTTP/2, инициируя заполнение на другой стороне внутренней очереди отправленных ответов;
  • CVE-2019-9513 (Resource Loop) - атакующий создаёт несколько потоков запросов и непрерывно меняет приоритет потоков, вызывая перемешивание дерева приоритетов;
  • CVE-2019-9514 (Reset Flood) - атакующий создаёт несколько потоков и отправляет через каждый поток некорректный запрос, вызывая отправку сервером кадров RST_STREAM, но не принимает их для заполнения очереди ответов;
  • CVE-2019-9515 (Settings Flood) - атакующий отправляет поток пустых кадров "SETTINGS", в ответ на которые сервер обязан подтвердить получение каждого запроса;
  • CVE-2019-9516 (0-Length Headers Leak) - атакующий отправляет поток заголовков с нулевым именем и нулевым значением, а сервер выделяет для хранения каждого заголовка буфер в памяти и не освобождает его до завершения сеанса;
  • CVE-2019-9517 (Internal Data Buffering) - атакующий открывает скользящее окно HTTP/2 для отправки сервером данных без ограничений, но при этом держит окно TCP закрытым, что не позволяет фактически записать данные в сокет. Далее атакующий отправляет запросы, требующие большого ответа;
  • CVE-2019-9518 (Empty Frames Flood) - атакующий отправляет поток кадров типа DATA, HEADERS, CONTINUATION или PUSH_PROMISE, но с пустым полезным содержимым и без флага завершения потока. Сервер тратит время на обработку каждого кадра, непропорционально затраченной атакующим полосе пропускания.


Источник: https://www.opennet.ru/opennews/art.shtml?num=51279
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 14.08.2019 10:47, всего редактировалось 2 раза.
Причина: Message updated upstream
Спасибо сказали: