Филенко Максим Сергеевич
Магистр ДонНТУ Филенко Максим Сергеевич


Факультет вычислительной техники и информатики

Кафедра электронных вычислительных машин

Специальность: «Компьютерные системы и сети»



The quieter you become, the more you are able to hear...

DDoS-атаки

Вопросы безопасности компьютерных систем и сетей всегда в поле моего профессионального внимания. Особобенно активно я занимаюсь исследованиями ботнетов и (D)DoS-атак. Два этих понятия тесно связаны о оба занимают первые позиции в рейтинге компьютерных угроз. Именно эти факторы стали определяющими при выборе темы для индивидуальной работы. Кроме того, имея немалый опыт в этой сфере, я бы хотел поделиться информацией об одной из самых страшных угроз в мире информационных технологий.

§ Введение в проблему DDoS-атак на компьютерные системы

Атака типа «отказ в обслуживании» (denial of service, DoS) заключаются в создании таких условий, при которых вычислительная система входит в такое состояние, что пользователи не могут получить доступ к предоставляемым ресурсам либо же этот доступ сильно затруднен. Существуют различные причины возникновения DoS-условия. Суть распределенных атак типа «отказ в обслуживании» (distributed denial of service, DDoS) в простейшем случае сводится к одновременной посылке огромного числа запросов на атакуемую систему, в результате чего происходит перегрузка ресурсов и, соответственно, отказ в работе. Очевидно, данный вид компрометации компьютерных систем крайне грубый и имеет катастрофические последствия, ибо любой простой в работе вычислительных систем предприятия несет колоссальные убытки. Подобные нападения обходятся сегодня различным компаниям в миллионы долларов. Следует учесть, что это лишь официальная статистика, ведь многие предпочитают умолчивать о подобных проишествиях. Мощь подобной атаки в свое время выводила из строя таких гигантов, как NASA, eBay, Yahoo! и других.

§ Методики проведения DDoS-атак

Сегодня среди основных способов организации DDoS-атак можно выделить следующие:

  1. SYN-атака.
  2. Smurf.
  3. Fraggle (UDP).
  4. Flood.
В целом, следует сказать, что DoS-атаки заключаются в массовой посылке серверу заведомо неправильных пакетов.

SYN-атака состоит в отправке серверу поддельного сообщения SYN, которое будет содержать неверный адрес отправителя запроса TCP-соединения. Сетевым инженерам должно быть известно, что TCP-соединение устанавливается путем «трехстороннего рукопожатия» (3-way handshake, RFC 793). В кратце напомню суть:

  1. Инициатор соединения посылает сообщение SYN.
  2. Целевая система отвечает сообщением SYN/ACK.
  3. Инициатор посылает сообщение ACK и соединение считается установленным.
Таким образом, можно подделать сообщение SYN, указав в нем отличный от действительного адрес инициатора соединения. Что происходит в такой ситуации. Получив запрос SYN, сервер генерирует и отправляет ответ SYN/ACK отправителю. Учитывая что указанный в запросе SYN отправитель ложный и никаких пакетов не отправлял, любая система, получая сообщение SYN/ACK, отвечает пакетом RST, которое как раз и говорит о том, что запрос на соединение оказался ложным или поддельным. Однако, если в SYN указать несуществующий узел, то сервер-жертва не получит ответа на SYN/ACK (RST или FIN, сбособные сбросить соединение), при этом запись в таблице соединений остается еще на некоторое время (величина timeout для TCP-соединения). Заполнив все свободные поля таблицы, создается возможность перевода тем самым удаленной системы в условия возникновения отказа в обслуживании (DoS). Для создания условий DoS достаточно отправки сравнительно небольшого числа сообщений.

Более эффективной по отношению к жертве является Smurf-атака. Она основана на рассылке ping-запросов большому количество станций. Для упрощения задачи используют широковещательные запросы (для сетей класса C, например, это адрес вида xxx.xxx.xxx.255). Допустим, мы отправляем широковещательным запросом поддельное ICMP-сообщение, содержащее адрес жертвы. После того, как узлы-приемники ICMP-пакета сгенерируют ответ на ping-запрос, они отправят его на подделанный адрес. В результате атакуемая система получит столько ответов на ping-запрос (который она не отправляла), сколько компьютеров приняли сообщение посредством широковещательной рассылки (broadcast). Представьте масштабы и возможности данного подхода!

