Параметр Описание

Описание

-y

Добавить месяц, день и год в отображаемые и сохраняемые временные отметки.

-?

Показать помощь по параметрам командной строки.

Для проверки работоспособности СОА Snort рекомендуется выполнить следующие действия.

ВЫПОЛНИТЬ!

1.  Установить СОА Snort.

2.  Вывести на экран список доступных сетевых интерфейсов командой

snort –W

3.  Запустить Snort на выбранном интерфейсе в режиме анализатора пакетов с выводом информации на экран, указав программе завершить работу после приема третьего пакета:

snort –v –i 1 –n 3

4.  Выполнить любые действия, которые приведут к отправке или приему се- тевых пакетов (например, отправить эхо-запрос на любой IP-адрес коман- дой ping). Убедиться, что пакеты перехватываются и отображаются на эк- ране.

Описание языка правил

Рассмотрим краткое описание языка правил, на котором задаются сиг- натуры атак, обнаруживаемых СОА Snort. Полное описание языка правил со- держится в файле документации «с:\snort\doc\snort_manual.pdf»

Правила записываются в одну строку, если возникает необходимость перенести текст правила на следующую строку, необходимо добавить в конце строки символ обратной косой черты «\».

Правила состоят из двух частей: заголовка и набора атрибутов. Заголо-

вок, в свою очередь, состоит из:

1.  Указания действия, которое необходимо выполнить (alert, log, pass и др.).

2.  Протокола (tcp, udp, icmp, ip).

3.  IP-адреса и маски подсети источника и приемника информации, а также

информации о портах источника и приемника.

Действие alert заключается в генерации предупреждающего события и  сохранении содержимого пакета для дальнейшего анализа. Действие log предполагает  сохранение  пакета  без  генерации  предупреждения. Действие

pass означает пропуск пакета (его игнорирование). Существует также ряд более сложных действий, которые здесь не рассматриваются.

Текст атрибутов располагается в скобках, каждая пара атрибут — зна-

чение имеет вид <атрибут>: <значение>;. Значения строковых атрибутов записываются в кавычках.

Рассмотрим пример простого правила (одна строка):

alert <протокол> <адрес_подсети1>[/маска_подсети1]

<порт1> <направление> <адрес_подсети2>[/маска_подсети2]

<порт2> ([msg:"Текст  сообщения";]  [другие_атрибуты])

где

?  alert — действие, которое необходимо выполнить при обнаружении пакета, удовлетворяющего данному правилу, и которое заключается в генера- ции «предупреждения» — записи в журнале регистрации

?  <протокол> — наименование протокола (tcp, udp, icmp, ip)

?  <адрес_подсети>[/маска_подсети] — IP-адрес и маска подсети,

либо IP-адрес узла участника обмена в формате: 192.168.247.0/24, либо

192.168.247.1

?  <порт> — номер порта либо диапазон портов в формате 1:1024 для

обозначения диапазона портов от 1 до 1024, 1024: — с номерами больше или равными 1024, или :1024 — меньше или равными 1024 соответственно

?  <направление> — обозначение направления в виде ->, <- или <>

Вместо IP-адресов и номеров портов могут использоваться псевдонимы

any, являющиеся заменителем любого значения.

Атрибуты являются наиболее значимой частью правил, так как позво-

ляют искать интересующую информацию в полях заголовков и содержимом пакетов. Существует четыре категории атрибутов:

?  meta-data —  предоставляют информацию о  правиле, но  не  влияют на процесс обнаружения;

?  payload — атрибуты данного типа предназначены для поиска информа-

ции в «полезной нагрузке» (содержимом) пакета;

?  non-payload — предназначены для поиска информации в заголовках паке-

тов;

?  post-detection — определяют поведение системы после обнаружения па-

кета, удовлетворяющего правилу.

В табл. 4.2 приведен неполный список атрибутов, которые могут быть использованы при написании правил.

Если известно местонахождение интересующей информации в пакете,

то  целесообразно ограничить область  поиска  при  помощи  модификаторов offset и depth, так как это существенно сократит время, затрачиваемое на анализ пакета.

Список атрибутов СОА Snort

Таблица 4.2

Атрибут Описание

Описание

meta-data

msg: "<текст>";

Сообщение, которое добавляется в журнал регист-

рации при активации правила.

