Открыть сервис

Slowloris

Slowloris — это тип атаки типа «отказ в обслуживании» (DoS), направленный на веб-серверы, работающие по протоколу HTTP. Атака заключается в установке большого количества медленных, незавершённых HTTP-запросов к целевому серверу, что приводит к исчерпанию его ресурсов (в первую очередь, пула соединений) и блокировке доступа для легитимных пользователей. Slowloris не требует высокой пропускной способности и может быть эффективен против серверов, не настроенных на защиту от подобных атак.

Принцип работы

Атака Slowloris использует уязвимость в управлении соединениями веб-серверов. В отличие от классических DoS-атак, генерирующих огромный трафик, Slowloris отправляет частичные HTTP-запросы, которые никогда не завершаются. Процесс выглядит следующим образом:

  1. Установка соединения: Атакующий устанавливает TCP-соединение с целевым сервером (обычно на порт 80 для HTTP или 443 для HTTPS).
  2. Отправка частичного запроса: Вместо полного HTTP-запроса (например, GET / HTTP/1.1) отправляется только его начало. Сервер ожидает завершения заголовков, которые должны заканчиваться пустой строкой.
  3. Поддержание соединения: Атакующий периодически (например, каждые 10–15 секунд) отправляет дополнительные, неполные заголовки (например, X-a: b), чтобы предотвратить тайм-аут соединения со стороны сервера. Сервер, видя, что соединение «живо», продолжает ждать завершения запроса.
  4. Исчерпание ресурсов: Атакующий открывает множество таких «висящих» соединений. Когда все доступные соединения в пуле сервера заняты, сервер перестаёт принимать новые запросы. Легитимные пользователи получают ошибку «503 Service Unavailable» или «Connection Refused».

Ключевые особенности

  • Низкое потребление трафика: Для поддержания одного соединения требуется всего несколько байт в минуту.
  • Однонаправленность: Атака не требует ответа от сервера; атакующий только отправляет данные.
  • Целевая направленность: Slowloris атакует именно веб-сервер, а не сетевую инфраструктуру (маршрутизаторы, брандмауэры).

История

Атака Slowloris была впервые публично описана и продемонстрирована специалистом по безопасности Робертом Хансеном (известным под псевдонимом RSnake) в июне 2009 года. Хансен опубликовал исходный код инструмента на своём сайте, что привело к быстрому распространению метода. Slowloris стал одним из первых широко известных примеров «медленных» DoS-атак, которые отличаются от традиционных «флуд-атак» (например, SYN-флуд) своей скрытностью и эффективностью против серверов, не имеющих специальной защиты.

Уязвимые серверы

Эффективность Slowloris зависит от архитектуры веб-сервера. Наиболее уязвимыми являются серверы, которые выделяют отдельный поток или процесс для каждого входящего соединения и имеют ограниченный пул таких потоков. К ним относятся:

  • Apache HTTP Server: До версии 2.4 (и без модулей защиты) Apache был крайне уязвим, так как по умолчанию создавал отдельный поток для каждого соединения. Slowloris мог быстро исчерпать лимит MaxClients.
  • IIS (Internet Information Services): Версии до 7.0 также были уязвимы, но в более поздних версиях Microsoft внедрила улучшенные механизмы управления соединениями.

Серверы, использующие асинхронную архитектуру (например, Nginx, Lighttpd, Node.js), значительно менее подвержены Slowloris, так как они могут обрабатывать тысячи соединений в одном потоке, не блокируя их.

Защита от Slowloris

Существует несколько методов защиты веб-серверов от атаки Slowloris:

Настройка сервера

  • Уменьшение тайм-аутов: Установка более коротких значений для параметров Timeout (Apache), keepalive_timeout (Nginx) и request_timeout. Это заставляет сервер быстрее закрывать незавершённые соединения.
  • Ограничение количества соединений с одного IP: Использование модулей, таких как mod_reqtimeout и mod_qos для Apache, или limit_conn для Nginx, позволяет ограничить число одновременных соединений от одного источника.
  • Включение модуля mod_reqtimeout: Этот модуль (доступен в Apache 2.2.15+) позволяет задать минимальную и максимальную скорость получения данных от клиента. Если клиент отправляет данные слишком медленно, соединение разрывается.

Использование балансировщиков нагрузки и WAF

  • Балансировщики нагрузки (Load Balancers): Современные балансировщики (например, HAProxy, Nginx Plus) могут анализировать HTTP-заголовки и закрывать соединения, которые не завершают запрос в течение заданного времени.
  • Web Application Firewall (WAF): WAF (например, ModSecurity) могут обнаруживать характерные для Slowloris паттерны (множество частичных запросов с одного IP) и блокировать их.

Сетевые решения

  • Системы обнаружения и предотвращения вторжений (IDS/IPS): Могут сигнализировать о начале атаки Slowloris и блокировать IP-адреса атакующих.
  • Прокси-серверы: Размещение обратного прокси (например, Varnish, Nginx) перед основным сервером может поглотить атаку, так как прокси-сервер сам управляет соединениями с клиентами.

Критика и этические аспекты

Slowloris является инструментом, который может быть использован как для тестирования безопасности (с разрешения владельца системы), так и для злонамеренных атак. В России и других странах несанкционированное проведение DoS-атак, в том числе с использованием Slowloris, является уголовно наказуемым деянием (например, по ст. 272 УК РФ «Неправомерный доступ к компьютерной информации» и ст. 273 УК РФ «Создание, использование и распространение вредоносных программ»). Критики Slowloris отмечают, что его простота и доступность делают его популярным среди начинающих злоумышленников, однако современные версии большинства веб-серверов и систем управления контентом (CMS) уже имеют встроенную защиту от подобных атак.

Интересные факты

  • Название «Slowloris» является отсылкой к медленному лори (Nycticebus) — примату, известному своим медлительным движением, что символизирует медленный, но неуклонный характер атаки.
  • Slowloris был одним из первых инструментов, продемонстрировавших, что для вывода из строя веб-сервера не требуется огромная пропускная способность сети.
  • В 2009 году, после публикации кода, многие крупные веб-сайты (включая Yahoo и Twitter) были вынуждены срочно обновлять свои серверы для защиты от этой атаки.

Источники

  • Hansen, R. (RSnake). «Slowloris HTTP DoS». 2009.
  • «Apache HTTP Server Vulnerability CVE-2009-1890». National Vulnerability Database (NVD).
  • «OWASP Slowloris DoS Attack». Open Web Application Security Project (OWASP).
  • «Защита от Slowloris в Nginx». Документация Nginx.
  • «Уголовный кодекс Российской Федерации», Статья 272, 273.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →