Медленная атака HTTP (Slowloris Attack) — метод атаки, использующий характеристики протокола HTTP. Злоумышленник отправляет на целевой сервер большое количество полуоткрытых запросов на соединение. Каждый запрос на соединение отправляет лишь небольшой объем данных и сохраняет соединение открытым в течение длительного времени.
Таким образом, злоумышленник может постепенно заполнить ресурсы подключения сервера, в результате чего сервер не сможет обрабатывать обычные запросы, тем самым вызывая эффект отказа в обслуживании (DoS) или распределенного отказа в обслуживании (DDoS).
Поскольку запросы, отправленные этим методом атаки, являются законными, их трудно идентифицировать традиционными межсетевыми экранами или системами обнаружения вторжений. В то же время медленные атаки также можно комбинировать с другими методами атак, образуя более сложную цепочку атак, что еще больше повышает вероятность успеха и сокрытие атаки.
Атака с медленным соединением HTTP является вариантом атаки CC. Для любого сервера, который разрешает доступ по HTTP, злоумышленник сначала устанавливает соединение относительно большого размера контента между клиентом и сервером, а затем использует соединение на очень низкой скорости ( Например, отправьте один байт за 1-10 секунд), чтобы отправить пакет на сервер и сохранить соединение.
Поскольку нижний уровень HTTP-запросов использует сетевые соединения TCP для сеансов, если промежуточное программное обеспечение устанавливает тайм-аут сеанса необоснованно, а HTTP использует это медленное соединение для отправки HTTP-запросов при отправке запросов и поддерживает соединение без отключения, это приведет к занятию Сеанс HTTP-соединения.
Если злоумышленник продолжает устанавливать такие соединения на клиенте, доступные соединения на сервере и обычные ресурсы сервера будут медленно заполняться, в результате чего сервер отклоняет обычные запросы пользователя на доступ, создавая тем самым атаку типа «отказ в обслуживании».
Атаки медленного соединения HTTP в основном делятся на три типа: атака медленного чтения, атака медленных заголовков и атака медленного тела.
Злоумышленник отправляет полный запрос на сервер после установления соединения, а затем поддерживает соединение, читая ответ на очень низкой скорости или заставляя сервер ошибочно думать, что клиент занят. Например, клиент не читает никаких данных. в течение длительного времени. При отправке нулевого окна на сервер один байт не считывается до тех пор, пока не истечет время ожидания соединения, что потребляет ресурсы соединения и памяти сервера.
Принципиальная схема атаки Slowloris Read:
Атакующие веб-приложения должны принять все HTTP-заголовки перед обработкой HTTP-запросов. Если веб-сервер не получает два последовательных \r\n, он будет считать, что клиент не отправил заголовки, и продолжит ждать завершения отправки данных клиентом.
Злоумышленник пользуется этим и инициирует HTTP-запрос к серверу, непрерывно отправляя HTTP-заголовки. Однако поле HTTP-заголовка не отправляет терминатор, а затем отправляет другие поля, и серверу необходимо получить все HTTP-заголовки перед обработкой. . заголовок, из-за чего соединение постоянно занято, тем самым потребляя ресурсы соединения и памяти сервера.
Схема атаки Slowloris Header:
Злоумышленник отправляет HTTP-запрос POST и устанавливает для общей длины сообщения большое значение, указывая на то, что необходимо отправить большой объем данных, а сервер будет поддерживать соединение и готовиться к приему данных.
Однако при последующей передаче данных каждый раз отправляется только небольшое сообщение (например, один байт отправляется каждые 10-100 секунд). Это заставляет сервер ждать отправки данных злоумышленником, тем самым потребляя ресурсы сервера.
Схема атаки тела Слоулориса:
Что касается принципа медленных атак, то есть очень яркая метафора. Вы можете представить атакованный WEB-сервер как кофейню. Обычные шаги для обеда: закажите, заплатите и поешьте, а злоумышленник — как конкурент. В кафе он нанял множество, казалось бы, нормальных гостей, чтобы прийти на ужин, но в результате произошло множество нештатных ситуаций.
Атака Slowloris Header похожа на человека, который не решается заказать еду. Он продолжает говорить, но не может сказать, что он хочет заказать. Атака Slowloris Body похожа на покупателя, который вынимает из своего кассы одну за другой монеты. Карман для оплаты Атака Slowloris Read — это все равно, что не оставить гостя, который занимал место после еды, и не позволить новым клиентам прийти пообедать.
У трех вышеупомянутых типов клиентов на самом деле есть одно общее слово: медленно! Если кафе хочет работать нормально, оно может только остановить этих надоедливых клиентов, убрать этих клиентов, которые не спешат делать заказы и платить, и ограничить время обеда.
Вернемся к реальному сценарию медленной атаки.,Выше упоминалось, что ресторанам необходимо ограничить время приема пищи.,Затем нам нужно ограничить время HTTP-запроса и ответа.,О стратегии защиты вы можете прочитать на уровне устройства безопасностии Уровень промежуточного программного обеспеченияучитывать。
Установите ограничение времени передачи HTTP-заголовка веб-сервера. Например, после версии Apache 2.2.15 настройте тайм-аут HTTP-заголовка через модуль mod_reqtimeout. Если передача не будет завершена в течение периода ожидания, соединение будет отключено. NGINX, его можно установить в файле конфигурации. Таймаут client_body_timeout и client_header_timeout используются для защиты от медленных атак. Другие промежуточные программы также имеют аналогичные параметры защиты, поэтому я не буду здесь вдаваться в подробности.
Ускорение безопасности SCDN от Kuehne Cloud Security может эффективно защитить от медленных атак и имеет специальные стратегии защиты.
Введение функции:
Инструкции по защите от атак по медленному каналу
Замедлить Атаки на заголовки защищены путем обнаружения тайм-аута заголовка запроса и пороговых значений максимального количества пакетов. Замедлить Пост-атаки защищаются путем обнаружения порогового количества небольших пакетов запроса.
Инструкции по предотвращению утечки данных
Обрабатывайте ответные сообщения, идентифицируйте и фильтруйте содержимое ответов и ответы, а также устанавливайте правила предотвращения утечки данных, необходимые для защиты безопасности данных веб-сайта.
Поддержка управления HTTP-трафиком
·
Вы можете установить исходный IP-адрес или скорость доступа к характерному интерфейсу, а также доступ к очереди, превышающий скорость, чтобы снизить нагрузку на сервер.
Объяснение статистики данных в реальном времени
Предоставляйте статистическую информацию на основе средней и пиковой пропускной способности, обеспечивайте пропускную способность атаки и нормальную пропорцию, а также следите за бизнес-условиями в любое время. Предоставляет различные компоненты для понимания бизнес-мониторинга и изменений основных показателей.