Научная статья на тему 'ПРИЛОЖЕНИЕ, РЕАЛИЗУЮЩЕЕ СИСТЕМУ ЗАЩИТЫ SYNCOOKIED ОТ DDOS-АТАК С ИСПОЛЬЗОВАНИЕМ ЭЛЕМЕНТОВ ТЕОРИИ ИГР'

ПРИЛОЖЕНИЕ, РЕАЛИЗУЮЩЕЕ СИСТЕМУ ЗАЩИТЫ SYNCOOKIED ОТ DDOS-АТАК С ИСПОЛЬЗОВАНИЕМ ЭЛЕМЕНТОВ ТЕОРИИ ИГР Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
58
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
DDOS-АТАКИ / ТЕОРИЯ ИГР / ЗАЩИТА / СИСТЕМА SYNCOOKIED / РАВНОВЕСИЕ НЭША / ПРОГРАММНОЕ ПРИЛОЖЕНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Клименкова А.С.

Описывается программное приложение, реализующее теоретико-игровую модель «защитник - нарушитель» от DDoS-атак на основе системы Syncookied. Приложение позволяет выбрать оптимальную стратегию защиты. Изучено равновесие Нэша, которое представляет собой лучшую стратегию для каждого игрока.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ANALYSIS OF THE SYNCOOKIED DEFENCE SYSTEM AGAINST DDOS-ATTACKS USING ELEMENTS OF GAME THEORY

In the article a software application that implements the game-theoretic “defender-intruder” model against thr DDoS- attacks onbasis of the Syncookied system is described. The application allows you to choose the optimal protection strategy. The Nash equilibrium is studied, whichrepresents the best strategy for each player.

Текст научной работы на тему «ПРИЛОЖЕНИЕ, РЕАЛИЗУЮЩЕЕ СИСТЕМУ ЗАЩИТЫ SYNCOOKIED ОТ DDOS-АТАК С ИСПОЛЬЗОВАНИЕМ ЭЛЕМЕНТОВ ТЕОРИИ ИГР»

УДК 004.056.5 DOI 10.24147/2222-8772.2023.1.86-107

ПРИЛОЖЕНИЕ, РЕАЛИЗУЮЩЕЕ СИСТЕМУ ЗАЩИТЫ SYNCOOKIED ОТ DDOS-АТАК С ИСПОЛЬЗОВАНИЕМ ЭЛЕМЕНТОВ ТЕОРИИ ИГР

Омский государственный университет им. Ф.М. Достоевского, Омск, Россия

Аннотация. Описывается программное приложение, реализующее теоретико-игровую модель «защитник - нарушитель» от DDoS-атак на основе системы Syncookied. Приложение позволяет выбрать оптимальную стратегию защиты. Изучено равновесие Нэша, которое представляет собой лучшую стратегию для каждого игрока.

Ключевые слова: DDoS-атаки, теория игр, защита, система Syncookied, равновесие Нэша, программное приложение.

Введение

Как известно, экономический прогресс и рост социального благосостояния становятся всё более зависимыми от киберпространства. В то же время растущая совместимость устройств и увеличение доступных вычислительных мощностей обеспечивают для злоумышленника возможность совершать распределённые и сложные атаки. К сожалению, любой провайдер сталкивается с проблемами DDoS-атак [5,6] на свои ресурсы, либо, что ещё менее приятно, со своих ресурсов. Люди, вместо того чтобы конкурировать честным способом, пытаются сделать плохо своим коллегам/конкурентам. Это может быть сервер компьютерной игры, интернет-магазин или отдельно взятый сайт. Довольно распространённый случай, когда за неимением конкурирующей силы, но имея желание монетизировать имеющиеся возможности, люди используют приёмы шантажа - заплатите нам деньги и мы не будем DDoS^^ ваш сайт.

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

В открытом доступе существует проект, который помогает бороться с такой проблемой, как DDoS-атаки. Изначально система предполагалась только для защиты от типа атак: syn, ack, data, flood, но переросла в достаточно большую и обширную систему по защите от атак разного типа.

А.С. Клименкова

студентка, e-mail: askfortuna@gmail.com

Цель статьи состоит в создании программного приложения для защиты от DDoS-атак на основе технологии Syncookied [7,8], используя теоретико-игровые подходы [1-4]. Напомним, что Syncookied решает задачу прозрачной фильтрации атак на 4-м, транспортном, уровне модели OSI. К протоколам транспортного уровня относятся TCP, UDP и другие.

Для этого потребуется решить следующие задачи:

1. Рассмотреть теорию TCP и классификацию DDoS-атак.

2. Обозначить преимущества и недостатки системы защиты Syncookied.

3. Рассчитать игровую модель TCP-соединения.

4. Предложить наглядную модель равновесного состояния Нэша.

5. Разработать приложение, вычисляющее оптимальное равновесное состояние по Нэшу.

6. Сделать вывод о целесообразности использования данной системы.

При изложении результатов исследования в данной статье используются сокращения из таблицы 1 приложения В.

1. DDoS-атаки

