Slowloris — тихая угроза, о которой предпочитают молчать админы.
В сегодняшнем цифровом мире безопасность веб-ресурсов играет одну из ключевых ролей. В то время как многие организации и частные лица уже научились защищаться от широкополосных распределенных DDoS-атак, существует особый вид атак, который незаметно, но крайне эффективно «выкручивает руки» даже крупным веб-серверам. Речь идет об атаке Slowloris, получившей свое название в честь медленного примата — лори.
Slowloris представляет собой не просто один из множества способов проведения DDoS, а весьма изощренный инструмент, использующий механизмы прикладного уровня (Layer 7 модели OSI). В этой статье мы подробно рассмотрим, как устроена данная атака, почему она остается актуальной, и каким образом можно защитить свою инфраструктуру от возможного сбоя в обслуживании.
Когда большинство людей слышат «DDoS-атака», перед глазами встает картина с огромным потоком трафика, заполоняющего канал связи. Однако Slowloris действует иначе: он не стремится «залить» сервер терабайтами данных, а использует минимальное количество HTTP-запросов. Его «изюминка» — это умение намеренно держать соединение «в подвешенном состоянии». Буквально несколькими хорошо продуманными и регулярно обновляемыми HTTP-заголовками атака способна «заморозить» веб-сервер и помешать ему обрабатывать легитимные запросы.
Именно за счет подобной «незаметности» Slowloris настолько эффективен. Огромное количество традиционных систем мониторинга ориентированы на объем проходящего трафика или всплески обращений. Но если атака тщательно дозирована и HTTP-заголовки отправляются медленно, защитные механизмы могут просто не распознать ее как угрозу.
Помимо этого, Slowloris редко затрагивает другие сервисы: он сфокусирован на веб-приложениях и использует тонкости протокола HTTP. В результате, даже если на сервере крутится несколько различных сервисов — почтовый сервер, FTP, SSH, — то, скорее всего, «упадет» только веб-приложение.
Свое необычное имя атака получила благодаря одноименному медленному примату — лори. Этот зверек славится крайне неспешными движениями, способными усыпить бдительность хищников. Примерно так же действует и атака Slowloris: небольшое количество «лениво» отправляемых HTTP-заголовков незаметно «стравливает» ресурсы сервера, пока тот не перестает отвечать новым клиентам.
Сам подход зародился в среде хакеров и хактивистов, которые стремились обойти фильтры и системы, рассчитанные на массовые высокоинтенсивные DDoS-атаки. Выяснилось, что в ряде случаев небольшой «медленной» активности достаточно, чтобы парализовать веб-приложение.
Slowloris эксплуатирует особенности протокола HTTP, относящегося к седьмому уровню модели OSI, также именуемому прикладным. Главная идея — заставить целевой сервер открыть как можно больше соединений, которые не будут завершены. Для этого атакующий отправляет HTTP-запросы по частям и периодически подсылает небольшие фрагменты заголовков, чтобы сервер продолжал думать, что запрос «живой».
Когда лимит соединений исчерпан, сервер не может обслуживать новые запросы, поэтому для легитимных пользователей сайт или веб-приложение становится недоступным. Такая тактика обходится «нападающему» сравнительно дешево, ведь ему не нужно генерировать гигантские объемы трафика.
Стоит учитывать, что HTTP-протокол предполагает достаточно гибкую систему взаимодействия: он допускает поступление заголовков небольшими частями. Однако, если подобный «капельный» трафик возникает массово, сервер начинает терять способность своевременно освобождать сокеты и память. По сути, Slowloris использует саму природу HTTP в ущерб серверу.
Технически Slowloris эксплуатирует специфику обработки HTTP-запросов на стороне веб-сервера. В отличие от традиционных DDoS-атак, которые пытаются «задавить» жертву высокими скоростями передачи данных, Slowloris действует «тихо»:
В классическом сценарии инструментарий часто реализуется на Python или Perl, поскольку для таких языков существует большое количество готовых примеров. С использованием всего нескольких сотен строк кода можно реализовать утилиту, которая способна вывести из строя уязвимый веб-сервер при относительно скромном канале связи.
Известно, что разные версии High Orbit Ion Cannon (HOIC) и Low Orbit Ion Cannon (LOIC) — популярных инструментов «протестующих» (к примеру, Anonymous или Killnet) — имеют встроенную функцию Slowloris или ее вариации, позволяющую массово создавать «подвешенные» HTTP-соединения.
Подавляющее большинство популярных веб-серверов в какой-то момент были уязвимы к Slowloris. Многие из них получили патчи или обновления, однако существуют версии, которые либо не получили исправлений, либо по-прежнему используются в критических системах:
Помимо этого, если задействован TLS (HTTPS), Slowloris-атака может эксплуатировать уязвимости во время TLS handshake. Так, Apache HTTP Server версий 2.2.15 и ранее, а также IIS 7.0 и более ранние вариации в определенных конфигурациях могут быть подвержены «медленному» исчерпанию ресурсов на уровне TLS-сессий.
Многие системы обнаружения вторжений (IDS) и межсетевые экраны (firewall) привыкли ориентироваться на характерные признаки «объема» атаки — например, всплеск трафика или резкий рост числа соединений. Slowloris же отличает «дозированность»: нет гигантских скачков, нет неприлично большого числа TCP-пакетов за секунду. Все идет своим чередом, лишь с небольшим перерывом на периодическую отправку новых порций заголовков.
Еще одна проблема: системы логирования HTTP (например, журналы Apache или Nginx) часто записывают информацию только после того, как запрос завершился. Поскольку Slowloris стремится никогда не завершать соединение, в логах просто не появляется детальной записи. Администратор может долго не догадываться о том, что уже несколько десятков «зависших» HTTP-сессий вытесняют легитимных посетителей.
Такая ненавязчивость и «легитимный вид» делают Slowloris одной из самых опасных форм DDoS-атак, ведь срабатывание стандартных триггеров систем обнаружения наступает слишком поздно, а то и вовсе не происходит.
Типичный сценарий атаки включает ряд шагов, которые могут быть реализованы даже с одной машины, но более эффективно — при координации целого ботнета:
При массовом использовании ботнета атака только усиливается. Большое количество IP-адресов усложняет задачу брандмауэров, ориентированных на блокировку по IP, ведь непонятно, какие соединения легитимны, а какие «медленные».
Полностью исключить вероятность атаки Slowloris невозможно. Слишком уж гибким создан был HTTP-протокол, а значит, есть пространство для манипуляций. Однако существует целый набор мер, которые существенно снижают риск «падения» сервера.
Прокси-серверы способны фильтровать медленные запросы и ограничивать влияние Slowloris. Балансировщики нагрузки распределяют входящие соединения между несколькими бэкэндами, снижая риск переполнения всего пула на одном сервере.
Решения класса WAF (например PT Application Firewall) могут проанализировать поведение соединений и прерывать подозрительно «долгие» сессии.
Переход на архитектуры, менее подверженные «медленному отравлению». Серверы, основанные на неблокирующих потоках ввода-вывода (например, Nginx, Hiawatha, Cherokee, lighttpd), в целом лучше справляются с большим количеством одновременных соединений, поскольку не удерживают каждое соединение в отдельном потоке с отдельными ресурсами.
Дополнительно, администраторы могут включить строгие таймауты ожидания заголовков или пакетов. Например, в Nginx есть директива client_header_timeout, которая помогает обрывать слишком медленные запросы.
Несмотря на «скрытный» характер, Slowloris может быть выявлен вовремя, если использовать комплексный подход к мониторингу:
Важно также понимать, что мера «отслеживать все вручную» неэффективна для крупных ресурсов. Здесь нужна автоматизация, которая сможет в реальном времени генерировать оповещения и при необходимости реагировать на подозрительные соединения — блокировать, перенаправлять, ограничивать.
Атака Slowloris, как и любой другой вид DDoS, с правовой точки зрения обычно рассматривается как противозаконное вмешательство в работу компьютерных систем. В большинстве стран мира проведение подобных атак влечет административную, а то и уголовную ответственность.
Тем не менее нередки ситуации, когда Slowloris используется без злых намерений, например, в ходе тестирования на проникновение (пентест). В этом случае важно иметь соответствующие соглашения и договоры с владельцами тестируемых ресурсов, чтобы избежать правовых последствий.
Впервые Slowloris «прогремел» в 2009 году, когда группа хактивистов атаковала государственные сайты Ирана после президентских выборов. Суть была в том, чтобы парализовать официальные порталы, но при этом не «ломать» каналы связи протестующих. Медленные запросы хорошо подходили для подобной тактики — они не создавали огромного трафика, который бы мешал общению граждан.
Другой резонансный случай — атака на API Gmail модификацией Slowloris, которую проводила спам-сеть River City Media. Суть заключалась в массовом открытии тысяч медленных соединений и отправке большого количества писем, чтобы обойти фильтры. Это позволило незаметно «просочиться» спам-сообщениям мимо стандартных систем антиспама.
С тех пор Slowloris многократно фигурировал в отчетах по информационной безопасности. Некоторые исследователи отмечают, что «ленивые» атаки зачастую применяются для отвлечения внимания (так называемые «smokescreen-атаки»), пока основная кибератака (к примеру, проникновение в базу данных или кража конфиденциальной информации) остается незамеченной.
Существует мнение, что в эпоху глобальных CDN и гигантских пропускных каналов медленный подход неэффективен. Однако реальность показывает обратное:
Кроме того, Slowloris не утратил своей привлекательности для хактивистов и киберпреступников, потому что его можно применять как самостоятельную тактику или как дополнение к более мощной атаке.
С годами появился целый ряд «форков» (модификаций) Slowloris, расширяющих возможности атаки. Среди них — варианты, использующие WebSockets или HTTPS-соединения с удлиненным handshake. Более того, преступники активно экспериментируют с комбинированными атаками, где Slowloris участвует наряду с другими методами «медленного истощения» (Slow POST, Slow Read и т. п.).
Разработчики веб-серверов, в свою очередь, внедряют улучшения, направленные на более эффективное использование ресурсов: неблокирующие I/O, расширенные механизмы времени ожидания, «дедупликация» подключений от одного IP. Современные версии Apache, Nginx и IIS уже куда труднее «уложить» одним только Slowloris, чем их предшественников пять или десять лет назад.
При этом важна осведомленность системных администраторов и сетевых инженеров. Несмотря на обилие инструментов, способных защитить от «медленных» DDoS, они часто остаются недонастроенными. Простая ошибка в конфигурации или устаревшая версия серверного ПО может сделать всю систему уязвимой.
Slowloris — пример того, как изящное и недорогое решение может привести к серьезным последствиям в области кибербезопасности. Он не требует огромных ботнетов или пропускной способности, а умело использует механизмы HTTP-протокола для «медленного удушения» сервера.
Чтобы минимизировать риск подобных атак, нужно внедрять многоуровневую систему защиты: от правильной конфигурации веб-сервера и наличия модулей против «медленных» подключений, до применения обратных прокси, балансировщиков, специализированных WAF и систем мониторинга в реальном времени. Организациям также стоит заботиться о том, чтобы их серверы всегда имели актуальные патчи и не содержали устаревших механик, позволяющих Slowloris «процветать».
В эпоху глобальной цифровизации любая атака, лишающая пользователей доступа к ресурсу, способна нанести удар по репутации и финансовому состоянию компании. Атаки типа Slowloris показывают: если веб-сервис не готов противостоять даже малому количеству «медленных» запросов, то в критический момент это может обернуться потерей миллионов. Следовательно, контроль над безопасностью, своевременный апгрейд оборудования и ПО — обязательные составляющие серьезного подхода к защите.
В конечном итоге, атака Slowloris — это напоминание о том, что кибербезопасность не сводится к простому контролю пропускной способности канала. В равной степени важны тонкие настройки, мониторинг и способность быстро реагировать на малозаметные, но крайне опасные формы атак.