Атаки, направленные на отказ в обслуживании определённых вычислительных ресурсов, являются угрозой, способной принести компаниям прямой финансовый ущерб. Причинами DoS-атак могут быть как преднамеренные, так и неумышленные действия пользователей информационных систем, и в большинстве случаев эту угрозу можно преодолеть.


Структура распределённой DoS-атаки
Структура распределённой DoS-атаки

По оценкам комапнии Symantec (www.symantec.com), за последние 6 месяцев 2005 го года количество DDoS (Distributed Denial of Service) атак возросло на 679% по сравнению аналогичным периодом в предыдущем году. В этом году, в среднем выявляется более 1000 DDoS атак в день.

Что такое DoS и DDoS атаки

Аббревиатурой “DDoS атака” (“DoS атака”) обозначают любую атаку, результатом которой стал отказ в обслуживании клиентов даже на минимальное время отдельным компьютером (сайтом/сервером); информационной системой/подсистемой, или сетью (сегментом сети) по причине:

чрезмерного потребления сетевых ресурсов (пропускной способности канала, bandwidth);
перегрузки ресурсов сервера/компьютерной системы/сети;
сбое в работе, случившегося из-за специфического сетевого трафика.

Разница же между обычным (DoS) отказом в обслуживании и распределённым (DDoS) состоит в географии трафика: обычный DoS (трафик, приводящий к отказу) приходит с одного компьютера, распределённый — из множества.

Трафик, ставший результатом такой атаки, может быть абсолютно легитимным, источником которого могут быть обычные посетители, количество которых превышает некоторый предел. Примером такой атаки является пиковые нагрузки на серверы информагентств и других СМИ во время каких-нибудь важных событий (выборы, серьёзный теракт, природный катаклизм). Причины нарушения работоспособности этих ресурсов могут быть разными. Например, многие сайты не рассчитаны на такой трафик; сайты с мощными серверами, но низкой пропускной способностью канала доступа также могут оказаться недоступными или доступными лишь малому количеству посетителей только по причине того, что ширины коммуникационного канала (подобно “горлышко бутылки”) не достаточно для обслуживания такого количества запросов.

Проблема такого рода атак состоит в том, что их практически невозможно предотвратить.

Владелец сервера может лишь поставить аппаратный или программный механизм, способный ограничить трафик, который не позволит “уронить” сервер, предоставляя хотя бы части посетителей доступ к ресурсу.

Наиболее эффективно решить эту проблему можно на уровне интернет-провайдера, но большинство украинских компаний, предоставляющих услуги доступа в сеть, не приобретают специализированных решений для защиты от DDoS атак (DDoS Mitigation Systems), так как один блок для защиты 1 Гбит канала стоит более $8000. Кроме того, отечественные провайдеры получают дополнительную прибыль от превышения пользователем выделенного объёма трафика.

Решение также зависит от анализа рисков — ресурс может обслуживать некоторое количество запросов, а на остальные отвечать коротким ответом об ошибке, или просто игнорировать. Это наиболее простое решение: при массированной DDoS атаке система не обрушится, но и не позволит обслужить множество пользователей быть, так как системные ресурсы будут в основном заняты нелегитимным трафиком.

Распределение нагрузки между несколькими сегментами сети или серверами, лежащими в разных сегментах, может также существенно снизить нагрузки и позволит обработать большее количество запросов.

Для больших сегментов сети, сайтов со значительной внешней нагрузкой, использование специализированных решений для защиты от DDoS атак (DDoS Mitigation Systems) себя оправдывает. Защиту сервера или сегмента сети обеспечивает специализированный компьютер, использующий механизмы для борьбы с подобными проблемами.

Протоколы


Схема многоуровневой защиты от DDoS-атак
Схема многоуровневой защиты от DDoS-атак
Значительная часть DDoS атак базируется на уязвимостях в протоколах (например, IPv4, IPv6, TCP/IP, UDP/IP, ICMPv4, ICMPv6, NetBEUI, FTP). Для снижения вероятности успеха атаки с использованием недостатков протоколов эксперты рекомендуют настроить межсетевой экран таким образом, чтобы он пропускал лишь чётко определённый трафик по необходимым портам, к примеру — IPv4, ICMP, TCP/IPv4, HTTP, HTTPS, FTP, POP3, SMTP. Список TCP портов и их связь с протоколами можно посмотреть на сайте Internet Assigned Numbers Authority (www.iana.org/assignments/port-numbers)