1.1. Немного о протоколе TCP

По механизму действия DDoS-атаки можно разделить на три типа:

1. Атаки направлены на переполнение канала связи, так называемые различные виды Flood (флуда). Задача флуда - посылать поток пакетов данных, который займёт собой всю выделенную ресурсу полосу пропускания трафика.

2. Атаки используют уязвимости стека сетевых протоколов: «отказ в обслуживании».

3. Атаки на уровне приложений.

В статье будут рассматриваться атаки, которые направлены на стек TCP/IP. Более подробно расскажем об атаке типа SYN-флуд (и SYN-ACK-флуд), когда в момент открытия соединения на конечную машину поступает множество пакетов.

Протокол TCP (Transmission Control Protocol — это протокол управления передачей данных [9-12,14], который обеспечивает сквозную доставку данных между прикладными процессами, запущенными на узлах, взаимодействующих по сети. Стандартное описание TCP содержится в RFC-793.

Любое TCP-соединение открывается так называемым «тройным рукопожатием» (см. рис. 1).

1. Клиент отправляет специальный пакет, в котором передаётся начальный порядковый номер передающей последовательности (X от клиента к серверу) с флагом SYN. Дополнительные опции TCP, необходимые для согласования параметров соединения, могут передаваться в нем же. Например: mss, wscale, timestamp, sack_permitted.

2. Сервер получает пакет и сохраняет у себя значения X, а также параметры TCP, полученные из SYN-пакета. В дальнейшем он готовит ответный пакет, добавляя в нем флаги SYN+ACK. Сервер передаёт начальный номер

Рис. 1. «Тройное рукопожатие» [12]

последовательности Y от сервера к клиенту, а также возвращает стартовый номер X, прибавив к нему +1. Также сервер согласует параметры соединения и дополнительно передаёт их в этом же пакете, а потом переходит в состояние SYN-RECEIVED. В случае неудачи сервер посылает клиенту сегмент с флагом RST.

3. Клиент получает SYN+ACK-пакет и сохраняет у себя параметры последовательности Y, принятой от сервера, прибавляет к ней +1 и возвращает его в ответном ACK-пакете, затем переходит в состояние ESTABLISHED. В этот момент может быть начат обмен данными. Клиент предполагает, что соединение открыто. Сразу же после отправки АСК-пакета клиент может отправить пакет данных. Чтобы начать отправку данных, сервер должен дождаться АСК-пакета. Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться. Если клиент не получает ответа в течение 10 секунд, то повторяет процесс соединения заново.

4. Чтобы начать отправку данных, сервер должен дождаться АСК-пакета. Сервер в состоянии SYN-RECEIVED. Если он получает сегмент с флагом ACK, то переходит в состояние ESTABLISHED. Иначе после тайм-аута сервер закрывает сокет и переходит в состояние CLOSED.

У обеих сторон имеются две последовательности: одна для приёма, другая для передачи. Номера передаваемых последовательностей - это фактически номера пакетов (байт в байтовом потоке), которые будут приняты или посланы. Эти значения нужны для сборки данных в правильном порядке, а также для идентификации потерянных или испорченных пакетов. Протокол IP нацелен на пересылку дейтаграмм по сети, при этом он не гарантирует целостность, доставку, очерёдность прибытия информации и готовность получателя к приёму данных; все эти задачи возложены на протокол TCP. Стандарт НТТР не требует использования конкретно TCP как транспортного протокола. При необходимости можно передавать НТТР через дейтаграммный сокет (UDP - User Datagram Protocol) или любой другой. Обычно, благодаря удобству TCP, на практике весь НТТР-трафик передаётся через TCP. Скажем так: протокол TCP больше «заточен» не на скорость, а на корректность доставки данных. Когда

дело доходит до оптимизации производительности сайтов, этот факт создаёт ряд проблем.

Согласование передающих последовательностей и параметры соединения, которые указываются дополнительными опциями TCP, - это основное назначение установки соединения. По RFC начальная последовательность - это произвольное число, плавно увеличивающееся во времени. Отправив отдельные пакеты c флагами SYN и ACK, можно установить соединение и за 4 пакета.

Также имеет смысл упомянуть про технологию TCP Fast Open (TFO) -механизм, позволяющий снизить задержку за счёт того, что он поддерживает отправку данных внутри SYN-пакета. Тем не менее у него имеются ограничения на максимальный размер данных внутри SYN-пакета. Вместе с тем лишь некоторые типы HTTP-запросов могут использовать TFO. Это работает только для повторных соединений, поскольку используется cookie-файл. Использование TFO требует явной поддержки механизма на клиенте, сервере и в приложении. Это возможно на сервере с ядром Linux версии 3.7 и выше и с совместимым клиентом. Также потребуется включить соответствующие флаги сокетов внутри приложения.

О простоте обработки пакетов говорит схема работы сетевого стека ядра Linux (см. Приложение А). Для соединения сервер тратит существенные ресурсы. Во время приёма SYN-пакета сетевая карта генерирует прерывание отдельно на каждый пакет. Далее этот пакет копируется с сетевой карты в память системы или же сетевая может его писать сразу в оперативную память, используя технологию прямого доступа к памяти, минуя центральный процессор. Затем пакет направляется в утилиту командной строки Iptables [13] и на последнем шаге попадает в ядро системы, где происходит фильтрация трафика. Ядро сохраняет у себя в хеш-таблице отслеживания соединений значения, полученные в SYN-пакете, - это ip port принимающей и передающей стороны, отправленная последовательность, принятая последовательность, дополнительные параметры TCP. Бесспорно, чем чаще идёт запись в таблицу и чем больше её размер, тем ниже скорость работы. Операционной системе Linux необходимо проделать большое количество действий для открытия соединения. TFO необходимо для гибкости в обработке пакетов и, более того, размер таблицы трекинга соединений не бесконечен.

1.2. Технология Syncookied

В 1997 г. в ядро системы был добавлен механизм защиты, позволяющий не сохранять данные в таблице отслеживания соединений, а подписывать переданную последовательность в SYN+ASK-пакете через cookie-файл, которая размещается на месте опций TCP:

u32 count = tcp_cookie_time();

return (cookie_hash(saddr, daddr, sport, dport, 0, 0) + sseq + (count << COOKIEBITS) + ((cookie_hash(saddr, daddr, sport, dport, count, 1) + data) & COOKIEMASK));

Подпись происходит на основе алгоритма SHA1, где для валидации используются метки времени и секретный ключ. При каждом старте системы генерируется новый ключ. Cookie-файл записывается в область seq TCP-опций поля Timestamp (с 31 по 6 байт). А с 0 по 5 байт в Timestamp передаётся метка времени, которая также участвует в процессе валидации пакета (в среднем обновляется раз в 2 минуты). Это означает, что если ответный пакет пришёл через час - он будет объявлен невалидным. Также накладывается ограничение на количество возможных значений поля MSS (поле в заголовке SYN-пакета). В последних ядрах используются значения [7]:

static_u16 const msstab[] = {

536,

1300, 1440, /* 1440, 1452: PPPoE */

1460,

};

Технология позволяет значительно увеличить способность системы обрабатывать SYN-пакеты. В тестах, система выдерживала 300-350 тыс. пакетов в секунду (данные приведены для сетевой карты 1G с 4 прерываниями). Имеются недостатки в виде ограниченности выбора дополнительных параметров соединения (MSS ограничивается только 4 значениями), а также игнорировании части опций TCP.

2. Анализ работы системы

2.1. Схема работы Syncookied

Система занимается фильтрованием трафика на любой сервер в нашей сети (см. рис. 2), включается и автоматически настраивается, не требует больших ресурсов и, что важно, не дорога в реализации.

Роутер - граничный маршрутизатор MX480, обрабатывающий входящий трафик.

Фаервол - сервер, на котором запущена система фильтрации, - соединен с главным коммутатором (Juniper EX4550) двумя линками по 10G.

Защищаемый сервер - сервер, трафик на который необходимо фильтровать, - подключён линком 1G.

На роутере фильтруются атаки на ёмкость канала. Роутер подключён в главный коммутатор линком 40G, с главного коммутатора на фаервол идёт два линка по 10G (один - для входящего на межсетевой экран трафика, другой -для исходящего с него) и защищаемый сервер подключён ещё через несколько коммутаторов линком 1G.

Обыкновенно роутер и защищаемый сервер общаются напрямую. В случае обнаружения атаки прописывается статическая привязка ip-адреса сервера на роутере к mac-адресу межсетевого экрана. После этого весь трафик, идущий на защищаемый сервер, идёт на межсетевой экран, который имеет намного большую полосу пропускания (10G вместо 1G).

Рис. 2. Схема работы Syncookied

Межсетевой экран при получении SYN-пакета через первый интерфейс отправляет в сеть SYN-ACK-пакет через второй интерфейс от имени защищаемого сервера (с его тас-адреса и IP) с валидной с точки зрения защищаемого сервера syncookie (так как у него есть секретный ключ и метка времени от защищаемого сервера). Таким образом, в случае получения ACK-пакета с cookie-файлом межсетевой экран проверяет его валидность, после чего или меняет в пакете тас-адрес на тас-адрес защищаемого сервера и отправляет пакет обратно в сеть, или удаляет его, если cookie-файл невалидный. Защищаемый сервер, получая ACK-пакет, открывает соединения и исходящие пакеты отправляет напрямую на роутер.

Как и в технологии SynProxy, на сервере ведётся отслеживание соединений. Можно наблюдать начало открытия соединения и считать его закрытым по timeout, если его закрыл сервер.

2.2. Алгоритм отслеживания соединений

Алгоритм работает по шагам:

1. Когда приходит ACK-пакет, проверяем cookie-файл. Если файл валидный, сохраняем по ключу 3-tuple (src-ip, dst-port, src-port) статус Established. В дальнейшем перенаправляем пакет на защищаемый сервер.

2. В случае если получаем RST-пакет для соединения в статусе Established, удаляем соединение.

3. В случае если получаем FIN пакет, меняем статус соединения на Closing и сохраняем временную метку.

В течение одной минуты 2 раза проходим по таблице отслеживания соедине-

ний и удаляем соединения в статусе Closing, для которых закончился Timeout. Таблицу возможных состояний соединения и последовательности передаваемых пакетов см. в Приложении Б.

На межсетевом экране возможны любые правила фильтрации трафика -блокировка по IP, порту, протоколу и любым другим параметрам, которые задаются в pcap-filter в config и могут сразу же применяться. К примеру, для защищаемого сервера запретим весь UDP-трафик, разрешаем только TCP на порты 22, 80, 443 и для этих портов включаем SynProxy.

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

Это означает, что система включается только тогда, когда идёт атака, и состоит из четырёх основных частей:

1. Модуля к ядру.

2. Программного обеспечения на межсетевом экране.

3. Демона на защищаемом сервере.

4. Управляющего скрипта, который определяет наличие атаки, меняет config на межсетевом экране и вносит изменения на роутере.

2.3. Преимущества и недостатки

1. Схема Syncookied позволяет фильтровать трафик в удобном месте.

2. После отключения защиты есть возможность не разрывать соединение. Само отключение заключается в удалении статической привязки mac-адреса к IP-адресу защищаемого сервера на роутере. Трафик без обработки его межсетевым экраном на защищаемый сервер напрямую.

3. Возможность использовать относительно недорогое железо. Единственный момент - хорошая сетевая карта.

3. Составление игровой модели

3.1. Игровой подход

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

Отношения злоумышленника и администратора рассматриваются как игра, в которой каждая сторона стремится получить некоторый выигрыш.

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

Стратегия для игрока - это полный план действий во всех возможных ситуациях во всей игре.

Равенство Нэша - это понятие решения, которое описывает условие устойчивого состояния игры; ни один игрок не предпочёл бы изменить свою стратегию, поскольку это снизит его выигрыш, учитывая, что все остальные игроки придерживаются предписанной стратегии.

r.na

3.2. Законный профиль пользователя

Мы рассматриваем наличие заинтересованных легитимных узлов п для связи с целевым сервером (TS).

Каждый пользователь использует один или более TCP-совместимых потоков для выполнения его работы.

Считаем, что количество потоков si, используемых пользователем (которые происходят от одной и той же физической машины), следует нормальному распределению величины si: N (sl ,&2), i = 1, 2,...,п; где sl является средним значением допустимого количества пользователей и - стандартное отклонение.

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

Доступная полоса пропускания законного потока при отсутствии любой атаки равна

В

~s,

где S = si + S2 + ....sn.

Это наблюдение за пропускной способностью, доступной для потока, истинно, потому что мы предполагаем, что все потоки, проходящие через канал (PiP2), являются TCP-совместимыми по своей природе.

В соответствии с законами теории вероятности распределение для величины S есть

N (nsi ,na2).

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Мы считаем поток мёртвым, если он не соответствует этой минимальной пороговой полосе, которая зависит от приложения. Рассмотрим пороговую полосу пропускания законного потока как случайную величину. В частности, мы моделируем порог пропускной способности через нормальное распределение. Это значит Г : N ), i = 1, 2,...,п, где Г - пороговая полоса пропускания jth потока, является средним значением законного потока и а2 - стандартное отклонение.

