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

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

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

Основні нововведення:

  • Здійснено перехід на нову схему нумерації випусків. Оскільки перше число у номері версії не змінювалося вже кілька років, а реальним індикатором версії виступає друге число, вирішено замість схеми xyz перейти на формат yz;
  • Для циклу обробки подій замість Лібевент задіяна бібліотека лібів, позбавлена ​​деяких обмежень libevent і дозволяє досягти більш високої продуктивності. Використання
    libev дало можливість спростити код, покращити обробку сигналів і таймаутів, а також уніфікувати відстеження змін файлів за допомогою механізму inotify (не всі випуски libevent, що поставляються для підтримуваних платформ, могли працювати з inotify);

  • Припинено підтримку модуля класифікації повідомлень, який використовує бібліотеку глибинного машинного навчання Torch. Як причина називається зайва ускладненість Torch та велика трудомісткість супроводу в актуальному стані. Як заміну для класифікації з використанням методів машинного навчання запропоновано повністю переписаний модуль Нейронний, в якому для роботи нейронної мережі використовується бібліотека може, Що включає всього 4000 рядків коду мовою Сі. У новій реалізації вирішено багато проблем із виникненням взаємних блокувань під час навчання;
  • модуль RBL замінив собою модулі SURBL та Emails, що дозволило уніфікувати обробку всіх перевірок за чорними списками. Можливості RBL розширено підтримкою додаткових типів, таких як селектори, та засобами для спрощеного розширення існуючих правил. Правила блокування email на основі map-списків замість DNS RBL більше не підтримуються, замість них рекомендується використовувати multimap із селекторами;
  • Для визначення типів файлів за вмістом задіяна нова бібліотека Lua Magic, яка використовує Lua та Hyperscan замість libmagic.
    Як причина створення власної бібліотеки згадується бажання досягти більш високої продуктивності, позбутися збоїв при виявленні файлів docx, отримати більш відповідний API і додати нові види евристики, не обмежені жорсткими правилами;

  • Поліпшено модуль для зберігання даних у СУБД Clickhouse. Додано поля LowCardinality та суттєво оптимізовано споживання пам'яті;
  • Розширено можливості модуля Мультимап, в якому з'явилася підтримка комбінованих и залежних зіставлень;
  • У модулі Maillist покращено визначення списків розсилки;
  • У робочих процесах з'явилася можливість відправлення в основний процес heartbeat-повідомлень, що підтверджують роботу в штатному режимі. За відсутності подібних повідомлень протягом певного часу, основний процес може примусово завершити робочий процес. За замовчуванням цей режим поки що вимкнено;
  • Додано серію нових сканерів на мові Lua. Наприклад, додано модулі для сканування повідомлень в антивірусних пакетах Kaspersky ScanEngine, Trend Micro IWSVA (через icap) та
    F-Secure Internet Gatekeeper (через icap), а також запропоновані зовнішні сканери для Razor, oletools та P0F;

  • Додано можливість зміни повідомлень через Lua API. Для внесення змін до MIME-блоків запропоновано модуль lib_mime;
  • Забезпечено роздільну обробку налаштувань, встановлених через «Settings-Id:», наприклад, тепер можна прив'язувати правила лише до певних ідентифікаторів налаштувань;
  • Проведено оптимізацію продуктивності Lua-движка, декодування base64 та визначення мови для тексту. Додано підтримку кешування складних зіставлень (maps). Реалізовано підтримку
    HTTP keep-alive.

Джерело: opennet.ru

Додати коментар або відгук