Slowloris
Slowloris — это тип атаки типа «отказ в обслуживании» (DoS), направленный на веб-серверы, работающие по протоколу HTTP. Атака заключается в установке большого количества медленных, незавершённых HTTP-запросов к целевому серверу, что приводит к исчерпанию его ресурсов (в первую очередь, пула соединений) и блокировке доступа для легитимных пользователей. Slowloris не требует высокой пропускной способности и может быть эффективен против серверов, не настроенных на защиту от подобных атак.
Принцип работы
Атака Slowloris использует уязвимость в управлении соединениями веб-серверов. В отличие от классических DoS-атак, генерирующих огромный трафик, Slowloris отправляет частичные HTTP-запросы, которые никогда не завершаются. Процесс выглядит следующим образом:
- Установка соединения: Атакующий устанавливает TCP-соединение с целевым сервером (обычно на порт 80 для HTTP или 443 для HTTPS).
- Отправка частичного запроса: Вместо полного HTTP-запроса (например,
GET / HTTP/1.1) отправляется только его начало. Сервер ожидает завершения заголовков, которые должны заканчиваться пустой строкой. - Поддержание соединения: Атакующий периодически (например, каждые 10–15 секунд) отправляет дополнительные, неполные заголовки (например,
X-a: b), чтобы предотвратить тайм-аут соединения со стороны сервера. Сервер, видя, что соединение «живо», продолжает ждать завершения запроса. - Исчерпание ресурсов: Атакующий открывает множество таких «висящих» соединений. Когда все доступные соединения в пуле сервера заняты, сервер перестаёт принимать новые запросы. Легитимные пользователи получают ошибку «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 →