Компания Cisco финалната бета версия на напълно преработената система за предотвратяване на атаки , известен също като проект Snort++, работата по който се провежда с прекъсвания от 2005 година. По-късно тази година е планирано публикуване на кандидат за версии.
В новия клон концепцията на продукта е напълно преосмислена и архитектурата е преработена. От направлението, на което е обърнато внимание при подготовката на новия клон, се акцентира на опростяване на настройките и стартирането на Snort, автоматизация на конфигурирането, опростяване на езика за изграждане на правила, автоматично определяне на всички протоколи, предоставяне на интерфейс за управление от командния ред, активно прилагане на многопоточност с споделен достъп на различни обработващи единици до единна конфигурация.
Реализирани са следните значителни нововъведения:
- Преходът към нова конфигурационна система, предлагаща опростен синтаксис и позволяваща използването на скриптове за динамично формиране на настройки. За обработка на конфигурационни файлове се използва LuaJIT. Предоставят се плъгини на базата на LuaJIT с реализация на допълнителни опции за правила и система за водене на логове;
- Модернизирана е системата за определяне на атаки, актуализирани са правилата, добавена е възможността за привързване на буфери в правилата (sticky buffers). Използван е търсещият механизъм Hyperscan, което позволява бързо и по-точно сработване на шаблони, базирани на регулярни изрази;
- Добавен е нов режим на интроспекция за HTTP, който взема предвид състоянието на сесията и обхваща 99% от ситуацията, подкрепена от тестовия набор . В разработка е код за поддръжка на 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
