- •1. Короткий огляд Snort 3
- •2. Настройка Snort 10
- •2.4.2. Приклади 44
- •3. Правила Snort 53
- •4. Отримання Snort 83
- •5. Встановлення Snort 85
- •1. Короткий огляд Snort
- •1.1. Загальні відомості
- •1.3. Режим реєстрації пакетів
- •1.2. Режим перегляду
- •1.4. Режим виявлення вторгнень в мережі
- •1.4.1. Елементи настройок виводу в режимі nids
- •1.4.2. Настройка високої продуктивності
- •1.4.3 Зміна порядку попереджень
- •1.5. Інші можливості
- •1.6. Додаткова інформація
- •2. Настройка Snort
- •2.1.1 Вмикачі
- •2.1.3. Конфігурування
- •2.2. Препроцесори
- •2.2.1. Детектор роrtscan
- •2.3.1. Автономні настройки
- •2.3.2 Автономний формат
- •2.3.3 Формат ключового слова правила
- •Формат ключового слова правила
- •2.3.4. Приклади
- •2.4. Заборона події
- •2.4.1 Формат
- •2.4.2. Приклади
- •2.5. Модулі виводу
- •2.5.6 База даних
- •3. Правила Snort з.1. Основи
- •3.2. Створення правила Snort
- •3.3. Параметри правил Snort
- •3.4. Створення нового правила
- •4. Отримання Snort
- •5. Встановлення Snort
2.5.6 База даних
Цей модуль створив Jed Pickel. Плагін відправляє дані Snort в різноманітні бази даних “sql”. Більше інформації щодо установки і конфігурації цього модуля можна знайти на [91] web сторінці “incident.org”. Аргументами цього плагіна є: ім'я бази даних для реєстрації і список параметрів. Параметри встановлюються подібно: параметр = аргумент. В прикладі 2.13 показано використання параметрів.
Формат
database: <log | alert> <вид бази даних> <список параметрів>
Доступні наступні параметри:
Host: хост до якого підключаються. Якщо визначена не нульова довжина рядка, то використовується tcp/ip зв'язок. Без імені хосту він з'єднається, використовуючи локальний сокет домена “unix”.
Port: номер порту, до якого підключається хост сервера, або розширення імені файлу сокета для з'єднань unix-домена.
Dbname: ім'я бази даних
User: ім'я користувача бази даних для ідентифікації
Password: використовування пароля, якщо бази даних вимагають ідентифікацію пароля
sensor_name: визначає власне ім'я для цього датчика Snort. Якщо ім'я не визначено, воно генеруватиметься автоматично
encoding: оскільки корисне навантаження пакету і дані настройок в двійковому форматі, немає простого і переносного способу для їх зберігання в базі даних. “Blobs” не використовуються, тому що вони не переносяться через базу даних. Для цього існує опція кодування. Кожна настройка має власні переваги і недоліки:
hex (значення за умовчанням): зобразить двійкові дані як шістнадцятеричний рядок.
storage requirements: подвоює двійковий розмір
searchability: дуже корисний елемент
human readability: не зручно для читання, вимагає постобробку
base64: представляє двійкові дані як “base64” потік.
storage requirements: збільшує на 1.3x двійковий розмір
searchability: неможливий без постобробоки
human readability: не зручно для читання і вимагає постобробоку
ascii: представляє двійкові дані як “ascii” потік. Це єдина настройка, з якою дійсно відбувається втрата даних. Дані “ascii” представляються, як “.”. Якщо ця опція вибрана, тоді дані для “ip і “tcp” опцій” все ще представлятимуться в шістнадцятеричному вигляді, тому що немає значення представляти їх в “ascii”.
storage requirements: злегка більш ніж двійковий, тому що деякі символи уникають (&,<,>)
searchability: дуже зручно для пошуку неможливого текстового рядка, якщо потрібно шукати двійкові
human readability: дуже корисна опція
detail: об'єм докладних даних які слід зберігати. Настроювальними елементами є:
full (значення за умовчанням): реєструє всі деталі пакету який викликав попередження (включаючи ip/tcp опції і корисне навантаження)
fast: реєструє тільки мінімальну кількість даних. Ця опція строго обмежує потенціал деяких додатків аналізу, але це все ще кращий вибір для деяких додатків. Зареєстровані наступні поля: відмітка часу, підпис, початковий ip, ip місця призначення, початковий порт, порт місця призначення, tcp прапори і протокол.
До того ж слід визначити метод реєстрації і тип бази даних. Існують два типи реєстрації: реєстрація і попередження. Установка типу реєстрації підключає реєструючу функціональність бази даних до засобу реєстрації в межах програми. Якщо встановлений тип реєстрації, плагін буде викликаний на вихідний послідовності реєстрації. Установка типу попередження підключає плагін до вихідної послідовності попереджень в межах програми.
Є два типи баз даних, доступних в поточній версії плагіна. Це “mssql”, “mysql”, “роst-gresql”, “oracle” і “odbc”. Слід встановити тип для відповідності базі даних, яку використовують.
ПРИМІТКА Плагін виводу бази даних не має здатність обробляти попередження, які генеруються за допомогою використання ключового слова-ознаки. Дивитися секцію 3.7.5 для більш детальної інформації. |
output database: log, mysql, dbname=snort user=snort host=localhost password=xyz
Приклад 2.13: Конфігурація вихідного плагіна бази даних
2.5.7. csv
Плагін виводу “csv” дозволяє записувати застережливі дані у форматі, що легко імпортується в базу даних. Плагін вимагає 2 аргументи: повне ім'я і шлях до файлу, опцію вихідного форматування.
Список опцій форматування знаходиться нижче. Якщо опція форматування встановлена за умовчанням, то висновок здійснюється в порядку, в якому вказані опції форматування.
• timestamp
• sig_generator
• sig_id
• sig_rev
• msg
• proto
• src
• srcport
• dst
• dstport
• ethsrc
• ethdst
• ethlen
• tcpflags
• tcpseq
• tcpack
• tcplen
• tcpwindow
• ttl
• tos
• id
• dgmlen
• iplen
• icmptype
• icmpcode
• icmpid
• icmpseq
Формат
output alert_csv: <і’мя файла> <формат>
output alert_csv: C:\snort\var\log\alert.csv default
output alert_csv: C:\snort\log\alert.csv timestamp, msg
Приклад 2.14: Конфігурація вихідної Csv
2.5.8 Unified
Вихідний плагін “Unified” є найшвидшим методом реєстрації подій Snort. Цей плагін реєструє події в двійковому форматі, дозволяючи іншим програмам оперувати складним механізмом реєстрації, інакше цей механізм зменшує продуктивність Snort.
Ім'я “об'єднувати” є неправильним вживанням терміну, оскільки плагін виводу “unified” створює два різні файли: файл попереджень і файл реєстрації. Файл попередження містить високорівневі деталі події (eg: ips, протокол, порт, id повідомлення). Файл реєстрації містить детальну інформацію пакету (виведення пакету із зв'язаним id події). Обидва типи файлів записуються в двійковому форматі, описаному в “spo_unified.h”.
ПРИМІТКА Файли мають час створення файлу (у форматі епохи Unix), додані до кожного файлу під час створення. |
формат
output alert_unified: <і’мя базового файла> [ <limit <ліміт розміру файлу в Mб>]
output log_unified: <і’мя базового файла> [ <limit <ліміт розміру файлу в Mб>]
output alert_unified: snort.alert, limit 128
output log_unified: snort.log, limit 128
Приклад 2.15: Конфігурація об'єднання
2.5.9. Log null
Іноді корисно створювати правила, які попереджатимуть про певні види трафіку і в той же час не викликатимуть дані реєстрації пакету. В Snort 1.8.2 був введений “log_null” плагін. Він рівноцінний використанню опції “–n” командного рядка, але також здатний працювати в межах типу правила.
Формат
output log_null
output log_null # подібно використанню snort -n
ruletype info {
type alert
output alert_fast: info.alert
output log_null
}
Приклад 2.16: Використання недійсної реєстрації