Вероятность того, что ith законный поток прекратится в отсутствие атаки -р[rna < где - мгновенное значение Г и Р[х < X] представляет вероятность того, что значение случайной величины больше, чем х. Предположим, что ширина полосы канала В выбрана таким образом, что Р[rna < 71] пренебрежимо мала в сценарии без атаки. Мы также предположим, что ни один из двух узлов не подключается к серверу от одной машины. Однако пользователь может отправить несколько потоков с одной и той же физической машины.

Теперь мы представляем нашу статическую игровую модель. Предположим, что один атакующий контролирует все атакующие узлы. В ЭоБ-атаке есть только один атакующий узел, в то время как при атаке ЭЭоБ их может быть несколько. Наши рассуждения общие для ЭоБ-атак или ЭОоБ-атак, которые учитывают число атакующих узлов т. Если мы заменим т на 1, получим сценарий ЭоБ.

3.3. Статическая игра

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

Каждый поток в нашей модели идентифицируется парой IP-адресов: источника и назначения. Мы не берём порты источника и назначения для определения потока, так как злоумышленник может открыть несколько соединений с целевым сервером TS и все они будут способствовать увеличению пропускной способности, используемой злоумышленником. Поэтому в нашей модели каждый пользовательский поток характеризуется величиной полосы пропускания, используемой между IP-адресом источника/назначения.

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

Предполагается, что протокол TCP гарантирует, что каждый в потоке получает равную долю полосы пропускания канала (р1р2), т. е. битовая скорость одинакова для всех потоков (законная или поток атаки), которая представлена г. Мы также предполагаем, что количество потоков и одинаково для всех узлов атаки. В ситуации с атакой каждую скорость потока определяем г = s+^+ru. Если г мало, то мы считаем, что отказ в обслуживании происходит из-за перегруженности в канале (р1р2). В частности, серьёзная ситуация возникает, когда г < ji и некоторые из законных потоков вымирают, где ji - минимальная скорость передачи битов для ith потока, который рассматривается как активный.

3.3.1. Воздействие атаки без защитного механизма

В отсутствие защиты все потоки проходят через брандмауэр на целевой сервер ТБ. Однако если г мало, то мы считаем, что отказ в обслуживании происходит из-за перегруженности в канале (р\р2). Это означает, что пропускная способность а уменьшает законный поток, что приводит к большой задержке законной передачи данных. В частности, серьёзная ситуация происходит когда г < 7г и некоторые из законных потоков истощены.

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

достичь сервера и чья скорость больше. Мы получим Бд = Б • Р[71 < г]. Следовательно, мы получаем следующие результаты.

Поскольку существуют законные потоки (Б) и потоки атак которые равным образом разделяют ширину полосы, получаем уравнение среднего потребления полосы пропускания (по атакующему) (1):

^ = (1)

о + ^

Соотношение потерянных законных потоков к общему числу - это законные потоки в среднем:

^ _ с

= —^ = 1 - р[и < г] = РЬ >т]. (2)

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

