Синтаксис. classtype:
alert tcp any any -> any 25 (msg: "SMTP expn root"; flags: A +; content: "expn root"; nocase; classtype: attempted-recon;)
Опція classtype може мати тільки ті значення для класифікації, які визначені в snort.conf за допомогою config classification. Snort надає стандартний набір класифікації в файлі classification.config. який використовується в поставляються наборах правил.
Задає правилам рівень важливості. Можливо використовувати параметр priority разом з classtype, при цьому зміниться рівень пріоритету параметра classtype.
Синтаксис. priority:
alert tcp any any -> any 80 (msg: "WEB-MISC phf attempt"; flags: A +; content: "/ cgi-bin / phf"; priority: 10;)
alert tcp any any -> any 80 (msg: "EXPLOIT ntpdx overflow"; dsize:> 128; classtype: attempted-admin; priority: 10;)
Відмінні від зазначених в таблиці ключі Snort фактично ігнорує, тому вони можуть бути записані у вільній формі в форматі "ключ-значення". Кілька ключів поспіль розділяються комами, а ключі і значення відокремлюються між собою пропуском.
metadata: key1 value1; metadata: key1 value1, key2 value2;
alert tcp any any -> any 80 (msg: "Shared Library Rule Example"; metadata: engine shared; metadata: soid 3 | 12345;)
alert tcp any any -> any 80 (msg: "Shared Library Rule Example"; metadata: engine shared, soid 3 | 12345;)
alert tcp any any -> any 80 (msg: "HTTP Service Rule Example"; metadata: service http;)
Ключове слово content має ряд модифікаторів, які змінюють поведінку раніше зазначеного content. Список модифікаторів:
alert tcp any any -> any 139 (content: "| 5c 00 | P | 00 | I | 00 | P | 00 | E | 00 5c |";)
alert tcp any any -> any 80 (content:! "GET";)
Необхідно екранувати наступні символи:
Має схожу функціональність з content. проте працює несклько іншим чином. Основна перевага ключового слова protected_content над content в тому, що воно дозволяє приховати цільової контент, розкриваючи тільки хеш-суму (дайджест) зазначеного контенту. Як і в разі content. основна мета - порівняти рядки певних байтів. Пошук здійснюється шляхом хешування частин вхідних повідомлень і порівняння отриманих результатів з наданої в умови хеш-сумою. Через що проробляється дуже великий обсяг обчислень.
На даний момент з ключовим словом protected_content можливе використання алгоритмів хешування MD5, SHA256, і SHA512. Алгоритм хешування повинен бути зазначений у правилі з використанням ключового слова hash. якщо він не заданий за замовчуванням в конфігурації Snort. Крім того, разом з protected_content обов'язково повинен бути вказаний модифікатор length. щоб вказати довжину вихідних даних.
Як і в разі content. в правилі можливе використання декількох умов protected_content. У правилі допускається спільне використання content і protected_content. Також в protected_content можна використовувати модифікатор заперечення "!".
Ключове слово protected_content має ті ж модифікатори, що і content. за винятком таких:
Синтаксис. protected_content: [!] "
Наступні правила спрацьовують на рядку "HTTP".
alert tcp any any <> any 80 (msg: "MD5 Alert"; protected_content: "293C9EA246FF9985DC6F62A650F78986"; hash: md5; offset: 0; length: 4;)
alert tcp any any <> any 80 (msg: "SHA256 Alert"; protected_content: "56D6F32151AD8474F40D7B939C2161EE2BBF10023F4AF1DBB3E13260EBDC6342"; hash: sha256; offset: 0; length: 4;)
Використовується для вказівки алгоритму хешування, який буде використовуватися при зіставленні зі зразком, заданим в умови protected_content. Якщо в конфігурації Snort не вказано алгоритм за замовчуванням, то необхідно вказати використовуваний алгоритм в правилі з protected_content. На даний момент підтримуються наступні алгоритми хешування: MD5, SHA256, і SHA512.
Використовується для завдання вихідної довжини контенту, для якого задана хеш-сума (дайджест) в protected_content. Вказане значення має бути в інтервалі від 0 до 65536.
alert tcp any any -> any 21 (msg: "FTP ROOT"; content: "USER root"; nocase;)
Ключове слово rawbytes є модифікатором для розташованого до нього ключового слова content. дозволяючи працювати з необробленими даними пакета, ігноруючи будь-декодування, вироблене за допомогою препроцесорів.
HTTP Inspect має набір ключових слів http_raw_cookie. http_raw_header. http_raw_uri і ін. для роботи з необробленими даними, які зіставляють певні частини HTTP запитів і відповідей. З даними ключовими словами використовувати rawbytes не потрібно, так як ці умови за замовчуванням працюють з необробленими даними.
Більшість інших препроцесорів за замовчуванням використовують декодувати / нормалізовані дані для зіставлення із зразком. Тому для зіставлення з довільними необробленими даними з пакета необхідно вказувати ключове слово rawbytes.
alert tcp any any -> any 21 (msg: "Telnet NOP"; content: "| FF F1 |"; rawbytes;)