Время от времени можно увидеть, что какой-то сайт «упал и лежит» или заметно тормозит под напором недоброжелателей. В большинстве подобных случаев была применена DDoS-атака. Что это такое, как осуществляется и есть ли от неё спасенье, рассмотрим в данном обзоре.
Определение и механизм действия
DDoS-атака (Distributed Denial of Service c английского переводится как «распределенный отказ обслуживания») – нападение на сервис, которое стремится вывести его из строя методом перегрузки запросами.
Слово «распределённый» указывает, что в атаке участвует не один компьютер, а множество. В отдельных случаях количество атакующих доходило до нескольких миллионов. Армия для нападения набирается следующим способом: на уязвимых компьютерах в сети (ПК и сервер) без ведома их владельцев захватывается управление и устанавливаются троянские программы, которые по команде запускают генерацию запросов в фоновом режиме. Такие машины именуются «компьютеры-зомби», а образованная ими сеть – «ботнет». Чтобы стать невольным участником DDoS-атаки, достаточно неосмотрительного поведения в сети, например, открыть подозрительную ссылку, скачать файл из ненадежного источника или использовать простой пароль.
Запросы, которыми бомбардируется компьютер-мишень, могут быть разных типов, но общий принцип таков: полностью исчерпать ограниченные ресурсы атакуемого сервера (занять своим трафиком весь канал, захватить под свои задачи все процессорное время и т. д.), в результате чего он станет недоступен для других пользователей.
Виды атак
Не всякая направленная на отказ обслуживания атака должна быть распределенной. Для некоторых способов нападения достаточно одного компьютера, тогда речь идет о простом Denial of Service (DoS, а не DDoS).
Классификация DoS-атак основывается на способах достижения отказа. Можно выделить следующие виды:
- переполнение канала (флуд) — каналы мишени полностью заполняются бессмысленными запросами или ответами на них;
- захват ресурсов — цель получает такие запросы, обработка которых занимает все процессорное время либо переполняет память;
- использование ошибок в программном коде — в системе жертвы находят уязвимость, воздействие на которую приводит к ошибке программы и аварийному завершению работы.
Среди перечисленных видов к DDoS-атакам (то есть с использованием множества компьютеров) относятся такие виды флуда:
- ICMP*-флуд (или smurf) — нападение с применением ICMP-пакета и усиливающей сети, где всем узлам(чем их больше, тем эффективнее атака) отправляется этот пакет с заменой адреса отправителя на адрес цели, по которому все узлы пришлют ответ на ping-запрос;
- UDP**-флуд (или Fraggle) — атака по принципу аналогична предыдущей, но с применением UDP;
- SYN-флуд — доведение до отказа путем исчерпания ресурсов, выделенных для установки TCP соединения, в этом случае цель получает с коротким интервалом SYN-пакеты с заменой IP адреса отправителя на несуществующий, куда атакуемый компьютер отправляет SYN/ACK запрос и будет ждать ответа, который никогда не придет, таким способом заполняется очередь потенциальных соединений.
Название протокола |
Функция (все входят в стек TCP/IP) |
*ICMP – Internet Control Message Protocol |
Управляющие сообщения, передают информацию об ошибках или выполняют другие вспомогательные функции. |
**UDP – User Datagram Protocol |
Осуществляет обмен сообщениями без предшествующей установки канала или пути и без гарантии доставки. |
Захват ресурсов также может проводиться с использованием ботнета, в этом случае цель бомбардируется либо пакетами, обработка которых тратит все процессорное время, либо большими по объему пакетами, которые записываются в лог-файлы и занимают пространство на жестком диске (последнее возможно лишь при отсутствии ограничений на сервере).
Как защититься?
Систему можно сделать более отказоустойчивой следующими способами:
- грамотно настроить сервер (заблокировать echo-команды, установить лимит на использование ресурсов системы и т. д.);
- оперативно обнаруживать и устранять уязвимости в ПО;
- приобрести специальный сервис и оборудование для защиты;
- фильтровать и блокировать трафик при помощи межсетевых экранов и списков контроля доступа;
- перенаправлять вредоносный трафик на несуществующий сервер(блэкхолинг), либо обратно на компьютер нападающего;
- наращивать ресурсы;
- использовать распределение и дублирование систем, чтобы выход из строя нескольких элементов не подрывал функционирование в целом.
Эти меры не гарантируют полную безопасность, но в совокупности существенно снижают риск отказа системы.
Для защиты конкретного сайта от нападения достаточно разместить его на устойчивом хостинге, где применены вышеперечисленные меры безопасности.