Введение 3
1. Теоретическая часть 5
1.1. Нейронные сети в задачах классификации 5
1.2. DDoS на Веб-сервера 6
2. Экспериментальная часть 8
2.1. Разработка веб-приложения 8
2.1.1. Веб-приложение на Apache 9
2.2. Разработка генератора http запросов 10
2.3. Обработка логов и формирование словаря 12
2.4. Входные данные для нейронных сетей и тестовые выборки 15
2.5. Нейронные сети без использования дополнительных библиотек 16
2.5.1. Метод Градиентного спуска 16
2.5.2. Сеть с обратным распространением ошибки 20
2.6. PyBrain и другие библиотеки 23
2.6.1. Обратное распространение ошибки 23
2.6.2. Нейронная сеть Кохонена 26
3. Сравнительные эксперименты 31
4. Полное описание работы экспериментальной системы 33
Заключение 35
Список литературы 36
Приложение
Благодаря огромному разнообразию методик и специального программного обеспечения, DDoS окончательно превратился из внезапного необычного события в повседневную реальность. Согласно многочисленным исследованиям в 2016¬2017 годах DDoS приобрел устрашающие масштабы — в каждой атаке задействуются сотни тысяч подключенных к Интернету устройств.
К сожалению, в сфере противодействия данной атаке не наблюдается роста активности — вендоры защитного оборудования крайне с большим опозданием реагируют на возникшую необходимость усиления мер информационной безопасности в собственных продуктах либо совсем не внедряют никаких решений по защите.
В отчетах говорится о том, что с годами популярность набирают сложноорганизованные атаки уровня приложений и HTTP протоколов. Чтобы не допустить влияния подобных атак на серверное оборудование необходимо применять современные, сложные механизмы защиты. Ущерб от успешно проведенных атак измеряется тысячами долларов.
В первом квартале 2017 года были зафиксированы атаки по целям, расположенным в 72 странах мира, сильно выросла активность Windows- ботнетов, впервые за весь год они стали активнее Linux-ботнетов. Их доля выросла с 25% в прошлом квартале до 59,8% в первом квартале 2017 года. По дням число атак в первом квартале 2017 года распределилось в диапазоне от 86 до 994.
В связи с тем, что атаки подобного рода стали обыденностью, а не чем -то неожиданным и уникальным, а защите от них не уделяется должного внимания, появилась идея изучить механизм DDoS атак на веб-приложения. А также выстроить систему мониторинга количества запросов к веб-серверам, основываясь на программный продукт, который содержит в себе нейронную сеть.
Нейронные сети давно и успешно проникают в разные сферы нашей жизни. Уже никто не удивляется тому, что почтовые ящики сами учатся распределять почту. В последние годы также появилась тенденция, вместе с ростом мощности ПК и телефонов, внедрять элементы машинного обучения в различные приложения. Поэтому можно сказать, что задача применения алгоритмов нейронных сетей для обнаружения DDoS атак на основе многократных http- запросов актуальна на текущий момент.
Количество DDoS атак на веб-приложения уже не увеличивается в стремительном темпе, но остается на стабильно высоком уровне. Данная ситуация может быть опасна тем, что проведение таких атак становится чем-то обыденным, что усыпляет бдительность тех, кто разрабатывает системы защиты серверов и сайтов.
Применение нейронных сетей в данной сфере оказалось не только возможным, но и достаточно хорошо реализуемым способом обнаружения DDoS атак на основании анализа access 1од’ов. Все изученные типы нейронных сетей показали очень хороший результат - процент неправильно идентифицированных записей не превышает 10-15% для выборок размером более чем в 1000 строк.
При пополнении обучающих выборок для тех нейронных сетей, для которых это применимо, результат становится более точным, хоть и замедляется процесс обучения. В режиме реального времени наиболее быстро и с самыми низкими затратами ресурсов с задачей классификации запросов справится сеть Кохонена, также ей не нужно коллекционировать обучающие выборки. Но все- таки остается риск получить значительно больший процент несовпадений, чем, например, для сети с обратным распространением ошибки.
В общем случае нейронные сети отлично показывают себя применительно к задаче классификации данных. Все типы алгоритмов могут быть оптимизированы и усовершенствованы. Многие из них можно включить в программный комплекс, который будет не только обнаруживать подозрительную активность в среде http- запросов, но и оперативно реагировать на нее - время обучения самой массивной нейронной сети не превышает минуты (при оптимальном количестве эпох).
1. Пилюгина К.Н. Применение нейронных сетей с целью обнаружения вторжений // Современные научные исследования и инновации. 2016. № 2 [Электронный ресурс] URL: http://web.snauka.ru/issues/2016/02/63248(дата обращения: 02.06.2017).
2. И.А. Ходашинский, В.А. Дель, А.Е. Анфилофьев «Выявление вредоносного сетевого трафика на основе ансамблей деревьев решений»
3. «Нейронные сети Кохонена» URL: http://neuronus.com/theory/961-
nejronnye-seti-kokhonena.html
4. Курс по машинному обучению Andrew Ng URL:
https: //www. coursera. org/learn/machine-learning
5. «PyBrain работаем с нейронными сетями на Python» URL:
https: //habrahabr.ru/post/148407/
6. Частикова В.А., Картамышев Д.А., Власов К.А. Нейросетевой метод
защиты информации от ddos-атак // Современные проблемы науки и образования. - 2015. - № 1-1.; URL: https://www.science-
education.ru/ru/article/view?id=18343(дата обращения: 17.06.2017).