Тип работы:
Предмет:
Язык работы:


ОБНАРУЖЕНИЕ SQL-ИНЪЕКЦИЙ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВЫХ АЛГОРИТМОВ

Работа №46565

Тип работы

Дипломные работы, ВКР

Предмет

информационная безопасность

Объем работы64
Год сдачи2018
Стоимость4230 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
340
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1. SQL-ИНЪЕКЦИИ 6
1.1. Основные понятия 6
1.2. Разновидности SQL-инъекций 7
1.2.1 UNION SQL-инъекция 7
1.2.2 Boolean-based blind SQL-инъекция 7
1.2.3 Error-based SQL-инъекция 8
1.2.4 Stacked queries SQL-инъекция 8
1.2.5 Time-based blind SQL-инъекция 8
1.3. Методы решения задачи обнаружения SQL-инъекций 8
2. СБОР И ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ 14
2.1. Сбор данных 14
2.1.1 Генерация нормальных запросов 14
2.1.2 Генерация вредоносных запросов 15
2.1.3 Трассировка сервера баз данных 19
2.2 Предварительная обработка данных 21
3 АНАЛИЗ ДАННЫХ И РАСПОЗНАВАНИЕ НЕЙРОННЫМИ СЕТЯМИ ... 24
3.1. Нейросетевые алгоритмы 24
3.1.1. Нейронные сети прямого распространения 26
3.1.2. Радиально-базисные нейронные сети 27
3.1.3. Самоорганизующиеся карты Кохонена 28
3.2 Использование нейросетевых алгоритмов для обнаружения SQL-
инъекций в среде Matlab 29
3.2.1 Использование нейронных сетей прямого распространения 29
3.2.2 Использование радиально-базисных нейронных сетей 37
3.2.3 Использование самоорганизующихся карт Кохонена 43
3.3 Анализ результатов 45
ЗАКЛЮЧЕНИЕ 49
СПИСОК ЛИТЕРАТУРЫ 50
ПРИЛОЖЕНИЕ 52
П.1. Скрипты Python для генерации легитимных запросов к БД. 52
П. 2. Скрипт Matlab для чтения векторов параметров с текстового файла 57
П.3. Скрипт Matlab для обучения нейронной сети прямого распространения 58
П. 4. Скрипт Matlab для обучения радиально-базисной нейронной сети.. 59
П. 5. Скрипт Matlab для обучения самоорганизующихся карт Кохонена. 59
П. 6. Скрипт Matlab для симуляции нейронной сети прямого распространения и радиально-базисной нейронной сети 59
П. 7. Скрипт Matlab для симуляции самоорганизующихся карт Кохонена 61
П. 8. Исходный код сайта, осуществляющий подключение к СУБД и позволяющий выполнять SQL-инъекции 62
П. 9. SQL-скрипт и скалярные функции вычисляющие вектора параметры для обучения нейронной сети

Сегодня интернет стал обязательной частью общества, а количество сайтов с каждым днем растет все с большей скоростью. Веб-сайты позволяют отыскать почти всю необходимую информацию. В процессе развития веб-технологий пришлось столкнуться с большим объемом однотипной информации. В частности, появилась необходимость хранить информацию о пользователях ресурса. Такой информацией могут являться, например, пароли, конфиденциальные данные, служебная информация, личные данные. Это привело к тому, что веб-приложения стали оснащаться подключением к серверу баз данных, которые берут на себя работу по хранению, записи и предоставлению по первому требованию необходимой информации, если у пользователя есть на это права.
Для работы с одним из видов баз данных был разработан специальный язык структурированных запросов. Таким языком является SQL (Structured Query Language). Пользователь веб-ресурса формирует, так называемый, SQL-запрос и отправляет его в систему управления базами данных (СУБД). Далее СУБД отправляет ответ пользователю на его запрос или изменяет содержимое базы данных.
Однако пользователи могут получить несанкционированный доступ к информации, которая не должна быть им доступна. Одним из таких способов получения информации является SQL-инъекция, где вместо нормального запроса формируется модифицированный вредоносный запрос. Стоит отметить, что такую атаку реализовать очень просто и ее может осуществить почти любой злоумышленник. К тому же существуют распространенные в свободном доступе программы, которые осуществляют данную атаку в автоматическом режиме. Таким образом, существует острая необходимость в разработке средств защиты баз данных от таких атак.
Целью работы является анализ эффективности использования нейронных сетей для обнаружения атак вида SQL-инъекция и выбор наилучшей архитектуры.
Поставленная цель требует решения следующих задач:
• получить набор экспериментальных данных, в которые входят большое количество сгенерированных нормальных и вредоносных запросов;
• реализовать алгоритмы нейронных сетей;
• определить, вычислить и выгрузить числовые параметры, которые позволят идентифицировать нормальный и вредоносный запрос. Получить их из экспериментальных данных, для обучения и тестирования нейронных сетей;
• оценить точность распознавания атак и выбрать наиболее эффективный для решения задачи распознавания вариант нейронной сети среди рассмотренных.
Для решения данных задач будет использоваться учебная БД Adventure Works 2014, которая будет развернута в СУБД Microsoft SQL Server Express 2017. Для генерации SQL-инъекций будет использована утилита SQLMAP. Будет написан сайт на php, сервер для которого будет развернут с помощью Apache. Рассмотрение нейронных сетей и анализ экспериментальных данных будет проводится в среде Matlab.

Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


