WARNING: UNDER DDOS!

Наверное каждый из читателей неоднократно встречался с выражением DoS-атака /* многие из читателей наверняка отлично себе представляют, что это такое – поэтому вступление могут дальше не читать, так как оно адресовано главным образом новичкам в области сетевой безопасности – прим. ред. */ В газетах, на радио и телевидении очень часто мелькают сообщения об очередной атаке на какой-нибудь сервер. И частым атрибутом такого сообщения является загадочное для многх слово «DoS». Понятное дело, что никакого отношения к старому доброму черному окну ОС данный «DoS» не имеет.

Аббревиатура DoS расшивровывается как Denial of Service - отказ в обслуживании. Это атака, которая представляет собой поток ложных запросов, обрушивающихся на сервер, и приводящий, в конечном счете, к “падению” последнего. Следует отметить, что возможности классической DoS- атаки и ее применимость для нападения на крупные серверы, в отличие от более могущественной сестры DDoS (Distributed Denial of Service), существенно ограничены: одиночная атака хорошо отслеживается, да и создать внушительный поток пакетов из одной точки чаще всего затруднительно. В то время как баловаться в локалке флудером (классическая DoS-атака) очень часто бывает полезно (в образовательных целях, конечно ;) Отличие обычной атаки на отказ в обслуживании от распределенной довольно простое. В последней участвует не один компьютер, а множество - десятки и сотни… тысяч машин, генерирующих фальшивые запросы, адресованные компьютеру жертвы. Сотни тысяч машин-зомби, подчиняющихся командам атакующего. Сотни тысяч машин, настоящие владельцы которых даже и не подозревают о том, что принимают участие в распределительной атаке. В отличие от атак, направленных на вторжение в систему с последующей кражей конфиденциальной информации, DDoS-атаки не ставят перед собой подобной цели…

немного истории

Первым средством для организации DDoS-атак стала технология trinoo. Это достаточно примитивная по современным меркам разработка, и максимум, на что она способна - это запускать атаку типа UDP flood. Причем для взаимодействия master-host (см. далее) и агентов используются нешифрованные каналы (протоколы TCP и UDP). Благодаря своей простоте, программы семейства trinoo легко обнаруживаются, и обезвредить их передовыми средствами защиты не составляет труда. На сегодняшний день атаки данного типа не представляют серьезной угрозы для большинства веб-узлов ввиду своей примитивности и предсказуемого алгоритма работы.

Генеральная проверка Интернета на прочность состоялось 7 февраля 2000 года. Именно тогда в течение недели на несколько часов были парализованы такие известнейшие сайты, как Yahoo, Buy.com, eBay, Amazon, Datek, E*Trade и CNN.

Но обо всем по-порядку. Утром в понедельник 7 февраля была атакована крупнейшая на тот момент поисковая система Yahoo – их сервер был выведен из строя на 3 часа. Узел был атакован громадным количеством flood-пакетов, что повлекло за собой перегрузку одного из маршрутизаторов. После чего оказался блокирован весь исходящий трафик узла. 8 февраля атаке подверглись крупнейший веб-аукцион eBay, сайты on-line торговли Amazon.com и Buy.com, сервер CNN.com, а также повторно атакована Yahoo. В часовом «коматозе» оказался Amazon.com , CNN.Com пребывал в отключке около 2 часов, Buy.com лежал 3 часа. 9 февраля были проведены аналогичные атаки на новостной сервер ZDNet.Com, а также на сайты онлайновых брокеров Datek и E*Trade. С понедельника расследованием случившегося занялись ребята из ФБР. Уже 10 февраля на сайте Packet Storm можно было найти сканер RID, обнаруживающий DDoS-клиенты. Чуть позже автором TFN 2000 Mixter был опубликован анализ DDoS-атак с заявлением о непричастности к означенным событиям. Согласно информации, опубликованной Associated Press, анонимные предупреждения о начале массированной атаки были разосланы в банковские структуры США еще 3 февраля, причем в сообщениях были указаны IP-адреса атакующих узлов…

С новой силой атаки возобновились 18 февраля. На этот раз в отключке оказался сайт ФБР, который был недоступен в течение 3 часов, примерно на 1 час был выведен из строя брокерский сайт National Discount - NDB.com. В то же самое время другой небезызвестный сайт (надеюсь, вы догадались, о чем это мы...) был подвергнут массированному флуду SYN-пакетами, на что официальное представительство гордо ответило следующим: «...but with Windows 2000, nobody could knock our servers over».

Вернемся в наши дни. Уникальная в своем роде рекламная площадка Million Dollar Homepage (наверное, большинство из читателей уже слышали о «сайте на миллион долларов»), созданная 21-летним британским студентом Алексом Тью (Alex Tew), подверглась массивной DoS-атаке, сообщает сайт Security Pipeline со ссылкой на хостинг-провайдера сайта. В течение 10-ти часов сайт был недоступен для пользователей. Как выяснилось позже, в атаке на сайт принимали участие около 10000 терминалов, контролируемых неизвестной хакерской группой. К расследованию DoS-атаки против ресурса британского студента подключилось ФБР...

Данный исторический экскурс и свежий пример с известным сайтом, как вы уже поняли, приведены для того, чтобы представить масштабы и оценить деструктивные возможности DDoS. Не секрет, что ежегодные убытки компаний от DDoS-атак составляют миллионы долларов.

анатомия атаки

Схематически DDoS-атаку можно представить следующим образом: на определенный сервер, именуемый далее «жертва», обрушивается огромное количество фальсифицированных запросов, которые генерируются бесчисленным множеством хостов Сети. Сервер использует все свои ресурсы на обслуживание этих запросов, и как следствие, становится практически недоступным для легальных пользователей. Недоступным он может сать также по причине перегрузки каналов связи потоком запросов.

Технология набора «наемников» - машин-зомби - обычно заключается в установке на компьютер жертвы специального программного обеспечения, чаще всего троянов. Обычно при проведении DDoS-атак используется трехуровневая архитектура, так называемый "кластер DDoS". Такая иерархическая структура содержит следующие элементы: master-host - компьютер, с которого злонамеренный пользователь инициирует начало атаки; управляющие агенты - машины, которые получают сигнал об атаке с master-host и передают его агентам-зомби, которые собственно и затапливают жертву лавиной пакетов. Отследить весь этот путь в обратном направлении практически невозможно.

Эффективность DDoS заключается в ее относительной простоте - злоумышленникам не нужно обладать какими-либо глубокими специальными знаниями и ресурсами. Программы для проведения атак свободно распространяются в Сети. Дело в том, что изначально ПО для DDoS использовалось в диагностических целях, в частности, для изучения пропускной способности сетей и их устойчивости к внешним нагрузкам. В качестве примера можно привести ICMP (Internet Control Message Protocol) - протокол, широко используемый в диагностических целях. Это обязательный управляющий протокол в наборе протоколов TCP/IP, с помощью которого передаются сообщения об ошибках и другая служебная информация. Протокол ICMP используется в хорошо всем известной программе ping. Использование этого протокола для проведения DDoS-атак широко распространено, и это не случайно. Дело в том, что на обработку ICMP-пакета требуется достаточно много ресурсов, что является существенным плюсом при проведении атак подобного рода.

классифицируем DDoS-атаки

Современная классификация DDoS-атак включает в себя следующие основные разновидности.
Smurf-атака – атака, представляющая собой запросы ICMP Echo (именно такие используются в программе ping) по адресу направленной
широковещательной рассылки (broadcast) с использованием в пакетах этого запроса фальшивого адреса источника. Используемый в пакетах этого запроса фальсифицированный адрес источника совпадает с адресом атакуемого. Системы, получившие направленный широковещательный ping-запрос, как им и положено, исправно на него отвечают - естественно тому, от кого пришел запрос ;). В результате происходит затопление атакуемого большим количеством пакетов, что, в конечном счете, приводит к приостановке нормальной работы сервера.

ICMP flood - атака, аналогичная Smurf, но отличающаяся отсутствием усиления, создаваемого запросами по направленному широковещательному адресу. Характеризуется высокой эффективностью, поскольку ICMP-пакеты имеют определенные привилегии и требуют на обработку больше сетевых ресурсов. В качестве примеров реализации атаки на основе ICMP можно назвать SPing (Jolt, SSPing, IceNuke, IcePing, IceNuke, Ping Of Death...). Работа SPing основана на известном баге – кривой обработке некорректно сформированных ICMP-пакетов. Как выяснилось, Windows-системы неадекватно реагируют на получение сильно фрагментированного ICMP-пакета (< 1Кб / >64Кб). Реакцией системы на такие фрагментированные пакеты является полное зависание системы. В конце июня 1997 года жертвой SPing стал сервер Microsoft.

Особенностью Ping of Death является универсальность – атака одинаково подходит как для Windows-систем, так и для Mac OS и некоторых версий Unix. UDP flood представляет собой атаку, при которой на адрес системы-мишени отправляется множество пакетов UDP (User Datagram Protocol - протокол стека TCP/IP, поддерживающий выполняющуюся без подключений службу датаграмм, не гарантирующую ни доставку, ни правильную последовательность доставленных пакетов). UDP-флуд можно назвать прародителем современных атак /* не факт, поскольку идея наказать кого-нибудь с помощью ping –f стара как мир, и скорее всего именно ICMP-флуд был прародителем современных DoS/DDoS-атак – прим. ред. */ и в настоящее время он считается наименее опасным. Особенностью UDP-флудеров является возможность их легкого обнаружения, что связано с отсутствием шифрования протоколов TCP и UDP на уровне взаимодействия master-host/управляющий агент.

