TamoSoft: Network Analysis Tools & Security Software
Contents

CommView - Мониторинг и Анализ Сети

 
Введение
О программе CommView
Что нового
Работа с программой
Краткий обзор
Выбор сетевого адаптера для работы
Текущие IP-соединения
Пакеты
Log-файлы
Просмотр Log-файлов
Правила
Универсальные правила
Предупреждения
Реконструкция TCP-сессий
Реконструкция UDP-потоков
Статистика и отчёты
Использование псевдонимов (алиасов)
Генератор пакетов
Визуальный конструктор пакетов
Определение изготовителя NIC
Захват по расписанию
Удаленный мониторинг (Remote Agent)
Использование RPCAP
Сбор трафика на логическом адаптере обратной связи (loopback)
Установка опций
Ответы на вопросы (FAQ)
Анализ VoIP
Введение
Работа с анализатором VoIP
Сессии SIP and H.323
Потоки RTP
Регистрации
Станции
Ошибки
Log-файлы звонков
Отчет
Воспроизведение звонка
Просмотр VoIP log-файлов
Работа со списками в анализаторе VoIP
Файлы NVF
Дополнительные возможности
Перехват больших объемов трафика
Запуск нескольких копий программы
Невидимый режим
Параметры командной строки
Обмен данными с вашим приложением
Пользовательский модуль декодирования
Формат Log-файлов CommView
Информация
Как купить CommView
Контакты
Другие продукты компании TamoSoft

Универсальные правила

Универсальные правила являются мощным и гибким механизмом создания фильтров с помощью булевой логики. Требуются лишь элементарные знания математики и логики; синтаксис правил несложен для понимания.

 

 

Обзор

 

Чтобы создать новое правило, задайте ему произвольное имя в поле Имя, выберите действие (Захват пакетов/Игнорировать пакеты), в поле Формула задайте формулу, пользуясь синтаксисом, описанным ниже, и нажмите Добавить/Изменить. Новое правило будет добавлено в список и немедленно активизировано. Вы можете задать неограниченное количество правил, но активными из них буду лишь те, возле которых будет установлена метка. Любое правило можно включить/выключить, изменяя соответствующий флажок, либо совсем удалить правило с помощью кнопки Удалить. Если активны сразу несколько правил, вы можете выполнить комбинированное правило, нажав на кнопку Оценить. Обратите внимание, что отдельные правила объединяются логическим оператором OR ("ИЛИ"). Пример: для трех активных правил RULE1, RULE2, RULE3, результирующим будет правило RULE1 OR RULE2 OR RULE3.

 

Можно пользоваться составными правилами совместно с обычными, описанными в предыдущей главе. Однако, если вы владеете булевой логикой, рекомендуем пользоваться только составными, так как они более гибки. Обычные правила объединяются с составными с помощью логического оператора AND ("И").

 

Описание синтаксиса

 

dir – Направление пакета. Возможные значения - in (входящий), out (исходящий) и pass (транзитный).

 

etherproto – Протокол Ethernet (13-й и 14-й байты пакета). Допустимыми значениями являются числа (например,  etherproto=0x0800 соответствует протоколу IP) или известные аббревиатуры (например, etherproto=ARP, что соответствует  0x0806).

 

ipproto – Протокол IP. Допустимыми значениями являются числа (например, ipproto!=0x06 соответствует протоколу TCP) или известные аббревиатуры (например, ipproto=UDP, что соответствует 0x11).

 

smac – MAC источника. Допустимыми значениями являются MAC-адреса источников в шестнадцатеричном виде (например,  smac=00:00:21:0A:13:0F) или алиасы.

 

dmac – MAC получателя.

 

sip – IP- или IPv6-адрес источника. Допустимыми значениями являются IP-адреса, записанные через точку (например,  sip=192.168.0.1 или sip= fe80::02c0:26ff:fe2d:edb5), IP-адреса с карт-бланшами (например, sip!=*.*.*.255, кроме адресов IPv6), сетевые адреса с масками подсетей (например,  sip=192.168.0.4/255.255.255.240 или sip=192.168.0.5/28), диапазоны IP-адресов (то есть, sip from 192.168.0.15 to 192.168.0.18 или sip in 192.168.0.15 ... 192.168.0.18) или алиасы. Для работы с адресами IPv6 требуется версия Windows XP или выше, а также установленный протокол IPv6.

 

dip -  IP-адрес получателя.

 

sport – Номер порта-источника пакета TCP или UDP. Допустимыми значениями являются числа (например, sport=80 соответствует HTTP), диапазоны (то есть, sport from 20 to 50  или sport in 20..50 для любых портов в диапазоне от 20 до 50)  или алиасы, известные операционной системе (например, sport=ftp, что соответствует порту 21). Проверить список алиасов, известных ОС, можно нажав Вид => Информация о портах.

 

dport – Порт-получатель пакетов TCP или UDP.

 

