Доступна система фильтрации спама Rspamd 1.8

Состоялся релиз системы фильтрации спама Rspamd 1.8, предоставляющей средства для оценки сообщений по различным критериям, включая правила, статистические методы и чёрные списки, на основе которых формируется итоговый вес сообщения, используемый для принятия решения о необходимости блокировки. Rspamd поддерживает практически все возможности, реализованные в SpamAssassin, и имеет ряд особенностей, позволяющих фильтровать почту в среднем в 10 раз быстрее, чем SpamAssassin, а также обеспечивать лучшее качество фильтрации. Код системы написан на языке Си и распространяется под лицензией BSD.

Rspamd построен с использованием событийно-ориентированной архитектуры (Event-driven) и изначально рассчитан на применение в высоконагруженных системах, позволяя обрабатывать сотни сообщений в секунду. Правила для выявления признаков спама отличаются высокой гибкостью и в простейшем виде могут содержать регулярные выражения, а в более сложных ситуациях могут оформляться на языке Lua. Расширение функциональности и добавление новых типов проверок реализуется через модули, которые могут создаваться на языках Си и Lua. Например, доступны модули для проверки отправителя с использованием SPF, подтверждения домена отправителя через DKIM, формирования запросов в списки DNSBL. Для упрощения настройки, создания правил и отслеживания статистики предоставляется административный web-интерфейс.

Основные новшества:

  • Добавлен фреймворк для извлечения данных из сообщений и дальнейшего использования этих данных в плагинах (например, в multimap, reputation или ratelimits) или регулярных выражениях, обработав с привлечением функций преобразования строк. Например, можно извлечь адрес из поля From и преобразовать его в нижний регистр («smtp_from.lower») или извлечь тему письма, привести к нижнему регистру, вычислить хэш и выдать первые 16 символов результата («header ('Subject').lower.digest ('hex').substring (1, 16)»);
  • В конструкциях на языке Lua реализована возможность использования сопрограмм для запуска обработчиков в неблокирующем режиме. Например, можно отправить сетевой запрос к антивирусному сканеру и сразу продолжить выполнение не дожидаясь результата, а ответ обработать отдельным callback-обработчиком;
  • Оптимизирована отправка SQL-запросов к СУБД Clickhouse. Для того чтобы избежать медленных запросов с использованием слияний (JOIN) в Rspamd теперь используется одна общая таблица, вместо разбиение структуры БД на несколько таблиц. Преобразование схемы хранения выполняется автоматически, но старые данные не переносятся и не удаляются, а остаются в старых таблицах. В модуле Clickhouse также реализована опциональная возможность задания правил сохранения данных для соответствия принятым в Евросоюзе нормам GDPR;
  • Улучшена обработка Unicode. Нормализация всех unicode-данных теперь выполняется до их обработки, что позволяет исключить проведение атак через подстановку похожих по начертанию глифов;
  • Переработан код для автоматического определения языка, на котором написан текст в сообщении. Новый детектор использует стоп-слова и учитывает подстановку похожих unicode-глифов. Существенно возросла производительность детектора языка, в некоторых ситуациях скорость определения возросла до 10 раз;
  • Внесены улучшения в web-интерфейс. Решены проблемы, проявляющиеся при работе в кластерных конфигурациях и при агрегирования данных. Добавлен индикатор прогресса выполнения AJAX-операций. 0_1537864111.png

© OpenNet