Wprowadzono wersję systemu filtracji spamu Rspamd 3.0, który oferuje narzędzia do oceny wiadomości na podstawie różnych kryteriów, w tym reguł, metod statystycznych oraz czarnych list, na podstawie których ustalana jest ostateczna waga wiadomości, która decyduje o konieczności zablokowania jej. Rspamd obsługuje praktycznie wszystkie możliwości, które oferuje SpamAssassin, a także ma szereg cech, które pozwalają filtracji poczty odbywać się średnio 10 razy szybciej niż w SpamAssassin, zapewniając jednocześnie lepszą jakość filtracji. Kod systemu napisany jest w języku C i jest udostępniany na licencji Apache 2.0.
Rspamd został zbudowany z wykorzystaniem architektury opartej na zdarzeniach (Event-driven) i początkowo był zaprojektowany do użytku w systemach o wysokim obciążeniu, co pozwala na przetwarzanie setek wiadomości na sekundę. Reguły służące do wykrywania oznak spamu charakteryzują się wysoką elastycznością i w najprostszym przypadku mogą zawierać wyrażenia regularne, a w bardziej skomplikowanych sytuacjach mogą być zdefiniowane w języku Lua. Rozszerzanie funkcjonalności i dodawanie nowych typów kontroli realizowane jest przez moduły, które mogą być tworzone w językach C i Lua. Na przykład dostępne są moduły do weryfikacji nadawcy za pomocą SPF, potwierdzenia domeny nadawcy przez DKIM oraz formułowania zapytań do list DNSBL. Dla uproszczenia konfiguracji, tworzenia reguł i śledzenia statystyk zapewniono administracyjny interfejs webowy.
Znaczący wzrost numeru wersji jest związany z wprowadzeniem istotnych zmian w wewnętrznej architekturze, szczególnie w części odpowiedzialnej za analizę HTML, która została całkowicie przepisana. Nowy parser analizuje HTML, korzystając z modelu DOM i tworzy drzewo znaczników. W nowej wersji wprowadzono także parser CSS, który w połączeniu z nowym parserem HTML umożliwia poprawne wydobywanie danych z e-maili z nowoczesnym układem HTML, w tym rozróżnianie treści widocznych i niewidocznych. Warto zauważyć, że kod parserów został napisany nie w języku C, lecz w C++17, co wymaga kompilatora obsługującego ten standard do budowy.
Inne nowości:
- Dodano wsparcie dla API Amazon Web Services (AWS), co umożliwiło bezpośredni dostęp do usług chmurowych Amazon z Lua API. Jako przykład zaproponowano wtyczkę, która zapisuje wszystkie wiadomości w magazynie Amazon S3.
- Przeprojektowano kod generowania raportów związanych z technologią DMARC. Funkcjonalność wysyłania raportów została przeniesiona do osobnej komendy spamadm dmarc_report.
- Dla list dyskusyjnych dodano wsparcie dla 'DMARC munging', polegające na zastępowaniu adresu From w wiadomościach adresem listy, jeśli dla wiadomości określono poprawne zasady DMARC.
- Dodano wtyczkę external_relay, która rozwiązuje problem z używaniem wtyczek, takich jak SPF, adresy IP zaufanego przekaźnika pocztowego, zamiast adresu nadawcy.
- Dodano polecenie 'rspamadm bayes_dump' do zapisu i ładowania tokenów bayesowskich, co pozwala na przenoszenie ich między różnymi instancjami Rspamd.
- Dodano wtyczkę do wsparcia systemu współdzielonego blokowania spamu Pyzor.
- Przerobiono narzędzia monitorujące, które teraz są wywoływane rzadziej i generują mniejsze obciążenie dla zewnętrznych modułów.
Źródło: opennet.ru
