Инструментальные средства обеспечения безопасности

       

Реализация


Первый шаг в изучении того, как использовать анализаторы сетевых потоков, состоит в том, чтобы сообщить ему, что мы хотим узнать. Мы делаем это через командную строку. Когда мы выполняем BUTTSniffer без опций, мы получаем резюме возможных опций:

BUTTSniffer v0.9 (c) 1998, Cult of the Dead Cow Usage: buttsniff -{idl} <arguments> -i (interactive) arguments: <device number> <port> -d (disk dump) arguments: <device number> <log file> <dump type> [filter] -l (list devices) arguments: (none)

Valid dump types are: r (raw frames) Dumps raw network traffic e (encapsulation) Dumps decoded packets with encapsulation information p (protocol) Dumps fully decoded packets with protocol information Valid filters are: A single number representing a port to be monitored (e.g. 80) A port range to be monitored (e.g. 141-1024) A filename containing a list of IP and port filter rules Read the 'readme.txt' for more information and examples. Filters are only active on dump type 'p'.

Итак, получается, что у BUTTSniffer есть только три режима: перечисление устройств, диалоговый и дамп на диск. Режим перечисления устройств сообщает, какие сетевые интерфейсы находятся на вашей машине. Каждому сетевому интерфейсу, даже адаптерам коммутируемой линии, назначены номера устройств. В двух других режимах инструмента BUTTSniffer вы должны знать номер устройства интерфейса, на котором хотите прослушивать трафик, так что режим перечисления устройств является первым шагом. Режимы дампа на диске и диалоговый немного сложнее в работе, они описаны далее.


WinDump - это просто порт Windows утилиты tcpdump. Использование tcpdump и WinDump почти взаимозаменяемо. В этой лекции мы сосредоточимся на утилите tcpdump, отмечая все различия между WinDump и tcpdump по мере продвижения. Вообще, если вы работаете дома, один, то можете использовать tcpdump вместо WinDump.

Первое обстоятельство, которое нужно иметь в виду, заключается в том, что утилита tcpdump обычно требует привилегированного доступа (root). Она должна выполняться с доступом root или setuid root. Этот тип доступа необходим утилите tcpdump и библиотеке libpcap для того, чтобы иметь очень низкий уровень доступа (то есть уровень ядра) к сетевым интерфейсам и сетевым данным. Это также удерживает "пользователя Джо" от установки анализатора сетевых пакетов для неуместного использования. Некоторые системы Unix требуют большего, а некоторые меньшего доступа - детали смотрите с помощью утилиты man или в файле README.

Примечание. Защита WinDump/WinPcap сделана немного слабее, чем защита tcpdump/libpcap. Когда выполняется WinDump, она пытается загружать файл WinPcap DLL, если он еще не выполняется. Загружать эту библиотеку DLL можно только с привилегиями администратора. Однако если WinPcap уже выполняется, то любой пользователь может с этого момента использовать его до тех пор, пока система не будет перезагружена или не будет остановлена служба Netgroup Packet Filter (только в NT/2000).

Другая причина, по которой пользователи libpcap и WinPcap нуждаются в низкоуровневом доступе, состоит в том, что по умолчанию эти анализаторы сетевых потоков переводят сетевой интерфейс, на котором они работают, в смешанный режим. Если вы помните наше обсуждение в начале лекции, некоторые сетевые устройства, типа хабов Ethernet, фактически передают пакет ко всем портам хаба, надеясь, что законный получатель обнаружит себя и примет пакет. Другие хосты, связанные с хабом, также получают этот пакет, но они, как предполагается, игнорируют его. Смешанный (Promiscuous) режим предписывает интерфейсу вмешиваться в чужие дела, и это позволяет утилите tcpdump видеть весь сетевой трафик на хабе, а не только трафик, который направлен к хабу или от него.


Самый простой путь состоит в применении Ethereal к уже существующему файлу перехваченных пакетов, созданному с использованием командной строки tcpdump -w capture.dump. В этом случае мы можем открыть файл дампа File/Open (Файл/Открыть). Откроется диалоговое окно Open Capture File (Открытие перехваченного файла), показанное ниже.


В этом диалоговом окне вы можете выбрать открываемый файл, а также установить такие опции, как разрешение имен и дополнительные пакетные фильтры. Пакетные фильтры могут быть определены при анализе файла перехваченных данных или при выполнении "живого" перехвата. (О пакетных фильтрах речь пойдет далее.)

Давайте откроем файл capture.dump и посмотрим, как Ethereal отображает данные. Отображение файла показано на рис. 14.1.


увеличить изображение
Рис. 14.1.  Отображение в Ethereal файла дампа сеанса telnet, созданного утилитой WinDump

Как видно из рисунка, у Ethereal гораздо более понятный интерфейс, чем у tcpdump или WinDump. Верхняя панель содержит информацию, подобную той, которую дают два других инструмента, но здесь фактически мы можем перемещаться по этим данным. На рисунке выбран первый пакет подключения. В средней панели мы можем видеть детальную информацию о каждом заголовке пакета, включая TCP, IP и заголовочную информацию Ethernet. Третья панель содержит шестнадцатеричный и ASCII-дамп фактического содержания пакета. Таким образом, мы можем получить любой бит интересующей нас информации о любом пакете этого подключения, включая данные.



Содержание раздела