Предположим, что стоимость злоумышленника ьс пропорциональна количеству используемых атакующих узлов и ьс = т. Мы моделируем чистую прибыль злоумышленника как взвешенную сумму

Vа = + < + , (3)

где т^, 1иап, - соответствующие весовые параметры атакующего.

С другой стороны, мы моделируем чистую прибыль защитника как взвешенную сумму

У( = - ыЛпиппЛ + , (4)

где w(, -хи^, 1иЛс - соответствующие весовые параметры защитника.

3.3.2. Защита атак с помощью модуля вГОА

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

Защитник выбирает два порога Е\ и Е2 (Е2 < Ех) для принятия решения его действия на входящий поток. Он начинает с вычисления общего расхода для исходного узла ги, где и - количество потоков для этого узла и г является битовой скоростью для каждого потока.

Если защитник замечает, что из конкретного узла источника К общий поток ги < Е2, то брандмауэр позволяет использовать этот набор потоков для того, чтобы дойти до целевого сервера ТБ. С другой стороны, если ги > Е2 и ги < Ех, тогда все потоки из этого исходного узла К должны быть перенаправлены в ловушку НР. Наконец, если ги > Ех, тогда все потоки из этого исходного узла К удаляются брандмауэром. Следует отметить, что эти решения носят вероятностный характер, т. е. даже если ги < Е2, существует возможность, что некоторые потоки из исходного узла К могут быть отброшены. Это аналогично для всех остальных случаев.

Такие пороговые значения Ех и Е2 используются для создания двух сигмо-идных фильтров, а именно и Р2, которые моделируют разрешение, отбрасывание и перенаправление вероятностей потоков на исходный узел. Эти фильтры взяты как:

ВД 1

1 + е-* ^)'

Р2(Х) = -\( ) ■

1 + е-?1- --т2)

Здесь Ех и Е2 представляют собой скорость потока, для которой вероятность падения и перенаправления потока равна 0,5 соответственно. @ является параметром масштабирования. Переменная <1 представляет собой пропускную способность, потребляемую узлом, которая равна В/Ь.

На рис. 3 показана одна сигмоидальная кривая для каждого фильтра. Эта цифра соответствует настройке, где В = 1000 единиц измерения, а также £ = 2 и [3 = 20. Брандмауэр сбрасывает поток скорости х с помощью вероятности Р\(х) и перенаправления с вероятностью Р2(х). Здесь х представлена суммой всех потоков для каждого пользователя. Стоит отметить, что некоторые законные потоки могут быть удалены брандмауэром. Мы считаем, что защитник устанавливает значения Ех и Е2, которые являются единственными параметрами управления для этих фильтров.

Рассмотрим два узлов (см. рис. 3), разделяющих сеть с ограниченной пропускной способностью. Следовательно, законная доля на пользователя не должна превышать половину оригинальной пропускной способности канала. Эта доля для каждого пользователя также может быть представлена используя в этом случае 500 ^ = В/Ь = 1000/2 = 500). Чтобы упростить анализ, мы рассматриваем пороги: Е2 = й = 500 и Ех = д, • 1,25 = 625.

Чтобы сделать изящное решение, защитник рисует три вероятностных функции Ра(Ех, Е2, х), Рг(Е\,Е2,х) и Ра(Ех,Е2,х), что представляют вероятности, с которыми потоки из источника будут удалены, перенаправлены или разрешены соответственно. Третий аргумент этих функций, а именно х, обозначает общую пропускную способность, к которой обращается определённый узел. Заметим, что суммирование этих трёх вероятностных функции всегда равно 1 и х = ги, где г - битовая скорость каждого потока и и - количество потоков.

