Автор работы: Пользователь скрыл имя, 26 Декабря 2011 в 18:31, курсовая работа
В данной работе я хотел бы поговорить об анализаторах траффика или снифферах, рассмотреть их виды, особенности реализации, обнаружения и противодействия им.
Введение 3
1. Что такое сниффер? 4
1.1 Виды снифферов и сниффинга 6
2.Основы передачи данных в сети Ethernet 8
3.Пример реализации сниффера под ОС Windows 12
3.1 Структура программы для прослушивания сети 13
3.2 Простейший пример программы-сниффера 16
4.Как противостоять снифферу 18
4.1 Обнаружение работы снифферов 18
4.2 Противодействие 19
Выводы 22
Список информационных источников 23
Введение 3
1. Что такое сниффер? 4
1.1 Виды снифферов и сниффинга 6
2.Основы передачи данных в сети Ethernet 8
3.Пример реализации сниффера под ОС Windows 12
3.1 Структура программы для прослушивания сети 13
3.2 Простейший пример программы-сниффера 16
4.Как противостоять снифферу 18
4.1 Обнаружение работы снифферов 18
4.2 Противодействие 19
Выводы 22
Список информационных
источников 23
Вследствие лавинообразного распространения компьютерных систем и их взаимодействия посредством сетей возникает все большая зависимость, как организаций, так и отдельных людей от информации, хранящейся в связанных сетями системах. Это, в свою очередь, заставляет осознать необходимость защиты данных и ресурсов, использования специальных средств проверки аутентичности получаемых данных и сообщений, а также защиты систем от несанкционированного доступа и сетевых атак.
В настоящее время снифферы работают в сетях на вполне законном основании. Они используются для диагностики неисправностей и анализа трафика. Однако ввиду того, что некоторые сетевые приложения передают данные в текстовом формате (Telnet, FTP, SMTP, POP3 и т.д.), с помощью сниффера можно узнать полезную, а иногда и конфиденциальную информацию (например, имена пользователей и пароли).
Перехват имен и паролей создает большую опасность, так как пользователи часто применяют один и тот же логин и пароль для множества приложений и систем. Многие пользователи вообще имеют единый пароль для доступа ко всем ресурсам и приложениям. Если приложение работает в режиме «клиент-сервер», а аутентификационные данные передаются по сети в читаемом текстовом формате, то эту информацию с большой вероятностью можно использовать для доступа к другим корпоративным или внешним ресурсам. Хакеры слишком хорошо знают и используют человеческие слабости (методы атак часто базируются на методах социальной инженерии). Они прекрасно представляют себе, что мы пользуемся одним и тем же паролем для доступа к множеству ресурсов, и потому им часто удается, узнав наш пароль, получить доступ к важной информации. В самом худшем случае хакер получает доступ к пользовательскому ресурсу на системном уровне и с его помощью создает нового пользователя, которого можно в любой момент использовать для доступа в Сеть и к ее ресурсам.
По "месторасположению" сниффер может работать:
На маршрутизаторе (шлюзе) – при таком раскладе существует возможность перехватывать трафик, проходящий через интерфейсы этого шлюза. Например, из вашей локальной сети в другую сеть и в обратную сторону. Соответственно, если установить сниффер на маршрутизаторе провайдера Интернет, мы можем отслеживать трафик его пользователей.
На
оконечном узле сети – применительно
к Ethernet мы будем иметь два основных
возможных варианта прослушки. Классический,
некоммутируемый Ethernet предполагает, что
каждый сетевой интерфейс в принципе
"слышит" весть траффик своего
сегмента. Однако в нормальном режиме
работы сетевой карты, прочитав первые
48 бит заголовка фрейма, станция сравнивает
свой МАС-адрес с адресом получателя, указанном
в фрейме. Если адрес чужой, станция перестает
читать чужой фрейм. Таким образом, в нормальном
режиме вы можете перехватывать и анализировать
только свой траффик. Для перехвата пакетов
всех станций сегмента требуется перевести
вашу сетевую карту в режим под названием
promiscuous mode, чтобы она "бесстыдно" продолжала
читать не предназначенные ей пакеты.
Практически все реализации снифферов
позволяют переход карты в promiscuous mode.
Примечание: использование коммутируемого
Ethernet создает ситуацию, когда даже переход
карты в promiscuous mode делает прослушивание
не предназначенного вашей станции трафика
практически невозможным. Однако существует
технология организации такого прослушивания
путем так называемого ARP-спуфинга. Суть
в следующем: коммутатор создает так называемый
"broadcast domain", и хост с установленным
сниффером с помощью подделки ARP-сообщений
может притвориться, например, пограничным
маршрутизатором (рассылая постоянно
АRP-сообщения, где сетевому адресу маршрутизатора
соответствует MAC-адрес прослушивающей
станции). Таким образом, трафик соседей
насильственно завернется в сторону "шпиона".
Подробнее об ARP и фреймах мы рассмотрим
далее в «основах передачи данных сети
Ethernet»..
В остальном же снифферы могут отличаются друг от друга главным образом функциональными возможностями, как то:
- поддерживаемые
физические интерфейсы и протоколы канального
уровня;
- качество декодирования и количество
известных протоколов;
- пользовательский интерфейс и
удобство отображения;
- дополнительные возможности: статистика,
просмотр в реальном времени, генерирование
или модификация пакетов и другое...
При выборе сниффера (как, впрочем, и любого другого программного обеспечения) есть смысл руководствоваться следующими соображениями: из того, что существует под вашу ОС выбираем либо то, что точно соответствует вашим задачам (имеет смысл в том случае, если вы планируете либо разовое мероприятие, либо постоянное выполнение одной и той же операции) либо максимально навороченное решение, в случае, если вы чувствуете, что сниффер будет вам полезен, но еще не знаете в какой ситуации). А ситуации бывают разные.
Прежде чем понять основной принцип работы сниффера необходимо знать особенности передачи данных в сети Ethernet.
Каждому
устройству в сети Ethernet соответствует
уникальный шестибайтовый MAC-адрес (Media
Access Control). Единицей передачи данных в такой
сети является кадр (frame), который имеет
определённую структуру и несёт в себе
информацию о получателе, отправителе
и сами данные. (см. таб.1)
CODE |
struct ETHERNET_FRAME { unsigned char dest[6];// MAC-адрес получателя unsigned char src[6]; // MAC-адрес отправителя unsigned short type; // версия: IPv4 0x0800, IPv6 0x86DD, ARP 0x0806 unsigned char data[]; // данные }; |
таб.1
Кадр может иметь размер от 60 до 1514 байт, из которых первые 14 байт являются служебными. Когда требуется передать большее количество данных, они разбиваются на фрагменты и последовательно направляются в сеть. Кадр передаётся по сети, и получает его каждое устройство этой сети. Значение поля структуры с именем type определяет тип и версию "полезного груза" в кадре. Завершающая секция кадра служит для проверки целостности передаваемых данных и использует код циклического контроля (CRC32 - cyclic redundancy check). Это чрезвычайно мощная хэш-функция для выявления искажённости числовых данных. Обычно она аппаратно реализована в сетевой плате.
По
умолчанию сетевая плата
Теперь обратим внимание на полезный груз, который несёт кадр, а именно поле структуры data[]. Чаще всего в качестве данных может быть IP-пакет или ARP-пакет. ARP (address resolution protocol) - это служебный вспомогательный протокол, который осуществляет динамическую трансляцию физических MAC-адресов в логические IP-адреса на основе широковещательной рассылки запросов. (см. таб.2)
CODE |
struct
ETHERNET_ARP { unsigned short hrd; // Тип аппаратуры (Ethernet), 0x0001. unsigned short pro; // Протокол (IP), 0x0800. unsigned char hln; // Длина аппаратного адреса (MAC), 6 байт. unsigned char pln; // Длина адреса протокола IP, 4 байта. unsigned short op; // Вид операции {Запрос, Ответ} = {1, 2}. unsigned char sha[6];// Аппаратный адрес (MAC) отправителя. unsigned char spa[4];// IP-адрес отправителя. unsigned char tha[6];// Аппаратный адрес (MAC) получателя. unsigned char tpa[4];// IP-адрес получателя. }; |
таб.2
Для доставки пакетов в сети нужно определить физический адрес узла назначения. Именно для этого существует ARP - протокол автоматического определения физических адресов (IP <=> MAC). Когда одному компьютеру нужно начать обмен данными с другим, он ищет MAC-адрес получателя соответствующий запрашиваемому IP-адресу в своей ARP-таблице. Если для нужного IP-адреса не найден соответствующий MAC-адрес, то посылается широковещательный запрос ARP, содержащий искомый IP-адрес назначения, а MAC-адрес для широковещательной рассылки заполнен единицами FF:FF:FF:FF:FF:FF. Целевой хост узнает свой IP-адрес, обрабатывает запрос и посылает ответ. Система готова к пересылке данных по локальной сети.
Для нас особый интерес представляют IP-пакеты, предназначенные для передачи информации. Это более высокий уровень сетевой OSI-модели данных.
Сетевая модель OSI (англ. open systems interconnection basic reference model — базовая эталонная модель взаимодействия открытых систем, сокр. ЭМВОС; 1978 г.) — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Предлагает взгляд на компьютерную сеть с точки зрения измерений. Каждое измерение обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и прозрачнее.
Сейчас повсеместно распространена четвертая версия IP. Однако постепенно развивается шестая версия этого протокола передачи данных. Новая версия интернет-протокола значительно расширяет диапазон адресов, упрощает автоматическое конфигурирование IP-сетей. Немаловажно, что шестая версия IP располагает исключительными средствами обеспечения безопасности и шифрации трафика. (см. таб.3)
CODE |
struct IP6Header { unsigned long ver:4; // Версия IP-протокола unsigned long tclass:8;// Класс трафика unsigned long label:20;// Метка потока unsigned short length; // Длина пакета unsigned char next; // Next header (опции) unsigned char hop; // Hop-limit. unsigned char src[16]; // 128-битный адрес отправителя unsigned char dst[16]; // Адрес получателя }; |
таб.3
Далее рассмотрим IP-пакеты самой распространённой четвёртой версии. Пакет состоит из заголовка, служебной информации (options) и данных. На языке С этот заголовок выглядит в виде вот такой структуры (см. таб.4):