flag – Флаг TCP. Допустимыми значениями являются числа (например, 0x18 соответствует PSH ACK), одна или несколько букв из следующего списка:  F (FIN), S (SYN), R (RST), P (PSH), A (ACK) и U (URG) или ключевое слово has, означающее,  что флаг содержит определённое значение. Например: flag=0x18, flag=SA, flag has F.

 

size – Размер пакета. Допустимыми значениями являются числа (например, size=1514) или диапазоны (size from 64 to 84 или size in 64..84 для размеров с 64 до 84 байтов).

 

str – Содержимое пакета. Задает условие, что пакет должен содержать определённую строку. Функция имеет три аргумента: образец поиска, местоположение, чувствительность к регистру. Первый аргумент – строка, например, 'GET'. Второй аргумент – число, показывающее смешение строки в пакете. Счёт начинается с нуля – первый байт пакета надо искать, задавая смещение равное 0. Чтобы искать строку в любом месте пакета, задайте смещение равным –1. Третий аргумент устанавливает чувствительность к регистру и может принимать значения false (без учёта регистра) или true (с учётом регистра). Второй и третий аргументы необязательны, по умолчанию имеют значения –1  и false соответственно (искать во всём пакете, без учёта регистра). Примеры: str ('GET',-1,false), str ('GET',-1), str ('GET').

 

hex - Содержимое пакета. Задает условие, что пакет должен содержать определённый 16-ричный набор.  Функция имеет два аргумента: образец поиска и местоположение. Первый аргумент – 16-ричная величина, например, 0x4500. Второй аргумент – число, задающее смещение внутри пакета. Отсчёт ведется с нуля, т. е. первый байт пакета соответствует смещению, равному 0. Чтобы искать во всём пакете, задайте смещение равным –1. Второй аргумент необязателен, по умолчанию имеет значение –1  (искать во всём пакете). Пример: hex (0x04500, 14) , hex (0x4500, 0x0E), hex (0x010101).

 

bit - Содержимое пакета. Задает условие, что пакет должен содержать по указанному смещению определённый бит, имеющий значение 1. В этом случае функция вернёт код возврата true. Если же искомый бит имеет значение 0 или находится за пределами пакета - функция вернёт код возврата false. Первый аргумент – номер бита в байте, начиная с нуля; допустимые значения 0-7. Таким образом, если вы ищете восьмой бит, установите номер равным семи. Второй аргумент – число, обозначающее смещение байта в пакете, начиная с нуля, то есть, если нужен первый байт пакета – смещение должно быть равно 0. Оба аргумента обязательны, например: bit(0, 14) , bit(5, 1).

 

Вышеописанные ключевые слова можно использовать со следующими операторами:

 

and - Конъюнкция, булево И.

or  - Дизъюнкция, булево ИЛИ.

not - Булево отрицание.

= - Арифметическое равенство.

!= - Арифметическое неравенство.

<> - Арифметическое неравенство.

> - Арифметическое условие "больше, чем".

< - Арифметическое условие "меньше, чем".

( ) – Скобки, управляющие порядком вычисления правил.

 

Числа могут быть в десятичной или шестнадцатеричной системе. Для указания на шестнадцатеричную нотацию, используйте 0x перед значением, например, 15  и 0x0F задают одно и то же число.

 

Примеры

 

Ниже приведены несколько примеров, поясняющих синтаксис правил. К каждому правилу даны комментарии, отделяемые двойной косой чертой.

 

dir!=pass // Захватывать только входящие и исходящие пакеты. Транзитные пакеты игнорируются.
(smac=00:00:21:0A:13:0E or smac=00:00:21:0A:13:0F) and etherproto=arp // Захватывать пакеты ARP, посылаемые двумя компьютерами с MAC 00:00:21:0A:13:0E и 00:00:21:0A:13:0F.
ipproto=udp and dport=137 // Захватывать пакеты UDP/IP, посылаемые в порт 137.
dport=25 and str('RCPT TO:', -1, true) // Захватывать пакеты TCP/IP или UDP/IP, содержащие строку "RCPT TO:" и направляемые в порт 25.
not (sport>110) // Захватывать все пакеты, кроме тех, что имеют порт-источник с номером выше 110.
(sip=192.168.0.3 and dip=192.168.0.15) or (sip=192.168.0.15 and dip=192.168.0.3) // Захватывать только IP-пакеты, следующие между двумя хостами, 192.168.0.3 и 192.168.0.15. Все остальные игнорируются.
((sip from 192.168.0.3 to 192.168.0.7) and (dip = 192.168.1.0/28)) and (flag=PA) and (size in 200..600) // Захватывать  TCP-пакеты, размер которых лежит в диапазоне от 200 до 600 байтов, приходящие с IP-адресов в диапазоне  192.168.0.3 - 192.168.0.7, причем IP-адреса получателей находятся в сегменте 192.168.1.0/255.255.255.240, и имеющие TCP-флаг PSH ACK.
Hex(0x0203, 89) and (dir<>in) // Захватывать пакеты, содержащие 0x0203 в смещении 89, при этом направление пакета - не "входящий".