Информационная безопасность
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
В°тора и о необходимости добавить адрес оптимального маршрутизатора в таблицу маршрутизации. При наводнении этими ICMP-сообщениями о перенаправлении атака WinFreeze может вызвать отказ в обслуживании уязвимого хоста, работающего под управлением Windows NT. Атака выполняется в сети атакуемого компьютера, а ICMP-сообщения приходят от имени маршрутизатора этой сети. При получении массы сообщений redirect атакованный хост пытается внести изменения в таблицу маршрутизации, и ресурсы центрального процессора в основном тратятся на обработку поступающих пакетов.
В этом примере маршрутизатор router заставляет хост victim.com перенаправить отправляемые им (хостом) пакеты на самого себя. В результате при попытке внести многочисленные изменения в таблицу маршрутизации хост victim. com может не справиться с другими возложенными на него задачами.
2.3.4 Атака ICMP Flood
Атака ICMP Flood представляет из себя лавинное затопление ICMP-пакетами. Как правило, обычные ICMP-пакеты поступают в локальную сеть извне не быстрее, чем один пакет в минуту. Непрерывное же поступление большого количества пакетов будет означать, скорее всего, атаку лавинным затоплением.
3. Модель системы
Система обнаружения атак (СОА) представляет из себя клиент-серверную пару приложений - отладочный генератор атак (клиент) и, собственно, система обнаружения атак (сервер). Обе программы являются консольными Win32-приложениями на базе библиотеки Windows Sockets v2.0. Кроме того, предусмотрена система удалённого управления и администрирования клиентом на базе протокола HTTP и многопоточной структуры клиента. Это значит, что клиент запускает дополнительную нить (тред), в которой работает соответствующий HTTP-сервер, который и даёт возможность удалённо и динамически администрировать и управлять им.
HTTP-сервер даёт возможность выбрать ручной и автоматический режимы генерации сетевых атак, а также динамически, во время работы программы, выбирать и проводить одну из предопределённых атак.
Также реализована система уведомления администратора сети об атаке - выдачей сообщения на консоль и посредством электронной почты. Сервер, как и клиент, имеет многопоточную архитектуру, и при начале работы запускает дополнительную нить (тред), в которой работает POP3-сервер, к которому может подключиться сторонняя почтовая программа и проверить наличие сообщения об атаке.
Рис. 3. Диаграмма задач, решаемых системой
Рис. 4. Диаграмма классов и их взаимодействия
3.1 Схема взаимодействия модулей системы
Вся программная система представляет из себя клиент-серверную пару и состоит из четырёх основных модулей и множества вспомогательных.
Основные модули поделены между клиентом и сервером: и клиент, и сервер имеют по 2 основных модуля. И сервер, и клиент являются многопоточными приложениями, точнее, они содержат по 2 нити, при этом в каждой нити функционирует один основной модуль. Главная нить клиента (та, которая образуется при запуске) содержит HTTP-сервер, который порождает вспомогательную нить при начале каждого HTTP-подключения и закрывает её при его окончании - это стандартный приём для одновременной работы с множеством клиентов. Вспомогательная нить получает от пользователя параметры нужных последовательностей ICMP-пакетов и отправляет эти последовательности на сервер.
Главная нить сервера содержит модуль обнаружения атак, который и является ядром всей системы и сутью дипломной работы. Атаки - это в данном случае просто определённые последовательности ICMP-пакетов с определёнными значениями полей пакетов IP и ICMP. Едва ли существует какой-либо принципиально иной способ обнаружения атак. Вся сложность состоит в том, чтобы наиболее точно сформулировать правила, по которым будет выноситься решение о том, атака это или нет.
Вспомогательная нить сервера содержит POP3-сервер электронной почты, который стартует в начале работы сервера и даёт возможность получить сообщения об атаке при помощи программы MS Outlook Express. Когда главная нить сервера обнаруживает атаку, она формирует в почтовом ящике сервера соответствующее сообщение, откуда его забирает вспомогательная нить при взаимодействии с программой MS Outlook Express.
Все нити во всех приложениях системы не используют глобальные переменные для передачи параметров, а передают параметры путём вызова функций. Использование глобальных переменных является плохим программистским приёмом и допускается только для неменяющихся переменных.
Вспомогательные модули инкапсулируют отдельные логические части основных модулей.
3.2 Описание модулей
Клиент - raw_send.exe:
Модули:
1.raw_send.cpp - содержит методы: сборки вручную ICMP-пакетов, отправки пакетов, подсчёта контрольной суммы.
2.packet.cpp - содержит методы: вывода на экран содержимого пакета, создания сырого сокета, привязки сырого сокета.
3.http_plugin.cpp - всё остальное: полное описание HTTP-сервера (инициализация, приём подключений, создание вспомогательной нити и её закрытие, закрытие), полное описание работы вспомогательной нити (приём, передача), расшифровка команд и вызов функций из других модулей.
4.HTM-файлы: удалённая консоль управления.
Сервер - raw_recv.exe:
Модули:
1.raw_recv.cpp - описание главной нити, запуск вспомогательной, создание сырого сокета, привязка его, получение пакетов, обнаружение атак, формирование сообщения электронной почты.
2.pop3_main.cpp - вспомогательная нить - POP3-сервер: создание, приём-п