Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700525.doc
Скачиваний:
4
Добавлен:
01.05.2022
Размер:
31.03 Mб
Скачать

1.1. Сущность флуд-атак

Флуд (англ. flood — наводнение, затопление) — сообщения в интернет-форумах и чатах, занимающие большие объемы или не несущие никакой полезной информации [75, 80, 84].

В соответствии с вышеприведенным определением, флуд-атаки – это атаки, при реализации которых жертве отправляется большой объем информации, не несущей в себе никакой пользы для получателя.

Согласно статистике Prolexic Technologies, за последние два года средняя мощность флуд-атак возросла на сотни процентов [83]. Тенденция по возрастанию мощности и частоты подобных атак наблюдается на протяжении последних нескольких лет [75-86]. Их многообразие можно свести к двум множествам [82, 86]:

  1. Атаки, направленные на приведение жертвы в недоступное состояние.

К данному типу относится широкое множество DoS/DDoS-атак (DNS-flood, HTTP-flood и др.) которые в настоящее время набирают все большую популярность в силу своей эффективности.

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

Особенностью данных атак является то, что при низкой интенсивности отправки данных они могут использоваться для: отправки фиктивных сообщений, проведения фишинговых атак, распространения нежелательной рекламы и др. Однако, если увеличить интенсивность отправки вредоносных сообщений, поток информации превышает пропускную способность физических устройств жертвы, что приводит ее в недоступное состояние. Наиболее яркими представителями данной группы атак являются: Email-flood, IM-flood и SMS-flood [79-81].

Рассмотрим данные группы более подробно.

1.2. Атаки, направленные на приведение жертвы в недоступное состояние

Одним из наиболее ярких представителей данной группы атак является атака типа «DNS-flood», так как при ее реализации зачастую достигаются рекордные по силе DDoS-атаки [76-78].

Рассмотрим данную группу атак на ее примере.

DNS-flood реализуется с помощью DNS-серверов, которые используются для трансляции доменных имен в IP-адреса и обратно.

Рассмотрим более подробно систему получения информации о доменах DNS.

Каждый хост в сети обладает уникальным IP-адресом, некоторые из них обладают также доменным именем. Также конкретный хост может иметь несколько IP-адресов (у конкретно взятого интерфейса хоста свой адрес или же несколько интерфейсов хоста обладают одним адресом), как и на отдельном IP-адресе может быть зарегистрировано несколько доменных имен.

На заре сети Интернет задача распределения уникальных идентификаторов и имен хостов решалась посредством ведения списков, включающих все компьютеры в сети, копии которых хранились на каждом из хостов, входящих в сеть. Однако, по мере увеличения количества компьютеров в сети Интернет, возникли проблемы, связанные с увеличением общего количества данных списков, которые необходимо было синхронизировать, что приводило к существенным временным затратам и становилось малоэффективным. На смену данной неудобной схеме была предложена структура имен – DNS. Отличалась она от предыдущей тем, что структура имен и адресов хостов в сети стала иерархической. Основанием данной иерархической структуры имен является точка, так называемый «корень дерева», который един для всех доменов [15, 44, 87].

Как правило, при вводе URL, точка в конце адреса не ставится, однако она используется в описаниях DNS. Здесь точку ставить необходимо. Ниже корня лежат домены первого уровня (зоны). Их немного — com, net, org, mil, biz, info, gov (есть еще несколько) и домены государств, например, ru. Еще ниже находятся домены второго уровня, например, bijid.ru. Еще ниже — третьего и т.д. Уровни разделяются точками [87].

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

Для DNS запроса и для DNS отклика используется одинаковый формат.

Сообщение содержит фиксированный 12-байтный заголовок, за которым следуют четыре поля переменной длины [77].

Имя запроса (query name) это искомое имя. Оно представляет собой последовательность из одной или нескольких меток. Каждая метка начинается с 1-байтового счетчика, содержащего количество следующих за ним байт. Имя заканчивается байтом равным 0, который является меткой с нулевой длиной. И является, в свою очередь, меткой корня. Каждый счетчик байтов должен быть в диапазоне от 0 до 63, так как длина метки ограничена 63 байтами [77].

У каждого вопроса есть тип запроса (query type), а каждый отклик имеет тип (type). Существует около 20 различных значений, некоторые из которых в настоящее время уже устарели [77].

Согласно документам RFC-1034 и RFC-1035 возможно выделить несколько типов DNS-серверов [87].

По типу откликов на запрос к системе доменных имен их можно подразделить на неавторитативные и авторитативные. Отличаются они типом возвращаемого отклика. Авторитативный отклик возвращается сервером, ответственным за зону, в которой находится информация, необходимую пользователю, а неавторитативный отклик возвращается сервером, не отвечающим за зону, в которой находится пользователь [77, 87].

Также авторитативный отклик вернуть могут либо первичный, либо вторичный DNS-серверы зоны, которые выделяются при регистрации домена в сети, причем вторичных серверов для домена может быть и несколько [77, 80].

Первичный сервер считывает описание доменной зоны, с дисковой памяти хоста и, в соответствии с ней, отвечает на запросы клиента. Описание зоны первичного DNS-сервера является первичным, так как оно изначально задается администратором зоны вручную. Остальные серверы копируют клиентскую информацию с первичного сервера. Первичный сервер задается один на конкретную зону [77, 80].

Вторичные серверы также являются ответственными за определенную доменную зону. Предназначены вторичные серверы для резервного хранения данных первичного сервера доменных имен на случай выхода его из строя. Также, использование вторичных DNS-серверов позволяет распределить нагрузку между первичным и вторичными серверами. Вторичный сервер настраивается для работы с конкретно взятым первичным DNS-сервером и, в момент запуска, копирует данные с первичного сервера. При изменении данных на первичном сервере, необходимо их обновить и на вторичном сервере [80, 87].

В силу широкой распространенности системы DNS возникли и атаки с использованием серверов, входящих в ее состав, наиболее опасными из которых являются атаки типа «DNS-flood».

Атаки типа «DNS-flood» эволюционировали из обычных DoS/DDoS-атак, для эффективности которых требовалось создать достаточно большое количество запросов (трафика) в сети. DNS-flood атаки, напротив показывают, что сложные их виды могут достигать высокой эффективности при небольшом количестве передачи злоумышленником информации в сети за счет использования DNS-серверов [75, 78, 81].

Основа данных видов атак - простой DNS-флуд: множество хостов злоумышленника посылает массированный поток запросов  на целевой DNS-сервер с ложным SRC IP (IP-адрес источника запроса). Стандартный компьютер способен генерировать 1000 запросов в секунду, стандартный DNS-сервер способен обрабатывать 10000 запросов в секунду. Путём вычислений, приходим к выводу: 10 обычных домашних (или не совсем домашних) компьютеров вполне достаточно для выведения DNS-сервера из строя. Притом вычислить злоумышленника будет очень непросто [79, 82].

Атака типа Garbage-DNS основывается на постоянно открытом 53 порту (стандартному порту DNS, иногда используется 80-ый). Схема атаки сводится к отправке злоумышленником (с множества хостов) больших (свыше 1500 байт) сетевых пакетов (не обязательно DNS). Таким образом,  всё сводится к обычному DDoS, но на DNS-порт. Преимущество над обычным DDoS состоит в том, что 53-й порт (DNS-порт) всегда открыт в любых организациях, так как необходим для работоспособности DNS-системы [84].

Рекурсивная DNS-атака сводится к выявлению множества несуществующих в кэше DNS-сервера жертвы имён (возможно, фальшивых) и последующая отправка DNS-запросов с именами из этого множества. DNS-сервер в итоге вынужден пересылать подобные запросы на все соседние и вышестоящие DNS-сервера с целью получить IP заказанного хоста. В итоге, на каждый запрос сервер вынужден посылать ещё целое множество DNS-запросов другим серверам и принимать ответы от них, на что тратятся иногда в сотни раз большие ресурсы, чем отправка одного DNS-запроса. В итоге, как и в предыдущем типе атак, имея совсем небольшие ресурсы, становится реальным осуществить достаточно мощную DDoS-атаку на DNS-сервер (в отличие от отражённых DNS-атак, целью которых может быть не только DNS-сервер) [84].