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


ОБНАРУЖЕНИЕ SQL-ИНЪЕКЦИЙ МЕТОДОМ КЛАСТЕРНОГО АНАЛИЗА

Работа №52388

Тип работы

Бакалаврская работа

Предмет

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

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

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


ВВЕДЕНИЕ 3
1. SQL- ИНЪЕКЦИИ 5
1.1 Основные понятия 5
1.2 Основные виды инъекций 5
1.2.1 UNION SQL-инъекция 5
1.2.2 Error-Based SQL-инъекция 6
1.2.3 Stacked-Based SQL-инъекция 6
1.2.4 Blind SQL-инъекция 6
1.2.5 Time-based SQL-инъекция 7
1.3 Причины появления SQL-инъекций 8
1.4 Подходы к решению задачи обнаружения SQL-инъекций 10
2. СБОР И ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА
ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ 22
2.1 Сбор данных 22
2.2 Подготовка данных к последующей обработке 26
3. АНАЛИЗ ДАННЫХ И ОБНАРУЖЕНИЕ АТАК 28
3.1 Выбор параметров для кластеризации и обучение системы 28
3.1.1 Параметры из SQL Profiler 28
3.1.2 Параметры, описывающие особенности текста запроса 33
3.2 Тестирование и оценка точности обнаружения SQL - инъекций 42
3.2.1 Принятие решения на основе метрики Евклида 43
3.2.2 Принятие решения на основе нормализованного Евклидова
расстояния 45
3.2.3 Принятие решения на основе СКО 46
3.3 Реализация данной системы на практике 46
ЗАКЛЮЧЕНИЕ 49
СПИСОК ЛИТЕРАТУРЫ: 51
ПРИЛОЖЕНИЕ

Сложно преуменьшить роль Интернета для среды программных продуктов. Приложения, основанные на web-технологиях, стали востребованы в решении задач из разных отраслей и постепенно вытесняют приложения, основанные на других технологиях. Они тесно интегрировались в нашу жизнь. Нет необходимости ехать и узнавать какие-нибудь данные, например, цены в магазине или данные по карте. Достаточно просто перейти на нужный сайт.
Однако, это в свою очередь привело к усложнению web-приложений в плане структуры, архитектуры и реализации, к тому же в них стала использоваться распределенная архитектура. Такое усложнение выдвинуло новые требования к вопросам безопасности web-приложений. Если меры безопасности будут заложены в приложение на раннем этапе разработки, то это значительно сэкономит время и средства, по сравнению с вариантом, когда безопасность будет добавляться в готовое или практически готовое приложение. Вопросы безопасности и надежности являются актуальными на всех этапах разработки.
Пользовательские и иные данные хранятся на сервере в базах данных (БД). Они работают, используя такой язык программирования, как SQL - Structured Query Language - язык структурированных запросов. Благодаря ему, сайты строят запросы к БД и отправляют их на сервера управления базами данных (СУБД). Сервер исполняет полученный запрос, а результат выполнения возвращает обратно пользователю.
Один из типов атак на БД - это SQL-инъекция. На сегодняшний день она встречается как при эксплуатации СУБД, так и в web-программировании. В случае атаки вместо предполагаемого разработчиком запроса, СУБД выполняет несанкционированные команды, введенные злоумышленником через поля, предоставленные, например, для заполнения пользовательских данных. Используя уязвимость, «хакер» может получить конфиденциальную информацию. SQL-инъекция очень проста в реализации. Этот класс атак в случае динамически формируемых запросов использует дополнительный “зловредный” запрос, введенный злоумышленником. Благодаря её использованию, атакующий может получить конфиденциальную информацию или даже получить контроль над сервером. Обозначенные выше обстоятельства делают необходимыми проверку вводимых пользователем данных, дальнейший анализ запроса и внедрение защиты от атак.
Цель настоящей работы: разработка системы обнаружения и
предотвращения атак, основанных на SQL-инъекциях.
Для достижения поставленной цели необходимо выполнить следующие задачи:
• получить набор экспериментальных данных;
• определить параметры, позволяющие идентифицировать в запросе SQL- инъекцию;
• разработать и реализовать метод обнаружения атак класса SQL- инъекций;
• протестировать обнаружитель и оценить точность распознавания атак.
Работа выполнена с использованием учебной БД под управлением СУБД
Microsoft SQL Server 2014 Express. Для тестирования уязвимостей использован сайт - «жертва», специально развернутый на локальном хосте и написанный на ASPX.net. Для генерации SQL-инъекций использовалась программа SQLmap.


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

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

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


