Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
493.doc
Скачиваний:
18
Добавлен:
30.04.2022
Размер:
8.68 Mб
Скачать

5.2.3.2 Моделирование и реализация атаки

Показанный в предыдущем разделе механизм таймаутов, с одной стороны, обеспечивает устойчивый алгоритм управления пропускной способностью канала, с другой стороны, предоставляет возможность проведения низкоскоростной атаки, который использует уязвимость динамики изменения таймеров повторной передачи (по малой временной шкале). В частности, атакующий может вызвать циклическое «отваливание» по таймауту потока трафика путем отправки мощных коротких импульсов трафика, имеющих длительность, сопоставимую с RTT шкалой и периодичностью более медленной шкалы RTO. Пропускная способность атакуемого снижается до нуля, в то же самое время средняя скорость атаки будет довольно низкой, что делает проблемным обнаружение подобной атаки.

Рассмотрим простую модель зависимости времени вывода из строя атакованной системы (это и будет периодом атаки) от ее полосы пропускания. Для начала смоделируем на одиночном потоке трафика и одиночном потоке DoS-трафика. Допустим, атакующий отправил первый пик в момент времени t=0, тем самым, выведя из строя удаленную систему. Как показано на рисунок 5.14, обычный отправитель в это время получил таймаут и вынужден ждать окончания таймера повторной передачи пакета 1 сек и удваивать RTO. Если атакующий повторил атаку (снова вывел из строя систему) в промежуток времени от 1 до 1+2RTT, то он вынудит ждать стек TCP еще 2 секунды. Создавая подобные выводы из строя в моменты времени 3, 5, 17, ..., атакующий тем самым фактически вынудит прекратить предоставление TCP-сервиса, в то же самое время атакующий будет отправлять пики DoS-трафика с довольно низкой средней скоростью. Приведенная ситуация эффективна для одиночного потока трафика, для нескольких входящих и выходящих потоков требуется периодичное (вместо экспоненциального, как указано для одиночного) создание ситуаций вывода из строя канала передачи по шкале RTO. Более того, в случае одинакового параметра minRTO (как рекомендует RFC 2988) у всех потоков, все потоки будут простаивать в таймауте более длительное время (в случае создания периодичных сбоев в канале).

Для атаки будет использованы импульсы (как показано на рисунке 5.15) длительностью L и скоростью R с определенным периодом T. Как показано ниже, атака будет удачной при следующих условиях: скорость передачи R достаточна для получения таймаута в канале (т.е. сумма скоростей обычного и DoS-трафика должна превышать суммарную пропускную способность канала), длительность L по шкале RTT достаточна для получения таймаута на канале (и довольно мала, чтобы избежать обнаружения) и период T по шкале RTO выбран таким образом, что поток трафика, пытающегося после таймаута пройти в канал, получил очередной таймаут.

Рисунок 5.15 - Импульсный трафик атаки

Рассмотрим сценарий атаки: «бутылочное горлышко» канала, очередь из n потоков TCP-трафика с разными RTT и одиночный поток DoS-трафика. Обозначим RTTi время RTT потока i, i=1,2,...n. Поток DoS-трафика показан на рисунок 5.15. Следующие формулы связывают пропускную способность канала и период атаки.

Допустим, что период атаки T. Если период вывода из строя канала удовлетворяет выражению

L` ≥ RTTi (С1)

и минимальное значение RTO удовлетворяет условию

minRTO > STRRi + 4*RTTVARi (C2)

Для всех i=1,..., n, то формула для нормализованной пропускной способности канала с множеством потоков трафика будет выглядеть следующим образом:

(2)

Объясним полученный результат: периодические пики длиной L создают короткие перебои длиной L` , которые сопровождаются большими потерями пакетов. Если значения L` достигают значений RTT потоков трафика, то есть L`>=RTTi для всех i=1,...,n, то задержка, вызванная атакой вполне достаточна, чтобы все потоки трафика получили таймаут. Более того, при выполнении условия (С2) для всех i=1,...,n, все TCP-потоки будут иметь идентичные значения RTO и именно поэтому таймаут после minRTO секунд — идеальный момент проведения повторного выведения из строя канала. В этом случае, несмотря на разные RTT, все TCP-потоки будут вынуждены "синхронизироваться" под атакующего и получат таймаут примерно в одно время. Обратим внимание, что при выборе периода T по формуле T>=1+2RTTi , все TCP потоки будут получать таймаут в 1 секунду. Формула (2) допускает, что RTO=minRTO для T > minRTO, в тоже время если T лежит в диапазонах (minRTO; minRTO+2RTT), то (2) определяет границу верхнего диапазона для T. Иными словами, импульсный DoS-трафик не использует уязвимость в механизме экспоненциального обратного хода, а использует факт повторения таймаутов.

Далее рассмотрим потоки, трафика, не удовлетворяющие условиям (С1) и (С2). Допустим период DoS-атаки T. В случае если период вывода из строя канала L`> RTTi и minRTO>STRRi+4*RTTVARi для i=1,...,k, и выполнено одно из условий L`<RTTj или minRTO<=STRRj+4*RTTVARj для j=k+1,...,n то формула (2) будет действовать для потоков 1,...,k.

На указанном выше примере можно утверждать, что DoS-атака, удовлетворяющая выражению (2), эффективна для выборки потоков, иными словами, атака, запущенная против группы потоков будет воздействовать только на потоки удовлетворяющие заданным условиям. Далее будем называть подобное явление «фильтр потоков» в результате, которого фильтруются определенные подсети.

Покажем, как атака влияет на «частотную характеристику». Сначала рассмотрим аналитическую модель сценария (рисунок 5.16), в которой выполняются условия (С1) и (С2) и minRTO=1 сек. Кривая, обозначенная на рисунке 5.17 является зависимостью ρ от T, вычисленная по формуле (2). Полоса пропускания нормализована по отношению к состоянию без атаки.

Рисунок 5.16 - Аналитическую модель сценария

Рисунок 5.17 - Пропускная способность при атаке — моделирование и эксперимент

Следует учесть, что средняя скорость атаки уменьшается с увеличением T, т.к. вычисляется по формуле Rl/T.

Однако исходя из формулы (2) и рисунка 5.17, эффективность атаки абсолютно не возрастает с увеличением средней скорости. Для нас наиболее актуальны два участка на рисунке 5.17 - где пропускная способность становится равной нулю. В частности функция ρ принимает значения ноль при двух параметрах T=minRTO и T=minRTO/2 . Физический смысл этих минимумов таков: если атакующий создает сбои в канале с периодичностью minRTO, то он полностью блокирует трафик TCP. Как только случается кратковременная блокировка канала, все потоки трафика, идущие через него, останавливаются. По прошествии времени minRTO, происходит попытка повторной передачи пакетов, но в это время атакующий создает очередную блокировку канала. Разумеется, что наиболее предпочтительный момент для следующей посылки атакующего — T=minRTO, а не minRTO/2, так как в таком случае уменьшается общая скорость атаки. В случае если T>minRTO, период атаки увеличивается, что влечет за собой увеличение общей пропускной способности канала в перерывах между посылками атакующего.

Далее проведем серию тестов ns-2 для сравнения с экспериментальными данными. В этом моделировании будем исследовать одиночный поток трафика (следует помнить, что выражение (2) используется для многочисленных потоков. Поток TCP Reno имеет minRTO=1 и удовлетворяет условиям (С1) и (С2). Конкретно, задержка распространения составляет 6 мс и RTT в диапазоне от 12 до 132 мс, при заданном буфере. Полоса пропускания канала — 1,5 Мб/с, скорость DoS-трафика 1,5 Мб/с и длительность пика 150 мс.

Проведенный эксперимент показан на рисунке 5.17 кривой симуляции. Из рисунке 5.17 видно, что выражение (2) охватывает основную часть графика и точки минимума практически совпадают. Следует отметить факт, что в промежутке между двумя минимумами моделирование не совсем правильно, т.к. моделирование предполагает, что TCP-стек может использовать полную емкость канала между окончанием времени RTO и приходом нового DoS-пика, этого не случается по причине "медленного старта".

Рассмотрим ситуацию, когда в «бутылочном горлышке» находятся TCP-поток и DoS-трафик, который каждые T секунд «вспыхивает» импульсом с постоянной скоростью Rdos и длительностью L. Остальные значения: Rtcp — мгновенная скорость TCP потока, B — размер очереди, В0 — размер очереди в начале атаки к моменту времени t=0. L1 — время за которое наполнится очередь вычисляется по формуле:

(3)

(С - ширина канала). После L1 секунд очередь остается заполненной на время L2=L-L1 секунд при условии выполнения выражения Rdos + Rtcp >=C. Более того, при выполнении Rdos>=C в течение того же периода, канал будет выведен из строя и вероятность того, что повторная передача снова «уйдет» в таймаут, будет очень велика.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]