Fraggle-нападение производится аналогично Smurf-атаке с той лишь разницей, что вместо ICMP-сообщений отсылаются пакеты UDP, как правило на 7-й порт (echo).

Для ознакомления и возможности оценки уязвимости ваших систем приведу названия некоторых утилит, используемых при описанных выше DDoS-атаках:

Наиболее популярной сегодня является flood-атака. Позже будет видна причина. Суть нападения сводится к генерации огромного количества HTTP-запросов методом GET.

Очевидно, что в целом принцип проведения DDoS-атак один: необходимо сформировать такое количество запросов к целевой системе, которое не может быть обработано и создаст перегрузку.
Учитывая рост и популярность World Wide Web сегодня большая часть DDoS-нападений приходится именно на веб-серверы. Тем более, что с помощью различных служб, предоставляемых сегодня сетью Интернет, появились дополнительные возможности для злонамеренных действий. Например, Cross-site DoS.
Также повсеместное распространение персональных компьютеров и широкополосного доступа к Интернет привело к невероятной простоте создания ботнетов - сети «зараженных» компьютеров, которые управляются централизованно и напоминают армию зомби, готовых в любой момент принять команду от хозяина и направить свои ресурсы на атаку какой-либо системы. Управление такой системой реализуется достаточно просто и уже долгое время для этой цели заслуженной популярностью пользуется IRC. Уверен, каждый слышал о Storm - крупнейшей сети инфицированных ПК, используемой для нападений. Подобные сети являются темой отдельного обсуждения, выходящей за рамки данной заметки. К слову, совсем недавно был обнаружен гигантский (самый крупный на сегодня, превосходящий по численности узлов даже Storm) ботнет, управляемый из Украины и специализирующийся на сборе финансовой информации.

§ Способы защиты и предотвращений DDoS-атак

Подобные атаки не заметить невозможно, чего нельзя сказать о том, чтобы оградиться от них. Пожалуй, полностью обезопасить компьютерную систему или сеть от DDoS-нападений нельзя, но все же есть дельные рекомендации, помогающие значительно понизить риски, сгладить последствия и увеличить оперативность реакции. Собственно, способы защиты вытекают из методики проведения. Для того, чтобы обезопасить системы от атак первых трех типов необходимо грамотное администрирование сетевых ОС с правильной настройкой таких параметров, как timeout и число допустимых соединений. Также невозможно обойтись без сетевого фильтра, способного присекать подозрительный трафик. Довольно эффективными на практике оказываются аппаратные решения. Конечно же строго необходимо следить и вовремя устанавливать обновления безопасности используемого ПО, так как именно бреши и ошибки в программах приводят к появлению возможностей создания DoS-условий. В простейшем случае, главным фактором при проведении DDoS-атаки остается пропускная способность каналов. Соотношение мощности сетевого соединения жертвы и атакующего не должно быть в пользу последнего, иначе удаленная система не будет успевать обрабатывать все запросы и разрушительного эффект последует незамедлительно.

(D)DoS и ботнеты - одно из основных моих профессиональных направлений. Что касается собственных примеров предотвращения и борьбы с атаками подобного типа, то я помимо указанных и стандартных решений я прибегал к следующим методикам:

В качестве веб-сервера на высоконагруженных проектах применяется уже достаточно известный и популярный nginx, разрабатываемый и постоянно улучшаемый Игорем Сысоевым для компании Rambler. В рамках настройки веб-сервера особо стоит уделить внимание размерам буферов. Кроме того полезно будет также фильтровать URL, возвращая страницу с ошибкой для явно поддельных запросов. Для защиты других сетевых служб (например, SSH) следует использовать технику port knocking, полезный эффект которой заключается не в явной защите от DDoS, а в снижении уровня вредного и нежелательного трафика.

§ Материалы по теме