Для решения этой задачи эксперты советуют под брандмауэр выделить отдельный компьютер (если нет возможности приобрести отдельное серверное решение, к примеру, от CheckPoint или Cisco). Обычно маломощного старого компьютера с Linux/UNIX (например, с Open BSD) хватит чтобы избежать как минимум 80% проблем, связанных с сетевыми атаками, использующими открытые порты для несанкционированного доступа и кражей интеллектуальной собственности (в том числе, с помощью шпионского ПО). Это, правда, не избавляет системного администратора от обязанности слежения за входящим и исходящим трафиком.

Также некоторые эксперты рекомендуют не полагаться на встроенный в операционную систему межсетевой экран, так как он фильтрует лишь входящий трафик, а просмотр списка заблокированных приложений затруднителен.

Обычно при настройке межсетевых экранов, сканировании сети на наличие открытых портов, обнаружении атак администраторы слишком мало внимания обращают на IPv6. Это позволяет злоумышленникам использовать IPv6 для установки троянских программ и обхода межсетевых экранов. Стоит убедиться, что межсетевой экран настроен на фильтрацию такого трафика (то есть любого трафика, который явным образом не разрешён).

Очень важно знать, что по умолчанию протокол IPv6 разрешён в Windows Mobile, Windows Vista и в некоторых Linux, к примеру в Redhat (включая Fedorа Core). Правда в Linux IPv6 реализован через туннелирование протокола IPv4, и при тотальном блокировании всего неизвестного риск подвергнуться атаке на протокол 6-й версии стремится к нулю.

Провалы

После фильтрации протоколов остаются две основные, хорошо известные проблемы: недостатки/недоработки протоколов коммуникации и ошибки программного обеспечения (и в том числе — операционной системы).

Как было уже сказано ранее, практически любой сетевой протокол может быть использован во зло. Вдобавок, во многих протоколах предрасположенность к “злу” была заложена (естественно, не специально) во время создания протоколов.

Решений у этой проблемы несколько: простые уязвимости (к примеру “Ping Of Death”) фильтруются хорошими межсетевыми экранами, более сложные уязвимости могут быть отфильтрованы только с помощью специальных серверов — DDoS prevention appliances.

Простая классификация DDoS атак

Истощение ресурсов

Использование ограничений размера таблицы соединений (TCP Connection Table), так называемая атака Naptha. В этом случае злоумышленник создаёт огромное количество запросов, которое система не в состоянии обработать.

Переполнение размера таблицы входных соединений (TCP Backlog Queue), так называемые SYN-Floods (затопление SYN пакетами), происходит как при очень большом обращении обычных пользователей, так и при “обмане” протокола (посылка TCP-SYN пакетов без последующих TCP-ACK, пакетов, подтверждающих сеанс связи).

Истощение канала связи

Inbound Floods (“входящее затопление”): слишком большое количество соединений приводит к переполнению канала связи. Причиной такой ситуации может быть атака хакеров и неправильный расчёт показателя трафик/количество пользователей, что привело к превышению предела, разрешённого системой.

Outbound Floods (“исходящее затопление”): используется “широковещательный IP” (Broadcast IP, то есть, в адресе назначения как минимум один из октетов равен 255, например, Х.Х.255.255), атакующий компьютер начинает рассылать пакеты вокруг себя. Остальные компьютеры в сети эти же пакеты рассылают дальше. Происходит “умножение-усиление” (Amplification). Бороться с этим можно лишь путём запрета широковещательных пакетов.

Протоколы: IP

Ping-Of-Death (пакет смерти), IP пакет размером больше максимально разрешённого по стандарту, т.е. более 65536 байт. Windows 95 “умрёт сразу”, но для почти всех остальных современных операционных систем эта угроза не страшна.

Маленькие пакеты, IP пакет с размером меньше минимально разрешённого по стандарту. Практически все современные операционные системы фильтруют эту угрозу.

Плохой IP- пакет. В этом разделе множество атак, среди которых общим является неоответствие стандарту:

