Представлен релиз системы фильтрации спама Rspamd 3.0, предоставляющей средства для оценки сообщений по различным критериям, включая правила, статистические методы и чёрные списки, на основе которых формируется итоговый вес сообщения, используемый для принятия решения о необходимости блокировки. Rspamd поддерживает практически все возможности, реализованные в SpamAssassin, и имеет ряд особенностей, позволяющих фильтровать почту в среднем в 10 раз быстрее, чем SpamAssassin, а также обеспечивать лучшее качество фильтрации. Код системы написан на языке Си и распространяется под лицензией Apache 2.0.
Rspamd построен с использованием событийно-ориентированной архитектуры (Event-driven) и изначально рассчитан на применение в высоконагруженных системах, позволяя обрабатывать сотни сообщений в секунду. Правила для выявления признаков спама отличаются высокой гибкостью и в простейшем виде могут содержать регулярные выражения, а в более сложных ситуациях могут оформляться на языке Lua. Расширение функциональности и добавление новых типов проверок реализуется через модули, которые могут создаваться на языках Си и Lua. Например, доступны модули для проверки отправителя с использованием SPF, подтверждения домена отправителя через DKIM, формирования запросов в списки DNSBL. Для упрощения настройки, создания правил и отслеживания статистики предоставляется административный web-интерфейс.
Значительное увеличение номера версии связано с внесением существенных изменений во внутреннюю архитектуру, особенно в части, обеспечивающие разбор HTML, которые были полностью переписаны. Новый парсер разбирает HTML, используя модель DOM и формируя дерево тегов. В новом выпуске также предложен парсер CSS, который в сочетании с новым парсером HTML позволяет корректно извлекать данные из электронных писем с современной HTML-разметкой, в том числе различая видимое и невидимое содержимое. Примечательно, что код парсеров написан не на языке Си, а на C++17, что требует для сборки наличия компилятора с поддержкой данного стандарта.
Другие новшества:
- Добавлена поддержка API Amazon Web Services (AWS), которая предоставила возможность напрямую обращаться к облачным сервисам Amazon из Lua API. В качестве примера предложен плагин, сохраняющий все сообщения в хранилище Amazon S3
- Переработан код формирования отчётов, связанных с применением технологии DMARC. Функциональность по отправке отчётов вынесена в отдельную команду spamadm dmarc_report.
- Для списков рассылки добавлена поддержка “DMARC munging”, замены адреса From в сообщениях на адрес рассылки, если для сообщения заданы корректные правила DMARC.
- Добавлен плагин external_relay, решающий проблему с использованием в плагинах, таких как SPF, IP-адреса доверительного почтового релея, вместо адреса отправителя.
- Добавлена команда “rspamadm bayes_dump” для записи и загрузки баесовских токенов, что позволяет переносить их между разными экземплярами Rspamd.
- Добавлен плагин для поддержи системы совместного блокирования спама Pyzor.
- Переработаны инструменты мониторинга, которые теперь вызываются реже и создают меньшую нагрузку на внешние модули.