Защита и взлом информацииРефераты >> Информатика >> Защита и взлом информации
В этом примере показано, как собирать только пакеты, содержащие или текст "GET" или 01 02 03 04 шестнадцатеричные данные. При необходимости, установите флажок Case sensitive (С учётом регистра).
7. Advanced (Составные).
Составные правила являются мощным и гибким механизмом создания фильтров с помощью Булевой логики.
Чтобы создать новое правило, задайте ему имя в поле Name, выберите действие (Capture(Сбор)/Ignore(Пропуск)), в поле Formula задайте формулу, пользуясь синтаксисом, описанным ниже, и нажмите Add(Добавить)/Edit(Редактировать). Новое правило будет добавлено и немедленно активизировано.
Неограниченное количество правил может быть задано, но активизированы только те из них, которые помечены галочкой в колонке имён.
Любое правило можно включить/выключить, воздействуя на соответствующий флажок, или совсем удалить с помощью кнопки Delete. Если включены сразу несколько правил, их совместное ограничение можно оценить, нажав на кнопку Evaluate. Обратите внимание, что отдельные правила объединяются в составное логическим оператором ИЛИ.
Можно пользоваться составными правилами совместно с обычными, описанными в предыдущей главе, однако, если Вы владеете Булевой логикой, рекомендуем пользоваться в основном составными, так как они более гибки. Обычные правила объединяются с составными по логическому оператору И.
Описание синтаксиса:
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 адрес источника. Допустимыми значениями являются IP адреса, записанные через точку (например, sip=192.168.0.1), IP адреса с карт-бланшами (то есть, sip!=*.*.*.255), сетевые адреса с масками подсетей (например, 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 ), или алиасы.
dip - IP адрес получателя.
sport – Номер порта-источника пакета TCP или UDP. Допустимыми значениями являются числа (например, sport=80 соответствует HTTP), диапазоны (то есть, sport from 20 to 50 или sport in 20 50 для любых портов в диапазоне от 20 до 50) или алиасы, известные операционной системе (например, sport=ftp, что соответствует порту 21). Проверить список алиасов, известных ОС, можно нажав View(Просмотр) => Port Reference(Список портов).
dport – Порт-получатель пакетов TCP или UDP.
flag – Флаги TCP. Допустимыми значениями являются числа (например, 0x18 соответствует PSH ACK), одна или несколько букв из следующего списка: F (FIN), S (SYN), R (RST), P (PSH), A (ACK), and 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 - Содержимое пакета. Используйте эту функцию, чтобы задать условие, что пакет должен содержать определённую последовательность байтов. Функция имеет два аргумента: образец поиска и местоположение. Первый аргумент – шестнадцатеричная величина, например, 0x4500. Второй аргумент – число, показывающее смешение в пакете. Счёт начинается с нуля – первый байт пакета надо искать, задавая смещение равное 0. Чтобы искать во всём пакете, задайте смещение равным –1. Второй аргумент необязателен, по умолчанию имеет значение –1 (искать во всём пакете). Пример: hex(0x04500, 14) , hex(0x4500, 0x0E), hex (0x010101).
Вышеописанные ключевые слова можно использовать со следующими операторами:
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 anddip=192.168.0.15) or (sip=192.168.0.15 anddip=192.168.0.3) // Захватывать только IP пакеты, следующие между двумя хостами, 192.168.0.3 и 192.168.0.15. Все остальные игнорируются.