Комплекс сетевой защиты

Автор работы: Пользователь скрыл имя, 17 Сентября 2011 в 20:38, дипломная работа

Описание работы

В современном мире происходит стремительное развитие компьютерной техники и компьютерных технологий. Важное место среди них занимают технологии вычислительных и информационных сетей. Создание и развитие Internet и World Wide Web привело к новому этапу развития информационного общества. Но, с другой стороны, развитие современных сетевых информационных технологий привело к росту числа компьютерных преступлений и связанных с ними хищений информации, а также материальных потерь.

Содержание работы

1. Введение 8
2. Задача сетевой защиты и методы её решения 10
2. 1. Брандмауэр 10
2. 2. Фильтры пакетов – простые и кумулятивные 11
2. 3. Прокси-брандмауэры и сервера уровня соединения 13
2. 4. Шлюзы приложений и сервера прикладного уровня 14
2. 5. Системы обнаружения компьютерных атак (СОА) 15
2. 6. Классификация систем обнаружения атак (СОА) 17
2. 7. Варианты реакций на обнаруженную атаку 19
2. 8. Характеристики средств сетевой защиты 21
2. 9. Выводы 25
3. Постановка задачи 27
3. 1. Концепция программного средства 27
3. 2. Сетевое программирование под OC Windows 28
3. 3. Атакующие воздействия для программного средства 31
3. 3. 1. Атака Smurf 31
3. 3. 2. Атака Tribe Flood Network 33
3. 3. 3. Атака WinFreeze 34
3. 3. 4. Атака ICMP Flood 36
4. Модель системы 37
4. 1. Схема взаимодействия модулей системы 44
4. 2. Описание модулей 46
4. 3. Описание программных элементов 47
5. Сведения о реализации 62
6. Экспериментальная часть 64
7. Разработка документации 73
7. 1. Техническое задание 73
7.2. Руководство оператора 76
8. Бизнес-план 78
8. 2. Характеристика ПП 78
8. 3. Исследование и анализ рынка 80
8. 4. Производственный план 82
График безубыточности 96
9. Безопасность и экологичность проекта 97
9. 1. Введение 98
9. 2. Характеристика производственного помещения 99
9. 3. Производственная санитария 100
9. 4. Электробезопасность 101
9. 5. Пожаробезопасность 102
9. 6. Контроль над электромагнитным излучением 104
9. 7. Освещение 107
9. 8. Вентиляция 108
9. 9. Контроль шума 110
9. 10. Эргономичность 111
9. 11. Вывод 113
10. Заключение 114
11. Список литературы 115
Приложение 116
Файл http_plugin.cpp 116
Файл Packet.cpp 128
Файл Packet.h 130
Файл Raw_send.cpp 132
Файл http_conf.inf 137
Файл http_client.htm 137
Файл http_icmp_form.htm 138
Файл http_icmp_reply.htm 139
Файл http_attack_form.htm 140
Файл http_attack_reply.htm 142
Файл Packet.cpp 142
Файл Packet.h 142
Файл pop3_conf.inf 142
Файл pop3_main.cpp 143

Файлы: 1 файл

Пояснительная записка.doc

— 1.00 Мб (Скачать файл)

int DISPATCH_SERVER_SOCKET::accept_connect(void) - Ждём очередное подключение к серверу (функцией connect()) клиента и,

дождавшись, возвращаем виртуальный сокет сервера - для  двухстороннего обмена сообщениями  с данным клиентом. Выводим на экран  время подключения клиента, его IP-адрес и порт. Для каждого подключившегося клиента создаём нить и передаём в неё адрес виртуального сокета сервера для двухстороннего обмена сообщениями с данным клиентом (нити нужны здесь для того, чтобы позволить серверу работать одновременно с несколькими клиентами).

SERVER_SOCKET::SERVER_SOCKET(void) - (конструктор, инициализирующий поля)

int SERVER_SOCKET::shutdown_and_closesocket(void) - (мягко выключить сокет и закрыть его)

void SERVER_SOCKET::erase_buffer(void) – стереть буфер

void SERVER_SOCKET::set_buffer(char* string) – установить значение буфера

int SERVER_SOCKET::recv_data(void) – получить информацию через сокет

int SERVER_SOCKET::send_data(void) – отправить информацию через сокет

SERVER_SOCKET& SERVER_SOCKET::operator=(SERVER_SOCKET& right) – перегруженное присваивание из-за строк

bool CONF::IsUserExistent(char* User) – существует ли пользователь (почтовый ящик)

int CONF::ListUsers(void) – перечислить пользователей (почтовые ящики)

int CONF::AddUser(void) – добавить пользователя (почтовый ящик)

int CONF::DeleteUser(void) – удалить пользователя (почтовый ящик)

void CONF::Init(void) –  инициализация конфигурационного  объекта

