Проекты

Нейронная сеть для обнаружения DGA

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10−11 классов

Направление работы: Программирование
Авторы работы: ГБОУ Школа имени Маяковского
Предметы: Информатика
Классы: 11 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» 18−20 апреля 2019 года

Цель

Создание более удобного и простого способа обнаружения DGA с помощью нейронной сети.

Задачи

1. Анализ существующих способов обнаружения DGA.

2. Изучение принципа работы DGA.

3. Изучение нейронных сетей.

4. Создание собственной нейронной сети для обнаружения DGA.

Описание

Для начала требовалось изучить материалы для лучшего понимания темы проекта. Были исследованы нейронные сети и нужная терминология. Рассмотрели возможные варианты нахождения DGA-доменов для более правильного обучения нейронной сети и остановились на подходящем виде ИНС.

Определили 3 значимых критерия, по которым можно судить об успешности или неуспешности проведённой работы:

1) правильность классификации (вычислений) имен, сгенерированных DGA;
2) простота в применении программы;
3) возможность использования компьютеров малой мощности.

Был выбран язык программирования Python 3, т. к. одним из пунктов является простота.

Из библиотек наиболее просты в использовании Theano и Keras. Для обучения нейронной сети использовали топ 100000 доменных имен с Alexa.com и других сайтов.

После получения необходимой информации была собрана нейронная сеть. Далее провели её тестирование на примере легитимных доменов с Alexa.com и зловредных с интерсетью. По результатам тестирования исправлены некоторые недочёты и выведена идеальная структура ИНС. После финальных настроек и наблюдений было замечено, что нейронная сеть работает недостаточно быстро, но результат её работы оказывается верным в 98 % случаях. Спорными для ИНС остаются только доменные имена, которые на 85 % схожи с легитимными доменами, но таковым не являются.

Результат

Работа полностью удовлетворяет критериям, определённым разработчиками. Были достигнуты следующие цели:

1)  простота применения заключается в том, что стоит лишь загрузить интересующий вас домен в файл, который следует поместить в код, запустить нейронную сеть, и в результате пользователь получает информацию о легитимности данного домена;

2)  для корректной работы нейронной сети достаточно иметь 2 Гб оперативной памяти (что довольно мало на сегодняшний день) и предустановленный Python 3-интерпретатор (загрузить необходимые языковые библиотеки можно с помощью добавленного файла с требованиями).

3)  Правильность вычислений корректна на 98 %.

Оснащение и оборудование

  1. Персональный компьютер.
  2. Программное обеспечение:
  • язык программирования Python.

Перспективы использования результатов работы

Возможность использования подобной методики в антивирусах.

Особое мнение

«На мой взгляд, подобные мероприятия помогают всем нам показывать свои идеи и воплощать их. Благодаря таким проектам мы можем найти единомышленников, с которыми можно обменяться своими знаниями, опытом. Мой проект не является новшеством, но он помог мне получить больше знаний и развиться в области программирования. Я рада, что смогла стать небольшой частью этого проекта»