Land attack: SRC IP == DST IP; 
неправильный заголовок IP-пакета;
неправильная опция IP-пакета (поставлена случайным образом);
некорректный адрес назначения: адрес не входит в список разрешённых, к примеру 192.168.0.0 (такой адрес зарезервирован для частных сетей) или IP, который не может быть отправлен (например. 0.2.45.6);
адрес отправителя явно не тот, каким должен быть;
ложная контрольная сумма.

Плохой ICMP- пакет. В этом разделе множество атак, среди которых общим является несоответствие стандарту протокола ICMP.
В числе таких атак — ICMP затопление: посылается слишком много ICMP пакетов и сервер не справляется (Smurf, ICMP ECHO REQUEST, ICMP ECHO REPLY, ICMP DIAG Response).

Также существует атака, при которой в ICMP пакет записывается неправильный адрес отправителя; результат — сервер пытается связаться с отправителем, которого не существует.

Кроме того, существует множество атак, использующих ICMP затопления (о них было упомянуто выше)

Плохой UDP- пакет:

в теле пакета нет данных;
размер пакета (или контрольная сумма) ложный.

Затопление пакетами UDP ECHO (атака “Fraggle”). Есть 3 типа таких атак (под одним именем), каждая из которых основывается на получении “жертвой” большого количества UDP пакетов.

Плохой TCP- пакет:

неправильный заголовок, нет данных, ложный размер пакета (контрольная сумма), неправильный флаг состояния, нет флага состояния, нет фрагментов, множественные фрагменты (teardrop), фрагмент без предшественника. Это простые атаки, которые выявляются хорошим межсетевым экраном, в котором реализовано слежение за стеком пакетов.

TCP-затопления. Как и в случае с IP, ICMP, UDP, затопления происходят путём многочисленных обращений, результатом которых является переполнение таблиц, контролирующих TCP-соединения.

Плохой IRDP- пакет. ICMP Router Discovery Protocol может быть использован для подмены таблицы маршрутизации (ОС Windows)
Атаки уровня приложений.

Существует множество различных атак (в том числе и не DDoS) направленных против определённой уязвимости в операционной системе или приложении. Защититься от таких атак достаточно сложно, если регулярно не устанавливать необходимые заплатки (“security patches”), публикуемые производителем.

Согласно статистике у программистов низкого уровня на каждые 300 строк кода приходится одна ошибка. Высококвалифицированные программисты одну ошибку допускают раз на 5000 строк. В операционных системах и во многих пользовательских программах количество строк кода измеряется миллионами.

Поставщики программного обеспечения постоянно ведут поиск уязвимостей в своих программах и выпускают заплатки. Регулярная установка обновлений позволяет устранить многие угрозы.

Защита

Постройка системы защиты от DDoS-атак требует тщательного планирования и расчёта. Необходимо взвесить риски, оценить потенциальный ущерб, который может принести компании такого рода атака, и, в зависимости от результатов, строить оборонительный рубеж. Он может быть реализован, например, на основе брандмауэра и системы предотвращения вторжений. Важно также осознавать, какие ресурсы могут оказаться под ударом, и разработать защиту этих ресурсов. Например, три года назад соответствующие службы корпорации Microsoft узнали о подготовке массированной DDoS-атаки на открытые серверы компании (был обнаружен вирус, в котором были статически записаны адреса серверов). Для решения этой проблемы служба ИТ-безопасности Microsoft сменила IP адреса серверов, на которые планировалась атака, устранив угрозу простым и эффективным способом.

Решения этой задачи могут быть такими:

балансировка (load-balancing) загруженности серверов;
создание резервной сети;
увеличение пропускной способности канала связи, и установка дополнительных серверов на входе;
приоритизация трафика (перенаправление разных видов трафик по разным каналам сети); установка одного-двух компьютеров, задача которых будет состоять исключительно в защите корпоративной сети от 90-98% DDoS атак (не требует реструктуризации ИТ-инфраструктуры).

Целью такой машины (DDoS mitigation appliance) должно быть выявление аномалий в трафике при помощи специальных алгоритмов. Проще всего, “Защитник от DDoS” является мощным межсетевым экраном, который способен фильтровать не только трафик, не соответствующий определённым правилам, но и вычленять подозрительные пакеты, которые потенциально могут является частью DDoS-атаки в соответствии с “поведенческими шаблонами”.  

Автор статьи — менеджер проектов, консультант, специалист по компьютерной безопасности Zoral Group, имеющей представительства в США, Франции и Украине.