Введение 3
1. Анализ DNS трафика средствами искусственных нейронных сетей 5
1.1. DNS-трафик и его аномалии 5
1.2. Рекуррентные нейронные сети 12
1.3. Архитектура LSTM и GRU сетей 15
2. Применение GRU сети для выявления аномальных доменов 23
2.1. Модель решения задачи распознавания DGA 23
2.2. Модификация построенной модели с применением анализа групповой
активности и паттернов взаимодействия пользователей 28
2.3. Результаты практического применения построенной модели 30
Заключение 35
Список литературы 37
Приложение 39
В настоящее время стремительно развивается практическое применение методов машинного обучения (machine learning) и анализа данных (data mining), что вызвано, с одной стороны, появлением универсальных и полезных моделей, с другой стороны, определённой тенденцией компаний улучшать безопасность и качество услуг с помощью современных методов и технологий. Такая тенденция появилась в последнее десятилетие, прежде всего, за счёт удешевления устройств хранения и обработки данных, и, как следствие, постоянного их логирования, то есть сбора. В свою очередь, это привело к появлению специального термина - «Большие данные» («Big Data»), обозначающего набор технологий оперирования с современными огромными массивами информации. В производстве и тяжелой промышленности происходит активное применение Big Data для решения таких групп задач как: прогнозирование, оптимизация, определение скрытых зависимостей, а также выявление аномалий.
Задача выявления аномалий не имеет единой формулировки и зачастую интерпретируются по-разному в зависимости от характера данных и постав¬ленной цели. На интуитивном уровне аномалиями называют то, что не вписывается в общие правила и законы, справедливые для представленных данных. Например, в DNS данных аномалиями можно назвать принадлежность группы пользователей к ботнету, возникновения нехарактерных запросов и подозрительной активности. Данная задача является актуальной на сегодняшний день, поскольку количество пользователей в сети интернет растет и с этим растут попытки злоумышленников воспользоваться DNS протоколом с целью украсть личную информацию пользователей, компаний.
Целью данной выпускной квалификационной работы является попытка решения задачи выявления аномалий в DNS данных средствами машинного обучения, а именно, аппаратом искусственных нейронных сетей, и последующим внедрением результата в производство.
Для достижения постановленной цели необходимо решить ряд задач.
1. Проанализировать виды аномалий в DNS данных, определить методы ее решения и выделить особенности рекуррентных нейронных сетей, касательно данной задачи.
2. Определить модель рекуррентной нейронной сети и построить алгоритм для повышения качества выявления аномалий, на основе анализа групповой активности в сети.
3. Написать программную реализацию выявления аномалий и внедрить результат в производство.
Работа состоит из введения, двух глав, заключения, списка использован¬ной литературы и приложения. Работа изложена на 38 листах и включает в себя 15 рисунков, 5 таблиц. Список литературы содержит 18 наименований.
В данной выпускной квалификационной работе была поставлена задача выявления аномалий в DNS данных средствами машинного обучения, а именно, аппаратом искусственных нейронных сетей, и последующим внедре¬нием результата в производство. Несмотря на то, что DNS призван упростить работу пользователей с доменными именами, его начали использовать зло¬умышленники для своих целей. Одной из актуальных проблем на сегодняш¬ний день является возникновение ботнетов, то есть подмножества зараженных компьютеров в сети, которые для реализации подключения между управляю¬щим сервером и хостами в основном используют домены сгенерированные DGA алгоритмом. Данные домены являются плохо читаемыми и выделяются среди других.
В качестве метода определения и распознавания DGA доменов были рассмотрены рекуррентные нейронные сети. Рекуррентная нейронная сеть мо¬жет связывать поданную ранее информацию и поступающую в настоящий мо¬мент времени и, как следствие, позволяет рассматривать доменное имя как единое целое, выявлять обобщения в построении сгенерированных доменов. Однако, на практике оказывается, что если разрыв между прошлой информа¬цией и настоящей достаточно велик, то эта связь теряется, и подобная сеть неспособна её обрабатывать.
Для решения данной проблемы был предложен подход, получивший название LSTM (Long Short-Term Memory - долгая краткосрочная память). Данная рекуррентная сеть позволяет запоминать значения как на короткие, так и на длинные промежутки времени и была разработана для того, чтобы иметь более устойчивую память, тем самым упрощая для обычной рекуррентной нейронной сети фиксирование долгосрочной зависимости. Позднее она была усовершенствована и оформлена в качестве модели GRU (Gated Recurrent Unit), которая основана на тех же принципах, что и LSTM, но которая исполь¬зует меньше фильтров и операций. В распознавании DGA доменов GRU сеть немного превосходит LSTM благодаря более качественному обучению.
Построенная модель GRU состоит из 128 нейронов и сигмоидальной функцией активации. Преобразование входных доменов происходило кодиро¬ванием позицией символа в алфавите, а также последующим применением слоя внедрения. Представление слов данным способом помогает алгоритму обучению достичь большей производительности. В основном модель, как и предполагалось, реагировала на не читаемость доменных имен. Однако в спи¬сок нечитаемых попадали домены, явно сгенерированные различными про¬граммами на стороне хоста, но не являющимися зловредными.
Для решения данного недостатка был проведен анализ паттернов вза-имодействия пользователей в компьютерной сети, так как одной из характер¬ных особенностей ботнета является то, что если один компьютер в корпора¬тивной сети заражен и является его частью, то скорее всего он “тянет” за собой и другие компьютеры. Внедрения алгоритма выявления групповой активности в модель рекуррентной сети позволило уменьшить время работы программы, а также повысить качество выявления зловредных доменных имен.
Программа, разработанная на основе объединения модели рекуррент¬ной нейронной сети и алгоритма выявления групповой активности, была внед¬рена на сервер компании «ICL Системные технологии» и показала неплохие результаты в нахождении аномалий в DNS данных. Искусственное имитиро¬вание ботнета из 5-6 пользователей в течении 4 часов было успешно выявлено и позволило системному администратору правильно среагировать на возник¬шую аномалию.
1. Both D. Introduction to the Domain Name System (DNS) [Электронный ре¬сурс] / D. Both, 2017. Режим доступа: https://opensource.com/ article/17/4/in- troduction-domain-name-system-dns, свободный.
2. Anwar S. A Review Paper on Botnet and Botnet Detection Techniques in Cloud Computing [Электронный ресурс] / Shahid Anwar, Jasni Binti Mohamad Zain Mohamad Fadli Bin Zulkipli, Zakira Inayat, 2015. Режим доступа: https:// www.researchgate.net/publication/283257776_A_Review_Paper_on_Bot- net_and_Botnet_Detection_Techniques_in_Cloud_Computing, свободный.
3. Ollmann G. Botnet Communication Topologies. Understanding the intricacies of botnet command-and-control [Электронный ресурс] / G. Ollmann, 2009. Режим доступа: http: //technicalinfo. net/papers/PDF/WP_Botnet_Communica- tions_Primer_(2009-06-04), свободный.
4. Cybereason Lab Analysis, Dissecting Domain Generation Algorithms Eight Real World DGA Variants [Электронный ресурс] / Cybereason Lab Analysis,
2016. Режим доступа: http://go.cybereason.com/rs/996-YZT-709/im- ages/Cybereason-Lab-Analysis-Dissecting-DGAs-Eight-Real-World-DGA- Variants.pdf), свободный.
5. Silge J. Term Frequency and Inverse Document Frequency (tf-idf) Using Tidy Data Principles [Электронный ресурс] / Julia Silge, David Robinson, 2018. Режим доступа: https://cran.r-project.org/ web/packages /tidytext/vi- gnettes/tf_idf.html, свободный.
6. Wang T. Detecting Algorithmically Generated Domains Using Data Visualiza¬tion and N-Grams Methods [Электронный ресурс] / T. Wang, C. Li-Chiou,
2017. Режим доступа: https://pdfs.semanticscholar.org /bf0c/5b619ccbbbe25349df0f6b7b14a4dafb3aec, свободный.
7. Хайкин, С. Нейронные сети: полный курс / С. Хайкин 2-е изд., испр. -М.: ООО И.Д.Вильямс, 2006. - 1104 с.
8. Анил, К. Д. Введение в искусственные нейронные сети / К.Д. Анил, Мичи¬ганский Государственный университет, США, 1996. - 16 с.
9. Elman J. L. Finding structure in time [Электронный ресурс] / J. L. Elman, 1990. Режим доступа: https://crl.ucsd.edu/~elman/Papers/fsit.pdf, свободный.
10. Будыльский Д. В. GRU и LSTM: современные рекуррентные нейронные сети [Электронный ресурс] / Д. В. Будыльский, 2015. Режим доступа: https://moluch.ru/archive/95/21426, свободный.
11. Hochreiter S. Long short-term memory [Электронный ресурс] / S. Hochreiter,
J. Schmidhuber. 1997. Режим доступа: http://www.bioinf.jku.at/ publica- tions/older/2604, свободный.
12. Cho K. On the properties of neural machine translation: Encoder-decoder ap¬proaches [Электронный ресурс] / K. Cho, 2014. Режим доступа: https://arxiv.org/abs/1409.1259, свободный.
13. Chung J. Empirical evaluation of gated recurrent neural networks on sequence modeling [Электронный ресурс] / J. Chung, 2014. Режим доступа:
https: //arxiv.org/abs/1412.3555, свободный.
14. Greff K. LSTM: A Search Space Odyssey [Электронный ресурс] / K. Greff,
2015. Режим доступа: https://arxiv.org/abs/1503.04069, свободный.
15. Britz D. Reccurent Neural Networks Tutorial, Part 3 - Backpropagation Through Time and Vanishing Gradients [Электронный ресурс] / D. Britz,
2015. Режим доступа: http://www.wildml.com/2015/10/recurrent-neural-net- works-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients, свободный.
16. Асанов, М. Дискретная математика: графы, матроиды, алгоритмы / М. Асанов, В. Баранский, В. Расин. — НИЦ РХД, 2001. - 288 с.
17. Доусон, М. Программируем на python / М. Доусон. Пер. с англ. -СПб.: «Питер», 2016. - 416 с.
18. Рейтц, К. Автостопом по Python / К. Рейтц, Т. Шлюссер. Пер. с англ. Е. Зазноба. - СПб.: «Питер», 2017. - 336 с.