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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?зирующий поля)

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