Фінальний бета-випуск системи виявлення атак Snort 3

Компанія Cisco представила фінальну бета-версію повністю переробленої системи запобігання атакам Хроп 3, також відома як проект Snort++, робота над яким з перервами ведеться ще з 2005 року. Пізніше цього року планується опублікувати кандидат у релізи.

У новій гілці повністю переосмислено концепцію продукту та перероблено архітектуру. З напрямків, на які був зроблений акцент при підготовці нової гілки, відзначається спрощення налаштування та запуску Snort, автоматизація конфігурування, спрощення мови побудови правил, автоматичне визначення всіх протоколів, надання оболонки для управління з командного рядка, активне застосування багатопоточності зі спільним доступом різних обробників до єдиної конфігурації.

Реалізовано такі значні нововведення:

  • Здійснено перехід на нову систему конфігурації, що пропонує спрощений синтаксис та дозволяє використовувати скрипти для динамічного формування налаштувань. Для обробки конфігураційних файлів використовується LuaJIT. Надаються плагіни на базі LuaJIT з реалізацією додаткових опцій для правил та системи ведення логів;
  • Модернізовано двигун визначення атак, актуалізовано правила, додано можливість прив'язки буферів до правил (sticky buffers). Задіяний пошуковий движок Hyperscan, що дозволив використовувати в правилах швидкі та більш спрацьовують шаблони на основі регулярних виразів;
  • Додано новий режим інтроспекції для HTTP, що враховує стан сеансу та охоплює 99% ситуацій, що підтримуються тестовим набором HTTP Evader. У розробці знаходиться код підтримки HTTP/2;
  • Істотно збільшено продуктивність режиму глибокого інспектування пакетів. Додано можливість багатопотокової обробки пакетів, що допускає одночасне виконання кількох ниток з оброблювачами пакетів і забезпечує лінійну масштабованість залежно від кількості ядер CPU;
  • Реалізовано загальне сховище конфігурації та таблиці атрибутів, що спільно використовується у різних підсистемах, що дозволило помітно знизити споживання пам'яті завдяки виключенню дублювання інформації;
  • Нова система журналу подій, що використовує формат JSON і легко інтегрована із зовнішніми платформами, такими як Elastic Stack;
  • Перехід на модульну архітектуру, можливість розширення функціональності через підключення плагінів та реалізація ключових підсистем у вигляді плагінів, що замінюються. В даний час для Snort 3 вже реалізовано кілька сотень плагінів, що охоплюють різні сфери застосування, наприклад, що дозволяють додати власні кодеки, режими інтроспекції, методи журналування, дії та опції у правилах;
  • Автоматичне визначення працюючих служб, що позбавляє необхідності ручної вказівки активних мережевих портів.

Зміни порівняно з минулим тестовим випуском, опублікованим у 2018 році:

  • Додана підтримка файлів для швидкого перевизначення налаштувань щодо конфігурації за замовчуванням;
  • У коді забезпечено можливість використання конструкцій C++, визначених у стандарті C++14 (для збирання потрібен компілятор, що підтримує C++14);
  • Доданий новий обробник VXLAN;
  • Поліпшено пошук типів контенту за вмістом з використанням оновлених альтернативних реалізацій алгоритмів Бойєра-Мура и Гіперсканування;
  • Практично доведено до повної готовності систему інспектування трафіку HTTP/2;
  • Прискорено запуск рахунок використання кількох потоків для компіляції груп правил;
  • Додано новий механізм ведення логів;
  • Поліпшено визначення помилок Lua та оптимізовано роботу білих списків;
  • Внесено зміни, що дозволяють реалізувати перезавантаження налаштувань на льоту;
  • Додано систему інспектування RNA (Real-time Network Awareness), що збирає відомості про доступні в мережі ресурси, хости, додатки та сервіси;
  • Для спрощення налаштування припинено використання snort_config.lua та SNORT_LUA_PATH.

Джерело: opennet.ru

Додати коментар або відгук