Показано расположение и работа этих двух фильтров ^ и Р2 вместе (см. рис. 4) для создания трёх вероятностных функций Ра, Рг и ^, используемых для вычисления вероятности для потоков из узла, которым брандмауэром должно быть разрешено дойти до целевого сервера, быть перенаправленными в ловушку или быть сброшенными. Переменная х, которая обозначает общую скорость передачи по битам из каждого источника, - вход для первого фильтра Р\. Этот фильтр решает вероятность того, должны ли потоки от узла быть отброшены окончательно или нет. Вероятность сброса потоков от пользователя непосредственно получается из этого первого фильтра и обозначается через Ра.

Вероятность перенаправления потоков из исходного узла в ловушку (Рг) и вероятность достичь целевого сервера (Ра) получаются с использованием

Drop probability with E^ 625 Redirect probability with E_= 500

flow rate (x)

Рис. 3. График кривых Б выборки: падение или перенаправление скорости потока на брандмауэре моделируется кривой Ось X - это скорость потока, а ось У - это падение и переадресация вероятностей, вычисленных фильтрами. Параметры Е\ и Е2 представляют скорость потока, для которой вероятность падения и перенаправления равна 0,5

Рис. 4. Расположение фильтров. Фильтры и Р2 представляют собой защитника. Они используются для вычисления вероятностей разрешения (Ра), отбрасывания или перенаправления (Рг) входящих потоков

этих двух фильтров в комбинации. Вероятности для сброса, перенаправления и разрешения потоков определяются как ^ = Рг = Р2 • (1 — Р\) и Ра = (1 — Р1) • (1 —

Исходя из приведённых выше факторов и вероятности принятия решения, если злоумышленник отправляет и потоков от каждого узла атаки, мы получаем следующие аналитические результаты, представленные в уравнениях (5) и (6). Они получены с использованием той же логики, что и в уравнениях (1) и (2) при рассмотрении состояния атаки.

Среднее потребление полосы пропускания (по атакующему):

vd vb

^Fa(Ei,E2,ra,u)

SFa(Ei, E2,n, si) + iiFa{Ei,E2, ra, u)'

(5)

Соотношение потерянных законных потоков к общему числу законных потоков в среднем:

P

li >

В

SFa(Ei,E2, n, si) + ¡iFa(Ei,E2, ra, u) J

(6)

d

V

n

Здесь S = s¡n, где s¡ - среднее значение количества потоков для одного законного узла и п представляет собой общее количество легитимных узлов. Цель перенаправления в ловушку - узнать больше об атакующем, прежде чем действие защитной архитектуры начнёт снижаться от их потоков. Этот шаг также уменьшает нагрузку на целевой сервер TS путём выгрузки трафика злоумышленника. Сбор данных с использованием приманки может использоваться различными способами. Методы, в которых защитные архитектуры могут применять данные, собранные с использованием ловушки, выходят за рамки этой работы. Следовательно, мы предполагаем, что сумма расходов, понесённых защитником для использования ловушки, равна количеству информации, полученной от злоумышленника.

Мы предполагаем, что защитник создаёт приманку из активной ловушки, когда он решает узнать больше о злоумышленнике. В нашем случае это решение принимается на основе скорости потока, используемой злоумышленником по каналу (р1р2). Когда общая битовая скорость атакующего превысит порог брандмауэра Е2, его потоки, вероятно, будут перенаправлены в ловушку.

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

Нападающий хочет уменьшить перенаправление своих потоков в ловушку, поскольку это мешает использованию пропускной способности канала (р1р2) и его ресурсов впустую. Мы назначаем этому весовой коэффициент для злоумышленника w^.

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

Мы рассматриваем количество потоков, перенаправленных в ловушку, поскольку защитник имеет преимущество использования:

vi = mu • Fr(El,E2,r,u).

Мы можем вычислить выигрыши злоумышленника и защитника Va и Vd из

выражения (3) и (4), заменяя на vd и vна v^ и расширяя его включения <.

Поэтому имеем новые выигрышные функции:

Va = <4 + wanvdn — wacvc — wahvd,

где wl, wan, w^, w^ - соответствующие весовые параметры атакующего.

С другой стороны, мы моделируем чистую прибыль защитника как взвешенную сумму

Vd = —wdvd — wdV* + wdVc + wdhvi,

где wd, wdn, wd, w^ - соответствующие весовые параметры защитника.

Мы используем понятие равновесия Нэша для определения лучшей стратегии относительно этих двух игроков. Каждый игрок имеет цель максимизировать свой выигрыш. Нападающему необходимо выбрать оптимальный m и и. Защитник должен выбрать оптимальный Е1 и Е2.

Равновесие Нэша этой игры определяется как пара стратегий (т*, и*, Ei*, Е*), которые одновременно удовлетворяют следующим соотношениям:

V(m*,u*,Ei*,E2*) ^ V(am,u,E1,E2) для V(m*,и*,Ei*,E*) ^ У^иЕг*,E*) для

Мы можем аналитически вычислить стратегию равновесия Нэша профиля (т*, и*, Е1*, Е2*), который также можно получить через численное вычисление для конкретной настройки игры. По критерию равновесия Нэша системе неравенств ищется оптимальное состояние.

