DoS-атаки. Фильтрация на
входе сети: Отражение атак DoS, которые используют подмену
IP-адреса отправителя (RFC-2827)
Зам. зав.
кафедры "Телекоммуникационные сети и системы" МФТИ
Зам.зав. кафедры Информатики ФНТИ МФТИ
Нач. лаб. Инфокоммуникационных технологий
Института Теоретической и Экспериментальной Физики (semenov@itep.ru)
1. Введение
Целью DoS (Denial of
Service) атаки является блокировка каких-то ресурсов
атакуемого, чаще всего это входная полоса пропускания, с
целью ограничения доступа клиентов к серверу, узлу или сети
жертвы. В качестве объекта атаки помимо полосы пропускания
может быть вычислительная мощность процессора или
информационные ресурсы операционной системы.
Как правило, атакер пытается
организовать дело так, чтобы трафик на входе жертвы
превосходил его (атакера) выходной трафик. Решить эту задачу
он может разными методами. Наиболее распространенным
является способ массового взлома машин и использования их
для атаки (DDoS, смотри "The Internet Protocol Journal" -
Volume 7, Number 4, "Distributed Denial of Service Attacks",
Charalampos Patrikakis, Michalis Masikos, and Olga Zouraraki).
Другим приемом является умножение воздействия за счет других
сетевых устройств, например, DNS-серверов (ресурсные
запросы) или маршрутизаторов (использование
широковещательных IP-адресов). Возможно совмещение
нескольких методов DoS-атаки (см. также
материалы университета Вашингтона).
Случайное
сканирование. В этом подходе
машина, зараженная вредоносным кодом (это может быть
машина атакера или другая взломанная им ранее ЭВМ),
сканирует определенную IP-область, выбирая адреса
случайным образом, и пытается выявить уязвимую машину.
Если такая обнаружена, делается попытка ее взлома и, в
случае успеха, размещает там свой вредоносный код. Этот
метод создает достаточно большой трафик, так как одни и
те же адреса сканируются помногу раз. Преимуществом
такого способа является достаточно быстрое заражение
большого числа машин и создание впечатления, что
сканирование происходит отовсюду. Однако высокий уровень
трафика препятствует длительному продолжению атаки.
Сканирование по
списку. Задолго до начала
сканирования атакер подготавливает достаточно обширный
список потенциально уязвимых машин. Такой список может
готовиться достаточно долгое время, чтобы не привлечь к
этому внимания служб безопасности. Сканирование
производится только для машин их этого списка. Когда
обнаружена уязвимая машина, на нее устанавливается
соответствующая программа, а список сканирования делится
пополам. Вновь взломанной машине поручается сканирование
машин одной из частей списка. Каждая из машин продолжает
сканирование пока не сможет найти уязвимую ЭВМ. После
этого список снова делится и процедура продолжается.
Таким образом, число машин, участвующих во взломах,
лавинообразно увеличивается.
Топологическое
сканирование. При
топологическом сканировании используется информация,
содержащаяся в машине жертвы, для поиска новых
потенциальных жертв. При этом на диске взломанной машины
ищутся URL, которые можно попробовать атаковать. Этот
метод может оказаться даже несколько более эффективным,
чем сканирование по списку.
Сканирование
локальной субсети. Этот вид
сканирования работает за firewall. Взломанная машина
ищет потенциальные жертвы в своей собственной локальной
сети. Эта техника может использоваться в сочетании с
другими способами атак, например, взломанная машина
может начать сканирование локальной сети, а когда список
таких машин будет исчерпан, переключиться на
сканирование других сетевых объектов.
Перестановочное
сканирование. При этом типе
сканирования все машины совместно используют общий
псевдослучайный перестановочный список IP-адресов. Такой
список может быть сформирован с помощью блочного
32-битного шифра с заранее заданным ключом. Если
взломанная машина была инфицирована при сканировании по
списку или из локальной сети, она начинает сканирование,
начиная со своей позиции в списке перестановок. Если же
она оказалась скомпрометирована в процессе
перестановочного сканирования, она начинает сканирование
с псевдослучайной позиции списка. В случае если она
встретит уже инфицированную машину, она выбирает новую
псевдослучайную позицию в списке перестановок и
продолжает работу с этой точки. Распознавание
инфицированных машин происходит за счет того, что их
отклики отличаются от откликов невзломанных ЭВМ.
Сканирование прекращается, если машина встретит заданное
число инфицированных машин. После этого выбирается новый
ключ перекодировок и начинается новая фаза сканирования.
Факт такого сканирования труднее детектировать.
Централизованная рассылка. В
этой схеме после выявления уязвимой системы, которая
должна стать зомби, выдается команда в центр рассылки
для копирования вредоносного кода (toolkit) во
взломанную машину. После копирования этого кода
осуществляется инсталляция вредоносной программы на
машине жертвы. После инсталляции запускается новый цикл
атак с уже захваченной машины. Для передачи кодов
программ могут использоваться протоколы HTTP, FTP и RPC.
Доставка от
атакера (Back-chaining). В
этой схеме все вредоносные коды доставляются в
захваченную машину из ЭВМ атакера. В частности, средства
атаки, установленные у атакера, включают в себя
программы доставки вредоносных кодов жертве. Для этой
цели на машине-жертве может использоваться протокол
TFTP.
Автономная
рассылка. В этой схеме
атакующая машина пересылает вредоносный код в
машину-жертву в момент взлома.
После того как армия
атакующих машин сформирована, атакер определяет вид и объект
атаки и ждет удобного момента времени. После начала атаки
все машины этой армии начинают слать пакеты по адресу
машины-жертвы. Объем трафика при этом может быть столь
велик, что может быть заблокирован даже шлюз сети, где
расположена машина-жертва. Сейчас в Интернет имеется около
дюжины программ автоматизации процесса на всех фазах атаки.
Причем для пользования ими не требуется лицензии :-)
Работа машин зомби может быть
автономной или синхронизоваться атакером (рис.1).Для того
чтобы скрыть свой IP-адрес атакер фальсифицирует адрес
отправителя. Помимо описанной выше разновидности DDoS-атаки
существует разновидность DRDoS (Distributed Reflector
DoS).
Рис. 1.
DDoS-атака
DRDoS-атаки более вредоносны
и здесь еще труднее выявить первоисточник атаки, так как в
процесс вовлечено больше машин (см. рис. 2).
Apache2.
Эта атака нацелена против Apache Web-сервера, где клиент
посылает запрос с большим числом HTTP-заголовков. Когда
Web-сервер получает слишком много таких запросов, он
может не справиться и выйти из строя.
ARP Poison.
Атака протокола ARP Poison требует, чтобы атакер имел
доступ к локальной сети жертвы. Атакер вводит в
заблуждения машины данной LAN путем введения неверных
MAC-адресов для уже существующих IP адресов. Это может
быть реализовано атакером с помощью следующих действий.
Осуществляется мониторинг запросов "arp who-has". Как
только такой запрос получен, атакер пытается реагировать
на него как можно быстрее с целью фальсификации
МАС-адреса.
Back.
Эта атака предпринимается против apache Web-сервера,
который блокируется большим потоком запросов, содержащих
большое число символов ( / ) в описании URL. Пытаясь
обработать эти запросы, сервер оказывается не способным
обслужить другие нормальные запросы.
CrashIIS.
Жертвой атаки CrashIIS обычно является Microsoft Windows
NT IIS Web-сервер. Атакер посылает неверно
сформированный GET-запрос, который выводит из строя
Web-сервер.
DoSNuke.
В этом типе атак жертвой является ОС Windows NT, которая
перегружается "out-of-band" данными (MSG_OOB). Пакеты,
посылаемые атакующими машинами, помечаются флагами "urg"
из-за флага MSG_OOB. В результате, объект атаки
перегружается и у машины-жертвы будет выведен "голубой
экран смерти ".
Land.
При атаках Land, атакер посылает жертве пакет,
содержащий TCP SYN, где IP-адреса отправителя и
получателя идентичны. Такой пакет полностью блокирует
работу системы жертвы.
Mailbomb.
При атаке Mailbomb (почтовая бомба) почтовая очередь
жертвы перегружается огромным числом сообщений, вызывая
блокировку ее работы.
SYN Flood.
Атака SYN flood происходит при диалоге установления
TCP-соединения. В ходе диалога установления связи клиент
запрашивает соединения, посылая серверу пакет TCP SYN.
После этого сервер посылает клиенту пакет SYN/ACK и
помещает запрос в очередь. Наконец, клиент подтверждает
получение пакета SYN/ACK. Если происходит атака, атакер
посылает жертве огромное число пакетов TCP SYN, вынуждая
ее открыть соответствующее число TCP-соединений и
реагировать на них. Далее атакер не выполняет третьего
шага, не давая жертве воспринять любое соединение, так
как очередь полуоткрытых TCP соединений переполнена.
Ping of Death.
В атаках Ping of Death атакер формирует пакет, который
содержит более 65,536 байт, что больше предела,
определенного в IP-протоколе. Этот пакет вызывает
различного рода разрушения в машине, его получающей,
иногда это вызывает rebooting.
Process Table.
Эта атака эксплуатирует некоторые сетевые сервисы,
формирующие новый процесс при установлении очередного
TCP/IP соединения. Атакер пытается сформировать столько
незавершенных соединений с машиной жертвы, что жертва
перегружается запущенными процессами и не может
адекватно реагировать на другие запросы. При этом
оказывается перегруженным ЦПУ машины.
Smurf Attack.
В атаке "smurf" жертва перегружается большим числом
пакетов-откликов ICMP. Атакер посылает огромное число
ICMP "echo-запросов" по широковещательным адресам многих
субсетей. Эти пакеты содержат IP-адрес жертвы в качестве
адреса отправителя. Каждая машина субсети пошлет ICMP
отклик машине-жертве. Атаки Smurf достаточно опасны, так
как они являются распределенными. Для противодействия
этим атакам следует запретить вход внешних пакетов,
IP-адрес назначения которых является широковещательным.
Следует также не пропускать через шлюз внешние пакеты с
адресом отправителя из LAN. В высшей мере эффективным
является блокировка передачи в Интернет пакетов из
локальной сети с адресами отправителя,
несоответствующими локальным адресам. Это отвечает
базовым принципам поведения участников сети Интернет -
не вредить и заботиться об интересах других клиентов.
SSH Process
Table. Как и атака Process
Table, эта атака осуществляет сотни соединений с машиной
жертвы с привлечением протокола SSH, не завершая
процедуру соединения. Таким путем демон машины жертвы
оказывается вынужден запустить так много SSH-процессов,
что ресурсы ЭВМ оказываются исчерпанными.
Syslogd.
Атака Syslogd обрушивает работу программы syslogd на
сервере Solaris 2.5 путем посылки ей сообщения с
некорректным IP-адресом отправителя.
TCP Reset.
В атаках TCP Reset, сеть мониторируется с целью
выявления запросов TCP-соединений с машиной-жертвой. Как
только такой запрос обнаружен, атакер посылает жертве
фальсифицированный пакет TCP RESET и вынуждает ее
разорвать TCP-соединение.
Teardrop.
Пока пакет путешествует от отправителя до машины
получателя, он может быть разделен на небольшие
фрагменты. Атака Teardrop создает поток IP-фрагментов с
чрезмерно большими значениями поля смещение (offset).
Машина места назначения, которая пытается восстановить
эти фальсифицированные фрагменты может блокироваться или
даже осуществить операцию перезагрузки.
UDP Storm.
В протоколе UDP, сервис генерации символов ("chargen")
формирует последовательность каждый раз, когда получает
UDP-пакет, в то время как сервис эхо реагирует на каждый
полученный символ. Используя эти два вида сервиса атакер
посылает пакеты с фальсифицированным адресом отправителя
sends a packet with the source spoofed to be that of the
victim to another machine. Затем, echo-сервис первой
машины откликается на данные этого пакета, посылая
отклик машине жертвы, а машина-жертва в свою очередь
реагирует аналогичным образом. Таким образом создается
постоянный бесполезный трафик, загружающий сеть.
Разработка средств
детектирования и защиты достаточно сложна. Разработчики
должны думать заранее о каждой возможной ситуацией, так как
любая слабость может быть использована во вред. Среди
трудностей можно назвать:
DDoS-атаки
перегружают машину-жертву пакетами.
Это означает, что жертвы не могут контактировать ни с
кем, для того чтобы попросить помощи. Следовательно,
любое ответное действие возможно только в случае, когда
атака детектирована заранее. Но можно ли детектировать
атаку раньше? Обычно трафик возрастает внезапно и без
предупреждения (см. CERT on SMURF Attacks:
http://www.cert.org/advisories/CA-1998-01.htm, CERT on
TCP SYN Flooding Attacks:
http://www.cert.org/advisories/CA-1996-21.html, CERT
TRIN00 Report:
http://www.cert.org/incident_notes/IN-99-07.html#trinoo).
По этой причине механизм реакции должен быть быстрым.
Любая попытка фильтрации
входного трафика означает, что и легальный трафик может
пострадать. С другой стороны, если число зомби
исчисляется тысячами, трафик поглотит всю входную полосу
и любая фильтрация станет бессмысленной.
Атакующие пакеты обычно
имеют фальсифицированные IP-адреса. По этой причине
сложно отследить источник атаки. Более того,
промежуточные маршрутизаторы или сервис-провайдеры могут
отказаться сотрудничать при решении этой проблемы. При
фальсификации адресов атака может происходить с очень
большого числа машин и необязательно все они являются
зомби.
Механизмы защиты должны
работать в разнообразной программной среде. Разработчики
должны сделать их платформонезависимыми (см.
http://falcon.jmu.edu/~flynngn/whatnext.htm).
Использование ACL и репутационных списков в этом случае
неэффективно.
Исходя из безусловного права личности на собственную безопасность всем предоставляется
право свободного копирования, распространения
и издания этих материалов, как в полном объеме, так и по частям в любых комбинациях!