1. Проведен ряд экспериментов, моделирующих выполнение нормальных запросов и запросов с SQL-инъекцией. В результате был сформирован набор данных, состоящий из двух тысяч вредоносных и пятисот нормальных запросов;
2. Были проанализированы особенности основных типов SQL-инъекций и определены параметры запросов для эффективного обнаружения атак:
• относительное количество букв в запросе;
• относительное количество спецсимволов в запросе;
• относительное количество цифр в запросе;
• относительное количество символов без учета пробелов.
Важной особенностью этих параметров является то, что они позволяют обнаружить и предотвратить атаку до выполнения запроса.
3. На основе метода кластеризации k-средних реализована система распознавания атак класса SQL-инъекций. Ошибка распознавания атак на обучающей выборке равна 5%;
4. Разработанная система была протестирована на выборке данных не участвующих в обучении с различными критериями принятия решений. Результат тестирования: вероятность ошибки «ложная тревога» стремится к нулю, вероятность ошибки «пропущенная атака» 6% при использовании метрики Евклида. При использовании нормализованного Евклидова расстояния, вероятность ошибки «пропущенная атака» равна 20%, а ошибки «ложная тревога» 7%. Используя СКО, получена вероятность ошибки «пропущенная атака» 44%, а ошибки «ложная тревога» 92%;
5. Проанализирована зависимость ошибок «ложная тревога» и «пропущенная атака» от порога принятия решений.
Для критерия, основанного на метрике Евклида, вероятность ошибки «пропущенная атака» стремится к нулю, а ошибка «ложная тревога» равна 8%.
Критерий, основанный на нормированной метрике Евклида, показал результат вероятности появления ошибок «пропущенная атака» и «ложная тревога» 7%.
Наихудший результат показал критерий принятия решений на основе СКО. При использовании этого подхода, вероятность появления ошибок стремится к нулю, однако, только 95% вредоносных и 8% нормальных запросов было обработано.