4. Моделирование 4.1. Модель

В качестве платформы для численных вычислений была использована интерактивная среда разработки МЛТЬЛБ. Проведённый анализ показывает занимательный случай, в котором суммарные байты, отправленные злоумышленником, остаются постоянными. Это означает, что злоумышленнику нужно только установить значение.

Рис. 5. Выигрыш атакующего Va за различное количество потоков атаки и за узел и различные значения порога Е2. Одна из седловых точек, которая также представляет

равновесие Нэша (450, 25, 3.8)

Сначала были разработаны фильтры межсетевого экрана, которые контролируются путём манипулирования их средними точками Е1 и Е2. Фильтры используются для генерации вероятностей сброса, перенаправления или разрешения входящих потоков. Вероятности затем используются для построения различных компонентов, основанных на уравнениях (5), (6), (7), которые вместе приводят к выигрышу для злоумышленника. Произвольные веса для каждого из компонентов используются для моделирования этого представления как сценария реального мира.

Чтобы представить результаты в трёхмерной фигуре, было введено соотношение между двумя серединами фильтров Е1 и Е2 такое, что Е1 = Е2 = 1,25. Следовательно, защитнику требуется настроить только одно значение, в нашем случае это Е2.

В качестве примера рассмотрим сценарий, в котором коэффициенты веса атакующего и защитника одинаковы (wI = wf, w^ = wf, wac = wác, wwf = = w^), т. е. Va = —Vd (как игра с нулевой суммой).

На рис. 5 показан выигрыш атакующего за различное количество потоков атак и разные значения порога Е2 с = 200, wan = 200, w" = 2, = 2, В = 40000, n = 50, m = 13, n = 30, si = 10, si = 15, 7 = 10, mura = 4000.

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

Одна из таких точек, которые мы наблюдаем (450, 25, 3,8), - точка равновесия Нэша. Эта точка означает оптимальное значение промежуточной точки межсетевого экрана: Е2 = 450, количество потоков на одного злоумышленника:

и = 25 и выигрыш, полученный злоумышленником: Vя = 3,8.

• Игра

В1 В2 вз В4 ггшА

А1 0,4 0,5 0,9 0,3 0,3

А2 0,8 0,4 0,3 0,7 0,3

АЗ 0,7 0,6 0,8 0,9 0,6

А4 0,4 0,2 0,4 ш 0,2

тпахВ 0,8 0,6 0,9 0,9

