Эта атака известна как бомбежка почтой, и она весьма эффективна. Отправьте кому-нибудь достаточное количество почтовых посланий, и его почтовый сервер будет принимать почту до тех пор, пока не «захлебнется». Наилегчайший путь сделать это – подписать жертву на тысячи почтовых рассылок. На дисках жертвы может не остаться места, сетевое подключение может перестать работать, или компьютеры могут прийти к аварийному отказу. И если вы замаскируете происхождение потока электронной почты, никто вас не поймает.
Есть другие нападения, приводящие к отказу в обслуживании. Некоторые нацелены на компьютеры, подобно только что описанному нападению на сервер электронной почты. Другие ориентированы на маршрутизаторы. Некоторые настроены на вебсерверы. Основная идея – та же самая: завалить цель таким большим количеством хлама, что он остановит ее работу. WinNuke может привести к аварийному отказу компьютеров с операционной системой Windows 95 и более ранней. Одиночное нападение в Интернете в апреле 1999 года вызвало сбой 6000 компьютеров с Windows 95.
Иногда может быть трудно отличить нападение, приводящее к отказу в обслуживании, от неправильных действий. Представьте себе городские магистрали. В нормальное время по ним можно ехать быстро. В часы пик там много заторов. Во время демонстраций они вообще закрыты. В 1999 году демонстрация против Всемирной торговой организации парализовала движение в центре Сиэтла, что, несомненно, можно рассматривать как атаку типа «отказ в обслуживании». Несколько раньше, когда пилоты American Airlines стали сказываться больными намного чаще обычного и у компании возникли проблемы с обслуживанием рейсов, это было менее очевидной разновидностью этой атаки. В 2000 году после выхода в эфир специальной телевизионной программы «Кто хочет выйти замуж за мультимиллионера» веб-сайты телеканала были сокрушены наплывом желающих войти и зарегистрироваться для участия в шоу. Было ли это нападением, приводящим к отказу в обслуживании?
Некоторые исследователи предложили средства защиты, вынуждающие клиента производить длительные вычисления, прежде чем он получит возможность соединения. Идея состоит в том, что если клиент должен потратить время на вычисления, то он не сможет «затопить» адресата многочисленными соединениями. Это хорошая идея, но она не будет работать против распределенных нападений типа «отказ в обслуживании», о чем мы поговорим в следующем разделе этой главы.
Некоторые полагают, что всему виной недостаточная аутентификация в Интернете. Это утверждение бессмысленно. Нападения типа «отказ в обслуживании» причиняют вред тем, что присылают пакеты; будут ли пакеты аутентифицированы или нет, никакого значения не имеет. Обязательная аутентификация никак не сможет предотвратить такие нападения или помочь в идентификации нападающих. Было бы иначе, если бы аутентификация могла быть проверена в каждой точке Сети. Это привело бы к изменениям в способе работы Интернета и значительно уменьшило бы пропускную способность сетей: вместо простой маршрутизации пакетов все коммутаторы и маршрутизаторы должны были бы еще аутентифицировать их.
Здесь может помочь крупномасштабная фильтрация сети интернет-провайдерами; если сеть в состоянии заблокировать нападение типа «отказ в обслуживании», оно никогда не достигнет цели. Здесь аутентификация может оказаться полезной. Но фильтрация интернет-провайдерами потребует больших усилий и значительно уменьшит сетевую пропускную способность. Подобным образом повсеместное использование коммутаторов и маршрутизаторов Интернета, в работу которых были бы внесены некоторые изменения, способствовало бы решению этой проблемы: они могли бы отказаться пересылать пакеты, которые явно подделаны. И опять-таки, это потребует значительных изменений.
И наконец, несмотря ни на что, с нападениями, которые попросту заваливают адресата потоками информации, ничего нельзя поделать. Некоторые нападения основываются не только на использовании лавинного эффекта: они также эксплуатируют определенные слабые места в защите; и они могут быть предотвращены, если будут заблокированы эти уязвимые точки. Но если у нападающего достаточно мощный «пожарный брандспойт», он может «затопить» свою жертву.
Нападения, приводящие к отказу в обслуживании, не являются вторжениями. Они не затрагивают данных веб-сайтов. Эти нападения не могут привести к завладению номерами кредитных карт или являющейся частной собственностью информацией. С их помощью нельзя перевести деньги с банковского счета или торговать акциями от чужого имени. Нападающие не в силах извлекать выгоду из своих нападений сиюминутно. (Они могут внезапно продать акции и после этого напасть на компанию.)
Это не говорит о том, что такие нападения не реальны или они не имеют значения. Для большинства крупных корпораций самый большой риск – это возможность потери дохода или репутации. И то и другое может быть изящно осуществлено при помощи блистательного нападения, приводящего к отказу в обслуживании. А если речь идет о компаниях, в режиме реального времени оперирующих данными, имеющими важное значение для решения критических задач или от выполнения которых может зависеть чья-то жизнь, нападения типа «отказ в обслуживании» буквально могут стать опасными для жизни людей.
Распределенные нападения типа «отказ в обслуживании»
Распределенные нападения, приводящие к отказу в обслуживании, – это поистине опасная разновидность атак такого типа. Автоматические инструментальные средства для этих нападений были выпущены в 1999 году. Университет Миннесоты стал первой целью в августе того же года, а поток высококлассных нападений в начале 2000 года привел к тому, что сообщения о них попали на первые полосы всех газет.
Эти нападения точно такие же, как и традиционные нападения типа «отказ в обслуживании», только на сей раз нападение не имеет единственного источника. Нападающий сначала внедряется через Интернет в сотни или тысячи незащищенных компьютеров, называемых «зомби», и устанавливает программу атаки. После этого он координирует все эти машины для одновременного нападения. Поскольку цель подвергается нападению сразу из многих мест, ее традиционная защита не работает, и она падает «замертво».
Сказанное можно проиллюстрировать на примере доставки пиццы: Алисе не нравится Боб, и она обзванивает сотни компаний, доставляющих пиццу на дом, и просит доставить пиццу Бобу домой в 11 часов утра. В 11 часов подъезд Боба заполнен сотней разносчиков пиццы, которые требуют от него оплаты доставки. Бобу кажется, что за ним охотится мафия пиццы, но ее разносчики тоже жертвы. Настоящий же виновник происшествия никому не будет известен.
От этой атаки защититься невероятно сложно, если вообще возможно. При традиционном нападении, приводящем к отказу в обслуживании, компьютер жертвы может оказаться способным выяснить, куда ведут следы, и закрыть соответствующие соединения. При распределенном нападении такого единственного источника нет. Компьютер может закрыть все соединения, кроме заслуживающих доверия, но это не подходит для открытого сайта.
В последние годы проводилось несколько научных конференций по проблеме распределенных нападений типа «отказ в обслуживании», и по общему мнению никакой глобальной защиты от них не существует. Отчасти помогает непрерывный контроль сетевого подключения, поскольку дает возможность переключаться на дублирующие серверы и маршрутизаторы. Иногда отдельные ошибки, которыми воспользовались для нападения, могут быть исправлены, но многие неисправимы. При разработке Интернета не были предусмотрены меры противодействия этому классу посягательств. Со временем это нападение, вероятно, станет еще более опасным.
Современные средства, обеспечивающие распределенные атаки типа «отказ в обслуживании», требуют от нападающего способности внедриться в большое количество машин, установить зомбирующие программы, принять меры к тому, чтобы эти программы не были обнаружены, и скоординировать нападение… и на каждом этапе он должен оставаться не пойманным. В качестве новейших инструментальных средств могут использоваться вирусы или троянские кони. Они могут распространить «зомбирующие» программы и затем автоматически начать нападение с помощью некоего кодового слова в открытом форуме.