1. Получен большой набор экспериментальных данных, состоящий из 100000 нормальных и 100000 вредоносных запросов. Нормальные запросы генерировались скриптом, написанным на языке Python. Вредоносные запросы генерировались при помощи SQLMAP.
2. Реализованы алгоритмы нейронных сетей:
• нейронная прямого распространения;
• радиально-базисная нейронная сеть;
• самоорганизующиеся карты Кохонена.
3. Были написаны скрипты, которые определяют следующие основные параметры сгенерированных запросов, для обучения и тестирования нейронных сетей:
• относительное число буквенных символов;
• относительное число числовых символов;
• относительная длина запроса без пробелов;
• относительное число спецсимволов.
4. Получен наилучший вариант нейронной сети среди рассмотренных -
нейронная сеть прямого распространения со следующей конфигурацией:
• функция активации - logsig;
• функция активации выходного слоя - purelin;
• функция контроля ошибок - mse;
• число слоев - 2;
• число нейронов на слой - 10;
• функция обучения - trainlm.
Данная конфигурация имеет процент ошибок 1 рода - 0,009%, процент ошибок 2 рода - 0,01% при времени обучения - 2 м 7 с.



1) Тецкий А. Г. Исследование методов получения содержимого базы данных с помощью SQL-инъекций // Сайт Харьковского авиационного института. URL: https://www.khai.edu/csp/nauchportal/Arhiv/OIKIT/2014/OIKIT 66/p 188- 191.pdf (дата обращения: 10.10.17).
2) SQLMAP: SQL-инъекции - это просто // xaker.ru: информационный ресурс по информационной безопасности. URL: https://xakep.ru/2011/12/06/57950/(дата обращения: 10.10.17).
3) Моокхи К. К., Бургхате Н. Обнаружение SQL-инъекций и CSS атак //
SecurityLab: информационный портал по безопасности. URL:
http://www.securitylab.ru/analytics/216344.php(дата обращения: 10.10.17).
4) Обнаружение SQL-инъекций в ORACLE // Oracloid: информационный портал по СУБД Oracle. URL: Oracle http://www.oracloid.ru/index.php?t=46(дата обращения: 02.04.17).
5) Шабалин Ю. Д., Елисеев В.Л. Исследование нейросетевого алгоритма для
обнаружения аномалий в поведении сетевого хоста при автоматизированном поиске XSS-уязвимостей и SQL-инъекций // CyberLeninka: научная электронная библиотека. URL:
http://cyberleninka.ru/article/n/investigation-of-neural-network-algorithm-for- detection-of-network-host-anomalies-in-the-automated-search-for-xss- vulnerabilities-and-sql(дата обращения: 10.10.17).
6) Kang M., Kang J. Intrusion Detection System Using Deep Neural Network for In-Vehicle Network Security // PLOS: ресурс научных публикаций. URL: http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0155781(дата обращения: 10.10.17).
7) Сумкин К. С., Тверской А. Н., Морозова Т. Ю. Метод интеллектуальной
поддержки принятия решений в задачах идентификации компьютерных атак // CyberLeninka: научная электронная библиотека. URL:
https://cyberleninka.ru/article/v/metod-intellektualnoy-podderzhki-prinyatiya- resheniy-v-zadachah-identifikatsii-kompyuternyh-atak(дата обращения:
10.10.17).
8) Halenar I., Juhasova B., Juhas M., Nesticky M. Application of Neural Networks
in Computer Security // Sciencedirect: ресурс научных публикаций. URL: https://www.sciencedirect.com/science/article/pii/S1877705814003579 (дата
обращения: 10.10.17).
9) Использование SQLMAP на Kali Linux: взлом веб-сайтов и баз данных через SQL-инъекции // codeby: ресурс по информационной безопасности. URL: https://codeby.net/bezopasnost/ispolzovanie-sqlmap-na-kali-linux-vzlom- veb-sajtov-i-baz-dannyh-cherez-sql-inekcii/(дата обращения 10.10.17).
10) Максимюк Г.С. Использование технологии data mining для обнаружения SQL-инъекций / Г.С. Максимюк // Сборники статей и тезисов Итоговой научно-образовательной конференции студентов 2016 года - 2016. - С. 212¬213.
11) Представление знаний нейронными сетями // ITteach: образовательный портал в области IT. URL: http://itteach.ru/predstavlenie-znaniy/predstavlenie- znaniy-neyronnimi-setyami(дата обращения: 03.12.17).
12) Круглов, В. В. Нечеткая логика и искусственные нейронные сети/ М. И. Дли, Р Ю. Голунов. - М.: ФИЗМАТЛИТ, 2001. - 48 - 49с.
13) Алгоритм Левенберга - Марквардта // MachineLearning: информационный
портал по машинному обучению. URL:
http: //www. machinelearning.ru/wiki/index.php?title=Алгоритм_Левенберга- Марквардта (дата обращения 03.12.17).
14) Медведев В. С., Потемкин В.Г. - Нейронные сети Matlab 6 // Сайт
технического института Le Quy Don. URL:
http://fit.lqdtu.edu.vn/files/DanhSach/%D0%9D%D0%B5%D0%B9%D1%80 %D0%BE%D0%BD%D0%BD%D 1 %8B%D0%B5%20%D 1 %81 %D0%B5% D1%82%D0%B8%20%D0%B2%20Matlab.pdf (дата обращения: 03.12.17).
15) Выбор параметров сети // Сайт группы МЭИ-06-2. URL:
http://mei06.narod.ru/sem7/iis/shpora/page2_9.html (дата
обращения: 03.12.17).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