Тест безопасности: три формы медленных атак и идеи защиты.
Тест безопасности: три формы медленных атак и идеи защиты.

Что такое атака на медленное соединение HTTP?

Медленная атака HTTP (Slowloris Attack) — метод атаки, использующий характеристики протокола HTTP. Злоумышленник отправляет на целевой сервер большое количество полуоткрытых запросов на соединение. Каждый запрос на соединение отправляет лишь небольшой объем данных и сохраняет соединение открытым в течение длительного времени.

Таким образом, злоумышленник может постепенно заполнить ресурсы подключения сервера, в результате чего сервер не сможет обрабатывать обычные запросы, тем самым вызывая эффект отказа в обслуживании (DoS) или распределенного отказа в обслуживании (DDoS).

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

Характеристики медленных HTTP-атак

  1. Высокая степень сокрытия: медленные атаки используют легальные характеристики протокола HTTP, поэтому их трудно идентифицировать традиционными устройствами безопасности.
  2. Низкое использование ресурсов: каждое медленное соединение отправляет лишь небольшой объем данных, поэтому злоумышленники могут использовать меньше ресурсов для запуска большого количества атак.
  3. Эффект атаки значителен: занимая ресурсы соединения сервера, медленные атаки могут быстро привести к снижению производительности сервера или даже к его сбою.

Принцип атаки медленного соединения HTTP

Атака с медленным соединением HTTP является вариантом атаки CC. Для любого сервера, который разрешает доступ по HTTP, злоумышленник сначала устанавливает соединение относительно большого размера контента между клиентом и сервером, а затем использует соединение на очень низкой скорости ( Например, отправьте один байт за 1-10 секунд), чтобы отправить пакет на сервер и сохранить соединение.

Поскольку нижний уровень HTTP-запросов использует сетевые соединения TCP для сеансов, если промежуточное программное обеспечение устанавливает тайм-аут сеанса необоснованно, а HTTP использует это медленное соединение для отправки HTTP-запросов при отправке запросов и поддерживает соединение без отключения, это приведет к занятию Сеанс HTTP-соединения.

Если злоумышленник продолжает устанавливать такие соединения на клиенте, доступные соединения на сервере и обычные ресурсы сервера будут медленно заполняться, в результате чего сервер отклоняет обычные запросы пользователя на доступ, создавая тем самым атаку типа «отказ в обслуживании».

Типы атак на медленное соединение HTTP

Атаки медленного соединения HTTP в основном делятся на три типа: атака медленного чтения, атака медленных заголовков и атака медленного тела.

  1. Slow read

Злоумышленник отправляет полный запрос на сервер после установления соединения, а затем поддерживает соединение, читая ответ на очень низкой скорости или заставляя сервер ошибочно думать, что клиент занят. Например, клиент не читает никаких данных. в течение длительного времени. При отправке нулевого окна на сервер один байт не считывается до тех пор, пока не истечет время ожидания соединения, что потребляет ресурсы соединения и памяти сервера.

Принципиальная схема атаки Slowloris Read:

  1. Slow headers

Атакующие веб-приложения должны принять все HTTP-заголовки перед обработкой HTTP-запросов. Если веб-сервер не получает два последовательных \r\n, он будет считать, что клиент не отправил заголовки, и продолжит ждать завершения отправки данных клиентом.

Злоумышленник пользуется этим и инициирует HTTP-запрос к серверу, непрерывно отправляя HTTP-заголовки. Однако поле HTTP-заголовка не отправляет терминатор, а затем отправляет другие поля, и серверу необходимо получить все HTTP-заголовки перед обработкой. . заголовок, из-за чего соединение постоянно занято, тем самым потребляя ресурсы соединения и памяти сервера.

Схема атаки Slowloris Header:

  1. Slow body

Злоумышленник отправляет HTTP-запрос POST и устанавливает для общей длины сообщения большое значение, указывая на то, что необходимо отправить большой объем данных, а сервер будет поддерживать соединение и готовиться к приему данных.

Однако при последующей передаче данных каждый раз отправляется только небольшое сообщение (например, один байт отправляется каждые 10-100 секунд). Это заставляет сервер ждать отправки данных злоумышленником, тем самым потребляя ресурсы сервера.

Схема атаки тела Слоулориса:

Идеи защиты от медленных HTTP-атак

Что касается принципа медленных атак, то есть очень яркая метафора. Вы можете представить атакованный 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 может эффективно защитить от медленных атак и имеет специальные стратегии защиты.

Введение функции:

WebЗащита от атак:(OWASP TOP 10Защита от угроз, интеллектуальный механизм семантического анализа, обнаружение искусственного интеллекта и поведенческий анализ)

Прикладной уровеньDDoSзащита:(CC、HTTP Защита от наводнений, защита от атак с медленным соединением)

Инструкции по защите от атак по медленному каналу

Замедлить Атаки на заголовки защищены путем обнаружения тайм-аута заголовка запроса и пороговых значений максимального количества пакетов. Замедлить Пост-атаки защищаются путем обнаружения порогового количества небольших пакетов запроса.

Гарантия соответствия: (индивидуальные правила защиты, предотвращение взлома веб-страниц, аудит журнала доступа, предотвращение утечки данных)

Инструкции по предотвращению утечки данных

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

Управление HTTP-трафиком: (поддерживает управление HTTP-трафиком и управление заголовками запросов)

Поддержка управления HTTP-трафиком

·

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

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

Объяснение статистики данных в реальном времени

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose