Автор работы: Пользователь скрыл имя, 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
CODE |
{ unsigned char verlen; // версия и длина заголовка unsigned char tos; // тип сервиса unsigned short length; // длина всего пакета unsigned short id; // Id unsigned short offset; // флаги и смещения unsigned char ttl; // время жизни unsigned char protocol; // протокол unsigned short xsum; // контрольная сумма unsigned long src; // IP-адрес отправителя unsigned long dest; // IP-адрес назначения }IPHeader; |
таб.4
Подробно
IP протокол описан в RFC за номером 791. Для
нас особый интерес представляют
поля заголовка protocol, src и dest. Два последних
поля - это хорошо известные IP-адреса
отправителя и получателя пакета. Например,
шестнадцатеричное значение адреса 0x0000140A
соответствует 10.20.0.0.
3. Пример реализации сниффера под ОС Windows.
Современная
архитектура сетевого программного
обеспечения основана на семиуровневой
модели OSI (Open Systems Interconnection). В основе модели
лежит принцип абстракции, когда каждый
компонент выполняет свои функции и предоставляет
некоторый сервис вышестоящему уровню.
Описание
Слой (Layer)
Application
В этом слое находятся протоколы верхнего
уровня, которые не зависят ни от среды
передачи данных, ни от способа передачи
данных. Это всем хорошо известные протоколы,
например, HTTP (hyper text transfer protocol), FTP (file transfer
protocol), POP (post office protocol) и др.
Presentation
Сейчас от этого слоя нет никакой пользы.
Раньше он служил для установления режимов
работы терминалов, которые можно увидеть
только в музее.
Session
Сессии почти не используются и предназначены
для связи рабочих станций с серверами.
Transport
Протокол передачи данных высокого уровня.
Например, TCP обеспечивает гарантированную
доставку информации в отличие от протокола
UDP.
Network
Знаменитый третий уровень, обычно это
IP (internet protocol). Здесь передаются пакеты,
осуществляется их маршрутизация, сборка
и фильтрация. Пакеты несут в себе информацию
об отправителе и получателе.
Data Link
На этом уровне передаются кадры (порции
информации) между компьютерами, коммутаторами
и другими устройствами сети (Ethernet,
ATM, Token Ring, PPP).
Physical
Физический канал передачи данных, в котором
циркулируют электрические сигналы.
3.1
Структура программы для прослушивания
сети.
Обладая базовыми знаниями можно смело
приступить к написанию прослушивающей
программы для Windows. Каркас программы может
состоять из нескольких частей:
· Драйвер для приёма всех пакетов
(уже установлен в ОС).
· Буфер для накопления и обработки пакетов. Это может быть простейший массив из байтов, но лучше иметь интеллектуальный циклический буфер.
· Анализатор пакетов - набор функций и критериев для управления фильтрацией.
· Декодер-шифратор (сами догадаетесь, зачем он нужен).
· Автоматизированный редактор пакетов, который по команде злоумышленника вносит некоторые изменения в пакет и отправляет его обратно в сеть.
Поскольку в сети постоянно циркулирует огромное количество пакетов, то их лучше отфильтровывать. Критериями фильтрации могут быть IP-адреса, тип вышестоящего протокола (TCP, UDP, ICMP, PUP), а также содержимое пакета. Функции фильтрации весьма полезны, так как не только ограничивают собираемую программой информацию действительно нужной, но и просто обеспечивают её нормальную работу. Вполне возможно, что при интенсивной загрузке локальной сети компьютер и программа-сниффер будут не способны обработать всю поступающую информацию. Отсутствие критериев для фильтрации или задание слишком большого числа вариантов для IP приводит к тому, что программа-перехватчик не успевает обрабатывать все пакеты. А если ещё записывать все пакеты на жёсткий диск, то последний может переполниться в считанные минуты. На этом факте основаны некоторые программы для борьбы с прослушиванием. Они посылают в сеть множество пакетов с поддельной информацией о паролях и т.д. В результате снифферы "захлёбываются" в огромном потоке дезинформации.
Драйвер сетевой платы (NIC) занимается приёмом и передачей кадров в сеть Ethernet. Максимальный размер IP-пакета, включая служебные данные, составляет 64 килобайта, а максимальный размер данных в кадре, как вы уже знаете, 1500 байт. При необходимости драйвер осуществляет фрагментацию и сборку IP-пакетов. Сетевая подсистема в ОС Windows основана на многоуровневой архитектуре, которую в 1978 году одобрила международная организация стандартов. Таким образом, NIC-драйвер взаимодействует с драйверами вышестоящих протоколов.
Программа для прослушивания сегмента сети работает именно с IP-пакетами. Она использует библиотеку Windows Sockets и функционирует под управлением.
В начале каждой программы, использующей Windows Sockets, находится код инициализации сетевой библиотеки (WSAStartup). Затем следует создание сокета, определение имени и IP-адреса компьютера (gethostbyname), с которого запущена программа. В заключение подготовительной стадии устанавливаются параметры сокета (bind). Теперь осталось переключить сокет в режим приёма всех пакетов. Управляющая функция ioctlsocket с параметром-командой SIO_RCVALL включает promiscuous mode.
Далее следует бесконечный цикл, который остановится только после нажатия клавиши. Внутри цикла идёт приём (recv) и обработка IP-пакетов. Пакеты записываются в единственный буфер и никак не анализируются. Размер буфера (64 кб) подобран с расчётом, чтобы в нём поместился самый большой IP-пакет. В нашем случае нет никакого анализа сетевого трафика.
|
Для успешной
компиляции следует подцепить библиотечный
файл "ws2_32.lib".
4.1 Обнаружение работы снифферов.
4.1.1 Обнаружение снифферов в сетях на коммутаторах.
Поскольку сниффинг в сетях на коммутаторах подразумевает атаку "man-in-the-middle", когда прослушивание сети носит "активный" характер, при котором сетевой трафик передается атакующему компьютеру и только потом пересылаться по истинному назначению, то определение работы "активных" снифферов является достаточно простой задачей. Требуется только обнаружить подозрительный ARP сетевой трафик. Для этих целей служит специальное программное обеспечение, такое как, например, LBNL Arpwatch. Arpwatch определяет как изменения в ARP схеме локальной сети, вызываемые ARР spoofing, так и очевидные сетевые аномалии, или вторичные эффекты от сниффинга.
4.1.2 Обнаружение снифферов в сетях без коммутаторов.
Определение работы снифферов, которые разработаны для сетей без коммутаторов, является более сложной задачей. Это связано с тем, что работа таких снифферов происходит преимущественно в пассивном режиме. Они работают переведя сетевую карту в специальный promiscuous режим, что позволяет атакующему компьютеру получать любой сетевой трафик, достигающий сетевой карты. Подобно радиоприемнику, снифферы не порождают обязательного дополнительного и подозрительного трафика для передачи в сеть. Однако существуют определенные технологии, которые могут быть использованы для определения компьютеров, чьи сетевые карты работают в специальном promiscuous режиме, что указывает на вероятный сниффинг локальной сети. Эти технологии используют специфичные особенности TCP/IP стэка.
Одной из таких утилит является L0pht AntiSniff . Самораспаковывающийся архив as-1021 имеет размер 1299 Кб и включает краткое руководство пользователя. Утилита Shareware и работает без регистрации 15 дней. Естественно, в Интернете легко находится средство продления работоспособности. В руководстве пользователя прямо указано предназначение утилиты: "AntiSniff is a Graphical User Interface (GUI) driven tool for detecting promiscuous Network Interface Cards (NICs) on your local network segment." Утилита имеет хорошо продуманный графический интерфейс. На вкладке "Network Configuration" задается или адрес проверяемой машины, или диапазон адресов, если надо проверить несколько машин. Существует возможность загрузить предварительно подготовленный список из файла. Утилита самостоятельно определяет допустимые сетевые интерфейсы, предоставляя возможность выбора. Параметры "Bogus …" оставь по умолчанию. Эти реально не существующие MAC и IP адреса используются при работе утилиты.
Вкладка
"Scanner Configuration" позволяет задать
набор тестов, который будет использован
при работе утилиты, а также предоставляет
возможность настроить
4.2 Противодействие.
Мало обнаружить работу снифферов в твоей локальной сети. Посмотрим, что можно им противопоставить. Выбор невелик – это административные меры, модификация самого протокола ARP и шифрование.
Локальная сеть под диктатором.
В организациях
предотвратить использование
Модификация ARP протокола.
Для предотвращения
сниффинга в сетях с
Шифрование.
Единственным решением, не столько препятствующим сниффингу, сколько делающим его бессмысленным, является шифрование. В "dsniff FAQ" Dug Song советует: "не допускайте использования фирменных небезопасных прикладных протоколов или унаследованных протоколов, передающих данные явным образом в ваших сетях". Это очень важный совет.
Замена небезопасных протоколов (таких как telnet) на их надежные шифрованные аналоги (такие как ssh) представляется серьезным барьером от перехвата. Замена всех небезопасных протоколов в большинстве случаев маловероятна. Поэтому, вместо прекращения использования протоколов, передающих данные явным образом, остается только одна возможность – шифрование всего сетевого трафика на 3 уровне, используя Internet Protocol Security (IPSec) (Taylor, Laura. Understanding IPSec). Осуществляя шифрование на 3 уровне, возможно продолжать использовать небезопасные протоколы, поскольку все данные будут инкапсулированы IPSec и зашифрованы при передаче по сети. Таким образом, унаследованные приложения, которые используют старые протоколы, не пострадают. IPSec полностью прозрачен для приложений и пользователей. Это открытый стандарт, поддерживаемый многими компаниями, включая Microsoft и Cisco. Кроме того, многие реализации Unix поддерживают IPSec. Легкая настройка IPSec под WIN дополнительно увеличивает его привлекательность.