релиз на системата за филтриране на спам , предоставяща средства за оценка на съобщенията по различни критерии, включително правила, статистически методи и черни списъци, на базата на които се формира крайното тегло на съобщението, използвано за вземане на решение относно необходимостта от блокиране. Rspamd поддържа почти всички възможности, реализирани в SpamAssassin, и има редица характеристики, които позволяват филтриране на имейлите средно 10 пъти по-бързо от SpamAssassin, както и осигуряващо по-добро качество на филтриране. Кодът на системата е написан на езика C и е под лицензия Apache 2.0.
Rspamd е построен с използване на събитийно-ориентирана архитектура (Event-driven) и е изначално предвиден за приложение в системи с високо натоварване, позволявайки обработка на стотици съобщения в секунда. Правилата за откриване на признаци на спам имат висока гъвкавост и в най-простия си вид могат да съдържат регулярни изрази, а в по-сложни ситуации могат да бъдат формулирани на езика Lua. Разширяването на функционалността и добавянето на нови типове проверки се реализират чрез модули, които могат да бъдат създадени на езиците C и Lua. Например, налични са модули за проверка на подателя с използване на SPF, потвърждаване на домейна на подателя чрез DKIM, генериране на запитвания към списъци DNSBL. За улесняване на настройките, създаването на правила и проследяване на статистиката се предоставя административен уеб-интерфейс.
Основни нововъведения:
- Осуществен е преход към нова схема на номерация на изданията. Тъй като първото число в номера на версията не е променяно от години, а реален индикатор за версията е второто число, решено е вместо схема „x.y.z“ да се премине на формат „y.z“;
- За цикъла на обработка на събития вместо е използвана библиотеката , освободена от някои ограничения на libevent и позволяваща постигането на по-висока производителност. Използването на
libev е дало възможност да се опрости кодът, да се подобри обработката на сигнали и таймери, както и да се унифицира проследяването на промени в файлове с помощта на механизма inotify (не всички версии на libevent, предоставяни за поддържаните платформи, можеха да работят с inotify); - Поддръжката на модула за класифициране на съобщения, използващ библиотеката за дълбочинно машинно обучение Torch, е прекратена. Причината за това е твърде сложната архитектура на Torch и значителната трудоемкост за поддържането му актуален. Вместо него е предложен напълно преработен модул за класификация с използване на методи на машинното обучение. , при който за осигуряване на работата на невронната мрежа се използва библиотеката , включваща само 4000 реда код на езика Си. В новата реализация са решени много проблеми със взаимните блокировки по време на обучението;
- Модул замести модулите SURBL и Emails, което позволи унифициране на обработката на всички проверки по черните списъци. Възможностите на RBL са разширени с поддръжка на допълнителни типове, като селектори, и средства за опростено разширяване на съществуващите правила. Правилата за блокиране на имейл на базата на map-списки вече не се поддържат; вместо тях се препоръчва да се използва multimap със селектори;
- За определяне на типовете файлове по съдържание е внедрена нова библиотека Lua Magic, използваща Lua и Hyperscan вместо libmagic.
Причината за създаването на собствена библиотека е желание за постигане на по-висока производителност, избягване на съществуващите проблеми при откриването на файлове docx, получаване на по-подходящ API и добавяне на нови видове хевристики, не ограничаващи се до строгите правила; - Подобрени са модулите за съхранение на данни в СУБД . Добавени са полета LowCardinality и значително е оптимизирано потреблението на памет;
- Разширени функционалности на модула , в който е добавена поддръжка на и сопоставления;
- В модула Maillist е подобрено определянето на списъците за разпространение;
- В работните процеси е добавена възможността за изпращане на съобщения heartbeat в основния процес, потвърдяващи работа в нормален режим. При липса на подобни съобщения за определен период от време основният процес може принудително да завърши работния процес. По подразбиране този режим в момента е изключен;
- Добавена е нова серия скенери на езика Lua. Например, добавени са модули за сканиране на съобщения в антивирусните пакети Kaspersky ScanEngine, Trend Micro IWSVA (чрез icap) и
F-Secure Internet Gatekeeper (чрез icap), а също така са предложени външни скенери за Razor, oletools и P0F; - Добавена възможност за промяна на съобщения чрез Lua API. За внасяне на промени в MIME блокове е предложен модул ;
- Осигурена е отделна обработка на настройки, зададени чрез «Settings-Id:», например, сега можете да свържете правила само с определени идентификатори на настройки;
- Извършени са оптимизации на производителността на Lua двигателя, декодирането на base64 и определянето на езика за текст. Добавена е поддръжка за кеширане на сложни съвпадения (maps). Реализирана е поддръжка
HTTP keep-alive.
Източник: opennet.ru
