ВВЕДЕНИЕ 4
1. ВИДЫ АТАК НА ИНФОРМАЦИОННЫЕ СИСТЕМЫ 6
1.1. SQL-инъекция 6
1.1.1. Основные понятия 6
1.1.2. Основные виды инъекций 6
1.1.3. Пример случайного проведения атаки 8
1.1.4. Причины появления 9
1.2. Сетевые атаки 11
1.2.1. Описание используемого набора данных 11
1.2.2. Виды атаки 12
1.3. Подходы к обнаружению атак 13
2. ИСКУССТВЕННЫЕ ИММУННЫЕ СИСТЕМЫ 21
2.1. Краткое описание 21
2.2. Алгоритм негативного отбора 23
2.3. Алгоритм генерации детекторов Forrest 25
2.4. Алгоритм генерации детекторов v-detector 27
2.4.1. Генерация набора детекторов 27
2.4.2. Генерация случайного детектора 29
2.4.3. Тестирование на синтетических данных ИИС с алгоритмом
генерации детекторов v-detector 30
3. АНАЛИЗ ДАННЫХ И ОБНАРУЖЕНИЕ АТАК 32
3.1. Алгоритм тестирования 32
3.2. Тестирование работы ИИС на наборе данных с SQL-запросами 33
3.2.1. Сбор данных 33
3.2.2. Подготовка данных к последующей обработке 35
3.2.3. Выбор параметров запросов для классификации данных 35
3.2.4. Результаты тестирования 36
3.3. Тестирование работы ИИС на наборе данных KDD CUP 37
3.3.1. Сбор данных 37
3.3.2. Подготовка данных к последующей обработке 37
3.3.3. Параметры KDD CUP 99 38
3.3.4. Результаты тестирования 41
3.4. Применение системы классификации данных на практике 45
4. ЗАКЛЮЧЕНИЕ 47
5. СПИСОК ЛИТЕРАТУРЫ:
С ростом числа пользователей информационных систем растут и требования к ним. Система должна обладать интуитивно понятным пользовательским интерфейсом, высокой скоростью работы, хорошей надёжностью, и, конечно же, обеспечивать безопасность хранимых данных. Большинство из нас совершает покупки в Интернет-магазинах предоставляя информацию о своих банковских картах, пользуется государственными услугами, указывая свои персональные данные. Новые требования безопасности приводят к усложнению архитектуры и реализации web- приложений.
Пользовательские и иные данные хранятся на сервере в реляционных или объектно-реляционных базах данных (БД). Такие системы используют язык программирования SQL. С его помощью web-приложения строят запросы к БД и отправляют их на сервера управления базами данных (СУБД).
Одним из видов атак на БД является SQL-инъекция. В случае атаки вместо предполагаемого разработчиком запроса, СУБД выполняет несанкционированные команды, добавленные злоумышленником например через поля, которые представлены для взаимодействия с пользователем. Используя такую уязвимость, «хакер» может получить конфиденциальную информацию или контроль над сервером. Такой вид атаки очень прост в реализации, и её способен провести даже неподготовленный пользователь, допустив опечатку при вводе данных.
Повышение вычислительной мощности компьютерных комплектующих позволяет обрабатывать больший объём данных за меньший промежуток времени. Благодаря этому злоумышленники способны быстрее обнаруживать “дыры безопасности”, подбирать параметры и исследовать атакуемую информационную систему. Параллельно большое распространение получают системы машинного обучения благодаря их возможностям: нечёткая логика и способность обнаружения ранее неизвестных объектов, например атак.
Цель настоящей работы: реализация алгоритма ИИС для обнаружения сетевых атак и атак вида SQL-инъекция.
Для достижения поставленной цели необходимо выполнить следующие задачи:
• получить различные выборки экспериментальных данных;
• реализовать систему классификации данных, использующую теорию искусственных иммунных систем (ИИС);
• протестировать ИИС с различными параметрами и алгоритмами генерации детекторов.
Для моделирования атаки типа SQL-инъекция будет использоваться СУБД Microsoft SQL Server 2014 Express. Для тестирования и демонстрации уязвимостей будет реализован специальный «сайт-жертва», специально развёрнутый на локальном хосте. Генерация нормальных запросов будет реализована Python-скриптом. Для генерации запросов с SQL-инъекцией будет использоваться программа SQLmap.
Для сетевых атак будет использоваться открытая база данных KDD CUP’99[1.]. Данные будут экспортироваться в СУБД Postgres и там же обрабатываться.
Предлагаемая система обнаружения атак будет реализована в виде Python - программы с интерфейсом программной строки (command line interface, CLI).
1. Проведён ряд экспериментов, моделирующих выполнение нормальных запросов и запросов с SQL-инъекцией. В ходе работы был сформирован набор данных, состоящий из десяти тысяч нормальных и десяти тысяч вредоносные запросов.
2. Был обработан и подготовлен набор данных KDD CUP'99 для анализа его ИИС.
3. Разработано программное обеспечение на языке программирования Python, использующее ИИС с алгоритмом негативной селекции. Система была обучена на выборке данных SQL-запросов (200 нормальных запросов) и выборке данных сетевого трафика (1000 нормальных пакетов)
4. Разработанная ИИС была протестирована на выборке данных SQL- запросов (10000 нормальных запросов, 10000 вредоносных) и на выборке данных сетевого трафика (10000 вредоносных и 10000 нормальных) при различных параметрах и алгоритмах генерации детекторов.
Результаты тестирования на наборе данных с SQL-запросами: при использовании алгоритма Forrest's, вероятность ошибки «пропущенная атака» равна 50%, а «ложная тревога» стремится к нулю. При использовании алгоритма v-detector, вероятность ошибки «пропущенная атака» равна 2%, а ошибки «ложная тревога» 1%. Результаты тестировании на наборе данных KDD CUP'99: при использовании алгоритма Forrest's, вероятность ошибки «пропущенная атака» равна 37%, а «ложная тревога» стремится к нулю. При использовании алгоритма v-detector, вероятность ошибки «пропущенная атака» и ошибки «ложная тревога» примерно равна 1%.
5. Таким образом, использование алгоритма генерации детекторпов v- detector даёт лучший результат классификации данных при тех же параметрах что и алгоритм Forrest's.
6. Проанализирована зависимость ошибок «ложная тревога» и «пропущенная атака» от параметров системы. Алгоритм v-detector даёт лучший результат классификации данных при тех же параметрах что и алгоритм Forrest's.
Увеличение числа детекторов при алгоритме Forrest генерации детекторов обеспечивает улучшение распознавания типа данных (62% при 400 детекторах против 63% при 4000 детекторах), но не достигает результатов алгоритма генерации детекторов v-detector (97%).