TCP flood представляет собой отправку на IP-адрес жертвы множества TCP-пакетов, результатом чего является «завал» сетевых ресурсов. Частным случаем TCP flood можно считать TCP SYN flood-атаку, которой в настоящее время выделяют самостоятельное систематическое положение. TCP SYN flood - это посылка большого количества запросов на установление TCP-соединений с узлом-жертвой, которому, в результате, приходится расходовать все свои ресурсы на то, чтобы контролировать эти частично открытые соединения. В основу данного типа атак заложена идея превышения ограничения на количество соединений, находящихся в состоянии установки. Результатом является состояние системы, в котором она не может устанавливать новые соединения. Кроме того, при такой атаке на каждый входящий пакет система-жертва высылает ответ, что еще сильнее увеличивает злонамеренный трафик. Поскольку такие атаки не предусматривают обратной связи с атакующим, нет необходимости использовать настоящий адрес источника. Вот листинг примера, как устанавливается заголовок IP-пакета, используемого в атаке типа SYN flood.

packet.ip.version=4; /* Версия */
packet.ip.ihl=5; /* Длина заголовка */
packet.ip.tos=0; /* Тип сервиса */
packet.ip.tot_len=htons(40); /* Общая длинна */
packet.ip.id=getpid(); /* Идентификатор */
packet.ip.frag_off=0; /* Смещение фрагмента */
packet.ip.ttl=255; /* Время жизни */
packet.ip.protocol=IPPROTO_TCP; /* Протокол */
packet.ip.check=0; /* Контрольная сумма */
packet.ip.saddr=saddress; /* Адрес источника */
packet.ip.daddr=daddress; /* Адрес назначения */

Удачной реализацией атак на основе TCP SYN flood является Land. Механизм работы Land в общих чертах заключается в следующем: на атакуемый хост посылается SYN-пакет с адресом отправителя, совпадающим с адресом получателя, жертвы. Пакет посылается на любой открытый порт, результатом чего является зависание системы вследствие исчерпания системных ресурсов.

Высокая эффективность современных DDoS-атак достигается путем модификации и комбинирования отдельных ее видов. В качестве яркого примера к вышесказанному хочется привести средства организации распределенных атак TFN и TFN2K. Они позволяют одновременно инициировать атаки нескольких типов - Smurf, UDP flood, ICMP flood и TCP SYN flood, что делает их мощным инструментом для подобных задач. Пересылка команд и параметров при этом умело замаскирована в передаваемых данных - чтобы не вызвать подозрений у защитного ПО. Как средства организации распределенных атак, TFN и TFN2K относительно сложны и требуют от атакующего намного более высокой квалификации, но и практическая эффективность их намного выше. Ярчайшим представителем средств организации DoS-атак нового поколения является ПО Stacheldracht (переводится как «колючая проволока»). Помимо организации самых различных типов атак, Stacheldracht предусматривает шифрованный обмен данными между master-host и агентами.

защита и предупреждение

Как известно, предупреждение есть лучший способ зашиты. Не секрет, что с точки зрения безопасности ОС и сетевое ПО не безупречны. Уязвимости находили, находят и будут находить. Лучшим средством для ранней диагностики потенциально «дырявой» среды являются сканеры безопасности. Найти подобные программы не трудно - достаточно набрать в Google «сканеры безопасности DDoS», а затем хорошо порыться среди найденного. Данное ПО позволяет в автоматическом режиме просканировать сотню машин всего за несколько минут. Результатом такого сканирования является отчет об обнаруженных дырах, чрезвычайно полезный для администраторов в качестве руководства к действию. Полностью обезопасить себя от DDoS достаточно трудно, но снизить вероятность последствий этой атаки можно. Во-первых, необходимо грамотно настроить функции антиспуфинга на маршрутизаторах и межсетевых экранах.

/* По правде говоря, эта мера акруальна для того, чтобы защитить остальной Интернет от потенциальных атак, исходящих из вашей собственной сети. Это, как бы, проявление взаимовыручки и солидарности администраций разных сетей, составляющих Интернет. – прим. ред. */

Во-вторых, необходимо включить и правильно сконфигурировать функции анти-DoS на маршрутизаторах, межсетевых экранах и системах обнаружения вторжений (IDS, Intrusion Detection System). Если анализ риска говорит о высокой вероятности DDoS-атаки, следует незамедлительно ограничить объем проходящего по сети трафика. Естественно, политика ограничения должна быть согласована с вашим Интернет-провайдером. Приведенные меры защиты не претендуют на полноценное руководство и являются скорее наброском той политики безопасности, разработкой и внедрением которой, должны заниматься ответственные лица.





Олег Бойцев, boyscout_zone@yahoo.com.


Сетевые решения. Статья была опубликована в номере 02 за 2006 год в рубрике save ass…

©1999-2024 Сетевые решения