Выпуск системы фильтрации спама Rspamd 1.5
1 марта 2017 года
Состоялся релиз системы фильтрации спама Rspamd 1.5, предоставляющей средства для оценки сообщений по различным критериям, включая правила, статистические методы и чёрные списки, на основе которых формируется итоговый вес сообщения, используемый для принятия решения о необходимости блокировки. Rspamd поддерживает практически все возможности, реализованные в SpamAssassin, и имеет ряд особенностей, позволяющих фильтровать почту в среднем в 10 раз быстрее, чем SpamAssassin, а также обеспечивать лучшее качество фильтрации. Код системы написан на языке Си и распространяется под лицензией BSD.
Rspamd построен с использованием событийно-ориентированной архитектуры (Event-driven) и изначально рассчитан на применение в высоконагруженных системах, позволяя обрабатывать сотни сообщений в секунду. Правила для выявления признаков спама отличаются высокой гибкостью и в простейшем виде могут содержать регулярные выражения, а в более сложных ситуациях могут оформляться на языке Lua. Расширение функциональности и добавление новых типов проверок реализуется через модули, которые могут создаваться на языках Си и Lua. Например, доступны модули для проверки отправителя с использованием SPF, подтверждения домена отправителя через DKIM, формирования запросов в списки DNSBL. Для упрощения настройки, создания правил и отслеживания статистики предоставляется административный web-интерфейс.
Основные новшества:
- Задействован новый MIME-парсер, заменивший собой ранее используемую библиотеку gmime. Основной причиной создания собственного MIME-парсера стала необходимость более полного контроля за разбором, для того чтобы обрабатывать специально задаваемые спамерами некорректные MIME-конструкции. Например, новый парсер позволил наладить обработку дублирующихся заголовков Content-Type, некорректного оформления структур multipart, неверного кодирования имён файлов, несоответствия заголовка Content-Transfer-Encoding и фактического метода кодирования, манипуляций с переводом строки в заголовках или пустым телом сообщения;
- Для перевода из одной кодировки символов в другую вместо libiconv задействована библиотека libicu, которая примерно в два раза быстрее и поддерживает такие возможности как автоматическое определение кодировки и выявление наличия подмены символов на похожие по начертанию;
- Переработан Web-интерфейс, который разбит на модули, что позволяет добавлять новые возможности не трогая остальной код. В web-интерфейсе также появилась возможность агрегирования статистики от разных серверов с Rspamd и улучшены графики оценки пропускной способности;
- Модуль rspamd_tcp (Архивная копия от 28 марта 2017 на Wayback Machine) для создания произвольных TCP-клиентов на языке Lua, переработан для поддержки сложных протоколов, поддерживающих цепочку интерактивных команд и учитывающих состояние соединения. Например, теперь возможно определить отдельную логику реагирования на передачу различных команд внутри сеансов SMTP или IMAP;
- Представлен новый легковесный модуль url_redirector, предназначенный для раскрытия перенаправления URL через сервисы коротких ссылок. Модуль написан на языке Lua, использует Redis для кэширования уже раскрытых ссылок и может расставлять теги для других модулей;
- Добавлен модуль Rmilter headers (Архивная копия от 28 марта 2017 на Wayback Machine), упрощающий добавление произвольных заголовков через Rmilter, в том числе Authentication-Results и заголовков, специфичных для SpamAssassin;
- Добавлен модуль DKIM signing для настройки цифровых подписей DKIM, предоставляющий такие возможности как хранения DKIM-ключей в Redis;
- Добавлен модуль Force actions, предназначенный для принудительного выполнения действия при наличии или отсутствии определённых символов в сообщении;
- Переработан модуль экспорта метаданных, позволяющий выявить сообщения, соответствующие заданным правилам, и передать внешнему сервису выделенные из них данные. В новом выпуске предоставлены более гибкие операции и функции для экспорта параметров сообщения в формате JSON, что делает модуль более применимым для операций помещения в карантин, ведения логов и и генерации предупреждений;
- Реализован плагин для привязки тегов к URL с возможностью их кэширования в Redis;
- Добавлен плагин для динамического определения репутации URL на основе данных о доменах, хранимых в Redis;
- Модуль multimap теперь может применяться для сопоставления информации, извлечённой из заголовков "Received";
- В модуле RBL добавлена поддержка использования хэшей в черных списках "email" и "helo";
- В модуле взаимодействия с антивирусным ПО добавлена поддержка Avira SAVAPI;
- В системе нечёткого хэширования (fuzzy hashing) добавлена поддержка неточного сопоставления изображений, прикреплённых к письму;
- Добавлены новые правила: OMOGRAPH_URL для определения URL, вводящих в заблуждение, FROM_NAME_HAS_TITLE, REPLYTO_EMAIL_HAS_TITLE и FROM_NAME_EXCESS_SPACE;
- В rspamadm добавлена команда grep для поиска по аналогии с утилитой exigrep;
- Проведены оптимизации производительности: в декодировщике Base64 задействованы бэкенды sse4.2 и avx, расширено кэширование внутренних объектов, осуществлён переход на более быструю хэш-функцию t1ha, задействованы оптимизации на этапе связывания, встроен luajit 2.1.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.