Почему отказались работать серверы Amazon, Yahoo!, eBay и многие другие
Атаки на отказ от обслуживания (Distributed Denial of Service, DDoS) — сравнительно новая разновидность компьютерных преступлений. Но распространяется она с пугающей скоростью.
Сетевые атаки на отказ от обслуживания заметно участились после 1996 года, когда на Web-серверы обрушились потоки SYN. Winnuke, teardrop, Land, bonk, snork и smurf — вот лишь некоторые из средств реализации атак на отказ от обслуживания, которые выводят из строя системы или засоряют сети. Мало того, что сами по себе эти атаки довольно неприятны, теперь они могут инициироваться одновременно с сотен удаленно управляемых атакующих серверов.
На организованных хакерами узлах можно найти три инструментальные средства для атак DdoS — trinoo, Tribe FloodNet (TFN) и TFN2K. Совсем недавно появилось еще одно — stacheldraht (что в переводе с немецкого означает «колючие провода»), сочетающее в себе наиболее неприятные качества TFN и trinoo.
Массовые атаки
При обычной сетевой атаке на отказ от обслуживания хакер использует инструментарий для посылки пакетов на выбранную им систему. Эти пакеты должны вызвать переполнение и сбой на целевой системе и спровоцировать ее перезагрузку. Довольно часто адрес отправителя таких пакетов искажается, в силу чего обнаружить реальный источник атаки оказывается крайне затруднительно. Изменить адрес отправителя ничего не стоит, поскольку от жертвы не требуется ответных сообщений.
Организация атаки DDoS по-прежнему под силу одному хакеру, но эффект такой атаки значительно усиливается за счет использования атакующих серверов, известных как «агенты». Эти агенты, которых в trinoo называют «демонами» (daemon), а в TFN «серверами» (server), удаленно управляются хакером. Получить представление о масштабах подобной атаки можно хотя бы на таком примере: в нападении на один сервер университета штата Миннесота в различное время было согласованно задействовано более 1000 систем. Атака не только привела к отключению этого сервера, но и блокировала доступ ко всей сети университета, которую связывали с Internet два соединения, эквивалентные каналам T3.
Перед тем как начать атаку DdoS, хакер должен проделать предварительную работу, в том числе получить доступ с правами корня (root) или администратора на максимально возможное число систем. До сих пор в качестве агентов при атаке DDoS использовались системы с Solaris и Linux. Для получения доступа проводится поиск уязвимых мест систем с помощью таких сканирующих инструментальных средств, как sscan. Затем хакер, используя соответствующий сценарий, проникает на каждую из систем и выполняет установку серверного программного обеспечения.
Дейв Дитрих из университета штата Вашингтон отмечает в своем описании trinoo, что для такой инсталляции часто применяется команда удаленного копирования (rcp). Сервер, на котором производится установка программного обеспечения, станет еще одной жертвой взлома, и внезапное увеличение частоты применения команды rcp обычно служит признаком того, что система не только взломана, но и может использоваться для проникновения на многие другие.
Как только установлен и запущен атакующий сервер — все готово к началу атаки. Чем больше вовлеченных систем, тем массивнее будет атака.
Удаленное управление
TFN и trinoo используют различные подходы к удаленному управлению. В обоих случаях хакер применяет клиента для передачи команд, управляющих агентами. Ядро trinoo, называемое обработчиком, ждет сигнала на порту 27665/TCP для организации соединения, устанавливая его только после того, как передан соответствующий пароль (в версии по умолчанию это betaalmostdone). Как только хакер аутентифицирован обработчиком, он может послать команды всем агентам о начале передачи потоков UDP на одну или несколько целевых систем в течение известного периода времени (от 1 до 2000 секунд). Адреса отправителя пакетов trinoo не искажаются, в силу чего определить, какие системы являются агентами, довольно просто. Единственная трудность состоит в том, что их может оказаться очень много.
TFN использует ответные сообщения Internet Control Message Protocol (ICMP) (пакеты того же типа пересылаются и в ответных сообщениях команды Ping) для взаимодействия с клиентами и агентами. Различным командам присваиваются различные кодовые значения; например, 345 означает старт потока SYN. Инструментарий TFN поддерживает несколько разновидностей атак на отказ от обслуживания: потоки SYN, потоки UDP, потоки ICMP и smurfing. Поскольку сервер TFN работает как корневой, адреса отправителя могут быть искажены (скорее всего, так и будет сделано), чтобы затруднить поиск источников атаки.
TFN2K появился в декабре 1999 года и предусматривает надежный уровень шифрования (алгоритм CAST-256) при управлении пакетами. Этот метод передачи управляющих сообщений был усовершенствован с тем, чтобы разрешить искажение адресов отправителей и передачу пакетов различных типов. Агент TFN2K анализирует сетевой интерфейс и проверяет приходящие из адреса клиентской сети данные, которые он может дешифровать в корректные команды. Все это еще больше усложняет выявление и отслеживание обработчика. Обработчику не передаются никакие ответные сообщения, поэтому он делает заключение, что агент TFN отвечает исключительно по собственному усмотрению.
Инструментарий stacheldraht сочетает в себе возможности TFN и trinoo. Как и TFN, stacheldraht способен искажать адреса отправителей. Кроме того, он может проводить тестирование, дабы выяснить присутствие фильтрации RFC 2267, попытавшись передать пакет с адресом отправителя 3.3.3.3. Если тот блокируется, адреса отправителей по-прежнему будут искажены, но только в последних восьми битах адреса. Stacheldraht содержит возможность модернизации, которая позволяет автоматически заменить агентов на новые версии и запустить их. Stacheldraht использует зашифрованные пакеты TCP (аналогично trinoo) для взаимодействия между клиентами (интерфейс хакера) и обработчиками. Он использует зашифрованные пакеты TCP или ICMP для связи с агентами. Порты по умолчанию для клиентов и агентов — 16660 и 65000 соответственно.
Остановить невозможно
Основными источниками и объектами атак DDoS до сих пор были некоммерческие узлы. (Статья была написана до серии нападений, случившихся в первых числах февраля). Большинство компаний имеют межсетевые экраны, которые помогают предотвратить проникновение на узлы с целью их использования для распределения агентов или в качестве хостов для самих агентов. Имейте в виду, что плохо сконфигурированный межсетевой экран равносилен его отсутствию, поэтому сам факт его установки вовсе не гарантирует защиту вашего узла.
Если атака DDoS началась, остановить ее очень сложно. Пакеты, появляющиеся на вашем межсетевом экране, могут здесь блокироваться, а могут столь же легко переполнить вход вашего Internet-соединения. Если адреса отправителей этих пакетов не были искажены, можно попытаться связаться с задействованными системами (которых может быть несколько сотен по всему миру) и попросить их отключить агентов. Если же адреса искажены, то вы не узнаете, действительно ли они соответствуют адресам отправителей пакетов, до тех пор, пока не разыщете несколько мнимых отправителей (если только выбранные адреса не были адресами RFC 1918).
Теперь нетрудно представить себе, каково стать объектом нападения одновременно сотен хакеров.
Предотвращение
Из-за огромного числа систем, вовлеченных в атаки DdoS, попытки прекратить эти атаки практически обречены на провал. Однако существуют превентивные меры, способные вообще не допустить подобных нападений. Главное — учесть, что атаки начинаются с поиска тысяч уязвимых систем, подключенных к Internet, и последующего проникновения на них. Если эти системы обновить, проникновение можно просто предотвратить.
Наконец, можно сделать так, чтобы сети не становились источником пакетов с искаженными адресами отправителя. RFC 2267 описывает методику для фильтрации на право доступа, то есть фильтрации пакетов при входе в сеть так, чтобы преодолеть маршрутизаторы могли только пакеты с легальными адресами отправителя. Остановка всех пакетов с искаженными адресами не предотвратит подобной атаки, но навести порядок после ее завершения будет намного проще.
Механизм атак на отказ от обслуживания
Организация атаки DDoS по-прежнему под силу одному хакеру, но эффект такой атаки значительно усиливается за счет использования атакующих серверов, известных как «агенты»
Ресурсы
В Internet можно найти следующие документы, посвященные атакам на отказ от обслуживания
- CERT/CC Denial of Service http://www.cert.org/tech_tips/ denial_of_service.html содержит общий обзор атак, целью которых является сделать невозможным доступ жертвы (жертв) к определенным ресурсам
- ICSA.net http://www.icsa.net/ содержит раздел по атакам на отказ от обслуживания, которые вызвали останов нескольких ведущих Web-узлов в феврале 2000 года
- Пользуясь хакерским словарем по адресу http://www.discovery.com/area/technology/ hackers/glossary.html, можно окончательно убедиться в грозном значении таких терминов, как, например, «спагетти-код», а также узнать, как сами хакеры называют наиболее опасных компьютерных вандалов — «кракеров»