1) Рябко Д. М. Подход к тестированию уязвимости web-приложений от атак типа SQL-инъекций / Д. М. Рябко. - Пробл. Програм-мув. - 2006. - 585-591 с.
2) SQLMAP: SQL-инъекции — это просто.
https://xakep.ru/2011/12/06/57950/.
3) Егоров М. Выявление и эксплуатация SQL-инъекций в приложениях. http s: //cnpo .ru/do c/echelon-sql .pdf.
4) Евтеев Д. SQL-injection от А до Я. http://www.ptsecurity.ru/download/PT-devteev-Advanced-SQL-Injection.pdf.
5) Котов В. Д., Васильев В. И. Современное состояние проблемы обнаружения / В. Д. Котов, В. И. Васильев. - Вестник УГАСТУ. - 2012. - 198204 с.
6) Стюгин М. А. Защита Интернет-ресурсов по технологии движущейся цели / М. А. Стюгин. - Доклады Томского государственного университета систем управления и радиоэлектроники. - № 2 - 2015 - 80-85 с.
7) Mitropoulos D., Spinelis D. SDriver: Location - Specific signature prevent SQL injection attacks / D. Mitropoulos, D. Spinelis. - Computers and Security
- №28. - Май/Июнь 2009. - 1-9 с.
8) Bravenboer M., Dolstra E., Visser E. Preventing injection attacks syntax embeddings / M. Bravenboer, E. Dolstra, E. Visser. - Science of Computer Programming. - №75. - Июль 2010. - 473-495 с.
9) Shar I. K., Tan H. B. K. Prediciting SQL injection and cross site scripting vulnerabilities through mining input sanitization patterns / I. K. Shar, H. B. K. Tan. - ICSE '13 Proceedings of the 2013 International Conference on Software Engineering.
- 2013. - 642-651 с.
10) Adi E. A design of a proxy inspired from human immune system to detect SQL Injection and Cross-Site Scripting. / E. Adi. - International Conference on Advances Science and Contemporary Engineering. - 2012. - 1-9 с.
11) Григоров А. С. Обзор методов обнаружения аномалий в SQL- запросах к базам данных / A.C. Григоров. - Современные тенденции технических наук: материалы междунар. науч. конф. - 2011. — 13-17 с.
12) Valeur F., Mutz D., Vigna G. A Learning-Based Approach to the Detection of SQL Attacks / F. Valeur, D. Mutz, G. Vigna. - Conference on Detection of Intrusions and Malware and Vulnerability Assessment (DIMVA). — 2005. — 123140 c.
13) Kamra A., Terzi E., Bertino E. Detecting Anomalous Access Patterns in Relational Databases ). / A. Karma, E. Terzi, E. Bertino. — The VLDB Journal. — 2008. — 1063-1077 с.
14) Kamra A. Mechanisms for Database Intrusion Detection and Response / A. Karma. — Proceeding IDAR '08 Proceedings of the 2nd SIGMOD PhD workshop on Innovative database research — 2008. — 31-36 с.
15) Коломыцев М., Носок С., Аудит аномального поведения пользователей баз данных. — http://pnzzi.kpi.ua/17/17_p67.pdf.
16) Lee S. Y., Low W. L., Wong P. Y. Learning Fingerprints for a Database Intrusion Detection System / S. Y. Lee, W. L. Low, P.Y. Wong. — COMPUTER SECURITY — ESORICS. — №2502 — 2002. — 264-279 c.
17) Low W. P., Lee J., Teoh P. DIDAFIT: Detecting intrusions in databases through fingerprinting transactions / W. P. Low, J. Lee, P. Teoh. — International Conference on Enterprise Information Systems. — 2002. — 994-1000 с.
18) Chung C. Y., Gertz M., Levitt. K. DEMIDS: A Misuse Detection System for Database Systems / C. Y. Chung, M. Gertz, K. Levitt. — Working Conference on Database and Application security. — 1999. — 159-178 с.
19) Павлов А.В. Обнаружение аномальной активности в реляционных базах данных на основе искусственных иммунных систем с отрицательным отбором / А. В. Павлов. — Научно-технический вестник Поволжья. — Казань: Научно-технический вестник Поволжья. — 2011. - 166-168 c.
20) Spalka A. and Lehnhardt. J. A comprehensive approach to anomaly detection in relational databases / A. Spalka, J. Lehnhardt. — DBSec — 2005. — 207221 с.
21) Jang Y. S. и Jin-Choi J. C Detecting SQL injection attacks using query result size / Y. S. Jang, J. C. Jin-Choi. - Computers & Security. — 2014. — 104-118 с.
22) Kharche S., Patil J., Gohad K., Ambetkar B. Preventing SQL injection attack using pattern matching algorithm. - https://arxiv.org/abs/1504.06920.
23) Halfond W. G. J., Orso A. Preventing SQL Injection Attacks Using
AMNESIA. -
http://www.cc.gatech.edu/~orso/papers/halfond.orso.ICSEDEMO06.pdf
24) Pietraszek T., Berghe C. V. Defending against Injection Attacks through
Context-Sensitive String Evaluation. —
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.3182.
25) Boyd S. W., Keromytis A. D. SQLrand: Preventing SQL Injection Attacks. http://web1.cs.columbia.edu/~angelos/Papers/sqlrand.pdf.
26) Wei K., Muthuprasanna M., Kothari S., Preventing SQL Inj ection Attacks
in Stored Procedures.
http://ece.ut.ac.ir/dbrg/seminars/AdvancedDB/Spring%202009/SeidHosein%20Leila/ Research1/References/Preventing%20SQL%20Injection%20Attacks%20in%20Store d%20Procedures.pdf;
27) Pinzon, C., De Paz J.F., Bajo J. AIIDA-SQL: An Adaptive Intelligent
Intrusion Detector Agent for detecting SQL Injection attacks.
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=5600026.
28) Dharam R., Shiva S .G. Runtime monitors for tautology based SQL injection attacks / R. Dharam, S. G. Shiva. - Cyber Security, Cyber Warfare and Digital Forensic (CyberSec), International Conference. - 2012. - 253-258 c.
29) Kar D., Suvasini P. Prevention of SQL Injection Attack Using Query Transformation and Hashing / D. Kar, P. Suvasini. - Proceedings of the 2013 3rd IEEE International Advance Computing Conference, IACC 2013. - 2013. - 1317-1323 с.
30) Максимюк Г.С. - Организация комплексной системы предотвращения SQL-инъекций / Г. С. Максимюк. - Итоговая научнообразовательная конференция студентов КФУ. - том 2. - 2015. - 126-130 с.
31) Кузнецов Д.Ю., Трошина Т.Л. Кластерный анализ и его применение. http://vestnik.yspu.org/releases/uchenue_praktikam/33_4/

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



Подобные работы


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