DoS/DDoS, или Атака грубой силы Ермолаев Евгений aka Saturn Спецвыпуск: Хакер, номер #047, стр. 047-040-1 (saturn@linkin-park.ru) Популярность атак, направленных на отказ в обслуживании, растет с каждым днем. При этом о них опубликовано крайне мало действительно полезной информации. В основном доступны лишь поверхностные описания удачных атак или негодования пострадавших. Этот материал поможет тебе разобраться в DoS/DDoS-атаках. Цель Основная цель DoS/DDoS-атак - вывести объект из рабочего состояния. Конечно, в большинстве случаев глобальная атака приводит к большим финансовым потерям со стороны атакуемого. Например, если какой-либо коммерческий сайт упадет на несколько часов, то это нанесет вред бизнесу, а если на неделю, то владелец ресурса вполне может разориться. Или взять локальные сети. Дело в том, что одним из эффектов популярных атак на Denial of Service (DoS) является огромный трафик, направляемый на жертву. Если для крупной западной фирмы это мелочь, то для небольшой отечественной домашней сети средняя атака может грозить разорением. Кроме огромного вреда, наносимого жертве, такие нападения отличаются простотой и огромной эффективностью. Против них нет стопроцентной защиты. Именно названные выше факторы привлекают к DoS внимание специалистов по сетевой безопасности и... DoS'еров. Принцип работы Для того чтобы обнаружить, а уж тем более организовать DoS/DDoS-атаку, нужно разобраться в ее принципах. Эти атаки не направлены на получение доступа к ресурсам или к важной информации. Атака DoS делает ресурс недоступным для использования путем нарушения его нормальной работы. Атаку на отказ в обслуживании можно провести всего двумя способами: использовав уязвимости в программном обеспечении жертвы и при помощи отсылки большого количества определенно составленных сетевых пакетов (флуд). Первый способ состоит в том, чтобы, используя уязвимости типа переполнения буфера, отослать код, выполняющий DoS на сервере. Поскольку атака будет проводиться "изнутри", то через очень короткое время объект зависнет или будет отключен от интернета. Этот способ не требует больших вычислительных ресурсов нападающего, однако такая атака предполагает использование уязвимостей, что само по себе усложняет задачу. Поскольку никто не хочет излишне заморачиваться, в народе более популярен второй способ, которому мы и уделим основное внимание. Это пример применения простой грубой силы, которая практически не нуждается в приложении ума. Идея состоит в том, чтобы переслать как можно больше "кривых" запросов серверу (впрочем, не только "кривых": от огромного количества нормальных пакетов, например GET-запросов для HTTP-сервера хосты падают с таким же успехом). Дело в том, что при получении сервером пакета данных происходит его обработка. Если приходит пакет, но сервер занят приемом или обработкой другого пакета, то вновь приходящий запрос ставится в очередь, занимая при этом часть ресурсов системы. При проведении DoS-атаки серверу отсылается большое количество пакетов определенного размера. При этом ответ сервера не ожидается (обычно адрес отправителя фальсифицируется - спуфинг). В результате, из-за того что сервер оказывается перегружен информацией, он либо отключается от интернета, либо зависает. В любом случае, нормальные пользователи некоторое время (иногда довольно продолжительное) не могут пользоваться услугами пострадавшего сервера. Просто и со вкусом :). Однако если сервер атакует одна "точка", он вполне может закрыться от нее фаерволом. Кроме того, для проведения качественной DoS-атаки необходима довольно высокая пропускная способность канала. Поэтому атака на отказ в обслуживании в большинстве случаев проводится сразу с нескольких машин. Атака, в проведении которой участвует много машин (обычно это затрояненные десктопы, их называют "зомби"), получила название DDoS (Distributed Denial of Service). Для сколь угодно мощного сервера всегда можно подобрать достаточное количество зомбиков (благо дырявых систем и ушастых юзверей по миру много развелось). |