HTTP-флуд
HTTP-флуд - это наиболее распространенная flood атака. В ее основе – отсылка HTTP-запросов GET на 80-й порт. Это приводит к такому состоянию загрузки сервера, что он оказывается неспособным к обработке других запросов. Данная flood атака может быть нацелена как на корень сервера, так и на его скрипт, занятый выполнением ресурсоемких задач. Распознание данной атаки возможно путем выявления быстрого роста количества запросов к одному или нескольким скриптам на сервери и быстрому росту логов сервера.
Для понимания правильного метода такой атаки следует перед ее началом изучить сайт-жертву.
- Пример 1
Мы отправляем http-атаку на файл http://site.ru/index.html
Файл статичный и может быть закеширован сервером. В этом случае нам нужен большой ботнет и огромное количество потоков что бы "завалить" сервер-жертву.
- Пример 2
Мы отправляем http-атаку на файл http://site.ru/index.php
В этом случае происходит обработка php файла сервером и, в случае необходимости, обращение к базе данных за более актуальной информацией для страницы сайта. Всвязи с тем, что серверу нужно делать большее количество действий - атака будет более результативной нежели в примере №1, но при правильной настройке кэширования на уровне сервера атака может быть практически равнозначной первому примеру.
- Пример 3
Мы видим на сайте форму авторизации или иные поля для ввода данных которые требуют обязательного обращения к базе данных. (идеальный случай - поле поиска по сайту). И направляем свою атаку на эту форму. Допустим это будет выглядеть так: http://site.ru/index.php?search=лалалалалалалалалалаал
В этом случае мы создаем гарантированную нагрузку на БД и такая атака принесет максимальный результат.
- Пример 4
Автоподстановка значений. Это по сути возможность вашего ддос-бота автоматически подставлять рандомные значения. Так первый запрос будет выглядеть http://site.ru/index.php?search=aaaaaaaaa
А второй уже http://site.ru/index.php?search=bbbbbbbbb и так далее. Такие подстановки затрудняют борьбу с данным видом атаки т.к. нельзя точно выделить запрос и блокировать его на уровне фаервола.
Некоторые боты могут не только генерировать разные запросы, но и варьировать их длину и скорость передачи данных. Это считается наилучшим вариантом атаки, который принесет, несомненно, высокие результаты.
Эффективная борьба с флудом типа HTTP возможна при усовершенствовании сервера и базы данных, исключении Dos-ботов. Конкретные меры включают в себя увеличение максимального количества используемых файлов и соединений, использование метода epoll для обработки подключений, отключение таймаута на закрытие keep-alive подключений.