Факультет вычислительной техники и информатики
Кафедра электронных вычислительных машин
Специальность: «Компьютерные системы и сети»
The quieter you become, the more you are able to hear...
Вопросы безопасности компьютерных систем и сетей всегда в поле моего профессионального внимания. Особобенно активно я занимаюсь исследованиями ботнетов и (D)DoS-атак. Два этих понятия тесно связаны о оба занимают первые позиции в рейтинге компьютерных угроз. Именно эти факторы стали определяющими при выборе темы для индивидуальной работы. Кроме того, имея немалый опыт в этой сфере, я бы хотел поделиться информацией об одной из самых страшных угроз в мире информационных технологий.
Атака типа «отказ в обслуживании» (denial of service, DoS) заключаются в создании таких условий, при которых вычислительная система входит в такое состояние, что пользователи не могут получить доступ к предоставляемым ресурсам либо же этот доступ сильно затруднен. Существуют различные причины возникновения DoS-условия. Суть распределенных атак типа «отказ в обслуживании» (distributed denial of service, DDoS) в простейшем случае сводится к одновременной посылке огромного числа запросов на атакуемую систему, в результате чего происходит перегрузка ресурсов и, соответственно, отказ в работе. Очевидно, данный вид компрометации компьютерных систем крайне грубый и имеет катастрофические последствия, ибо любой простой в работе вычислительных систем предприятия несет колоссальные убытки. Подобные нападения обходятся сегодня различным компаниям в миллионы долларов. Следует учесть, что это лишь официальная статистика, ведь многие предпочитают умолчивать о подобных проишествиях. Мощь подобной атаки в свое время выводила из строя таких гигантов, как NASA, eBay, Yahoo! и других.
Сегодня среди основных способов организации DDoS-атак можно выделить следующие:
SYN-атака состоит в отправке серверу поддельного сообщения SYN, которое будет содержать неверный адрес отправителя запроса TCP-соединения. Сетевым инженерам должно быть известно, что TCP-соединение устанавливается путем «трехстороннего рукопожатия» (3-way handshake, RFC 793). В кратце напомню суть:
Более эффективной по отношению к жертве является 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-нападений нельзя, но все же есть дельные рекомендации, помогающие значительно понизить риски, сгладить последствия и увеличить оперативность реакции. Собственно, способы защиты вытекают из методики проведения. Для того, чтобы обезопасить системы от атак первых трех типов необходимо грамотное администрирование сетевых ОС с правильной настройкой таких параметров, как timeout и число допустимых соединений. Также невозможно обойтись без сетевого фильтра, способного присекать подозрительный трафик. Довольно эффективными на практике оказываются аппаратные решения. Конечно же строго необходимо следить и вовремя устанавливать обновления безопасности используемого ПО, так как именно бреши и ошибки в программах приводят к появлению возможностей создания DoS-условий. В простейшем случае, главным фактором при проведении DDoS-атаки остается пропускная способность каналов. Соотношение мощности сетевого соединения жертвы и атакующего не должно быть в пользу последнего, иначе удаленная система не будет успевать обрабатывать все запросы и разрушительного эффект последует незамедлительно.
(D)DoS и ботнеты - одно из основных моих профессиональных направлений. Что касается собственных примеров предотвращения и борьбы с атаками подобного типа, то я помимо указанных и стандартных решений я прибегал к следующим методикам: