После года разработки организация OISF (Open Information Security Foundation) опубликовала релиз системы обнаружения и предотвращения сетевых вторжений Suricata 6.0, которая предоставляет средства инспектирования различных видов трафика. В конфигурациях Suricata допустимо задействование базы сигнатур, развиваемой проектом Snort, а также наборов правил Emerging Threats и Emerging Threats Pro. Исходные тексты проекта распространяются под лицензией GPLv2.
Основные изменения:
Начальная поддержка HTTP/2.
Поддержка протоколов RFB и MQTT, включая возможность определения протокола и ведения лога.
Возможность ведения лога для протокола DCERPC.
Значительное повышение производительности ведения лога через подсистему EVE, обеспечивающую вывод событий в формате JSON. Ускорение достигнуто благодаря задействованию нового построитель сток JSON, написанного на языке Rust.
Повышена масштабируемость системы логов EVE и реализована возможность ведения отельного лог-файла на каждый поток.
Возможность определения условий для сброса сведений в лог.
Возможность отражения MAC-адресов в логе EVE и повышение детализации лога DNS.
Повышение производительности движка обработки потоков (flow engine).
На языке Rust переписан код для обработки ASN.1, DCERPC и SSH. На Rust также реализована поддержка новых протоколов.
В языке определения правил в ключевом слове byte_jump добавлена поддержка параметра from_end, а в byte_test — параметра bitmask. Реализовано ключевое слово pcrexform, позволяющее использовать регулярные выражения (pcre) для захвата подстроки. Добавлено преобразование urldecode. Добавлено ключевое слово byte_math.
Предоставления возможность использования cbindgen для генерации привязок на языках Rust и C.
Добавлена начальная поддержка плагинов.
Особенности Suricata:
Использование для вывода результатов проверки унифицированного формата Unified2, также используемого проектом Snort, что позволяет использовать стандартные инструменты для анализа, такие как barnyard2. Возможность интеграции с продуктами BASE, Snorby, Sguil и SQueRT. Поддержка вывода в формате PCAP;
Поддержка автоматического определения протоколов (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB и т.п.), позволяющая оперировать в правилах только типом протокола, без привязки к номеру порта (например, блокировать HTTP трафик на нестандартном порту). Наличие декодировщиков для протоколов HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP и SSH;
Мощная система анализа HTTP-трафика, использующая для разбора и нормализации HTTP-трафика специальную библиотеку HTP, созданную автором проекта Mod_Security. Доступен модуль для ведения подробного лога транзитных HTTP пересылок, лог сохраняется в стандартном формате
Apache. Поддерживается извлечение и проверка передаваемых по протоколу HTTP файлов. Поддержка разбора сжатого контента. Возможность идентификации по URI, Cookie, заголовкам, user-agent, телу запроса/ответа;
Поддержка различных интерфейсов для перехвата трафика, в том числе NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Возможен анализ уже сохранённых файлов в формате PCAP;
Высокая производительность, способность обрабатывать на обычном оборудовании потоки до 10 гигабит/cек.
Высокопроизводительный механизм сопоставления по маске с большими наборами IP адресов. Поддержка выделение контента по маске и регулярным выражениям. Выделение файлов из трафика, в том числе их идентификация по имени, типу или контрольной сумме MD5.
Возможность использования переменных в правилах: можно сохранить информацию из потока и позднее использовать ее в других правилах;
Использование формата YAML в файлах конфигурации, что позволяет сохранить наглядность при легкости машинной обработки;
Полная поддержка IPv6;
Встроенный движок для автоматической дефрагментации и пересборки пакетов, позволяющий обеспечить корректную обработку потоков, независимо от порядка поступления пакетов;
Поддержка протоколов туннелирования: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
Режим ведения лога ключей и сертификатов, фигурирующих в рамках соединений TLS/SSL;
Возможность написания скриптов на языке Lua для обеспечения расширенного анализа и реализации дополнительных возможностей, необходимых для определения видов трафика, для которых не достаточно стандартных правил.