Автор работы: Пользователь скрыл имя, 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
Сетевой пакет, будучи ушедшим с компьютера злоумышленника, уже не может быть возвращен назад. Системы, функционирующие на сетевом уровне, используют "живой" трафик при обнаружении атак в реальном масштабе времени. Таким образом, злоумышленник не может удалить следы своей несанкционированной деятельности. Анализируемые данные включают не только информацию о методе атаки, но и информацию, которая может помочь при идентификации злоумышленника и доказательстве в суде. Поскольку многие хакеры хорошо знакомы с механизмами системной регистрации, они знают, как манипулировать этими файлами для скрытия следов своей деятельности, снижая эффективность систем системного уровня, которым требуется эта информация для того, чтобы обнаружить атаку.
Системы, функционирующие на уровне сети, обнаруживают подозрительные события и атаки по мере того, как они происходят, и поэтому обеспечивают гораздо более быстрое уведомление и реагирование, чем системы, анализирующие журналы регистрации. Например, хакер, инициирующий сетевую атаку типа "отказ в обслуживании" на основе протокола TCP, может быть остановлен системой обнаружения атак сетевого уровня, посылающей TCP-пакет с установленным флагом Reset в заголовке для завершения соединения с атакующим узлом, прежде чем атака вызовет разрушения или повреждения атакуемого узла. Системы анализа журналов регистрации не распознают атаки до момента соответствующей записи в журнал и предпринимают ответные действия уже после того, как была сделана запись. К этому моменту наиболее важные системы или ресурсы уже могут быть скомпрометированы или нарушена работоспособность системы, запускающей систему обнаружения атак на уровне узла. Уведомление в реальном масштабе времени позволяет быстро среагировать в соответствии с предварительно определенными параметрами. Диапазон этих реакций изменяется от разрешения проникновения в режиме наблюдения для того, чтобы собрать информацию об атаке и атакующем, до немедленного завершения атаки.
И,
наконец, системы обнаружения атак,
функционирующие на сетевом уровне,
не зависят от операционных систем,
установленных в корпоративной сети, так
как они оперируют сетевым трафиком, которым
обмениваются все узлы в корпоративной
сети. Системе обнаружения атак все равно,
какая ОС сгенерировала тот или иной пакет,
если он в соответствие со стандартами,
поддерживаемыми системой обнаружения.
Например, в сети могут работать ОС Windows
98, Windows NT, Windows 2000 и XP, Netware, Linux, MacOS, Solaris и
т.д., но если они общаются между собой
по протоколу IP, то любая из систем обнаружения
атак, поддерживающая этот протокол, сможет
обнаруживать атаки, направленные на эти
ОС.
Совместное применение систем обнаружения атак на уровне сети и уровне узла повысит защищенность вашей сети.
Рассмотрев
основные виды сетевых атак и способов
защиты от них, можно сделать определённые
выводы:
В результате общего аналитического обзора технических проблем сетевой безопасности были сделаны определённые выводы. Так, неоспоримым выводом является важность и актуальность темы сетевой компьютерной безопасности. Практически это одна из ключевых проблем развития информационного общества.
Другим выводом является представление о том, что существующие на сегодняшний день технические средства сетевой безопасности достаточно совершенны, однако практически любое из них обладает определёнными недостатками, что в определённой мере делает возможным существование сетевых компьютерных атак.
Также на основании обзора можно сделать вывод о том, что наиболее совершенными на сегодняшний день средствами защиты и безопасности локальных компьютерных систем являются комплексные системы обнаружения атак (СОА).
На
основании сделанных выводов
можно сформулировать концептуальный
план программного средства, которое
будет создано в рамках данного
дипломного проекта.
Системы
обнаружения атак (СОА) определяются
в англоязычной документации как
NIDS – Network Intrusion Detection System. Большинство
СОА создано для работы в ОС UNIX, потому
что эта ОС обладает более развитым набором
сетевых программных средств. Как правило,
СОА представляют из себя анализаторы
сетевых пакетов (чаще всего IP-пакетов),
совмещённые с базой данных сигнатур атак.
К таким системам относятся программы
Shadow, Snort [9]. Существуют специальные организации,
отслеживающие появление новых типов
атак и описывающие их. СОА расширяемы
за счёт пополнения встроенных баз данных
сигнатур атак. Так, программа Snort обладает
специализированным встроенным высокоуровневым
языком написания правил [10], по которым
оцениваются входящие пакеты и принимаются
решения о наличии/отсутствии атаки. Программа
Snort бесплатна и имеет открытые исходные
коды. Однако она довольно сложна в применении
и, кроме того, её настройка и настройка
любой иной аналогичной программы на рынке
СОА затруднена из-за того, что они требуют
дополнительного приобретения специализированных
отладочных генераторов сетевых атак
(например, таких как TigerTools).
Таким
образом, задача создания собственной
системы обнаружения атак включает
в себя следующие аспекты:
Поскольку
наиболее распространённой в мире ОС
является ОС Windows, то рассмотрим ключевой
аспект создания СОА – создание генератора
(анализатора) сетевых пакетов средствами
ОС Windows.
Для
этого существуют по крайней мере
2 варианта библиотек низкоуровневого
сетевого программирования:
На
базе этих двух вариантов реализовано
множество низкоуровневых сетевых
приложений для ОС Windows [5] – анализаторы,
снифферы, СОА, и т.д. Наиболее ярко
такая двойственная возможность реализации
проявилась в программном продукте daSniff
[8], который реализован обоими способами.
Оба подхода в реализации низкоуровневых сетевых приложений имеют свои достоинства и недостатки. Так, библиотека Windows Sockets v2.0 требует для низкоуровневых сетевых приложений права Администратора при работе под Windows 2000 и не способна в большинстве случаев перехватывать исходящие пакеты. Библиотека Windows Packet Capture Library не поддерживает Loopback Adapter.
Общим недостатком обоих вариантов реализации явлется то обстоятельство, что для отладки полноценного анализатора пакетов необходимо иметь как минимум два (а не один) компьютера, объединённых в локальную сеть. В случае отсутствия второго компьютера совершенно невозможно организовать отладочную атаку на проектируемую СОА для практически всех протоколов. Единственным (известным) исключением является протокол ICMP, реализованный с помощью библиотеки Windows Sockets v2.0. В этом случае возможно на одном и том же компьютере как генерировать отладочную атаку средствами протокола ICMP, так и перехватывать её. Все остальные протоколы (в случае использования только одного компьютера) на низком уровне позволяют (при использовании библиотеки Windows Sockets v2.0) лишь генерировать атаки, а перехватывать – только на высоком уровне (что практически не имеет смысла). И только применив второй компьютер (с библиотекой Windows Sockets v2.0), подключённый к первому по локальной сети, можно перехватывать атакующие пакеты на низком (а не на высоком) уровне.
Библиотека Windows Packet Capture Library [4] вообще не предполагает никаких вариантов одновременной работы на одном компьютере отладочного генератора атак вместе с системой обнаружения атак.
Теоретически можно попробовать обойти это принципиальное ограничение (требование наличия двух компьютеров, объединённых в локальную сеть) при помощи такого специализированного ПО, как Virtual PC (или VMWare для Linux) – программы, которая эмулирует несколько виртуальных компьютеров на одном. Однако подобная задача выходит за рамки данного дипломного проекта.
Другой аспект создания собственной СОА – это разработка и применение сигнатур атак. После создания низкоуровневого сетевого анализатора пакетов задача регистрации атак сводится к анализу полей входящих пакетов (IP) и их последовательности.
Для любой дипломной работы наибольший практический интерес представляет такой программный продукт, который может полноценно работать на одном компьютере (не требуя наличия нескольких компьютеров). Из этого краткого обзора средств реализации низкоуровневого сетевого программирования под ОС Windows видно, что единственным подходящим вариантом является клиент-серверная реализация системы «отладочный генератор атак – система обнаружения атак» на основе протокола ICMP, реализованного низкоуровневыми средствами библиотеки Windows Sockets v2.0. Только этот вариант из всех рассмотренных позволяет создать полноценную систему обнаружения атак, основанную на использовании протокола IP и ICMP. Ценность такой системы состоит в том, что впоследствии она может быть легко переделана под протоколы TCP и UDP (с подключением второго компьютера по локальной сети) из-за концептуального сходства формата полей протокола ICMP и протоколов TCP и UDP.
Библиотека Windows Sockets v2.0 [7] – это стандартное средство для программирования сетевых приложений для ОС MS Windows. Помимо стандартных и общеизвестных функций эта библиотека содержит также некоторые малоизвестные низкоуровневые возможности. Существуют некоторые удачные их описания [3] и примеры (см. программу «Ping» в [7]).
Для создания низкоуровнего сетевого ICMP-приложения необходимо ознакомиться в общих чертах с работой протокола IP [14], затем подробно изучить протокол IP [12] и протокол ICMP [13], а также изучить сетевые атаки на базе протокола ICMP [6].
Протокол ICMP – это служебный протокол, применяемый в основном для сообщений об ошибках и для настройки протоколов TCP и UDP. Он также применяется в известных утилитах Ping и Traceroute. Протокол ICMP – это протокол сетевого (третьего) уровня, также, как и протокол IP. Это проявляется тем, что для протокола ICMP не существует понятия «порт» и «вложенное сообщение» (в отличие от протоколов транспортного (четвёртого) уровня – TCP и UDP). Однако формат полей пакета концептуально тот же, что и для протоколов TCP и UDP – в пакете сначала идёт заголовок IP, затем – заголовок ICMP. ICMP-пакет не может нести полезное сообщение (в отличие от протоколов TCP и UDP), но зато он предусматривает поля «тип» и «код», каждое из которых может принимать значения от 0 до 127. Многие комбинации полей «тип» и «код» имеют предопределённое значение [3]. Все ICMP-сообщения делятся на 2 группы – ошибки и запросы [3]. Библиотека Windows Sockets v2.0 не может регистрировать ICMP-пакеты типа «ошибка», сгенерированные на том же компьютере, а только ICMP-пакеты типа «запрос» (также за некоторыми исключениями).
Разрабатываемое в рамках данной дипломной работы программное средство будет работать исключительно с протоколом ICMP, т.к. только этот протокол допускает полноценную работу с ним на одном компьютере. Поэтому мы рассмотрим сетевые атаки на базе протокола ICMP [6] и разработаем способы их обнаружения. К таким атакам относятся: лавинное затопление ICMP-пакетами, атака «Smurf», подмена IP-адреса и другие.
Атака Smurf (рис. 1) основана на использовании возможности протокола ICMP рассылать дейтаграммы по нескольким адресам. Ответить на один широковещательный эхо-запрос ICMP может большое количество хостов. Эта возможность используется для проведения атаки отказа в обслуживании на избранный хост или сеть.
Сначала
злоумышленник должен сформировать
широковещательный эхо-запрос ICMP к
хостам атакуемой сети, подменив при этом
действительный IP-адрес своего компьютера.
Рис. 1.
Схема атаки Smurf
В качестве
этого IP-адреса используется адрес
атакуемого хоста (или сети). Чтобы запрос
попал ко всем хостам сети, его должен
пропустить внешний маршрутизатор. Успешным
завершением атаки является отправка
всеми работающими хостами эхо-ответов
на адрес атакуемого хоста. Атакованный
хост (или сеть, в которой он находится)
может пострадать от такой внезапной активности
и перестанет выполнять возложенные на
него задачи при следующих условиях: