Информационная безопасность
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?зирующий поля)
int SERVER_SOCKET:shutdown_and_closesocket(void) - (мягко выключить сокет и закрыть его)
void SERVER_SOCKET:erase_buffer(void) - стереть буферSERVER_SOCKET:set_buffer (char* string) - установить значение буфераSERVER_SOCKET:recv_data(void) - получить информацию через сокетSERVER_SOCKET:send_data(void) - отправить информацию через сокет_SOCKET& SERVER_SOCKET:operator=(SERVER_SOCKET& right) - перегруженное присваивание из-за строк
bool CONF: IsUserExistent (char* User) - существует ли пользователь (почтовый ящик)
int CONF: ListUsers(void) - перечислить пользователей (почтовые ящики)
int CONF: AddUser(void) - добавить пользователя (почтовый ящик)
int CONF: DeleteUser(void) - удалить пользователя (почтовый ящик)CONF: Init(void) - инициализация конфигурационного объектаCONF: ProcessConfigCommands(void) - обработка конфигурационных командCONF: Help(void) - вывод на экран информации о конфигурационных командах:CONF(void) - конструктор, инициализирующий поля
char* CONF: GetPassword (char* user, char* password) - узнать парольCONF: SetPassword(void) - установить пароль
Модуль pop3_main.cpp cодержит следующие элементы:
Описания функций:
DWORD WINAPI ThreadFunc (SERVER_SOCKET* p_server_socket) - вспомогательная нить, которая создаётся при каждом подключении к pop3-почтовому серверу и закрывается при завершении подключения. В этой нити происходит приём-передача почтового сервера.
DWORD WINAPI ThreadFuncPOP3 (void) - вспомогательная нить, в которой работает pop3-почтовый сервер. Создаёт конфигурационный объект, инициализирует его, создаёт диспетчерский сокет, инициализируя его этим конфигурационным объектом, и переводит диспетчерский сокет в режим ожидания подключения.
Модуль pop3_module.cpp cодержит следующие элементы:
В этом модуле содержится всё алгоритмическое описание почтового POP3-сервера. Именно в этом модуле содержится вся алгоритмическая реализация RFC-1225.
Описания функций:
int SERVER_SOCKET: ReplyOnClientConnection(void) - отвечаем клиенту на его подключение (не на запрос клиента!)SERVER_SOCKET: ProcessClientQuery(void) - Уже имеем в буфере запрос клиента и обрабатываем его (выполняем всевозможные команды)CONF: ParseMailDrop (char* user) - название функции навеяно RFC 1225. Функция просматривает почтовый ящик, идентифицирует отдельные файлы-письма, определяет размер каждого и общий их размер.:MODE(void) - конструктор объекта режим соединенияMODE: SetAuthorizationMode(void) - установить режим авторизации
void MODE: SetTransactionMode(void) - установить режим транзакции
void MODE: SetUpdateMode(void) - установить режим обновления.
4. Сведения о реализации
Система реализована как клиент-серверное Win32 консольное приложение на базе библиотеки Windows Sockets v2.0. Программа написана на языке С++ при помощи Microsoft Visual C++ v6.0 для ОС Windows. Управляющие HTM-файлы созданы при помощи htm-редактора MS FrontPage 98.
Для работы программного комплекса необходима операционная система не ниже чем Windows 2000 с правами Администратора, программы Microsoft Internet Explorer v5.0, Microsoft Outlook Express v5.0.
Для реализации дипломной работы выбран язык программирования Microsoft Visual C++ 6.0. MS Visual C++ предоставляет программистам удобный полнофункциональный инструмент, объединивший все средства, необходимые для создания приложения - редактор исходных текстов, менеджер проектов, инспектор объектов и ряд дополнительных утилит, включая встроенный отладчик, дизайнер меню и так далее. Обоснованием для выбора данного языка служат следующие предпосылки:
- операционная система Windows и язык программирования Microsoft Visual C++ 6.0 более интегрированы, так как разработаны одной и той же фирмой;
- компилятор языка Microsoft Visual C++ 6.0 предназначен для работы в операционной системе Windows;
- обладает большей надежностью и гибкостью, чем другие компиляторы;
- язык Microsoft Visual C++ 6.0 позволяет более эффективно использовать ресурсы системы.
- упрощает использование функций и структур данных из MSDN.
Программа выполнена в виде консольных, а не оконных приложений для удобства и простоты вывода текстовых сообщений, для сохранения наглядности исходного кода, а также в соответствии с традицией выполнения многих других низкоуровневых сетевых программ в виде консольных приложений (например, TCPdump, nmap, и пр.).
Управление по протоколу HTTP выбрано потому, что оно позволяет удалённое управление выполняющейся программой, в отличие от традиционных элементов управления оконных приложений.
Кроме того, HTTP-интерфейс даёт возможность программировать новые виды атак без перекомпиляции клиента.
Извещение администратора сети об атаках по электронной почте выбрано по аналогии с другими программами такого же класса. Это даёт возможность удалённо контролировать безопасность локальной сети в режиме реального времени.
5. Экспериментальная часть
сетевой защита брандмауэр безопасность
Разрабатываемое в рамках данной работы программное средство будет работать исключительно с протоколом ICMP, т.к. только этот протокол допускает полноценную работу с ним на одном компьютере. Поэтому были воплощены несколько атак на базе протокола ICMP и разработаны механизмы их обнаружения. Генерирование атак осуществляется посредством управляющей консоли - HTTP-клиента. Были реализованы атаки:
1.Атака Smurf
2.Атака Tribe Flood Network
3.Атака WinFreeze
4.Атака ICMP Flood
Ниже приведены примеры работы клиент-серверной системы обнаружения атак. Клиент обозначен в примерах как raw_send.exe, а сервер - как raw_recv.exe. Приведены сообщения, выдаваемые системой на консоли.
1. Атака Smurf:
raw_send.exe:IP-header content:of service: 0packet length: 28identifier: 0offset field: 0to live: 128protocol number: 1: 0address: 127.0.0.1address: 127.0.0.255ICMP-header content:
Type: 0: 8: 65527
Unique identifier: 0number: 0sent to [127.0.0.255]:
-12810012700112700-108-1-90000??? ж? ж аа?of bytes sent: 28_recv.exe:of service: 0packet length: 28identi