Самый простой вид трафика — HTTP-запросы. С помощью таких запросов, например, любой посетитель общается с вашим сайтом посредством браузера. В основе запроса лежит HTTP-заголовок.
HTTP заголовки — это поля, которые описывают, какой именно ресурс запрашивается, например, URL-адрес или форма, или JPEG. Также HTTP заголовки информируют веб-сервер, какой тип браузера используется. Наиболее распространенные HTTP заголовки: ACCEPT, LANGUAGE и USER AGENT.
Запрашивающая сторона может использовать сколько угодно заголовков, придавая им нужные свойства. Проводящие DDoS-атаку злоумышленники могут изменять эти и многие другие HTTP-заголовки, делая их труднораспознаваемыми для выявления атаки. В добавок, HTTP заголовки могут быть написаны таким образом, чтоб управлять кэшированием и прокси-сервисами. Например, можно дать команду прокси-серверу не кэшировать информацию.
HTTP GET
- HTTP(S) GET-запрос — метод, который запрашивает информацию на сервере. Этот запрос может попросить у сервера передать какой-то файл, изображение, страницу или скрипт, чтобы отобразить их в браузере.
- HTTP(S) GET-флуд — метод DDoS атаки прикладного уровня (7) модели OSI, при котором атакующий посылает мощный поток запросов на сервер с целью переполнения его ресурсов. В результате сервер не может отвечать не только на хакерские запросы, но и на запросы реальных клиентов.
HTTP POST
- HTTP(S) POST-запрос — метод, при котором данные помещаются в тело запроса для последующей обработки на сервере. HTTP POST-запрос кодирует передаваемую информацию и помещает на форму, а затем отправляет этот контент на сервер. Данный метод используется при необходимости передавать большие объемы информации или файлы.
- HTTP(S) POST-флуд — это тип DDoS-атаки, при котором количество POST-запросов переполняют сервер так, что сервер не в состоянии ответить на все запросы. Это может привести к исключительно высокому использованию системных ресурсов, и, в последствии, к аварийной остановке сервера.
Каждый из описанных выше HTTP-запросов может передаваться по защищенному протоколу HTTPS. В этом случае все пересылаемые между клиентом (злоумышленником) и сервером данные шифруются. Получается, что «защищенность» тут играет на руку злоумышленникам: чтобы выявить злонамеренный запрос, сервер должен сначала расшифровать его. Т.е. расшифровывать приходится весь поток запросов, которых во время DDoS-атаки поступает очень много. Это создает дополнительную нагрузку на сервер-жертву.
SYN-флуд (TCP/SYN) устанавливает полуоткрытые соединения с узлом. Когда жертва принимает SYN-пакет через открытый порт, она должна послать в ответ SYN-ACK пакет и установить соединение. После этого инициатор посылает получателю ответ с ACK-пакетом. Данный процесс условно называется рукопожатием. Однако, во время атаки SYN-флудом рукопожатие не может быть завершено, т.к. злоумышленник не отвечает на SYN-ACK сервера-жертвы. Такие соединения остаются полуоткрытыми до истечения тайм-аута, очередь на подключение переполняется и новые клиенты не могут подключиться к серверу.
UDP-флуд чаще всего используются для широкополосных DDoS-атак в силу их бессеансовости, а также простоты создания сообщений протокола 17 (UDP) различными языками программирования.
ICMP-флуд. Протокол межсетевых управляющих сообщений (ICMP) используется в первую очередь для передачи сообщений об ошибках и не используется для передачи данных. ICMP-пакеты могут сопровождать TCP-пакеты при соединении с сервером. ICMP-флуд — метод DDoS атаки на 3-м уровне модели OSI, использующий ICMP-сообщения для перегрузки сетевого канала атакуемого.
MAC-флуд — редкий вид атаки, при котором атакующий посылает множественные пустые Ethernet-фреймы с различными MAC-адресами. Сетевые свитчи рассматривают каждый MAC-адрес в отдельности и, как следствие, резервируют ресурсы под каждый из них. Когда вся память на свитче использована, он либо перестает отвечать, либо выключается. На некоторых типах роутеров атака MAC-флудом может стать причиной удаления целых таблиц маршрутизации, таким образом нарушая работу целой сети.