Принцип работы
Для того чтобы обнаружить, а уж тем более организовать DoS/DDoS-атаку, нужно разобраться в ее принципах. Эти атаки не направлены на получение доступа к ресурсам или к важной информации. Атака DoS делает ресурс недоступным для использования путем нарушения его нормальной работы. Атаку на отказ в обслуживании можно провести всего двумя способами: использовав уязвимости в программном обеспечении жертвы и при помощи отсылки большого количества определенно составленных сетевых пакетов (флуд). Первый способ состоит в том, чтобы, используя уязвимости типа переполнения буфера, отослать код, выполняющий DoS на сервере. Поскольку атака будет проводиться "изнутри", то через очень короткое время объект зависнет или будет отключен от интернета. Этот способ не требует больших вычислительных ресурсов нападающего, однако такая атака предполагает использование уязвимостей, что само по себе усложняет задачу. Поскольку никто не хочет излишне заморачиваться, в народе более популярен второй способ, которому мы и уделим основное внимание. Это пример применения простой грубой силы, которая практически не нуждается в приложении ума. Идея состоит в том, чтобы переслать как можно больше "кривых" запросов серверу (впрочем, не только "кривых": от огромного количества нормальных пакетов, например GET-запросов для HTTP-сервера хосты падают с таким же успехом). Дело в том, что при получении сервером пакета данных происходит его обработка. Если приходит пакет, но сервер занят приемом или обработкой другого пакета, то вновь приходящий запрос ставится в очередь, занимая при этом часть ресурсов системы. При проведении DoS-атаки серверу отсылается большое количество пакетов определенного размера. При этом ответ сервера не ожидается (обычно адрес отправителя фальсифицируется - спуфинг). В результате, из-за того что сервер оказывается перегружен информацией, он либо отключается от интернета, либо зависает. В любом случае, нормальные пользователи некоторое время (иногда довольно продолжительное) не могут пользоваться услугами пострадавшего сервера. Просто и со вкусом . Однако если сервер атакует одна "точка", он вполне может закрыться от нее фаерволом. Кроме того, для проведения качественной DoS-атаки необходима довольно высокая пропускная способность канала. Поэтому атака на отказ в обслуживании в большинстве случаев проводится сразу с нескольких машин. Атака, в проведении которой участвует много машин (обычно это затрояненные десктопы, их называют "зомби"), получила название DDoS (Distributed Denial of Service). Для сколь угодно мощного сервера всегда можно подобрать достаточное количество зомбиков (благо дырявых систем и ушастых юзверей по миру много развелось).
Есть несколько способов получения "зомби". Во-первых, это массовое внедрение трояна на компьютеры мирных пользователей. Самый популярный способ управления троянами - IRC, то есть организация ботнета. При посылке определенных команд троян активируется и мирный домашний компьютер (с широкополосным выходом в интернет) становится источником большого количества мусора, съедающего ресурсы атакуемого сервера.
Чтобы более детально разобраться в DoS-атаках, рассмотрим их наиболее известные разновидности. Выделяют пять наиболее популярных:
* TCP SYN Flood;
* TCP flood;
* Ping of Death;
* ICMP flood;
* UDP flood.