DoS (Denial of Service) - атака, целью которой является доведение веб-ресурса до недоступности для своих пользователей, посылающая большее количество запросов, чем может обрабатывать сервер.
DDoS (Distributed Denial of Service) - DoS-атака, проводящаяся с большего числа компьютеров, чем 1. DDoS-атаки зачастую производятся с задействованием ботнетов (куча одновременно генерируемых запросов с нескольких сотен тысяч компьютеров может дать почти гарантируемый результат даже на весьма устойчивые сервера)
Ярким примером DDoS'a может послужить самая мощная атака, организованная на GitHub. Ее мощность составляла около 1.35 Тб/сек.
Факторы, влияющие на необходимые ресурсы при проведении атаки:
1. Нагрузка, создаваемая единичным запросом к серверу. Атака может проводиться в тупую, но если хакер заранее изучил атакуемый сервер, то, зачастую, получается найти способы в разы увеличить нагрузку от одного запроса. К примеру, атака через NTP протокол(Network Time Protocol). В результате спуфинга злоумышленник отправляет от лица другого пользователя запрос по этому протоколу, а сервер в ответ отправляет сотни IP адресов на подставной адрес. Запрос маленький, а ответ гигантский. Используя этот метод, можно вызвать нагрузку на интернет канал в десятки раз больше, чем при обычных методах атаки.
2. Мощность атакуемого сервера. Очевидно, что чтобы положить сервера google надо создать НАМНОГО большую нагрузку, чем чтобы положить сервер minecraft. Кстати, тут и кроется универсальность DDOS атак: на сколько бы мощной не была атакуемая сеть, если у хакера достаточно ресурсов, она обречена.
3. Наличие или отсутствие средств защиты от DDOS. Большие сайты нередко пользуются подобной защитой. Она заключается в том, что все запросы проходят через прокси сервера, которые пытаются отделить атакующие компьютеры от компьютеров обычных пользователей. Но тут есть 2 нюанса: их отделение не всегда возможно, и мощность атаки может быть настолько велика, что ляжет сам анти-DDOS сервис.
4. Ресурсы, находящиеся в распоряжении атакующей стороны. Если сервер маломощный, и эффективная атака возможна, то сервер можно положить и с одного компьютера(а то и c телефона:).
Виды DDoS-атак:
Флуд
В контексте DoS/DDoS-атак флуд представляет собой кучу пустых, бессмысленных тех или иных запросов с целью полностью забить каналы связи, насытить полосу пропускания до максимума. Флуд также бывает разный и делится на виды:
MAC-флуд — воздействие на сетевые коммуникаторы (блокировка портов потоками данных).
ICMP-флуд — заваливание сервера служебными эхо-запросами с помощью бот-сети или рассылка запросов "от имени" атакуемого узла, чтобы все члены ботнета одновременно отправили ему эхо-ответ (атака Smurf). Частный случай ICMP-флуда — ping-флуд (отправка на сервер ping-запросов ).
SYN-флуд — отправка серверу многочисленных SYN-запросов, переполняя очередь TCP-подключений путем создания большого количества полуоткрытых (ожидающих подтверждения клиента) соединений.
UDP-флуд — работает по схеме Smurf-атак, где вместо ICMP-пакетов пересылаются датаграммы UDP.
HTTP-флуд — заваливание сервера многочисленными HTTP-сообщениями. Более изощренный вариант — HTTPS-флуд, где пересылаемые данные предварительно шифруются, и прежде чем атакуемый узел их обработает, ему предстоит их расшифровать.
Zero-Day DDoS - DDoS с использованием zero-day уязвимости.
Application Level Attacks - атака проводится на определённые приложения на сервере.
Nuke - отправка модифицированного ICMP пакета, в процессе обработки которого сетевым оборудованием или сервером возникает критическая ошибка.
Unintentional DDoS - это состояние, при котором количество запросов от обычных пользователей настолько большое, что сервер перестаёт справляться.
Для тестирования (своих :) серверов на устойчивость к dos-атакам можно воспользоваться Stresser'ом.
Stresser - бесплатная панель для тестирования своих серверов на устойчивость к DoS/DDoS атакам. Единственный недостаток бесплатной версии Stresser'а, что если сервера заняты, то вам придется ждать когда один из них освободится.
Итак, для этого:
- Регистрируемся и логинимся;
- Открываем вкладку "Stresser";
- Метод атаки и протокол не трогаем;
- В "Host" вписываем доменное имя или ip сайта;
- В "Port" пишем 80;
- Duration - длительность атаки;
- Bandwidth - выбираем 200 Mbps;
- Кликаем по "Launch Stress Test".
- Смотрим результат