Введите размерность: ;4 ± [«_ ; 0Решыяе

□ X

Рис. 6. Пример работы программы с введёнными вручную значениями. Чтобы начать работу с данной программой, нужно задать размерность матрицы стратегий и ввести необходимые значения. При нажатии кнопки «Расчет» выведена оптимальная стратегия

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Игра

«1 В2 В3 В4 В5 В7

Ш 0,5 -2 -5,375 -0,875 -1 -4,5

А2 -2,375 0,375 3 1,375 0,5 -0,375 0,12!

АЗ 0,375 1,75 -2,375 -6,25 -4 4,5 -4,37

А4 3,125 0,75 -2,125 -3,375 0,5 -5,5 -2,5

А5 -5,125 -3,5 2,375 5,375 4,75 3,125 5,87!

А6 -0,5 -0,75 3,5 5,25 2,875 2,125 1,25

А7 3,625 1,75 5,5 -0,75 -0,125 5,25 1,75

Д8 -1,375 4,75 -2,75 •4,875 -3,25 -2,375 4,25 V

< >

Цена игры - 0,926802730191138 Оптимальная стратегия игрока А А[1] с вероятностью О А [2] с вероятностью О А[3] с вероятностью О А[4] с вероятностью О А[5] с вероятностью О А [б] с вероятностью 0,490877-« 73279 76 А И с вероятностью 0,374456993918332 А[8] с вероятностью 0,134665508253692 Оптимальная стратегия игрока Ё: В[1] с вероятностью 0,0 220098465102809 В[2] с вероятностью 0,516941739746045 В[3] с вероятностью О В[4] с вероятностью О В[5] с вероятностью 0,461048363741674 В [6] с вероятностью О 6 [7] с вероятностью О

Введите размерность: |а Щ Щ 0Решаие Р««»

Сброс

Рис. 7. Пример работы программы со случайными значениями и решением

Можем наблюдать (по определению равновесия Нэша), что игрок, который отклоняется от вышеуказанной стратегии, получает более низкий или равный выигрыш. Проверяем существование таких седловых точек с использованием контура, который показан под поверхностью сетки (см. рис. 5). График отображается контурными линиями. Зная, что контурная линия функции двух переменных - это линия, вдоль которой функция остаётся постоянной. На рис. 5 показан график контура для переменных и и Е2 под сеткой.

Область между двумя линиями, ближайшими к круговому контуру, справа от него представляет собой равновесную область Нэша. В виде числа контурных линий, используемых для представления сетки, увеличиваясь, эти две

линии приближаются к значению Va = 3,8.

4.2. Программное приложение

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

Если нужно протестировать работу программного продукта, то получить оптимальное решение можно при нажатии кнопки «Random» (см. рис. 7). Для вывода подробного решения необходимо поставить отметку в соответствующем окне.

Этот программный продукт позволяет администратору безопасности проверять свои стратегии и определять оптимальное состояние.

5. Заключение

В статье проведён анализ работы системы защиты Syncookied и построена на её основе игровая модель «защитник - нарушитель» от DDoS-атак, которая позволяет выбрать оптимальную стратегию защиты от DDoS-атак. Было продемонстрировано преимущество использования механизмов теоретико-игровой защиты для сетевого администратора на основе принципа равновесия Нэша. Разработано программное приложение, находящее оптимальную стратегию защиты.

Приложение А

Приложение Б

Приложение В Таблица 1.

Символ Определение

75 Целевой сервер

РЯ Маршрутизатор периметра

FW Брандмауэр

GW Шлюз

НР Ловушка

Рг Сетевой конец канала соединяется с интерфейсом г2

Р2 Сетевой конец канала соединяется с целевым сервером ТБ

В Общая пропускная способность канала (ргр2) между %2и ТБ

п Количество законных узлов

т Количество атаки узлов

и Количество потоков за атаку узла

г Общее количество узлов

5 Общее количество законных потоков

Количество потоков создано ¿^законным пользователем

Среднее значение

о г Стандартное отклонение

й Пропускная способность использовала узел, который является В / г

Г1 Скорость передачи законного потока

Стандартное отклонение законной скорости потока

Га Скорость передачи потока атаки

1 Минимальная скорость передачи для потока, который будут считать живым

и Среднее значение законного порога потока

Литература

1. Матричные игры / под ред. Н.Н. Воробьева. М. : ФМ, 1961. 280 с.

2. Вахний Т.В., Гуц А.К. Теория игр и защита компьютерных систем. Омск : Изд-во Ом. гос. ун-та, 2013. 160 с.

3. Вахний Т.В., Гуц А.К. Теоретико-игровой подход к выбору оптимальных стратегий защиты информационных ресурсов // Математические структуры и моделирование. 2009. № 19. С. 104-107.

4. Вахний Т.В., Гуц А.К. Программа, реализующая игровой подход при выборе оптимального набора средств защиты компьютерной системы // Математические структуры и моделирование. 2011. № 24. С. 98-101.

5. Классификация DDoS-атак: краткий обзор современных подходов. URL: https://ddos-guard.net/ru/info/blog-detail/ classification-of-ddos-attacks-a-short-overview-of-modern -approaches (дата обращения: 17.09.2018).

6. Гуц А.К., Лавров Д.Н. Описание DDoS-атаки с помощью катастрофы «сборка» // Математические структуры и моделирование. 2013. Вып. 27. C. 42-45.

7. Система защиты от DDOS-атак - Syncookied. URL: https://beget.com/ru/ articles/syncookied (дата обращения: 05.11.2018).

8. Syncookied - OpenSource ddos protection system. URL: https://habr.com/ru/ company/beget/blog/301892/ (дата обращения: 11.11.2018).

9. Transmission control protocol. URL: https://ru.wikipedia.org/wiki/ Transmission\_Control\_Protocol (дата обращения: 23.11.2018).

10. 3-этапное рукопожатие TCP. URL: https://ddos-guard.net/ru/ terminology/protocols/3-h-etapnoe-rukopozhatie-tcp (дата обращения 23.11.2018).

11. TCP-протокол. URL: http://kunegin.com/ref1/net\_prot/tcpprot.htm (дата обращения: 22.12.2018).

12. Внутренние механизмы ТСР, влияющие на скорость загрузки. Часть 1. URL: https://habr.com/ru/company/webo/blog/32 6258/ (дата обращения: 09.01.2019).

13. Iptables: сетевая безопасность и фильтрация пакетов. URL: https://proft.me/2013/06/15/ iptables-setevaya-bezopasnost-i-filtraciya-paketov/ (дата обращения: 12.01.2019).

14. Изучите алгоритмы работы системных вызовов TCP. URL: https://www.ibm. com/developerworks/ru/library/au-tcpsystemcalls/index.html (дата обращения: 25.01.2019).

ANALYSIS OF THE SYNCOOKIED DEFENCE SYSTEM AGAINST DDOS-ATTACKS USING ELEMENTS OF GAME THEORY

A.S. Klimenkova

Student, e-mail: askfortuna@gmail.com

Dostoevsky Omsk State University, Omsk, Russia

Abstract. In the article a software application that implements the game-theoretic "defender-intruder" model against thr DDoS- attacks onbasis of the Syncookied system is described. The application allows you to choose the optimal protection strategy. The Nash equilibrium is studied, whichrepresents the best strategy for each player.

Keywords: DDoS attacks, game theory, defense, Syncookied system, Nash equilibrium, software application.

Дата поступления в редакцию: 15.06.2019

i Надоели баннеры? Вы всегда можете отключить рекламу.