Скрытый враг: что такое Slowloris-атака и чем она опасна

Обложка статьи: Slowloris сессионная атака

До 2009 года большинство DoS- и DDoS-атак основывались на отправке большого количества трафика на сервер, чтобы истощить его ресурсы. Эти атаки были громоздкими, требовали значительных усилий со стороны атакующего и их было довольно легко обнаружить. В 2009 году специалист по безопасности RSnake обнародовал в своем блоге информацию о новом типе DDoS-атак, с которыми столкнулся веб-сервер Apache. Атака отличалась высокой эффективностью, несмотря на минимальные ресурсы, необходимые для ее реализации. Так в мире кибербезопасности появилась Slowloris — медленная и маломощная атака, которая показала кардинально другой подход к организации распределенных атак.

По одной из версий атака Slowloris (англ. «медленные лори») получила свое название в честь маленького животного, которое обитает в тропических лесах. Отличительные черты лори — медлительность и размеренные движения, что также присуще механизму атаки Slowloris.

Фотография лори

Тот самый Лори

RSnake не только опубликовал информацию о новой атаке в своем блоге, но также выпустил открытую реализацию инструмента, чтобы привлечь внимание общественности к найденной уязвимости. Публикация вызвала широкий резонанс в сообществе специалистов по информационной безопасности. Новый механизм DDoS-атаки показал, насколько легко можно вывести из строя инфраструктуру веб-сервера с помощью одного устройства. Помимо этого,

Slowloris оказалась особенно эффективной против серверов, использующих Apache — один из самых популярных веб-серверов на тот момент. Apache не имели встроенной защиты от подобных сценариев нападения и оказались в критической ситуации, как и тысячи их клиентов.

 

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

Как выглядит HTTP-запрос для обычного пользователя  
HTTP-запрос — это своеобразное письмо-обращение: «Пожалуйста, отправь мне N-страницу», которое браузер отправляет сайту, чтобы вы получили нужную информацию.

Чтобы упростить понимание атаки Slowloris, предлагаем читателям простую аналогию. Представьте, что вы работаете официантом в кафе. Обычно клиенты заходят, делают заказ, вы его записываете, забираете готовую еду на кухне и приносите ее. Все идет гладко. Но однажды в кафе заходит группа людей, которые хотят заказать только чай и при этом занимают все свободные столики, делая вид, что долго выбирают другие блюда. Спустя время каждый их них все-таки определяется с заказом, но проговаривает его очень-очень медленно. Вы вынуждены ждать, пока каждый из гостей закончит. В это время другие посетители кафе тоже хотят пообедать, но не могут позвать официанта, так как вы заняты этими «медлительными» посетителями, и в итоге вообще не успеваете обслужить никого.

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

 

Чтобы понять принцип DDoS-атаки Slowloris, важно разобраться в том, как работает протокол HTTP, особенности которого эксплуатируют злоумышленники.

Основная задача HTTP-протокола — передавать данные на прикладном уровне модели OSI, где расположились все знакомые и активно используемые нами веб-ресурсы (почтовые сервисы, DNS-сервисы и другие). Именно благодаря этому протоколу обеспечивается работа Всемирной паутины.  

Согласно правилам работы протокола HTTP набор заголовков HTTP-запросов должен заканчиваться пустой строкой или «\r\n». Тем самым передающий говорит принимающей стороне, что все метаданные запроса отправлены. Во время обработки заголовков веб-сервер ждет, когда передача полностью закончится. Если этого не происходит, то сервер продолжает поддерживать соединение с клиентом. Процесс атаки может выглядеть следующим образом;

  • Атакующий открывает множество HTTP-соединений к целевому серверу.
  • Вместо того чтобы завершить запрос, злоумышленник продолжает отправлять данные (например, заголовки HTTP) в течение длительного времени.
  • Сервер, ожидая завершения запросов, удерживает открытые соединения, истощая лимит доступных соединений.
Принцип работы атаки Slowloris — DDoS-Guard

 

Главная опасность и вместе с тем особенность атаки в том, что она не требует большого объема трафика, как при обычных DDoS-атаках, где используются ботнеты с тысячами зараженных устройств. Такую атаку гораздо сложнее обнаружить, так как она на первый взгляд может выглядеть как легитимный трафик.

 

Все нижеперечисленные признаки можно обнаружить при анализе сетевых соединений и журналов сервера.

  • Нетипично большое количество открытых соединений от одного или нескольких IP-адресов.
  • Медленный обмен данными с длительными интервалами.
  • Увеличенное время ожидания сервера с задержкой.
  • Высокая загрузка ресурсов сервера без значительного объема входящего трафика.
  • Логи содержат большое количество неполных запросов с одного или нескольких IP-адресов.

Рассмотрим еще один пример, но в цифрах.

Представим, что сервер имеет максимальное количество одновременных соединений – 1000. Злоумышленник удерживает 950 соединений открытыми. Теперь легитимным пользователям остается всего лишь 50 соединений, что значительно замедляет или полностью блокирует работу сервиса из-за высокой нагрузки.

 

Основная опасность заключается в трудности их идентификации, а следовательно и отражения. Трафик атакующего выглядит как легитимные HTTP-запросы, поэтому традиционные схемы защиты без автоматизированных механик обнаружения, могут не сразу распознать DDoS. Для выполнения атаки достаточно иметь минимальное оборудование, что делает ее довольно доступной.

Slowloris будет особенно опасна для серверов, где отсутствуют ограничения на соединения или тайм-ауты для запросов.

 

В таблице представлены краткие критерии, которые помогут наглядно увидеть различия в двух типах распределенных атак.

КритерийSlowlorisОбычные DDoS-атаки
Механизм действияМедленные и неполные HTTP-запросыГенерация большого объема трафика
ИнтенсивностьНизкая Высокая
ЦельЗанять все соединения сервераПерегрузить сервер или сеть количеством запросов
УязвимостьЛимит на число одновременных соединенийПропускная способность, ресурсы процессора/памяти
ТрафикМинимальныйМасштабный
Используемые ресурсыОдин компьютер или болееМножество машин — ботнеты

 

Чтобы защититься от сессионных DDoS-атак типа Slowloris, необходимо применить несколько мер на уровне настройки сервера, сетевой инфраструктуры и использовать специализированные инструменты.

Основные рекомендации:

  1. Регулярно обновляйте программное обеспечение веб-сервера  
    Например, веб-сервер Apache версии 2.2.15 и выше имеет модуль mod_reqtimeout, который помогает смягчить Slowloris.
  2. Настройте веб-сервер  
    Задайте настройки на ограничение времени ожидания (тайм-ауты), установите время для завершения HTTP-запросов, ограничьте количество соединений от одного IP.
  3. Используйте прокси-сервисы  
    Подключите технологию CDN и используйте Reverse Proxy, чтобы фильтровать запросы клиентов и распределять сетевой трафик по нескольким серверам, уменьшая влияние атаки Slowloris.  
  4. Настройте мониторинг метрик и логов, а также оповещения, для случаев, когда параметры функционирования серверов выходят за ожидаемые штатные показатели.
  5. Подключите сервис профессиональной защиты от DDoS-атак, который может обрабатывать входящий трафик с помощью прокси-сервера.

Сервис DDoS-Guard обрабатывает веб-трафик с применением обратного проксирования, при этом HTTP-запросы передаются целевому серверу только после принятия всех заголовков. Поэтому атаки, основанные на незавершающейся передаче HTTP-заголовков не смогут достичь целевого сервера.

В личном кабинете пользователи найдут подробную аналитику, инструкции и полезные инструменты для расширения возможностей услуги защиты.