rilascio del sistema di filtraggio dello spam , che fornisce strumenti per valutare i messaggi in base a diversi criteri, inclusi regole, metodi statistici e blacklist, da cui viene calcolato il peso finale del messaggio, utilizzato per decidere se bloccarlo o meno. Rspamd supporta praticamente tutte le funzionalità implementate in SpamAssassin e offre diverse caratteristiche che consentono di filtrare le email in media dieci volte più velocemente rispetto a SpamAssassin, garantendo anche una migliore qualità di filtraggio. Il codice del sistema è scritto in linguaggio C e sotto licenza Apache 2.0.
Rspamd è costruito utilizzando un'architettura basata su eventi e progettato per essere utilizzato in sistemi ad alto carico, consentendo di elaborare centinaia di messaggi al secondo. Le regole per l'identificazione dei segni di spam offrono un'elevata flessibilità e, nella loro forma più semplice, possono contenere espressioni regolari, mentre in situazioni più complesse possono essere scritte in linguaggio Lua. L'estensione delle funzionalità e l'aggiunta di nuovi tipi di controlli si realizzano tramite moduli, che possono essere creati nei linguaggi C e Lua. Ad esempio, sono disponibili moduli per il controllo del mittente tramite SPF, la conferma del dominio del mittente tramite DKIM e la creazione di richieste per le liste DNSBL. Per semplificare la configurazione, la creazione di regole e il monitoraggio delle statistiche è fornito un'interfaccia web amministrativa.
Novità principali:
- È stata effettuata la transizione a un nuovo schema di numerazione delle versioni. Poiché il primo numero della versione non cambiava da diversi anni e il secondo numero fungeva da reale indicatore di versione, si è deciso di passare dal formato "x.y.z" al formato "y.z";
- Per il ciclo di elaborazione degli eventi invece di è stata impiegata la libreria , liberata da alcune limitazioni di libevent e in grado di raggiungere prestazioni superiori. L'utilizzo di
libev ha semplificato il codice, migliorato la gestione dei segnali e dei timeout, e unificato il monitoraggio delle modifiche ai file tramite il meccanismo inotify (non tutte le versioni di libevent fornite per le piattaforme supportate potevano lavorare con inotify); - È stata interrotta la manutenzione del modulo di classificazione dei messaggi che utilizza la libreria di deep learning Torch. La motivazione è l'eccessiva complessità di Torch e l'elevato impegno necessario per mantenerla aggiornata. In sostituzione è stato proposto un modulo completamente riscritto per la classificazione utilizzando , nel quale per il funzionamento della rete neurale viene utilizzata la libreria , che include solo 4000 righe di codice in C. Nella nuova implementazione sono stati risolti molti problemi di deadlock durante l'addestramento;
- Modulo ha sostituito i moduli SURBL e Emails, consentendo di uniformare l'elaborazione di tutti i controlli delle blacklist. Le possibilità di RBL sono state ampliate con il supporto di tipi aggiuntivi, come i selettori, e di strumenti per semplificare l'estensione delle regole esistenti. Le regole di blocco delle email basate su liste map invece di DNS RBL non sono più supportate; si raccomanda di utilizzare multimap con selettori.
- È stata coinvolta una nuova libreria Lua Magic per determinare i tipi di file in base al contenuto, utilizzando Lua e Hyperscan invece di libmagic.
La creazione di una propria libreria è stata motivata dalla volontà di ottenere prestazioni più elevate, eliminare i malfunzionamenti nella rilevazione di file docx, rendere disponibile un'API più adatta e aggiungere nuovi tipi di euristica, non limitati da regole rigide. - È stato migliorato il modulo per la memorizzazione dei dati nel DBMS . Sono stati aggiunti i campi LowCardinality e l'uso della memoria è stato significativamente ottimizzato.
- Le funzionalità del modulo sono state ampliate con il supporto di e per corrispondenze.
- Nel modulo Maillist è stato migliorato il riconoscimento delle liste di distribuzione.
- Nei flussi di lavoro è stata aggiunta la possibilità di inviare messaggi heartbeat al processo principale, confermando il funzionamento regolare. In assenza di questi messaggi per un certo periodo di tempo, il processo principale può forzare la terminazione del flusso di lavoro. Per impostazione predefinita, questa modalità è attualmente disattivata;
- È stata aggiunta una serie di nuovi scanner in linguaggio Lua. Ad esempio, sono stati introdotti moduli per la scansione dei messaggi nei pacchetti antivirus Kaspersky ScanEngine, Trend Micro IWSVA (tramite icap) e
F-Secure Internet Gatekeeper (tramite icap), oltre a scanner esterni per Razor, oletools e P0F; - È stata introdotta la possibilità di modificare i messaggi tramite l'API Lua. Per effettuare modifiche ai blocchi MIME è stato proposto il modulo ;
- È stata garantita una gestione separata delle impostazioni impostate tramite "Settings-Id:", ad esempio, ora è possibile legare le regole solo a determinati identificatori di impostazioni;
- Sono state effettuate ottimizzazioni delle prestazioni del motore Lua, decodifica base64 e identificazione della lingua per il testo. È stato aggiunto il supporto per la memorizzazione nella cache di abbinamenti complessi (maps). È stata implementata la supporto
HTTP keep-alive.
Fonte: opennet.ru
