Аннотация 2
Введение 5
1 Исследование предметной области 6
1.1 Постановка задачи 6
1.1.1 Основы DNS 7
1.1.2 Эксфильтрация данных 9
1.2 Существующие методы 12
1.2.1 Анализ биграмм 12
1.2.2 Статистический метод 13
1.2.3 Метод опорных векторов (SVM) 13
1.2.4 Метод случайного леса (RF) 15
1.3 Существующие утилиты по созданию DNS-туннелей 16
1.4 Математическая модель 18
1.4.1 Сверточная нейронная сеть 18
1.4.2 Архитектура нейронной сети 22
2 Реализация системы распознавания DNS-туннелей 27
3 Тестирование и анализ эффективности 36
Заключение 39
Список используемой литературы 40
Скрытые кибератаки могут иметь серьезные последствия для компаний. В частности, злоумышленники могут получить конфиденциальную информацию, которая может быть использована в корыстных целях. Это может привести к утрате доверия пользователей и, в конечном итоге, к снижению рыночной стоимости организации. Кроме того, компания может столкнуться с судебными и финансовыми последствиями в случае утечки конфиденциальной информации.
DNS-туннелирование - это метод передачи данных через протокол DNS, который используется для решения сетевых запросов, связанных с доменными именами. При использовании DNS-туннелирования данные кодируются в формат DNS-запроса, который затем отправляется на DNS-сервер. Данные извлекаются из ответа, который возвращается отправителю, и расшифровываются. DNS-туннелирование используется для передачи данных через сеть, которая обычно блокирует определенные протоколы, такие как FTP, SSH и т.д.
DNS-серверы могут быть скомпрометированы злоумышленниками, которые могут использовать различные методы, такие как взлом пароля администратора, использование уязвимостей в программном обеспечении сервера или ввод вредоносного кода через DNS-туннелирование.
Для защиты DNS-серверов от таких атак, была реализована система, основанная на сверточной нейронной сети, способная обнаруживать формирование DNS-туннелей. Этим подтверждается актуальность работы.
В результате данной выпускной квалификационной работы были выполнены все поставленные задачи.
Получены следующие результаты:
• проведена аналитическая работа по изучению проблемы обнаружения DNS туннелей в реальном времени. В рамках работы были рассмотрены существующие методы анализа DNS трафика, а также реализован подход к решению данной проблемы, основанный на машинном обучении;
• реализована система по обнаружению DNS-туннелей с использованием различных технологий;
• в результате тестирования разработанной системы не было обнаружено ошибок, а результаты взаимодействия с программой подтвердили правильность ее работы;
В ходе исследования предметной области были указаны материалы, позволяющие ознакомиться с теоретическими данными и реализацией сверточной нейронной сети в области обработки естественного языка.
Итак, использование сверточной нейронной сети для текстового анализа доменных имен в обнаружении DNS-туннелирования предоставляет преимущества по сравнению с применением других методов. В отличие от статистических методов, такой подход не требует полного анализа содержимого DNS-запроса, включая временные характеристики и накопление исторических данных о сети. Более того, текстовый анализ доменных имен превосходит анализ биграмм, поскольку не требует построения таблицы частот для каждого языка.
1. Башмаков, С.А. Анализ DNS-трафика для обнаружения утечек конфиденциальной информации / С.А. Башмаков, А.А. Журчев // Информатика и её применения. - 2017. - Т.11. - №11. - С. 5-12.
2. Бубнов, Я. В. Текстовый анализ DNS-запросов для защиты компьютерных сетей от эксфильтрации данных / Я. В. Бубнов, Н. Н. Иванов // Информатика. - 2020. - Т. 17, № 3. - С. 78-86.
3. Ветров, А. А. Анализ трафика на основе DNS-запросов / А. А. Ветров // Молодой ученый. - 2017. - Т.37. - №37. - С. 225-228.
4. Гелиг А., Матвеев А. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие / Аркадий Гелиг, Алексей Матвеев - Издательство СПбГУ, 2014.
5. Глушенко, В. А. Анализ DNS-трафика для выявления и классификации сетевых атак / В. А. Глушенко, О. В. Макаров // Научный журнал КубГАУ. - 2018. - Т.145. - №145. - С. 1-15.
6. Документация по языку программирования Python // Python
[Электронный ресурс]: официальный сайт Python. URL:
https://www.python.org/doc/.
7. Дятлов, Ю. С. Методы обнаружения и защиты от DNS-атак / Ю. С. Дятлов, С. И. Волков // Труды Института системного программирования РАН. - 2016. - Т.28. - №2. - С. 47-64.
8. Захаров, А. В. Обнаружение и анализ DNS-туннелирования / А. В. Захаров, Е. В. Соколова, Ю. Г. Шерстобитов // Информационные технологии. - 2017. - Т.23. - №10. - С. 662-671.
9. Калабухов Е.В., Недведский А.Ю., Масензов В.В., & Якубович Ф.В. Обнаружение передачи несанкционированного трафика посредством туннелирования DNS. // Журнал «Наука, образование.
10. Липеев, В. А. Обзор технологий DNS-фильтрации и их сравнительный анализ / В. А. Липеев, А. А. Литвинов // Вестник Московского университета МВД России. - 2016. - Т.4. - №4. - С. 130-138.
11. Bianco, D. (2006, May 3). A traffic-analysis approach to detecting dns tunnels.
12. Bondarenko, A. & Shtovba, S. Analysis of Existing Approaches to DNS Tunneling Detection. // 2019 IEEE International Conference on Advanced Trends in Information Theory (ATIT). - 2019. - P. 1-6.
13. Chen, C.-H., Tseng, H.-F., & Chen, C.-Y. Network Traffic Analysis for Detecting DNS Tunneling. // 2019 2nd International Conference on Communication Engineering and Technology (ICCET). - 2019. - P. 179-182.
14. Das, A., Shen, M.Y., Shashanka, M., & Wang, J. Detection of exfiltration and tunneling over DNS. // 16th IEEE International Conference on Machine Learning and Applications. - 2017. - P. 529-534.
15. Eddison, L. Python Machine Learning: A Technical Approach To Python Machine Learning For Beginners. // CreateSpace Independent Publishing Platform. 2018. P. 237.
... всего 26 источников