Każdego dnia wysyłanych jest 28 miliardów maili SPAM. Jest to duża część całego ruchu e-mailowego i prawie żadne konto e-mailowe nie jest oszczędzane od niechcianych maili reklamowych. Jak dotąd jedynym sposobem ochrony skrzynki pocztowej przed nimi jest dobry i działający filtr antyspamowy. SpamAssassin jest kolejnym takim filtrem antyspamowym, ale to przede wszystkim jego dosłownie ręcznie dobierany algorytm i wysoka elastyczność czynią z niego bardzo specjalny element oprogramowania.
Krótki przegląd
Chociaż nad oprogramowaniem pracuje obecnie cały zespół, kamień węgielny pod SpamAssassin położył Justin Mason, który wcześniej był odpowiedzialny za podobny program o nazwie filter.plx. W 2001 roku części programu zostały zaadaptowane i przepisane oraz przemianowane na nowy projekt "Spamassin". Od 2004 roku należy ona do Fundacji Oprogramowania Apache i jest kontynuowana jako oprogramowanie open source. Oprócz open-source'owej natury programu, istnieje również licencja, która czyni go wolnym oprogramowaniem, którego prywatne i komercyjne wykorzystanie, na przykład jako modułu innego płatnego oprogramowania, jest całkowicie wolne.
Główną zaletą programu jest jego duża elastyczność w odniesieniu do poziomu wykorzystania, ponieważ SpamAssassin może być używany zarówno jako samodzielna aplikacja, jako podprogram (moduł) innego oprogramowania, jako program kliencki demona pocztowego lub jako wywołanie MDA (Mail Delivery Agent) takiego jak Procmail. Ważne: Nawet jeśli w łańcuchu dystrybucji znajdują się różne instancje oprogramowania, flaga nie oznacza, że oprogramowanie nie będzie używane. E-mail analizowane dwukrotnie, co zapobiega redundancji procesów i zmniejsza wykorzystanie zasobów.
Tak właśnie działa proces sortowania
SpamAssassin działa w oparciu o system punktowy. Każdy przychodzący e-mail jest analizowany według określonych kryteriów i przypisywane są mu punkty, które wskazują, jak prawdopodobne jest, że jest to Spam akty. Regulowany przez użytkownika próg określa punkt, w którym wiadomość jest traktowana jako spam i sortowana. Aby uzyskać jak najdokładniejszy wynik, program ma do dyspozycji cały szereg różnych metod, takich jak:
- Biała i czarna lista oparta na DNS
- Filtr sum kontrolnych od dostawców open source i komercyjnych, takich jak DCC lub Vipul's Razor
- Filtr ekspresji oparty na Słowa kluczowe lub frazesy
- System Hashcash (Proof of Work)
- DIM i SPF
- Listy adresów URL jako dane wyjściowe przez trackery takie jak uribl.com
Filtr bayesowski
Oprócz mniej lub bardziej statycznych systemów filtrujących, SpamAssassin posiada algorytm zastosowany w filtrze bayesowskim, który jest w stanie "nauczyć się" pewnych heurystycznych elementów, tj. powtarzających się, wyróżniających się elementów, z już wysłanych wiadomości spam i w ten sposób dostosować się do zachowania użytkownika. System ten oparty jest na bajesowskiej koncepcji prawdopodobieństwa, ale często był krytykowany, ponieważ niewyuczony system filtrujący często daje fałszywe wyniki pozytywne.
Aby temu zapobiec, zaleca się najpierw dokładniejsze sprawdzenie wiadomości e-mail sklasyfikowanych jako spam. Filtr Bayesowski zawiera narzędzie, dostępne poprzez linię poleceń sa-learn, które może być użyte do wyszukiwania heurystyki w pojedynczych wiadomościach e-mail lub całych skrzynkach pocztowych. Jeśli proces ten został przeprowadzony kilka razy, liczba wyników fałszywie dodatnich jest znacznie zmniejszona.
Aktualny rozwój
W trakcie ostatnich aktualizacji wersji 3.3 i 3.4, SpamAssassin otrzymał ważną nową funkcję, która powinna mieć istotny wpływ na wykorzystanie zasobów. Chociaż optymalizacja wydajności została dokonana z wyprzedzeniem, program zachowuje się teraz jak deterministyczny, skończony automat. Zasadniczo, sprzęt może lepiej dostosować się do DEA, ponieważ możliwe stany zawsze działają deterministycznie, tzn. z góry ustalone. Odpowiednio zaprogramowany system - podobnie jak dzisiejszy sprzęt serwerowy - może w ten sposób rezerwować i uwalniać zasoby w sposób krytyczny pod względem czasu.
Wsparcie dla programów
Jak już wspomniano, wysoka elastyczność kodu programu jest unikalną zaletą, ale SpamAssassin posiada również udane API, które umożliwia wymianę danych z wieloma innymi programami. Wśród projektów open source są to często używane klienty poczty elektronicznej Mozilla Thunderbird, KMail, a także Novell Evolution czy egzotyki takie jak Citadel czy Claws Mail. W przypadku produktów komercyjnych SpamAssassin jest już zintegrowany z kodem programu. Tak jest w przypadku serwera Icewarp, McAfee SpamKiller, Mac OS X Server lub Sophos PureMessage.