Инструментальные средства обеспечения безопасности

Синтаксис правил инструмента snort


Детали, касающиеся синтаксиса правил инструмента Snort можно найти на сайте http://www.snort.org/. Мы дадим краткое резюме того, как пишутся эти правила.

Основные правила Snort состоят из двух частей: заголовка и опций. Первая часть заголовка сообщает инструменту Snort, какого типа правило последует (предупреждение, регистрация, пропуск). Остальная часть заголовка указывает протокол (ip, udp, icmp или tcp), оператор направления (или - >, чтобы определить направление от отправителя к получателю или < >, чтобы определить двунаправленность), а также IP-адрес и порт отправителя и получателя. IP-адрес отправителя и получателя можно написать, используя синтаксис aaa.bbb.ccc.ddd/yy, где yy - число сетевых байтов (то есть маска сети). Это позволяет вам указать как сети, так и отдельные хосты. Несколько адресов можно указать, помещая их в скобках и отделяя запятыми подобно примеру. [192.168.1.0/24,192.168.2.4,192.168.2.10]. Диапазоны портов могут быть указаны с помощью двоеточия (так, что :1024 означает все порты вплоть до 1024, 1024: означает 1024 и выше, а 1024:6000 означа ет порты от 1024 до 6000). Вы также можете использовать ключевое слово any, чтобы указать все IP-адреса и порты. Можно использовать восклицательный знак (!) для отрицания IP-адреса или порта (например, запись 1:1024 и !1025: эквивалентны).

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

Ниже приводится пример правил для инструмента Snort, которые обнаруживают тех, кто пытается получить доступ к cmd.exe через IIS Web-сервер.

alert tcp $EXTERNAL_NET any - $HTTP_SERVERS 80 (msg:"WEB-IIS cmd.exe access"; flags: A+; content:"cmd.exe"; nocase; classtype:web-application-attack; sid:1002; rev:2;)

alert tcp $EXTERNAL_NET any - $HTTP_SERVERS 80 (msg:"WEB-IIS cmd? access"; flags: A+; content:".cmd?&"; nocase; classtype:web-application-attack; sid:1003; rev:2;)"


Заданный по умолчанию набор правил для Snort состоит из единственного файла, называемого snort.conf и нескольких файлов с расширением .rules. Файл snort.conf является главным файлом правил, но он включает другие файлы правил, используя инструкцию include. Это позволяет вам разбивать правила на логические разделы. Файл snort.conf позволяет вам также определять переменные, которые могут использоваться во всех ваших правилах. Это сделано с помощью команды var.
В предыдущем примере, мы определили переменную с именем DNS_SERVERS. Файл snort.conf позволяет вам определять несколько переменных такого рода, и вы можете указать в своих правилах, какие машины являются Web-серверами, какие - почтовыми серверами, SQL-серверами, DNS-серверами и так далее. Это поможет инструменту Snort применять правила соответствия более рационально и эффективно. Например, нет никакого смысла в применении правил, написанных для обнаружения программных средств Web-сервера (то есть использования этих средств с целью взлома), применительно к трафику, поступающему с машины, на которой отсутствует Web-сервер.
Другое специальное правило инструмента Snort - правило конфигурации (config rule), которое позволяет вам указать некоторые из опций конфигурации, которые вы обычно помешаете в командную строку, в файле snort.conf.
Вы можете выполнить много других задач, используя правила инструмента Snort в современных версиях. Snort позволяет вам определять свои собственные типы правил, позволяющих регистрировать данные в разных местах, используя различные методы с помощью модулей вывода, которые мы обсудим позже, в разделе "Модули вывода".
Недавно в Snort добавили также поддержку динамических правил, которые являются "активизируются" другими правилами инструмента Snort. Фактический метод, в котором это сделано, находится в центре реконструкции предпринятой разработчиками Snort, но концепция осталась той же самой. Правило, имеющее "активизирующий" тип, включит "динамическое" правило, которое с ним связано.Это чрезвычайно полезно. До появления этих типов правил, бывало, что если кто-то успешно применил программу взлома (exploit) к одной из ваших систем, то Snort мог зарегистрировать этот факт, потому что пакет программы взлома соответствовал правилу. Но чтобы ни делал хакер после успешного применения программы взлома, никогда не регистрировалось, потому что оно не соответствовало никаким правилам. Если же мы используем активизирующий тип правила для обнаружения этой программы взлома, то оно может связаться с динамическим правилом, которое за тем перехватит следующие 500 пакетов хакера, которые позволят понять то, что он делал после успешного взлома.
Правила являются душой и сердцем инструмента Snort. Если вы овладеете этими правилами, то можете точно отрегулировать Snort, превращая его в чрезвычайно мощное оружие против потенциальных взломщиков.

Содержание раздела