- PVSM.RU - https://www.pvsm.ru -
Анализаторы трафика являются полезным и эффективным инструментом в жизни администратора сети, они позволяют «увидеть» то что на самом деле передается в сети, чем упрощают диагностику разнообразных проблем или же изучение принципов работы тех или иных протоколов и технологий.
Однако в сети зачастую передается достаточно много разнообразных блоков данных, и если заставить вывести на экран все, что проходит через сетевой интерфейс, выделить то, что действительно необходимо, бывает проблематично.
Для решения этой проблемы в анализаторах трафика реализованы фильтры, которые разделены на два типа: фильтры захвата и фильтры отображения. В прошлый раз [1] мы рассматривали фильтры захвата. Сегодня пойдет речь о втором типе фильтров – о фильтрах отображения.
Фильтры отображения, это разновидность фильтров, позволяющая отобразить только те кадры, которые необходимы в данный момент (принадлежат определенному протоколу и/или узлу), временно скрыв все остальные.
Правила написания фильтров отображения отличаются от правил написания фильтров захвата. Отличая не такие уж большие, но как правило достаточные для того что бы правило фильтра захвата без каких-либо изменений не работало будучи примененным как фильтр отображения.
Выражение фильтра отображения состоит из набора специальных примитивов, которые строятся из так называемых классификаторов и идентификаторов объекта (адреса, имена объектов сети, номера портов).
Внимание: все классификаторы регистрозависимы и должны писаться только маленькими буквами.
Классификаторы в фильтре отображения не делятся на типы, в их качестве используются ключевые слова, соответствующие протоколам разных уровней модели OSI. Простейшим примером использования классификатора является имя протокола (ip, dns, arp и т.д.), введя которое в качестве фильтра отображения мы заставим программу оставить на экране только те кадры, которые содержат указанный протокол. При этом следует помнить, что в оперативную память попадают все захватываемые кадры, и отменив фильтр отображения вы сможете увидеть все карды, захваченные анализатором (все, прошедшие фильтр захвата).
Одним из отличий фильтров отображения является то, что можно производить доступ к определенным параметрам протокола, указывая название этого параметра через точку после имени протокола, например:
И фактически, зачастую, написание фильтра отображения сводится к поиску правильного названия протокола или параметра этого протокола.
Для сравнения значений полей используются операторы сравнения:
Все параметры протоколов (идентификаторы) – типизированы и зависят от конкретного параметра конкретного протокола.
Список допустимых типов идентификаторов следующий:
Целые числа и адреса могут быть представлены как в десятичном, так и в шестнадцатеричном формате:
В случае логических значений true эквивалентно 1 а false эквивалентно 0.
В аппаратных адресах числа могут разделяться символами двоеточия (:), точкой (.), тире (-):
IP адреса, так же как и числа, можно сравнивать между собой точно так же как и числа с использованием операторов сравнения eq, ne, gt, ge, lt, le.
В качестве адресов узлов можно вместо числовых адресов использовать символьные адреса, но при этом необходима доступная служба разрешения имен:
При описании сетей можно применять короткий вариант маски, так же можно применять маску и к символьным адресам:
Фильтр отображения может работать с примитивом proto [offset:size], как и фильтр захвата, но при его использовании есть некоторые отличия:
Примеры использования примитива proto [offset:size] в расширенных фильтрах отображения:
Все правила можно объединять логическими связками:
Например:
При этом приоритет этих операций следующий:
Как и в обычных математических выражениях, приоритет можно менять с использованием круглых скобочек (), действия в которых выполняются в первую очередь.
Внимание:
Следует быть осторожным при форматировании фильтров, описывающих требования к повторяющимся полям, например к IP адресам, так как в заголовке IP, IP адрес встречается дважды – адрес отправителя и адрес получателя. Следующие два фильтра, несмотря на кажущуюся одинаковость будут работать по разному:
ip.addr ne 1.1.1.1
not ip.addr eq 1.1.1.1
Первый фильтр означает «показать все кадры, в которых в заголовке IP пакета есть адрес, отличающийся от 1.1.1.1» и как следствие если адрес отправителя или адрес получателя будет другим, то кадр, содержащий такой заголовок будет отображен, несмотря на то, что второй адрес может совпадать с 1.1.1.1.
Второй вариант означает «показать все кадры, в которых в заголовке IP пакета нет адреса 1.1.1.1», таким образом для того что бы кадр был отображен требуется что бы ни адрес отправителя ни адрес получателя в IP заголовке не совпадал с 1.1.1.1.Также следует быть аккуратным в правилах исключающих определенные пакеты. Например, мы хотим исключить из отображения все кадры, у которых в качестве IP адреса получателя стоит любой адрес кроме 1.1.1.1. Если применить следующий фильтр:
ip.dst ne 1.1.1.1
то из захвата действительно уберутся все кадры, в которых нет этого IP адреса получателя, а также те кадры в которых его и не могло быть (например, ARP). Если же нам нужен и не-IP трафик, то нужно исправить фильтр на такой:
not ip or ip.dst ne 1.1.1.1
Изучив основные правила написания фильтров отображения, остается разобраться только с тем, где найти список поддерживаемых протоколов и из параметров. Список протоколов и их параметров достаточно обширен и приводить его тут нет никакого смысла, его можно найти по ссылке на сайте wireshark.org [3]
Удачного снифинга)
© IDE Academy [4]
Автор: IDEAcademy
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/54181
Ссылки в тексте:
[1] прошлый раз: http://habrahabr.ru/post/211042/
[2] www.habrahabr.ru: http://www.habrahabr.ru
[3] wireshark.org: http://www.wireshark.org/docs/dfref/
[4] © IDE Academy: http://ide-academy.com/
[5] Источник: http://habrahabr.ru/post/211292/
Нажмите здесь для печати.