Автор работы: Пользователь скрыл имя, 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
int DISPATCH_SERVER_SOCKET::
дождавшись, возвращаем виртуальный сокет сервера - для двухстороннего обмена сообщениями с данным клиентом. Выводим на экран время подключения клиента, его IP-адрес и порт. Для каждого подключившегося клиента создаём нить и передаём в неё адрес виртуального сокета сервера для двухстороннего обмена сообщениями с данным клиентом (нити нужны здесь для того, чтобы позволить серверу работать одновременно с несколькими клиентами).
SERVER_SOCKET::SERVER_SOCKET(
int SERVER_SOCKET::shutdown_and_
void SERVER_SOCKET::erase_buffer(
void SERVER_SOCKET::set_buffer(
int SERVER_SOCKET::recv_data(void) – получить информацию через сокет
int SERVER_SOCKET::send_data(void) – отправить информацию через сокет
SERVER_SOCKET& SERVER_SOCKET::operator=(
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 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::
int SERVER_SOCKET::
int CONF::ParseMailDrop(char*
user) – название функции навеяно
RFC 1225. Функция просматривает
MODE::MODE(void) – конструктор объекта режим соединения
void MODE::SetAuthorizationMode(
void MODE::SetTransactionMode(void) – установить режим транзакции
void MODE::SetUpdateMode(void) – установить режим обновления
Система
реализована как клиент-
Для работы программного комплекса необходима операционная система не ниже чем Windows 2000 с правами Администратора, программы Microsoft Internet Explorer v5.0, Microsoft Outlook Express v5.0.
Для реализации дипломной работы выбран язык программирования Microsoft Visual C++ 6.0. MS Visual C++ предоставляет программистам удобный полнофункциональный инструмент, объединивший все средства, необходимые для создания приложения – редактор исходных текстов, менеджер проектов, инспектор объектов и ряд дополнительных утилит, включая встроенный отладчик, дизайнер меню и так далее. Обоснованием для выбора данного языка служат следующие предпосылки:
Программа выполнена в виде
консольных, а не оконных приложений
для удобства и простоты
Управление по протоколу HTTP выбрано потому, что оно позволяет удалённое управление выполняющейся программой, в отличие от традиционных элементов управления оконных приложений.
Кроме того, HTTP-интерфейс даёт возможность программировать новые виды атак без перекомпиляции клиента.
Извещение администратора сети об атаках по электронной почте выбрано по аналогии с другими программами такого же класса. Это даёт возможность удалённо контролировать безопасность локальной сети в режиме реального времени.
Разрабатываемое
в рамках данной дипломной работы
программное средство будет работать
исключительно с протоколом ICMP, т.к.
только этот протокол допускает полноценную
работу с ним на одном компьютере. Поэтому
были воплощены несколько атак на базе
протокола ICMP и разработаны механизмы
их обнаружения. Генерирование атак осуществляется
посредством управляющей консоли - HTTP-клиента.
Были реализованы атаки:
Ниже
приведены примеры работы клиент-серверной
системы обнаружения атак. Клиент
обозначен в примерах как 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-
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-
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-
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-
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-
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