sid:

<идентификатор>;

Уникальный номер, используемый для идентифи-

кации    правил.    Идентификаторы   от    100    до

1 000 000 используются для правил, включенных в дистрибутив Snort. Для локальных правил следует

использовать значения больше 1 000 000.

rev:

<номер_редакции>;

Целое число, служащее для обозначения номера редакции правила.

classtype:

<имя_класса>;

Используется для обозначения класса атаки. Пол- ный список классов  приведен в документации по Snort.

priority:

<приоритет>;

Целое число, используемое для переопределения приоритета, задаваемого указанным ранее классом атаки,  или  для  назначения  приоритета  новому правилу.  Наивысший  приоритет —  1,  типичное значение атрибута составляет от 1 до 4.

payload

content: [!]"<строка>";

Позволяет искать заданную подстроку в содержи- мом полезной нагрузки  пакета. Восклицательный знак означает отсутствие указанной информации в пакете. По умолчанию данный атрибут является чувствительным к регистру. Для обозначения дво- ичных данных следует использовать шестнадцате- ричные значения, отделенные вертикальными чер- тами:  |00 5С|.  Атрибут  content имеет  не- сколько модификаторов, которые  могут распола- гаться следом за ним.

nocase;

Модифицирует стоящий ранее атрибут content,

делая его нечувствительным к регистру.

depth:

<число_байт>;

Значение атрибута (в байтах) определяет, как да- леко в полезной нагрузке пакета должен произво- диться поиск.

Атрибут

Описание

offset:

<число_байт>;

Значение атрибута определяет, сколько байтов по- лезной нагрузки следует пропустить. Поиск будет вестись, начиная с число_байт+1-го байта.

distance:

<число_байт>;

Атрибут похож на depth, но указывает, сколько байт  необходимо  пропустить после  предыдущей совпавшей подстроки перед продолжением  поис- ка.

within:

<число_байт>;

Атрибут  указывает  системе  искать  совпадения лишь  в  первых  число_байт, начиная  с  конца предыдущей совпавшей подстроки.

non-payload

dsize: <размер>;

Сравнить размер полезной нагрузки с заданным. Возможно  указание   диапазонов  значений  с  ис- пользованием знаков >, < и <>. Например: >128,

300<>500 (от 300 до 500).

flags: [!|*|+]<флаги>

Проверить,  установлены  ли  указанные  флаги  в принятом TCP-пакете.  Флаги записываются под- ряд без пробелов и обозначаются следующим об- разом:

F — FIN (LSB в байте флагов)

S — SYN R — RST P — PSH A — ACK U — URG

1 — Резерв 1 (MSB в байте флагов)

2 — Резерв 2

0 — флаги не установлены

Могут  быть  дополнительно  использованы  сле-

дующие модификаторы:

! — указанные флаги не установлены

* — установлен хотя бы один из указанных

+ — установлены указанные и любые другие

itype: <тип>;

Сравнить тип ICMP сообщения с указанным. Воз- можно указание диапазонов значений с использо- ванием знаков >, < и <> (см. выше).

icode: <код>;

Сравнить код ICMP сообщения с указанным.

Вместо IP-адресов могут использоваться переменные, заданные выше по тексту следующим образом:

var <имя_переменной> <значение_переменной>

Чтобы сослаться на переменную далее в тексте, перед ее именем следу-

ет поставить знак доллара $.

В текст файла правил можно включать комментарии, которые отделя-

ются знаком #. Вся информация справа от этого знака и до конца строки счи-

тается комментарием и не интерпретируется системой:

#<комментарий>

Рассмотрим пример  задания  двух  переменных последующего их  ис-

пользования в правиле, фильтрующем входящие ICMP-пакеты ECHO (тип 8):

# Глобальные  переменные

var HOME_NET 192.168.247.1 var EXTERNAL_NET !$HOME_NET

# Обнаружение  эхо-запросов  (ping’ов)

alert icmp $EXTERNAL_NET any -> $HOME_NET any

(msg:"Incoming ECHO REQUEST"; itype: 8;)

Источник: Андрончик А. Н., Богданов В. В., Домуховский Н. А., Коллеров А. С., Синадский Н. И., Хорьков Д. А., Щербаков М. Ю., Защита информации в компьютерных сетях. Практический курс

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий