lançamento do sistema de filtragem de spam , que fornece ferramentas para avaliar mensagens com base em vários critérios, incluindo regras, métodos estatísticos e listas negras, a partir das quais é gerado o peso total da mensagem, usado para decidir se deve ser bloqueada. O Rspamd suporta praticamente todas as funcionalidades implementadas no SpamAssassin e possui várias características que permitem filtrar e-mails em média 10 vezes mais rápido do que o SpamAssassin, além de garantir uma melhor qualidade de filtragem. O código do sistema é escrito em C e estão sob a licença Apache 2.0.
O Rspamd é construído com uma arquitetura orientada a eventos e foi projetado para ser utilizado em sistemas de alta carga, permitindo processar centenas de mensagens por segundo. As regras para identificar sinais de spam são altamente flexíveis e podem, na sua forma mais simples, conter expressões regulares; em situações mais complexas, podem ser escritas na linguagem Lua. A ampliação da funcionalidade e a adição de novos tipos de verificações são realizadas através de módulos, que podem ser desenvolvidos em C e Lua. Por exemplo, estão disponíveis módulos para verificar o remetente usando SPF, confirmação do domínio do remetente através do DKIM, e formação de consultas em listas DNSBL. Para facilitar a configuração, criação de regras e monitoramento de estatísticas, uma interface web administrativa é fornecida.
Principais novidades:
- Foi feita a transição para um novo esquema de numeração das versões. Uma vez que o primeiro número no número da versão não mudava há vários anos, e o segundo número se mostrava um indicador real da versão, decidiu-se substituir o esquema "x.y.z" pelo formato "y.z";
- Para o ciclo de processamento de eventos, em vez de a biblioteca , livre de algumas limitações do libevent e permitindo obter um desempenho maior. O uso do
libev tornou possível simplificar o código, melhorar o tratamento de sinais e prazos, além de unificar o monitoramento de alterações de arquivos usando o mecanismo inotify (nem todas as versões do libevent fornecidas para as plataformas suportadas poderiam funcionar com inotify); - O suporte ao módulo de classificação de mensagens, que utiliza a biblioteca de aprendizado profundo Torch, foi encerrado. A razão mencionada é a complexidade excessiva do Torch e o alto custo de manutenção para mantê-lo atualizado. Como substituto para a classificação utilizando métodos de aprendizado de máquina, foi proposto um módulo totalmente reescrito. , no qual uma biblioteca é utilizada para garantir o funcionamento da rede neural. , contendo apenas 4000 linhas de código em C. Na nova implementação, muitos problemas relacionados a bloqueios mútuos durante o treinamento foram solucionados.
- Módulo substituiu os módulos SURBL e Emails, o que permitiu unificar o processamento de todas as verificações de listas negras. As capacidades do RBL foram expandidas com o suporte a tipos adicionais, como seletores, e ferramentas para facilitar a expansão das regras existentes. Regras de bloqueio de email baseadas em listas map não são mais suportadas; em vez delas, recomenda-se usar multimap com seletores.
- Para determinar tipos de arquivos com base no conteúdo, uma nova biblioteca Lua Magic foi implementada, utilizando Lua e Hyperscan em vez de libmagic.
A criação de uma biblioteca própria foi motivada pela busca de maior desempenho, a eliminação de falhas na detecção de arquivos docx, um API mais apropriado e a adição de novos tipos de heurística, sem estar restrito a regras rígidas. - O módulo para armazenamento de dados no banco de dados foi melhorado. Novos campos LowCardinality foram adicionados e o consumo de memória foi substancialmente otimizado.
- As capacidades do módulo foram ampliadas com suporte a e combinados.
- No módulo Maillist, melhorou-se a definição de listas de distribuição.
- Nos fluxos de trabalho, agora é possível enviar mensagens heartbeat ao processo principal, confirmando o funcionamento normal. Na ausência dessas mensagens por um certo período, o processo principal pode forçar o encerramento do processo. Este modo ainda está desativado por padrão.
- Uma nova série de scanners em Lua foi adicionada. Por exemplo, módulos para escanear mensagens em pacotes antivírus Kaspersky ScanEngine, Trend Micro IWSVA (via icap) e
F-Secure Internet Gatekeeper (via icap), bem como scanners externos para Razor, oletools e P0F foram propostos. - Adicionada a capacidade de alterar mensagens através da API Lua. Um módulo foi proposto para fazer alterações nos blocos MIME. ;
- Garantida a separação do tratamento das configurações definidas através de "Settings-Id:", por exemplo, agora é possível vincular regras apenas a identificadores de configurações específicas;
- Realizadas otimizações de desempenho no mecanismo Lua, na decodificação de base64 e na detecção de idioma para o texto. Suporte adicionado para caching de correspondências complexas (maps). Implementado suporte
HTTP keep-alive.
Fonte: opennet.ru
