Главная страница
Навигация по странице:

  • 1.1. Общие сведения о программе

  • 1.2. Установка программы и подготовка к захвату

  • ВЫПОЛНИТЬ!

  • 1.3. Пользовательский интерфейс программы

  • 1.4. Фильтр отображения пакетов

  • Выражение Значение выражения и пример записи

  • 1.5. Поиск кадров

  • А. Н. Андрончик, В. В. Богданов, Н. А. Домуховский, А. С. Коллеров, Н. И. Синадский, Д. А. Хорьков


    Скачать 9.2 Mb.
    НазваниеА. Н. Андрончик, В. В. Богданов, Н. А. Домуховский, А. С. Коллеров, Н. И. Синадский, Д. А. Хорьков
    АнкорAndronchik.pdf
    Дата15.12.2017
    Размер9.2 Mb.
    Формат файлаpdf
    Имя файлаAndronchik.pdf
    ТипУчебное пособие
    #11552
    страница2 из 20
    1   2   3   4   5   6   7   8   9   ...   20
    1. ОСНОВЫ ЗАХВАТА И АНАЛИЗА СЕТЕВОГО ТРАФИКА
    Мониторинг и анализ сетевого трафика являются неотъемлемой частью процесса управления компьютерной сетью и используются для диагностики, тестирования и поиска неисправностей, для оптимизации структуры инфор- мационных потоков, а также выявления и решения проблем в обеспечении безопасности узлов компьютерной сети и информации, циркулирующей меж- ду ними.
    Целью данного занятия является приобретение навыков захвата сетево- го трафика в сегменте локальной сети и анализа собранной информации с по- мощью программного анализатора протоколов Ethereal. Для успешного дос- тижения целей занятия слушателям необходимо повторить теоретический ма- териал, касающийся назначения и функционирования протоколов стека
    TCP/IP.
    Для изучения материала данной главы в учебном классе должен быть развернут сегмент локальной вычислительной сети на концентраторе или коммутаторе, включающий в себя рабочие станции c операционной системой
    Windows 2000/XP по количеству слушателей. При выполнении некоторых уп- ражнений понадобится наличие сервера HTTP или подключение к сети Ин- тернет. Для установки необходимого программного обеспечения на рабочих станциях должны быть доступны инсталляционные пакеты библиотеки
    WinPCap (версия не ниже 2.3) и анализатора Ethereal (версия не ниже 0.10.11).
    1.1. Общие сведения о программе
    Существует множество инструментальных средств, предоставляющих необходимые возможности для выполнения мониторинга сети и анализа сете- вого трафика. Одним из таких средств является пакет Ethereal, представляю- щий собой программный анализатор протоколов. Анализатор протоколов пе- реводит сетевой адаптер в режим «беспорядочного» приема кадров, записыва- ет в свой буфер отфильтрованные кадры сетевого трафика, по запросам поль- зователя выводит на экран те или иные кадры из буфера и посредством деко- дера протоколов предоставляет пользователю информацию о значениях полей заголовка протокола и содержимое его блока данных.
    Как и большинство программ такого класса, Ethereal содержит следую- щие основные компоненты: фильтр захвата, буфер кадров, декодер протоко- лов, фильтр отображения захваченных кадров и модуль статистики с элемен- тами экспертной системы. К несомненным достоинствам Ethereal относятся:
    − наличие реализаций для Unix и Windows;
    − наличие исходного кода программы;
    − возможность захвата трафика в сетевых сегментах различных базовых технологий;

    13
    − возможность анализа огромного числа протоколов (более 700);
    − возможность экспорта/импорта файлов данных в формат распространен- ных анализаторов (несколько десятков форматов);
    − мощная и удобная система поиска и фильтрации информации в буфере пакетов;
    − наличие элементов экспертной системы;
    − возможность сохранения на диск выделенного фрагмента пакета;
    − наличие полезных утилит командной строки для осуществления захвата трафика и обработки сохраненных файлов.
    1.2. Установка программы и подготовка к захвату
    ВЫПОЛНИТЬ!
    1. Установите библиотеку WinPCap и анализатор Ethereal, для чего последо- вательно запустите соответствующие файлы установки.
    Некоторые дистрибутивы Ethereal содержат в себе инсталлятор
    требуемой версии библиотеки WinPCap.
    2. Запустите Ethereal и разверните главное окно приложения на весь экран
    (для удобства работы).
    Перед выполнением захвата сетевого трафика необходимо настроить параметры захвата или проконтролировать установленные значения некото- рых из них так, чтобы собранная информация адекватно соответствовала ре- шаемой задаче анализа трафика.
    ВЫПОЛНИТЬ!
    3. Выполните команду меню Capture

    Options.
    В открывшемся диалоговом окне устанавливаются следующие парамет- ры захвата кадров (рис. 1.1):
    − Interface — сетевой адаптер;
    Очень важно выбрать соответствующий сетевой адаптер, иначе за-
    пись кадров будет производиться из другого сегмента сети! В компь-
    ютере, имеющем всего один сетевой адаптер, среди возможных се-
    тевых интерфейсов часто присутствует контроллер удаленного
    доступа!
    − Buffer size — размер буфера захвата (по умолчанию 1 Мб);
    При малом размере буфера существует опасность того, что при его
    заполнении запись новых кадров будет производиться поверх записан-
    ных ранее!

    14
    − Capture packets in promiscuous mode — использование режима беспоря- дочного захвата.
    Рис. 1.1. Окно настройки параметров захвата
    − Limit each packet to — запись только нескольких первых байт (определя- ется установленным значением параметра) каждого кадра;
    − Capture Filter — фильтр захвата;
    Фильтр захвата экономит объем буфера, отбрасывая «лишний му-
    сор», однако увеличивает нагрузку на процессор, вследствие чего не-
    которые кадры могут быть потеряны. Поэтому в некоторых случаях
    вместо фильтра записи предпочтительнее использовать фильтр
    отображения кадров в буфере, а запись производить без фильтрации!
    − Capture File(s) — файл захвата;
    Опция полезна при осуществлении захвата трафика в течение дли-
    тельного периода времени.
    − Stop Capture — условия автоматического завершения захвата;

    15
    − Display Options — отображение пакетов в реальном времени и автомати- ческий скроллинг окна информации;
    Опции увеличивают нагрузку на процессор, вследствие чего некото-
    рые кадры могут быть потеряны.
    − Name Resolution — разрешение имен на физическом, сетевом и транс- портном уровнях.
    ВЫПОЛНИТЬ!
    4. Уберите маркер напротив опции «Capture packets in promiscuous mode» для захвата только «своих» кадров (кадры с широковещательным адресом так- же будут захватываться). В таком режиме работы число захваченных паке- тов будет существенно меньше, что облегчит выполнение заданий.
    1.3. Пользовательский интерфейс программы
    ВЫПОЛНИТЬ!
    5. В командной строке сеанса MS-DOS для очистки кэша протокола ARP вы- полните команду arp -d. В Ethereal для запуска процесса захвата нажми- те кнопку «Capture». В командной строке выполните команду ping <имя_сервера> (в качестве параметра команды можно использо- вать IP-адрес сервера). По завершении команды Ping остановите захват, нажав кнопку «Stop».
    На экране монитора в программе Ethereal вы увидите несколько панелей с отображением сетевых пакетов, только что записанных в буфер. Общий вид окна приложения представлен на рис. 1.2. Пользовательский интерфейс про- граммы содержит следующие компоненты:
    − меню команд и панель инструментов;
    − фильтр отображения пакетов;
    − список пакетов в буфере;
    − панель отображения декодера протоколов;
    − панель отображения пакета в шестнадцатеричном коде и символах ASCII.
    Панель со списком пакетов построчно отображает характеристики того или иного пакета (номер по порядку в буфере, время захвата, адреса источни- ка и получателя, тип протокола и общая информация о нем). Перемещение по списку осуществляется с помощью мыши или клавиатуры, причем информа- ция на двух других панелях обновляется автоматически. На панели декодера протоколов, нажимая указателем мыши на символы «+» или «–», можно ото- бражать информацию о полях заголовков протоколов с требуемым уровнем детализации. При выборе того или иного служебного поля в заголовке оно ав- томатически выделяется на нижней панели, где отображается текущий пакет в шестнадцатеричном виде.

    16
    Рис. 1.2. Общий вид приложения Ethereal
    1.4. Фильтр отображения пакетов
    С помощью фильтра отображения можно быстро убрать «мусор». Вы- ражение фильтрации может представлять собой просто название протокола, который присутствует в пакете на том или ином уровне вложенности. Напри- мер: arp — для отображения пакетов протокола ARP, tcp — для отображения пакетов, в которых присутствует заголовок протокола TCP.
    ВЫПОЛНИТЬ!
    6. Для отображения только ICMP-сообщений в строке ввода «Filter» (рис. 1.2) наберите «icmp» и нажмите кнопку «Apply».
    Более сложные выражения фильтрации строятся с помощью зарезерви- рованных слов, обычно представляющих собой названия полей заголовков то- го или иного протокола, знака операции сравнения и конкретного значения в шестнадцатеричном или десятичном виде. Наиболее часто используемые вы- ражения фильтрации и их значения приведены в табл. 1.1.

    17
    Таблица 1.1
    Выражения фильтрации и их значения
    Выражение
    Значение выражения и пример записи
    frame.marked
    Маркированный кадр frame.marked == true frame.number
    Номер кадра frame.number == 150
    frame.time
    Время захвата кадра frame.time == "Feb 1, 2006 09:00:00"
    frame.pkt_len
    Длина кадра frame.pkt_len == 48
    eth.dst
    Заголовок Ethernet: MAC-адрес назначения eth.dst == 01:00:5e:00:00:02
    eth.src
    Заголовок Ethernet: MAC-адрес источника eth.src == 00:a0:cc:30:c8:db eth.type
    Заголовок Ethernet: тип вложенного протокола eth.type == 0x0800
    arp.hw.type
    Заголовок протокола ARP: тип протокола канального уровня arp.hw.type == 0x0001
    arp.proto.type
    Заголовок протокола ARP: тип протокола сетевого уровня arp.proto.type == 0x0800
    arp.opcode
    Заголовок протокола ARP: код операции arp.opcode == 0x0001
    arp.src.hw_mac
    Заголовок протокола ARP: MAC-адрес источника arp.src.hw_mac == 00:10:4b:30:c4:4a arp.src.proto_ipv
    4
    Заголовок протокола ARP: IP-адрес источника arp.src.proto_ipv4 == 10.1.0.1
    arp.dst.hw_mac
    Заголовок протокола ARP: MAC-адрес назначения arp.dst.hw_mac == 00:00:00:00:00:00
    arp.dst.proto_ipv
    4
    Заголовок протокола ARP: IP-адрес назначения arp.dst.proto_ipv4 == 10.1.0.2
    ip.version
    Заголовок протокола IP: версия протокола IP ip.version == 4
    ip.hdr_len
    Заголовок протокола IP: длина заголовка ip.hdr_len == 24
    ip.flags.df
    Заголовок протокола IP: флаг фрагментации ip.flags.df == 0
    ip.flags.mf
    Заголовок протокола IP: флаг не последнего фрагмента ip.flags.mf == 0

    18
    Выражение
    Значение выражения и пример записи
    ip.frag_offset
    Заголовок протокола IP: смещение фрагмента ip.frag_offset == 0
    ip.ttl
    Заголовок протокола IP: время жизни пакета ip.ttl == 1
    ip.proto
    Заголовок протокола IP: протокол вышестоящего уровня ip.proto == 0x01
    ip.src
    Заголовок протокола IP: IP-адрес источника ip.src == 10.0.0.99
    ip.dst
    Заголовок протокола IP: IP-адрес назначения ip.dst == 224.0.0.2
    ip.addr
    Заголовок протокола IP: IP-адрес ip.addr == 10.2.0.0/16
    tcp.srcport
    Заголовок протокола IP: порт источника tcp.srcport == 1054
    tcp.dstport
    Заголовок протокола IP: порт назначения tcp.dstport == 21
    tcp.seq
    Заголовок протокола IP: последовательный номер tcp.seq == 4856133
    tcp.ack
    Заголовок протокола IP: номер подтверждения tcp.ack == 4856134
    tcp.flags.urg
    Заголовок протокола IP: бит присутствия срочных данных tcp.flags.urg == 0
    tcp.flags.ack
    Заголовок протокола IP: бит присутствия подтверждения tcp.flags.ack == 1
    tcp.flags.push
    Заголовок протокола IP: бит выталкивания данных tcp.flags.push == 0
    tcp.flags.reset
    Заголовок протокола IP: бит сброса соединения tcp.flags.reset == 0
    tcp.flags.syn
    Заголовок протокола IP: бит синхронизации сессии tcp.flags.syn == 1
    tcp.flags.fin
    Заголовок протокола IP: бит завершения сессии tcp.flags.fin == 0
    tcp.window_size Заголовок протокола IP: размер приемного окна tcp.window_size == 8760
    udp.srcport
    Заголовок протокола UDP: порт источника udp.srcport == 2364
    udp.dstport
    Заголовок протокола UDP: порт назначения udp.dstport == 53

    19
    Выражение
    Значение выражения и пример записи
    icmp.type
    Заголовок протокола ICMP: тип сообщения icmp.type == 8
    icmp.code
    Заголовок протокола ICMP: уточняющий код сообщения icmp.code == 0x00
    В примерах записи выражений табл. 1.1 приведены выражения с опера- цией сравнения «Равно», которая записывается с помощью двойного знака ра- венства «==» (допустимо использование «eq»). Другие операции сравнения записываются с помощью следующих операторов: a.
    != (ne)
    — не равно, пример: eth.type != 0x0800
    ; b.
    > (gt)
    — больше, пример: tcp.srcport > 1023
    ; c.
    < (lt)
    — меньше, пример: frame.pkt_len lt 60
    ; d.
    >= (ge)
    — больше или равно, пример: frame.pkt_len ge 60
    ; e.
    <= (le)
    — меньше или равно, пример: tcp.dstport <=1023
    ВЫПОЛНИТЬ!
    7. Выясните, что будет отображено в буфере захвата в случае использования фильтра, описанного с помощью выражений, приведенных в качестве вы- шеописанных примеров.
    Значение любого выражения фильтрации возвращает переменную бу- левского типа. Таким образом, выражение udp означает присутствие в кадре заголовка протокола UDP, по аналогии с этим выражение tcp.flags.syn означает присутствие в заголовке протокола TCP бита синхронизации сессии в установленном состоянии (значение 1). К любому из выражений можно применить операцию логического отрицания, заключив его в скобки и поста- вив перед ним знак отрицания «NOT» или «!». Например, выражение
    !(ip.addr == 10.0.0.1) означает, что из буфера отображения необхо- димо убрать все пакеты, в которых встречается IP-адрес 10.0.0.1.
    ВЫПОЛНИТЬ!
    8. Объясните разницу между результатами использования выражений фильт- рации !(ip.addr == X.X.X.X) и ip.addr !== X.X.X.X. Для вы- полнения упражнения в выражениях фильтрации используйте вместо адре- са X.X.X.X реальный IP-адрес вашего узла.
    В качестве выражений фильтрации можно использовать и составные выражения, которые образуются с помощью следующих логических операто- ров: a. && (AND) — логическое И, пример:
    (ip.dst==10.0.0.1) AND tcp.flags.syn
    ;

    20
    b. || (OR) — логическое ИЛИ, пример:
    (ip.addr==10.0.0.1) OR (ip.addr==10.0.0.2)
    Другой удобный способ ввода выражения фильтрации состоит в сле- дующем. На панели декодера протоколов отображается требуемое поле, в контекстном меню выбирается пункт «Apply as Filter» и далее исполняется либо команда «Selected», либо «Not Selected» в зависимости от задачи фильт- рации (рис. 1.3).
    ВЫПОЛНИТЬ!
    9. Отобразите только ICMP-запросы (используйте поле «тип» в заголовке
    ICMP). Укажите результирующее выражение фильтрации с необходимыми пояснениями. После просмотра результата для отображения пакетов без фильтрации нажмите кнопку «Clear» в строке фильтра.
    При необходимости создания сложного выражения фильтрации в меню
    «Apply as Filter» (рис. 1.3) выбирайте команды, начинающиеся с многоточия, при этом новое выражение будет добавлено к результирующему выражению фильтрации.
    10. Отобразите все кадры, переданные вашим узлом, исключая сообщения
    ICMP.
    При создании выражения фильтрации имейте в виду, что в буфере
    могут находиться кадры других узлов.
    Укажите результирующее выражение фильтрации с необходимыми пояс- нениями. После просмотра результата для отображения пакетов без фильт- рации нажмите кнопку «Clear» в строке фильтра.
    В выражениях фильтрации первый операнд операции сравнения допус- кает использование указателя диапазона, если второй операнд представляет собой массив байт или строку символов. Указатель диапазона определяется с помощью квадратных скобок и может быть использован как применительно к кадру в целом (frame), так и с любым полем заголовка. Указатель диапазона допускает следующий синтаксис: a. [i:j] начальное смещение i, длина j; b. [i-j] начальное смещение i, конечное смещение j, включительно; c. [i] начальное смещение i, длина 1; d. [:j] начальное смещение 0, длина j; e. [i:] начальное смещение i, до конца поля.
    Например, записи frame[6:3] и eth.src[:3] идентичны и могут быть использованы для указания на код фирмы-производителя сетевого адап- тера, передавшего кадр. Начальное смещение может иметь отрицательное значение, в этом случае оно отсчитывается от конца поля, причем последний байт поля имеет смещение, равное –1, предпоследний –2 и так далее. Напри-

    21
    мер, выражение frame[-5:] == "hello" определяет кадр, оканчиваю- щийся строкой «hello».
    Рис. 1.3. Контекстное меню создания фильтра
    Строка, как видно из предыдущего примера, записывается в кавычках.
    Запись массива байт осуществляется побайтно в шестнадцатеричном виде с разделителем «.» или «:», например 00.45.f5.2d.
    Используя символ «,» в указателе диапазона, можно перечислить не- сколько непересекающихся диапазонов, объединив их в одном операнде. На- пример, выражение tcp[2,10,13-16] == 00.01.c0.f8.01.66 сравни- вает в заголовке протокола TCP поле «Тип обслуживания» с «0x00», поле
    «Протокол» с «0x01» и поле «IP-адрес источника» с «0xc0f80166».
    ВЫПОЛНИТЬ!
    11. Отобразите ICMP-ответы, используя в выражении фильтрации операнд
    «frame» с указателем диапазона.

    22
    При создании выражения фильтрации имейте в виду, что в буфере
    могут находиться кадры других узлов.
    Укажите результирующее выражение фильтрации с необходимыми пояс- нениями. После просмотра результата для отображения пакетов без фильт- рации нажмите кнопку «Clear» в строке фильтра.
    Быстро вернуться к тому или иному ранее вводимому выражению фильтрации можно с помощью списка истории ввода, доступ к которому осуществляется нажатием на кнопку с символом «▼», расположенную в стро- ке фильтра (не забывайте нажимать кнопку «Apply» для применения того или иного фильтра к буферу кадров).
    1.5. Поиск кадров
    Поиск кадров в буфере, удовлетворяющих тем или иным критериям, осуществляется с помощью команды меню Edit

    Find Packet. Диалоговое окно определения критериев поиска пакетов изображено на рис. 1.4.
    Рис. 1.4. Диалоговое окно определения критериев поиска кадров
    Критерии поиска можно определять в виде выражения фильтрации
    (Display filter), шаблона в шестнадцатеричном виде (Hex value) и текстовой строки (String) в кодировке ASCII и (или) Unicode. В первом случае можно использовать все допустимые выражения фильтрации (табл. 1.1) и их логиче- ские комбинации. Во втором случае указывается шаблон для поиска в шест- надцатеричном коде. Поиск в строке может осуществляться в области общей информации о пакете (Packet list), в панели декодера протоколов (Packet de- tails) и непосредственно в самом пакете (Packet bytes). Поиск может произво- диться вверх или вниз по списку пакетов (Direction).
    Команды меню
    1   2   3   4   5   6   7   8   9   ...   20


    написать администратору сайта