void CONF::ProcessConfigCommands(void) – обработка конфигурационных  команд

void CONF::Help(void) –  вывод на экран информации о конфигурационных командах

CONF::CONF(void) – конструктор,  инициализирующий поля

char* CONF::GetPassword(char* user,char* password) – узнать пароль

void 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) – отвечаем клиенту на его подключение (не на запрос клиента!)

int SERVER_SOCKET::ProcessClientQuery(void) – Уже имеем в буфере запрос  клиента и обрабатываем его  (выполняем всевозможные команды)

int CONF::ParseMailDrop(char* user) – название функции навеяно  RFC 1225. Функция просматривает почтовый  ящик, идентифицирует отдельные  файлы-письма, определяет размер  каждого и общий их размер.

MODE::MODE(void) – конструктор  объекта режим соединения

void MODE::SetAuthorizationMode(void) – установить режим авторизации

void MODE::SetTransactionMode(void) – установить режим транзакции

void MODE::SetUpdateMode(void) – установить режим обновления

 

5.  Сведения о  реализации

 

     Система реализована как клиент-серверное 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-интерфейс даёт возможность программировать новые виды атак без перекомпиляции клиента.

      Извещение администратора сети об атаках по электронной  почте выбрано по аналогии с другими  программами такого же класса. Это даёт возможность удалённо контролировать безопасность локальной сети в режиме реального времени.

 

6.  Экспериментальная  часть

 

     Разрабатываемое в рамках данной дипломной работы программное средство будет работать исключительно с протоколом 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: 

The IP-header content: 

Type of service: 0

Total packet length: 28

Unique identifier: 0

Fragment offset field: 0

Time to live: 128

Encapsulated protocol number: 1

Checksum: 0

Source address: 127.0.0.1

Destination address: 127.0.0.255 

The ICMP-header content: 

Type: 0

Code: 8

Checksum: 65527

Unique identifier: 0

Sequence number: 0 

Info sent to [127.0.0.255]:

6900280000-12810012700112700-108-1-90000

E  ?    ??  ж  ?ж  аа?

Number of bytes sent: 28 

raw_recv.exe: 

Type of service: 0

Total packet length: 28

Unique identifier: 177

Fragment offset field: 0

Time to live: 128

Encapsulated protocol number: 1

Checksum: 15152

Source address: 127.0.0.1

Destination address: 127.0.0.255 

The ICMP-header content: 

Type: 0

Code: 8

Checksum: 65527

Unique identifier: 0

Sequence number: 0 

Info received from [127.0.0.1]:

6900280-7900-1281594812700112700-108-1-90000

E  ? ж  ??;0ж  ?ж  аа?

Number of bytes received: 28

The Smurf attack detected ! 

2. Атака Tribe Flood Network: 

raw_send.exe: 

The IP-header content: 

Type of service: 0

Total packet length: 28

Unique identifier: 0

Fragment offset field: 0

Time to live: 128

Encapsulated protocol number: 1

Checksum: 0

Source address: 127.0.0.1

Destination address: 127.0.0.1 

The ICMP-header content: 

Type: 0

Code: 0

Checksum: 65535

Unique identifier: 0

Sequence number: 0 

Info sent to [127.0.0.1]:

6900280000-12810012700112700100-1-10000

E  ?    ??  ж  ?ж  ?  аа

Number of bytes sent: 28 

raw_recv.exe: 

Type of service: 0

Total packet length: 28

Unique identifier: 197

Fragment offset field: 0

Time to live: 128

Encapsulated protocol number: 1

Checksum: 15386

Source address: 127.0.0.1

Destination address: 127.0.0.1 

The ICMP-header content: 

Type: 0

Code: 0

Checksum: 65535

Unique identifier: 0

Sequence number: 0 

Info received from [127.0.0.1]:

6900280-5900-1281602612700112700100-1-10000

E  ? +  ??<?ж  ?ж  ?  аа

Number of bytes received: 28

The Tribe Flood Network attack detected ! 

3. Атака WinFreeze: 

raw_send.exe: 

The IP-header content: 

Type of service: 0

Total packet length: 28

Unique identifier: 0

Fragment offset field: 0

Time to live: 128

Encapsulated protocol number: 1

Checksum: 0

Source address: 127.0.0.1

Destination address: 127.0.0.1 

The ICMP-header content: 

Type: 0

Code: 5

Checksum: 65530

Unique identifier: 0

Sequence number: 0 

Info sent to [127.0.0.1]:

6900280000-12810012700112700105-1-60000

E  ?    ??  ж  ?ж  ? ?а+

Number of bytes sent: 28 

raw_recv.exe: 

Type of service: 0

Total packet length: 28

Unique identifier: 214

Fragment offset field: 0

Time to live: 128

Информация о работе Комплекс сетевой защиты