The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

19.08.2021 21:17

Представлен релиз системы фильтрации спама 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.
  • Переработаны инструменты мониторинга, которые теперь вызываются реже и создают меньшую нагрузку на внешние модули.


  1. Главная ссылка к новости (https://rspamd.com/announce/20...)
  2. OpenNews: Выпуск системы фильтрации спама SpamAssassin 3.4.5 с устранением уязвимости
  3. OpenNews: Доступна система фильтрации спама Rspamd 2.0
  4. OpenNews: В рамках проекта Spamnesty развивается бот для увеличения затрат спамеров
  5. OpenNews: Конфликт с помещением IP-адресов Google в черный список Spamhaus
  6. OpenNews: Проект DSPAM закрывается
Лицензия: CC-BY
Наводку на новость прислал Vsevolod Stakhov
Тип: Программы
Короткая ссылка: https://opennet.ru/55660-rspamd
Ключевые слова: rspamd, spam
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, SubGun (??), 22:15, 19/08/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Радостно видеть, что, даже спустя столько лет, проект развивается. И есть есть хоть одна альтернатива проприетарщине.
     
     
  • 2.10, Онаним (?), 23:59, 19/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да альтернатива-то она есть, только толку от неё нет.
    Как фильтр - замечательный проект.
    Но к сожалению, проприетарщина вывозит именно за счёт большой базы для репутационных фильтров, которые создать, не имея большой сети MTA, проблематично.
     
  • 2.14, Ph0zzy (ok), 08:09, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проект хороший. Но такие громкие заявления, что "есть хоть одна альтернатива" - а что не так с spamasassin?
     
     
  • 3.15, Онаним (?), 08:45, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Perl...
    Плюс угрёбищная интеграция.
     
     
  • 4.16, 1 (??), 09:25, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Perl...

    Это к тому что не на расте ?

    > Плюс угрёбищная интеграция.

    С чем интересно ?

    Проблема spamassassin одна - не может он маштабироваться ...
    Когда поток писем становится по настоящему большим - он выжирает все доступные ресурсы.

     
     
  • 5.17, Онаним (?), 09:39, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> Perl...
    > Это к тому что не на расте ?

    Я даже не знаю, что из этих двух сортов выбрать...

    > Проблема spamassassin одна - не может он маштабироваться ...

    Perl.


     
  • 5.18, Онаним (?), 09:40, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хотя на самом деле масштабируется горизонтально он достаточно легко, просто надо следить за тем, чтобы тренинг шёл на всех серверах однообразно.
     

  • 1.8, Аноним (8), 23:35, 19/08/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +8 +/
     
     
  • 2.9, Аноним (8), 23:36, 19/08/2021 Скрыто модератором
  • +1 +/
     
  • 2.20, Аноним (20), 11:20, 20/08/2021 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (2)

  • 1.11, Аноним (11), 00:04, 20/08/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Примечательно, что код парсеров написан не на языке Си, а на C++17, что требует для сборки наличия компилятора с поддержкой данного стандарта.

    А что html4ever их не удовлетворил?

     
     
  • 2.12, Аноним (11), 00:06, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вернее html5ever.
     
  • 2.19, Онаним (?), 09:49, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы о чём?
    Хрустоподелкам в этой сфере не место вообще, от слова "совсем".
     

  • 1.21, Gogi (??), 12:41, 20/08/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не представляю, какими "статистическими методами" можно отделить спам от деловой почты! Обилием смайликов?

    Спам - это такие же письма, как и все остальные. Более того - они успешно маскируют содержимое. Если я-то не всегда понимаю, где спам, как поймёт робот?!

    Но проблема не в этом... проблема в ценности письма! Если "пропустить спам в ящик" - допустимо, то "выкинуть в спам деловое письмо" - категорически НЕТ! И даже если "правильное" письмо не удалили, а просто кинули в спам, а потом вам предлагают его найти в "Spam" папке, то чем это отличается от той же ручной сортировки?!!?

     
     
  • 2.23, Аноним (-), 14:47, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поизучайте тему классификаторов. Для начала, можно изучить Наивный Байесовский Классификатор.
     
  • 2.24, Корпоративный_сисадмин (?), 17:29, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Простейший пример - десятки одинаковых писем отправляемые разным, иногда не существующим получателям. Часто - валящий неделями и месяцами. Вот уж где статистике и маш.обучению самое место.
     
  • 2.27, sage (??), 19:21, 21/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Rspamd работает на удивление хорошо. Они используют:

    * Локальные классификаторы, которые можно обучить вручную на архивах спам и не-спам писем;
    * DNSBL, URIBL и (собственный, если не ошибаюсь) сервер со спам-строками, хеши которых загружаются из интернета

    Классификация писем осуществляется по множеству признаков, в т.ч. rspamd может обучаться тому, ответили ли вы какому-то корреспонденту, или нет, перенесли ли из спама в inbox письмо (или наоборот).

     

  • 1.22, Gogi (??), 12:49, 20/08/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Пока что я отсекаю спам прямо по IP - собираю адреса всех уродов и тупо удаляю их письма.
    Что итересно, некоторое время назад ящик был относительно чистый, а вот последний месяц шакалы прямо активизировались! Забанил кучу адресов, включая iCloud и amazon - пи****оры сами виноваты, что дают облака кому ни попадя.
     
     
  • 2.25, Nogi (?), 22:07, 20/08/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    админ почты локалхоста? В любой среде где более 10 юзеров биги (гугл/яху/эпл/фб/амазон) резать можно
    только по контенту, где rspamd просто шедеврально справляется с задачей, лучше платных аналогов.
     
     
  • 3.26, BrainFucker (ok), 03:12, 21/08/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > В любой среде где более 10 юзеров биги (гугл/яху/эпл/фб/амазон) резать можно только по контенту,

    Ага, то-то я смотрю антиспам гугла и яндекса часто фейлит.

    Яндекс, впрочем, такое впечатление что у них почту админы локалхоста конфигурили. Смешно, они грейлистинг используют, лол (удел мелких сервачков).

     
     
  • 4.28, PnD (??), 22:41, 23/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это ничего что (избирательный) грейлистинг — практически единственное *законно* доступное оператору связи решение? (Чуть утрирую, но "на входе" это крайне эффективный метод парализовать спамо-специфичные сервисы. По итогам массового внедрения спамеры уже́ опустились до лома юзерских аккаунтов и рассылки по паре писем в минуту /больше на моей делянке абы-кому низзя/.)

    Впрочем, минимум одна проблема у яндекса таки наблюдается. Они используют в телематике (пример: их резолверы) нечто доморощенно-самописное. Причём, писа́вший похоже уже покинул их ряды, так что проблему с навечно залипающими в кэшах записями решать некому.

     
     
  • 5.29, BrainFucker (ok), 02:07, 24/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Это ничего что (избирательный) грейлистинг — практически единственное *законно* доступное оператору связи решение?

    Грейлистинг самое тупое и вредное решение, к тому же давно бесполезное. Оно вносит большую задержку в доставку почты.
    Напомню, что его цель это отклонение писем, отправленных просто скриптами, а не полноценным почтовым сервером. Но такого спама сейчас мало. Большая часть спама сейчас это корпоративные серверы, причём с самими серверами зачастую всё нормально, у них валидный SPF и DKIM, а спам очевидно рассылают трояны с компов сотрудников контор. Ну или некоторая часть серверов возможно криворукими админами оставлена как open relay, но таких мало сейчас, т.к. это недефолтная конфигурация.
    Так вот, есть более безвредные способы определить отправил письмо почтовый сервер или тупо скрипт. Впрочем, если SPF и DKIM валиден, то не пофиг ли? Но яндекс в грейлистинг отправляет вообще тупо всё, если это не почтовый сервис из белого списка типа gmail, mailru и т.п.

     
     
  • 6.30, Vsevolod Stakhov (?), 03:01, 24/08/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Грейлистинг самое тупое и вредное решение, к тому же давно бесполезное. Оно вносит большую задержку в доставку почты.

    Вы путаете безусловный и избирательый грейлистинг. Избирательный грейлистинг значит, что почтовая система не уверена в оценке данного конкретного письма (и не факт, что это как-то связано со скриптами и прочим). Возможно, через 10 минут этот IP (или содержимое письма) уже будет в каких-то RBL или иных "черных" списках, а возможно и нет. В худшем случае вы несколько задержите хорошее письмо, но в лучшем - отбросите спам или что похуже.

    Безусловный грейлистинг - это достаточно тупо, но избирательный может быть очень хорошим средством борьбы со спамерами. И именно такой грейлистинг реализован в Rspamd. Более того, Rspamd реализует при грейлистиге не только проверку триплетов (или дублетов) метаданных, типа ip/mail from, но и сохраняет хеш от контента письма, что позволяет проходить грейлистингу даже если IP сменился на другой глобус.

     
     
  • 7.31, BrainFucker (ok), 02:24, 26/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И всё это ради того чтобы сервер отправил письмо заново через минут 10.
     

  • 1.32, Корпоративный_сисадмин (?), 13:27, 26/08/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вопрос знатокам rspamd: как в нем можно перенаправить спам в отдельный ящик? Не удалять, а именно перенаправить в отстойник.
     
     
  • 2.33, Александр (??), 13:32, 01/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спрашивал когда-то в Telegram чате rspamd, как реализовать такой сценарий. Мне почему-то там ответили, что это глупая идея. Возможно, даже это был Всеволод. После этого спрашивать там что-то еще не захотелось.
    В общем сделал это через правило для модуля metadata exporter.
    Посмотрите, в описании этого модуля на сайте есть пример с селектором is_reject_authed.
    Только я заменил его на is_reject
    Не знаю насколько это правильно, может есть более лучшие способы.
     
     
  • 3.34, Корпоративный_сисадмин (?), 15:35, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В общем сделал это через правило для модуля metadata exporter.
    > Посмотрите, в описании этого модуля на сайте есть пример с селектором is_reject_authed.

    Спасибо, думаю это то что нужно. И явно не худший вариант реализации (я уже начал было заголовки X-Spam отлавливать...)


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру