УДК 004.056.53
В. А. МАЙСТРЕНКО Е. Д. БЫЧКОВ В. В. КЛАДОВ
Омский государственный технический университет Омский государственный университет путей сообщения
ЗАДАЧИ ПРОЕКТИРОВАНИЯ ЗАЩИТЫ WEB-СЕРВЕРА ОТ АТАК ТИПА DDoS С ПРИМЕНЕНИЕМ АППАРАТА НЕЧЕТКОЙ ЛОГИКИ
Рассматриваются задачи проектирования системы защиты WEB-сервера от DDoS-атак с применением аппарата нечеткой логики на основе продукционных правил вывода.
Ключевые слова: нечеткая логика, web-сервер, скрипт команд, алгоритм системы защиты.
1. Введение. Одной из наиболее актуальных на сегодняшний день тем в области защиты информации является противодействие распределенным атакам типа «отказ в обслуживании» (или ББоБ-атакам). Атакам такого рода могут быть подвержены все узлы сети Интернет вне зависимости от их тематики и владельцев. Основными элементами такой сети являются web-серверы, обрабатывающие запросы на выдачу web-страниц сайта от клиентов. Наиболее часто объектами ББоБ-атак становятся различные правительственные и коммерческие web-сайты, простой которых наносит значительный экономический ущерб. Задача усложняется еще и тем, что такая атака крайне проста в организации, а стопроцентного метода защиты от нее до сих пор не существует. Для организации ББоБ-атаки существует множество программных средств, которые находятся в свободном доступе в сети Интернет, и даже один злоумышленник способен привести слабо защищенный web-ресурс к состоянию отказа.
Как известно [1], ББоБ-атака предполагает истощение злоумышленниками ресурсов web-сервера или канала связи путем коллективной отправки со своих компьютеров бессмысленных вредоносных запросов. При этом легитимные пользователи не могут получить доступ к предоставляемым системой ресурсам (серверам) либо такой доступ затруднён.
2. Постановка задачи. В настоящее время защита от ББоБ-атак организуется на уровне провайдера/датацентра, которые обладают серьезной сетевой инфраструктурой. Такая защита обычно предоставляется клиенту провайдера как сервис за дополнительную плату. Также существуют специальные сторонние компании, предоставляющие своим клиентам услуги защиты от ББоБ-атак.
Защита на стороне web-сервера является менее эффективной при большом масштабе атаки, но в совокупности с системой защиты провайдера может образовать надежную двухуровневую систему защиты.
Если web-сервер находится в небольшой коммерческой организации или в каком-либо государственном учреждении, то в большинстве случаев при возникновении ББоБ-атаки задача по ее устранению ложится на плечи системного администратора, который на основании своих знаний, опыта и интуиции распознает угрозу и принимает решение о мерах по ее устранению. Делая вывод, администратор изучает журнальные файлы сервера, извлекая из них полезную для себя информацию; использует различные системные утилиты по анализу сетевых пакетов и открытых сетевых портах на сервере; следит за динамикой роста файла доступа к серверу и прочее. Все эти действия занимают много времени, которое в данной ситуации критично. Зачастую несвоевременно принятое решение может привести к отказу в обслуживании сервера. Отсюда возникает задача — как в условиях неполноты и неточности исходных данных автоматизированно сделать вывод о наличии ББо8-атаки и принять решение по ее устранению. И решение такой задачи затруднительно с помощью классической теории управления и принятия решений, предполагающих нахождение точного алгоритма, используя четкие исходные данные. Поэтому для решения задач детектирования и управления, в которых исходные данные недостаточно определены или имеют сложное математическое описание в силу своей природы (а к таким задачам также относятся и задачи в области информационной безопасности) предлагается использовать аппарат нечетких множеств [2 — 5].
Аппарат нечеткой логики позволяет при помощи нечетких экспертных правил (т.е. знания и опыта различных экспертов) автоматизировать и ускорить процесс принятия решения, а также сделать его адаптивным для различных масштабов сети передачи данных. Метод нечетких множеств формирует лишь логику вывода и композицию различных экспертных правил для принятия итогового взвешенного решения. И чем больше экспертных
«9
Рис. 1. Исходная модель сети (два ПК и web-сервер)
№
знаний обрабатывается данной системой, тем точнее будет решение и эффективнее будет система защиты.
В статье представлена система защиты от DDoS-атак, эффективность которой обеспечивается применением математического аппарата нечеткой логики [2 — 5], на основании которого с помощью специального алгоритма нечеткого вывода принимается решение о наличии или отсутствии атаки на web-сервер.
3. Модели СПД и WEB-сервера в системе защиты. Для проектирования и тестирования системы защиты web-сервера от DDoS-атак использовался стенд, моделирующий сеть передачи данных, состоящую из web-сервера и двух персональных компьютеров (рис. 1). Эти компьютеры являются одновременно и клиентами сервера, и организаторами атаки на него. Каждой машине в сети присваивается определенный IP-адрес.
Определим исходную модель защищаемого сервера:
1) в качестве операционной системы для web-сервера используется DebianLinux;
2) для реализации web-сервера установлена связка Apache2 + PHP5 + MySQL;
3) для функционирования и проверки работоспособности сервера создан сайт, страницы которого будут отсылаться клиентам (ПК1 и ПК2) в ответ на их запросы. Сайт состоит из нескольких страниц, написанных на языке HTML с добавлением таблиц стилей CSS. Одна из страниц будет включать форму для заполнения. При заполнении и отправки данной формы выполняется php-код, содержащий простой цикл, выводящий числа от 1 до 10000, и таблицу с версией интерпретатора PHP5. Использование такой конструкции позволит сделать сайт динамическим, задействовать на сервере интерпретатор PHP и тем самым повысит нагрузку на сервер, что позволит смоделировать реальный web-сервер с функциональным динамическим сайтом.
При отсутствии системы защиты исходная модель web-сервера является уязвимой к атакам типа DDoS в заданной модели сети. Проектируемый механизм защиты представляет собой скрипт команд (структурированный набор команд) на стандартном языке командного интерпретатора bash ОС DebianLinux, который, работая в фоновом режиме, будет на основе нечетких правил определять вре-
доносный трафик и фильтровать его, блокируя доступ к сайту для атакующих ПК на основании их IP-адресов. Командный интерпретатор bash позволяет производить написание программ с использованием уже готовых системных утилит ОС и удобно обрабатывать информацию, выводимую данными утилитами, что резко снижает стоимость такой системы защиты по сравнению с аналогами, а также решает проблему совместимости системы защиты с защищаемыми объектами. Также нет необходимости и в предварительном компилировании программы, т.к. интерпретатор анализирует и выполняет утверждения написанной программы одновременно, что облегчает процесс отладки программы.
Определим требования к проектируемой системе защиты:
1) сохранять работоспособность для легитимных пользователей в нормальных условиях работы и в условиях DDoS-атаки;
2) непрерывно обрабатывая нечеткие правила, самостоятельно (без вмешательства администратора), своевременно и точно реагировать на появление DDoS-атаки и устранять ее блокировкой соответствующих IP-адресов;
3) иметь возможность настройки для администратора с помощью правки соответствующих коэффициентов в нечетком выводе (возможен также вариант создания нечеткого регулятора, который бы автоматически корректировал эти коэффициенты в процессе работы программы).
4. Алгоритм работы системы защиты. Первым действием в процессе проектирования системы защиты идет создание алгоритма ее работы с применением аппарата нечеткой логики (рис. 2). Его особенностью является то, что работа алгоритма происходит в режиме непрерывного циклирования. Это позволяет производить постоянный мониторинг по распознаванию возникновения атаки. Еще одной особенностью является наличие порога срабатывания в начале алгоритма, который позволяет ограничить полное выполнение программного кода при явном отсутствии атаки на web-сервер.
5. Модель упрощенного нечеткого вывода. Работа алгоритма системы защиты сервера осуществляется на основании модели упрощенного нечеткого вывода Такаги-Сугено (Takagi-Sugeno), приведённой на рис. 3. Особенностью данной модели является работа в три шага и задание выходных правил
Определкние? степени истинности предпосылки для экспертного правила п
Принимаем меры по блокированию клиента с данным !Р-ядресом
Рис. 2. Алгоритм детектирования DDoS-атаки
Рис. 3. Упрощенный алгоритм нечеткого вывода
с помощью четких априорных весовых коэффициентов [2, 5].
Правило 1: если х есть At и y есть В , тогда z,=c;
Правило 2: если x есть А2 и y есть В2 тогда Z2=C2'
где ct и c2 — некоторые обычные четкие числа, т.е. выходные переменные задаются в виде априорной шкалы четких чисел (вес каждого правила). Ход алгоритма (рис. 3):
1. Fuzzification: как у алгоритма Mamdani находятся степени уверенности (процедура фаззифика-ции) предпосылок для каждого правила Ä1(x0), Л2(х0),
^(уЛ ад;
2. На втором этапе находятся значения а-уровни для каждого правила через операции min:
«1 = Л(*о) л Bl(Уo), «2 = А(хо) лВ2(Уо);
3. Находим четкое (процедура дефаззификации) значение выходной переменной, учитывая априорную шкалу весов:
а. c. + ас
2 2
(1)
Поясним работу модели упрощенного нечеткого вывода на примере проектируемой системы защиты.
1. На первом этапе производится так называемое приведение к нечеткости. Делается это при помощи априорных входных функций принадлежности (ФП), например, цд(и)е[0,1] рассматриваемого элемента и к нечеткому множеству А. Такая функция задается экспертом и должна как можно ближе отражать природу рассматриваемого процесса. Оси координат такой функции стандартны: по оси абсцисс — множество значений элемента, по оси ординат — степень принадлежности (от 0
до 1). За основу исходных экспертных правил для логического вывода системы защиты возьмем результаты работы двух системных утилит (такое количество правил принято для демонстрации работы алгоритма системы защиты) ОС БеЫап: пе1в1а1;, которая показывает количество подключений к серверу с одного 1Р-адреса (обозначим как ПРАВИЛО 1), и рв, которая показывает количество процессов ШББ-сервера (обозначим как ПРАВИЛО 2). Анализ обоих правил позволяет судить о наличие/отсутствии атаки ББоБ. Поточечно построим входную функцию принадлежности для результата работы программы пе1в1а1;: по оси Х — количество подключений к серверу с одного 1Р-адреса, по оси У — степень принадлежности к нечеткому множеству (или степень того, что данное количество подключений является ББо8-атакой). Аппроксимируем полученную функцию принадлежности квадратичным полиномом и получим готовую входную функцию для ПРАВИЛА 1 в символьном виде, которую теперь можно применять в программе (рис. 4). То же самое проделаем и для количества процессов сервера ПРАВИЛА 2 (рис. 5). Теперь для приведения конкретного значения вывода утилит пе1в1а1 и рв к нечеткости необходимо лишь подставить это значение в полученную функцию и найти степень истинности каждого из соответствующих правил.
2. На втором этапе выполняется нечеткий вывод, т.е. находится минимум среди всех предпосылок каждого правила. В нашем случае каждое правило имеет только одну предпосылку, то она и будет выбрана как минимальная.
На третьем этапе производится композиция полученных значений истинности с априорно заданными весами для каждого из правил (от 0 до 1).
>
Рис. 4. Формирование входной ФП для ПРАВИЛА 1
о
а1 + а2
Рис. 5. Формирование входной ФП для ПРАВИЛА 2
#!/bin/bash while true do
netstat -ntu | awk '{print $S}' | grep -e "[A(a-z)]" | cut -d: -fl | uniq -c > okoddos.iog
link=! awk '{print $1}' okoddos.iog') ip=('awk '{print $2}' okoddos.iog') ff[ "$!ink"\> "40"] then
proc='ps-u www-data | wc-l
al1=$(echo "scale=5; -8*10"(-
5)*($link)"(2)+0.0174*(Slink)+0.1169" | be-I)
al2=$(echo "scale=5; -1,10A(-4)'($proc)A(2)+0.02,($proc)-
0.0046" j be -I)
ddos=$(echo "scale=2; (($al1)*0.8-K$al2)*0.7)/((Sal1)+($al2))" | be-I)
iff "$ddos"\> ".75"]
then
iptables -A INPUT-s Sip-j DROP fi
done
Рис. 6. Полный листинг скрипта команд для защиты web-сервера от DDoS-атаки
отдельным процессом на сервере с возможностью включения или отключения отдельных процессов, а математический нечеткий анализ будет выполняться корневым процессом путем передачи в него значений соответствующих переменных. Возможно также применение более сложной модели нечеткого вывода [2, 5], предусматривающей вместо выходных априорных весов для правил — выходные функции принадлежности; и упрощение настройки системы защиты путем создания понятного интерфейса для оператора.
Таким образом, в совокупности с системой защиты на стороне провайдера, созданное программное средство системы защиты web-сервера представляет собой эффективное и полнофункциональное решение по защите от ББоБ-атак, созданное на основе перспективного, на сегодняшний день, математического аппарата нечеткой логики и демонстрирующее готовность к коммерческому применению при соответствующих доработках.
Библиографический список
Задание веса каждому правилу позволяет присваивать степень важности тому или иному правилу. Такие веса должны подстраиваться в результате тестирования системы защиты. Для нашей модели ПРАВИЛО 1 имеет вес = 0,8, а ПРАВИЛО 2 — вес = 0,7. Данные веса были выбраны субъективно на основании баланса между быстротой срабатывания системы защиты и точностью (безошибочностью) детектирования атаки. Композиция производится по дискретной формуле центроидного метода приведения к четкости (дефаззификация) по выражению (1).
Полученное взвешенное значение композиции двух экспертных правил для детектирования DDoS-атаки сравниваем с пороговым значением срабатывания системы защиты. Если данный порог будет превышен- применяются меры по блокировке соответствующего ПК по его IP-адресу с помощью встроенного в ОС межсетевого экрана. Данный порог также должен быть настраиваемым, исходя из баланса между быстротой и точностью срабатывания.
6. Создание скрипта команд. Вторым действием в процессе проектирования системы защиты идет написание кода скрипта команд [6]. На рис. 6 приведен итоговый код полученного скрипта для командного интерпретатора bash ОС DebianLinux на примере использования двух экспертных правил (ПРАВИЛА 1 и ПРАВИЛА 2).
7. Заключение. На основании созданного алгоритма (рис. 2) скрипт команд может быть дополнен рядом дополнительных экспертных правил, которые значительно улучшат ее эффективность. Улучшение системы защиты возможно также путем применения модульного принципа построения программы. При этом каждое правило будет обрабатываться
1. Касперски, Крис. Компьютерные вирусы изнутри и снаружи / Крис Касперски. — СПб. : Питер, 2006. — 527 с.
2. Бычков, Е. Д. Математические модели управления состояниями цифровой телекоммуникационной сети с использованием теории нечетких множеств / Е. Д. Бычков. — Омск : ОмГТУ, 2010. - 236 с.
3. Бычков, Е. Д. Защита WEB-сервера от атак типа DDoS на основе модели нечеткого вывода / Е. Д. Бычков, В. В. Кладов // Актуальные проблемы гуманитарных и естественных наук. - М., 2013. - № 5 (52). - С. 44-49.
4. Бычков, Е. Д. Модель защиты WEB-сервера от несанкционированных атак на основе нечеткой логики / Е. Д. Бычков, В. В. Кладов // Россия молодая : передовые технологии в промышленность : материалы V Всерос. науч.-техн. конф., 12-14 ноября. - Омск : ОмГТУ, 2013. - Кн. 1. - С. 193-196.
5. Борисов, В. В. Нечеткие модели и сети / В. В. Борисов, В. В. Круглов, А. С. Федулов. - М. : Горячая линия-Телеком, 2007. - 284 с.
6. Маслаков, В. Г. Самоучитель. Linux / В. Г. Маслаков. -СПб. : Питер, 2008. - 308 с.
МАЙСТРЕНКО Василий Андреевич, доктор технических наук, профессор (Россия), заведующий кафедрой «Средста связи и информационная безопасность» Омского государственного технического университета.
БЫЧКОВ Евгений Дмитриевич, кандидат технических наук, доцент (Россия), доцент кафедры «Ин-фокоммуникационные системы и информационная безопасность» Омского государственного университета путей сообщения (ОмГУПС). КЛАДОВ Владимир Владимирович, аспират кафедры «Инфокоммуникационные системы и информационная безопасность» ОмГУПС. Адрес для переписки: [email protected]
Статья поступила в редакцию 31.10.2014 г. © В. А. Майстренко, Е. Д. Бычков, В. В. Кладов