Опции правил
Опции правил являются важнейшей частью работы Snort. Для разделения опций в правилах Snort используется точка с запятой (;). Ключевые слова опций отличаются от аргументов двоеточием (:).
Существует 4 основных категории опций правил. meta-data информация о правиле, не оказывающая влияния на детектирование пакетов и выполняемые по отношению к ним операции; payload опция просмотра поля данных пакета (packet payload) non-payload опция просмотра служебных полей пакета; post-detection опция, указывающая, что нужно сделать после выполнения заданных для правила условий.
Опции Meta-Data
msg
Опция msg говорит машине записи в журнальный файл и генерации сигналов о необходимости включения текстового сообщения в запись журнального файла или дампа пакета. Эта опция представляет собой просто текстовую строку с использованием в качестве escape-символа для задания символов, имеющих специальное значение в правилах Snort (например, символ ;).
Формат
msg: "<текст сообщения>";
Таблица 1
Система
|
Ссылка
|
bugtraq
|
http://www.securityfocus.com/bid/
|
cve
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=
|
nessus
|
http://cgi.nessus.org/plugins/dump.php3?id=
|
arachnids
|
http://www.whitehats.com/info/IDS
|
mcafee
|
http://vil.nai.com/vil/dispVirus.asp?virus_k=
|
url
|
http://
|
reference
Ключевое слово reference позволяет включать в правила ссылки на внешние системы идентификации атак. Подключаемый модуль в настоящее время поддерживает несколько таких систем, а также уникальные URL (см таблицу 1). Этот модуль может использоваться подключаемыми модулями вывода (output plugin) для предоставления дополнительной информации в генерируемых сигналах.
Не забывайте также систему индексации описаний сигналов на основе sid, на сайте http://www.snort.org/snort-db/ (см. ниже).
Format
reference: ,; [reference: ,;]
Ниже приведен пример правил с использованием ссылок
alert tcp any any -> any 7070 (msg:”IDS411/dos-realaudio”;
flags: AP; content:”|fff4 fffd 06|”; reference:arachnids,IDS411;)
alert tcp any any -> any 21 (msg:”IDS287/ftp-wuftp260-venglin-linux”;
flags: AP; content:”|31c031db 31c9b046 cd80 31c031db|”;
reference:arachnids,IDS287; reference:bugtrack,1387;
reference:cve,CAN-2000-1574;)
sid
Ключевое слово sid предназначено для идентификации правил Snort. Значения идентификаторов используются подключаемыми модулям вывода. Опцию следует использовать вместе с ключевым словом rev (см. ниже). В правилах глобального значения, распространяемых с программой Snort, используются значения sid в диапазоне от 100 до 1000000. Значения меньше 100 зарезервированы, а значения превышающие 1 000 000, предназначены для локального использования (идентификации ваших собственных правил).
Файл sid-msg.map содержит список сигналов для различных значений sid, используемых правилами Snort. Эта информация может быть полезна при последующей обработке сигналов, поскольку позволяет получить текст сообщения по его идентификатору.
Формат
sid: <идентификатор правила>;
Ниже приведен пример правила с идентификатором 1000983.
alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
rev
Ключевое слово sid служит для идентификации правил Snort, а используемое вместе с ним ключевое слово rev позволяет указать номер ревизии (версии) правила с данным идентификатором. Эту опцию следует использовать совместно с ключевым словом sid (см. выше).
Формат
rev:
Ниже приведен пример правила с идентификатором 1000983 ревизии 1.
alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
classtype
Ключевое слово classtype указывает категорию сигнала в соответствии с классом атаки по частоте использования и важности. Пользователь может самостоятельно задать уровень приоритета для каждого типа правил.
Формат
classtype: <имя класса>;
Классификация правил определена в файле classification.config с использованием простого синтаксиса:
config classification: <имя класса>,<описание класса>,<приоритет по умолчанию>
Стандартная классификация правил Snort показана в таблице 2.
Таблица 2: Классификация правил Snort
Тип (Classtype)
|
Описание
|
Приоритет
|
attempted-admin
|
Попытка получения привилегий администратора
|
Высокий
|
attempted-user
|
Попытка получения привилегий пользователя
|
Высокий
|
shellcode-detect
|
Обнаружен исполняемый код
|
Высокий
|
successful-admin
|
Получены права администратора
|
Высокий
|
successful-user
|
Получены права пользователя
|
Высокий
|
trojan-activity
|
Обнаружена сетевая троянская программа
|
Высокий
|
unsuccessful-user
|
Неудачная попытка получения привилегий пользователя
|
Высокий
|
web-application-attack
|
Атака на Web-приложение
|
Высокий
|
attempted-dos
|
Предпринята атака на службы (DoS)
|
Средний
|
attempted-recon
|
Попытка несанкционированной передачи информации (утечка)
|
Средний
|
bad-unknown
|
Непонятный трафик, который может оказаться опасным
|
Средний
|
denial-of-service
|
Обнаружена атака на службы (DoS)
|
Средний
|
misc-attack
|
Прочие атаки
|
Средний
|
non-standard-protocol
|
Зафиксировано использование нестандартного протокола
|
Средний
|
rpc-portmap-decode
|
Обнаружен запрос RPC1
|
Средний
|
successful-dos
|
Успешная атака на службы (DoS)
|
Средний
|
successful-recon-largescale
|
Крупномасштабная утечка информации
|
Средний
|
successful-recon-limited
|
Утечка информации
|
Средний
|
suspicious-filename-detect
|
Обнаружено подозрительное имя файла
|
Средний
|
suspicious-login
|
Попытка входа в систему с использованием подозрительного имени
|
Средний
|
system-call-detect
|
Обнаружен вызов системной функции
|
Средний
|
unusual-client-port-connection
|
Клиент использует необычный порт
|
Средний
|
web-application-activity
|
Доступ к потенциально опасному web-приложению
|
Средний
|
icmp-event
|
Обычный пакет ICMP
|
Низкий
|
misc-activity
|
Прочие действия
|
Низкий
|
network-scan
|
Обнаружено сканирование сети
|
Низкий
|
not-suspicious
|
Трафик не является подозрительным
|
Низкий
|
protocol-command-decode
|
Обнаружена обычная команда протокола
|
Низкий
|
string-detect
|
Обнаружена подозрительная строка
|
Низкий
|
unknown
|
Непонятный трафик
|
Низкий
|
Ниже показан пример использования классификации.
alert tcp any any -> any 80 (msg: ”EXPLOIT ntpdx overflow”;
dsize: >128; classtype:attempted-admin; proirity:10;)
alert tcp any any -> any 25 (msg:”SMTP expn root”; flags:A+;
content:”expn root”; nocase; classtype:attempted-recon;);
Предупреждение
classtype использует классификации, определенные конфигурационной опцией classification. Классификации, используемые для правил из дистрибутива Snort, определены в файле etc/classification.config
priority
Тег priority использует для присваивания правилам уровня приоритета. Опция classtype присваивает правилу принятый по умолчанию уровень приоритета, который можно изменить с помощью priority. Пример совместного использования опций classtype и priority был приведен в описании опции classtype, а пример независимого задания приоритета показан ниже.
alert tcp any any -> any 80 (msg: ”WEB-MISC phf attempt”; flags:A+;
content: “/cgi-bin/phf”; priority:10;)
Формат
priority: <целое число>;
Примечание:
|