Немного истории
По одной из версий атака Slowloris (англ. «медленные лори») получила свое название в честь маленького животного, которое обитает в тропических лесах. Отличительные черты лори — медлительность и размеренные движения, что также присуще механизму атаки Slowloris.
RSnake не только опубликовал информацию о новой атаке в своем блоге, но также выпустил открытую реализацию инструмента, чтобы привлечь внимание общественности к найденной уязвимости. Публикация вызвала широкий резонанс в сообществе специалистов по информационной безопасности. Новый механизм DDoS-атаки показал, насколько легко можно вывести из строя инфраструктуру веб-сервера с помощью одного устройства. Помимо этого,
Slowloris оказалась особенно эффективной против серверов, использующих Apache — один из самых популярных веб-серверов на тот момент. Apache не имели встроенной защиты от подобных сценариев нападения и оказались в критической ситуации, как и тысячи их клиентов.
Что такое DDoS-атака Slowloris и почему она называется сессионной
Slowloris — это атака типа «отказ в обслуживании» прикладного уровня (L7) сетевой модели OSI, которая использует особенности функционирования TCP-протокола. Атакующие создают открытые TCP-соединения между сервером и клиентом, и отправляют неполные HTTP-запросы на сервер, удерживая соединения открытыми как можно дольше. Эти действия заставляют сервер постоянно выделять ресурсы для обработки новых соединений, что делает его недоступным для легитимных пользователей.
Как выглядит HTTP-запрос для обычного пользователя
HTTP-запрос — это своеобразное письмо-обращение: «Пожалуйста, отправь мне N-страницу», которое браузер отправляет сайту, чтобы вы получили нужную информацию.
Чтобы упростить понимание атаки Slowloris, предлагаем читателям простую аналогию. Представьте, что вы работаете официантом в кафе. Обычно клиенты заходят, делают заказ, вы его записываете, забираете готовую еду на кухне и приносите ее. Все идет гладко. Но однажды в кафе заходит группа людей, которые хотят заказать только чай и при этом занимают все свободные столики, делая вид, что долго выбирают другие блюда. Спустя время каждый их них все-таки определяется с заказом, но проговаривает его очень-очень медленно. Вы вынуждены ждать, пока каждый из гостей закончит. В это время другие посетители кафе тоже хотят пообедать, но не могут позвать официанта, так как вы заняты этими «медлительными» посетителями, и в итоге вообще не успеваете обслужить никого.
Slowloris еще называют «сессионной атакой», потому что она нацелена на сессии (открытые TCP-соединения между клиентом и сервером). Злоумышленники используют механизмы управления соединениями, чтобы создать перегрузку сервера.
Как работает атака Slowloris
Чтобы понять принцип DDoS-атаки Slowloris, важно разобраться в том, как работает протокол HTTP, особенности которого эксплуатируют злоумышленники.
Основная задача HTTP-протокола — передавать данные на прикладном уровне модели OSI, где расположились все знакомые и активно используемые нами веб-ресурсы (почтовые сервисы, DNS-сервисы и другие). Именно благодаря этому протоколу обеспечивается работа Всемирной паутины.
Согласно правилам работы протокола HTTP набор заголовков HTTP-запросов должен заканчиваться пустой строкой или «\r\n». Тем самым передающий говорит принимающей стороне, что все метаданные запроса отправлены. Во время обработки заголовков веб-сервер ждет, когда передача полностью закончится. Если этого не происходит, то сервер продолжает поддерживать соединение с клиентом. Процесс атаки может выглядеть следующим образом;
- Атакующий открывает множество HTTP-соединений к целевому серверу.
- Вместо того чтобы завершить запрос, злоумышленник продолжает отправлять данные (например, заголовки HTTP) в течение длительного времени.
- Сервер, ожидая завершения запросов, удерживает открытые соединения, истощая лимит доступных соединений.
Главная опасность и вместе с тем особенность атаки в том, что она не требует большого объема трафика, как при обычных DDoS-атаках, где используются ботнеты с тысячами зараженных устройств. Такую атаку гораздо сложнее обнаружить, так как она на первый взгляд может выглядеть как легитимный трафик.
Главные признаки атаки Slowloris
Все нижеперечисленные признаки можно обнаружить при анализе сетевых соединений и журналов сервера.
- Нетипично большое количество открытых соединений от одного или нескольких IP-адресов.
- Медленный обмен данными с длительными интервалами.
- Увеличенное время ожидания сервера с задержкой.
- Высокая загрузка ресурсов сервера без значительного объема входящего трафика.
- Логи содержат большое количество неполных запросов с одного или нескольких IP-адресов.
Рассмотрим еще один пример, но в цифрах.
Представим, что сервер имеет максимальное количество одновременных соединений – 1000. Злоумышленник удерживает 950 соединений открытыми. Теперь легитимным пользователям остается всего лишь 50 соединений, что значительно замедляет или полностью блокирует работу сервиса из-за высокой нагрузки.
Почему атаки Slowloris опасны
Основная опасность заключается в трудности их идентификации, а следовательно и отражения. Трафик атакующего выглядит как легитимные HTTP-запросы, поэтому традиционные схемы защиты без автоматизированных механик обнаружения, могут не сразу распознать DDoS. Для выполнения атаки достаточно иметь минимальное оборудование, что делает ее довольно доступной.
Slowloris будет особенно опасна для серверов, где отсутствуют ограничения на соединения или тайм-ауты для запросов.
Чем атаки Slowloris отличаются от обычных DDoS-атак
В таблице представлены краткие критерии, которые помогут наглядно увидеть различия в двух типах распределенных атак.
Критерий | Slowloris | Обычные DDoS-атаки |
Механизм действия | Медленные и неполные HTTP-запросы | Генерация большого объема трафика |
Интенсивность | Низкая | Высокая |
Цель | Занять все соединения сервера | Перегрузить сервер или сеть количеством запросов |
Уязвимость | Лимит на число одновременных соединений | Пропускная способность, ресурсы процессора/памяти |
Трафик | Минимальный | Масштабный |
Используемые ресурсы | Один компьютер или более | Множество машин — ботнеты |
Как защититься от атак Slowloris
Чтобы защититься от сессионных DDoS-атак типа Slowloris, необходимо применить несколько мер на уровне настройки сервера, сетевой инфраструктуры и использовать специализированные инструменты.
Основные рекомендации:
- Регулярно обновляйте программное обеспечение веб-сервера
Например, веб-сервер Apache версии 2.2.15 и выше имеет модуль mod_reqtimeout, который помогает смягчить Slowloris. - Настройте веб-сервер
Задайте настройки на ограничение времени ожидания (тайм-ауты), установите время для завершения HTTP-запросов, ограничьте количество соединений от одного IP. - Используйте прокси-сервисы
Подключите технологию CDN и используйте Reverse Proxy, чтобы фильтровать запросы клиентов и распределять сетевой трафик по нескольким серверам, уменьшая влияние атаки Slowloris. - Настройте мониторинг метрик и логов, а также оповещения, для случаев, когда параметры функционирования серверов выходят за ожидаемые штатные показатели.
- Подключите сервис профессиональной защиты от DDoS-атак, который может обрабатывать входящий трафик с помощью прокси-сервера.
Чем может помочь DDoS-Guard
Сервис DDoS-Guard обрабатывает веб-трафик с применением обратного проксирования, при этом HTTP-запросы передаются целевому серверу только после принятия всех заголовков. Поэтому атаки, основанные на незавершающейся передаче HTTP-заголовков не смогут достичь целевого сервера.
В личном кабинете пользователи найдут подробную аналитику, инструкции и полезные инструменты для расширения возможностей услуги защиты.