Уязвимость DoS атаки в HTTP/2 из-за некорректного разбора HTTP/2-запросов в протоколе Windows HTTP
Описание
Уязвимость DoS атаки присутствует в протоколе HTTP/2 (HTTP.sys) из-за некорректной обработки специально сформированных HTTP/2-запросов. Злоумышленник, успешно эксплуатировавший уязвимость, способен создать ситуацию DoS атаки, заставляя целевую систему стать неотзывчивой.
Условия эксплуатации
Для эксплуатации уязвимости злоумышленник может отправить специально сформированный HTTP пакет на целевую систему, заставляя ее стать неотзывчивой.
Решение
Обновление исправляет уязвимость, модифицируя обработку HTTP/2-запросов в протоколе Windows HTTP. Обратите внимание, что уязвимость DoS атаки не позволяет злоумышленнику выполнить код или повысить уровень доступа пользователя.
Меры защиты
Следующая мера защиты может быть полезна в вашей ситуации. Во всех случаях Microsoft настоятельно рекомендует установить обновления для этой уязвимости как можно скорее, даже если вы планируете оставить этот способ защиты:
Отключите протокол HTTP/2 на вашем веб-сервере, используя редактор реестра
Примечание: Некорректное использование редактора реестра может вызвать серьезные проблемы, которые могут потребовать переустановки операционной системы. Microsoft не гарантирует, что проблемы, возникшие в результате некорректного использования редактора реестра, могут быть решены. Используйте редактор реестра на свой страх и риск. Для получения информации о редактировании реестра ознакомьтесь с помощью по теме "Изменение ключей и значений" в редакторе реестра (Regedit.exe) или с темами справки "Добавление и удаление информации в реестре" и "Редактирование данных реестра" в Regedt32.exe.
- Нажмите Пуск, выберите Выполнить, введите Regedit в поле Открыть и нажмите OK.
- Найдите и выберите следующий подраздел реестра:
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
- Установите значения типа DWORD для EnableHttp2TIs и EnableHttp2Cleartext на одно из следующих:
- Установите на 0 для отключения HTTP/2
- Установите на 1 для включения HTTP/2
- Выйдите из редактора реестра.
- Перезагрузите компьютер.
Часто задаваемые вопросы (FAQ)
После установки обновлений для HTTP/2, нужно ли делать что-то еще для защиты от этой уязвимости?
Да. Обновление добавляет параметры конфигурации на IIS сервер, но эти параметры по умолчанию выключены. Для полной защиты от уязвимостей администратор должен настроить свой сервер на ограничение количества принимаемых HTTP/2-пакетов. Это может варьироваться в зависимости от окружения и запущенных на каждом сервере сервисов.
Настройки, специфичные для подключения
- Нажмите Пуск, выберите Выполнить, введите Regedit в поле Открыть и нажмите OK.
- Найдите и выберите следующий подраздел реестра:
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
- Установите значение типа DWORD для Http2MaxPingsPerMinute:
- Диапазон между 0 и 0xFF
- Это задает максимальное количество пингов в минуту, которое клиент может отправить серверу
- Выйдите из редактора реестра.
- Перезагрузите компьютер.
Настройки, специфичные для потока
- Нажмите Пуск, выберите Выполнить, введите Regedit в поле Открыть и нажмите OK.
- Найдите и выберите следующий подраздел реестра:
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
- Установите значения типа DWORD для следующих ключей:
- Http2MaxServerResetsPerMinute
- Диапазон между 0 и 0xFFFF
- Это задает максимальное количество запросов в минуту от клиента, способных генерировать серверные сбросы
- Http2MaxPrioritiesPerStream
- Диапазон между 0 и 0xFF
- Это задает максимальное количество приоритетных фреймов в минуту, которые клиент может отправить серверу
- Http2MaxResetsPerStream
- Диапазон между 0 и 0xFF
- Это задает максимальное количество фреймов сброса в минуту, которые клиент может отправить серверу
- Http2MaxUnknownsPerStream
- Диапазон между 0 и 0xFF
- Это задает максимальное количество неизвестных фреймов в минуту, которые клиент может отправить серверу
- Http2MaxWindowUpdatesPerSend
- Диапазон между 0 и 0xFF
- Это задает максимальное количество фреймов обновления окна в минуту, которые клиент может отправить серверу
- Http2MinimumSendWindowSize
- Диапазон между 0 и 0xFFFF
- Это задает минимальный размер окна отправки для фреймов данных
- Http2MaxServerResetsPerMinute
- Выйдите из редактора реестра.
- Перезагрузите компьютер.
Обновления
Продукт | Статья | Обновление |
---|---|---|
Windows 10 for 32-bit Systems | ||
Windows 10 for x64-based Systems | ||
Windows Server 2016 | ||
Windows 10 Version 1607 for 32-bit Systems | ||
Windows 10 Version 1607 for x64-based Systems | ||
Windows Server 2016 (Server Core installation) | ||
Windows 10 Version 1703 for 32-bit Systems | ||
Windows 10 Version 1703 for x64-based Systems | ||
Windows 10 Version 1709 for 32-bit Systems | ||
Windows 10 Version 1709 for x64-based Systems |
Показывать по
Возможность эксплуатации
Publicly Disclosed
Exploited
Latest Software Release
Older Software Release
DOS
EPSS
7.5 High
CVSS3
Связанные уязвимости
Some HTTP/2 implementations are vulnerable to a flood of empty frames, potentially leading to a denial of service. The attacker sends a stream of frames with an empty payload and without the end-of-stream flag. These frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time processing each frame disproportionate to attack bandwidth. This can consume excess CPU.
Some HTTP/2 implementations are vulnerable to a flood of empty frames, potentially leading to a denial of service. The attacker sends a stream of frames with an empty payload and without the end-of-stream flag. These frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time processing each frame disproportionate to attack bandwidth. This can consume excess CPU.
Some HTTP/2 implementations are vulnerable to a flood of empty frames, potentially leading to a denial of service. The attacker sends a stream of frames with an empty payload and without the end-of-stream flag. These frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time processing each frame disproportionate to attack bandwidth. This can consume excess CPU.
Some HTTP/2 implementations are vulnerable to a flood of empty frames, ...
Some HTTP/2 implementations are vulnerable to a flood of empty frames, potentially leading to a denial of service. The attacker sends a stream of frames with an empty payload and without the end-of-stream flag. These frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time processing each frame disproportionate to attack bandwidth. This can consume excess CPU.
EPSS
7.5 High
CVSS3