Компанія Cisco про формування кандидата в релізи повністю переробленої системи запобігання атакам , також відома як проект Snort++, робота над яким з перервами ведеться ще з 2005 року. Стабільний реліз планується опублікувати упродовж місяця.
У гілці Snort 3 повністю переосмислено концепцію продукту та перероблено архітектуру. Серед ключових напрямів розвитку Snort 3: спрощення налаштування та запуску Snort, автоматизація конфігурування, спрощення мови побудови правил, автоматичне визначення всіх протоколів, надання оболонки для управління з командного рядка, активне застосування багатопоточності із спільним доступом різних обробників до єдиної конфігурації.
Реалізовано такі значні нововведення:
- Здійснено перехід на нову систему конфігурації, що пропонує спрощений синтаксис та дозволяє використовувати скрипти для динамічного формування налаштувань. Для обробки конфігураційних файлів використовується LuaJIT. Надаються плагіни на базі LuaJIT з реалізацією додаткових опцій для правил та системи ведення логів;
- Модернізовано двигун визначення атак, актуалізовано правила, додано можливість прив'язки буферів до правил (sticky buffers). Задіяний пошуковий движок Hyperscan, що дозволив використовувати в правилах швидкі та більш спрацьовують шаблони на основі регулярних виразів;
- Додано новий режим інтроспекції для HTTP, що враховує стан сеансу та охоплює 99% ситуацій, що підтримуються тестовим набором . Додано систему інспектування трафіку HTTP/2;
- Істотно збільшено продуктивність режиму глибокого інспектування пакетів. Додано можливість багатопотокової обробки пакетів, що допускає одночасне виконання кількох ниток з оброблювачами пакетів і забезпечує лінійну масштабованість залежно від кількості ядер CPU;
- Реалізовано загальне сховище конфігурації та таблиці атрибутів, що спільно використовується у різних підсистемах, що дозволило помітно знизити споживання пам'яті завдяки виключенню дублювання інформації;
- Нова система журналу подій, що використовує формат JSON і легко інтегрована із зовнішніми платформами, такими як Elastic Stack;
- Перехід на модульну архітектуру, можливість розширення функціональності через підключення плагінів та реалізація ключових підсистем у вигляді плагінів, що замінюються. В даний час для Snort 3 вже реалізовано кілька сотень плагінів, що охоплюють різні сфери застосування, наприклад, що дозволяють додати власні кодеки, режими інтроспекції, методи журналування, дії та опції у правилах;
- Автоматичне визначення працюючих служб, що позбавляє необхідності ручної вказівки активних мережевих портів.
- Додана підтримка файлів для швидкого перевизначення налаштувань щодо конфігурації за замовчуванням. Для спрощення налаштування припинено використання snort_config.lua та SNORT_LUA_PATH.
Додано підтримку перезавантаження налаштувань на льоту; - У коді забезпечено можливість використання конструкцій C++, визначених у стандарті C++14 (для збирання потрібен компілятор, що підтримує C++14);
- Доданий новий обробник VXLAN;
- Поліпшено пошук типів контенту за вмістом з використанням оновлених альтернативних реалізацій алгоритмів и ;
- Прискорено запуск рахунок використання кількох потоків для компіляції груп правил;
- Додано новий механізм ведення логів;
- Додано систему інспектування RNA (Real-time Network Awareness), що збирає відомості про доступні в мережі ресурси, хости, додатки та сервіси.
Джерело: opennet.ru
