Tuning spamassassina

W pewnym momencie podczas walki ze spamem każdy admin dochodzi do wniosku, że fajnie będzie pisać własne reguły spamassina. Jest to zacny pomysł i jak najbardziej chwalebny. Firmy mają różną tematykę maili i dla każdego admina inna cecha może być spamem. Pokrótce omówię różne sposoby różne sposoby na tuning spamassassina przydatne dla admina

Blacklisty adresów

Prosta i bardzo skuteczna metoda wyłapywania spamu. Można  na wiele sposobów powiększać bazę. Dodawać np adresy które zostały uznane za spam i poszły na kilka adresów. Automatycznie dodawać te które mają duża punktację i trafiły na jeden adres. Co tylko podpowie fantazja. Należy pamiętać jednak, ze niektóre adresy są generowane osobno dla każdej przesyłki np @sensdelivery.com tak robi. Rozwiązaniem jest dodawanie całych domen (w tym przypadku blacklist_from *@sensdelivery.com) i  później nie dodawać adresów z tych domen. Uważać trzeba przy takich działaniach. Lepiej  domenę dodać ręcznie inaczej np cały gmail może wylądować blackliście. Właściwie robienie tego  z automatu jest proszeniem się o problemy prędzej czy później. Drugą zaletą używania blacklist jest zmniejszenie obciążenia serwera. SA jeśli znajdzie mail na czarnej liście przerywa analizę i uznaje mail jako spam.

Wbrew pozorom jest to bardzo skuteczna metoda walki ze spamem. Po początkowej pracy dodaniu upierdliwych domen zwiększa się drastycznie ilość spamu wychwytywanego. Można napisać program który będzie dodawał adresy do blacklist w zależności od punktów zebranych, ilości adresów zaatakowanych lub ilości spamu.

Co bardzo ważne użytkownicy również powinni forwardować maila które do nich doszły a są spamem. Pozwala to dobrze tuningować i zabijać spam. Jest to naprawdę ważny element walki w firmie ze spamem. Takie wiadomości pozwalają analizować coś co przeszło przez nasze filtry i uszczelnić je. Najbardziej cenny typ niechcianej poczty to ten który przeszedł a nie został odrzucony. O taki paradoks.

Różna punktacja

Przed kolejnymi punktami warto przemyśleć jaki maile będą bardziej narażone na spam. Są to wszelakie adresy wystawione na stronach internetowych. Niestety w przypadku firm dział marketingu twierdzi najczęściej,że adres musi być ‚klikany’. Nie może być zastąpiony obrazkiem lub inaczej maskowany. Gdy  jest jeden adres na stronie bez problemu można zrobić formularz(oczywiście bez captchy aby było łatwiej). Szczególnie chronić należy przed spamem maila zbiorcze marketing@ dyretorzy@. Najlepiej na takie adresy dopuścić tylko komunikacje wewnętrzną ale oczywiście nie zawsze się da.

Podbijanie reguł

Kolejna metoda na tuning spamassassina to podbijanie punktowe reguł. Na początku każdy dla bezpieczeństwa szuka reguł które występują tylko w spamie. Podbijając punktacje spam otrzymuje więcej punktów wiec można odtrąbić sukces. Tylko po jakimś czasie okazuje się, że wcale więcej spamu system nie wychwytuje. Dlaczego? Spam ma więcej punktów ale ponieważ reguły nie występują w hamie nie przybywa wychwytywanego spamu. Należy wychwycić maile które są spamem ale nie zostały zakwalifikowane tak. O ile można odnaleźć maila z zaznaczone jako spam (czyli w temacie *** SPAM ***) to maili „czystych” co są naprawdę niechciane sami nie znajdziemy. Najlepszym rozwiązaniem jest współpraca z użytkownikami. Należy ich uświadomić, że wysyłając na próbki spamu będą go mieli mniej. Po otrzymaniu jakiejś próbki takich maili można podbijać punktację reguł. Ale tych najlepiej co występują zarówno w wychwyconym spamie jak i niewychwyconym. Wtedy można popatrzyć które reguły występują w obu typach maili a nie występują w naprawdę dobrych mailach(to oczywiście stan idealny, w rzeczywistości tak nie ma). I jak podnosić trzeba punktację to zawsze powoli nigdy skokowo. I ostatnia uwaga ale bardzo ważna: zawsze zmieniamy punktacje w naszych plikach konfiguracyjnych a nie gdzie są przechowywane oryginalne reguły. Oryginalne mogą być zaktualizowane i zostaną nadpisane

Grupowanie reguł

To właściwie porządki w stosunku do następnego punktu. Ale pomaga w pisaniu, porządkowanie reguł. Przykładem niech będzie reguły dotyczące BAYESa. Nie ma reguły która by opisywała BAYES wyższy niż 80. Nic nie stoi na przeszkodzie abyśmy sami stworzyli sami regułę.

meta ZABOJCASPAMU_BAYES_80_PLUS BAYES_80 || BAYES_95 || BAYES_99
describe ZABOJCASPAMU_BAYES_80_PLUS Bayes powzej 80
score ZABOJCASPAMU_BAYES_80_PLUS 0.01
Reguła taka może być przydatna do upraszczania i pisania następnych reguł. Ważna tu jest punktacja. Powyższy wpis nie dodaje praktycznie punktów. Ale będzie go widać w innych regułach.

 

Wzmacnianie par lub trójek reguł

Metoda dość dobrze działająca. Polega na tym aby znaleźć pary reguł występujące i charakterystyczne dla spamu. Oczywiście niekoniecznie muszą wpadać i być rozpoznawane jako spam. Czemu takie działania powinny być podejmowane? Wystąpienie dwóch reguł może powodować duże zwiększenie prawdopodobieństwa, że dany mail jest spamem. Nawet rozważając teoretycznie można dojść do takiego wniosku. Np reguła z poprzedniego przykładu ZABOJCASPAMU_BAYES_80_PLUS w powiązaniu z jakimś RBLem. Każdy może znaleźć lub poszukać swoich własnych par reguł. Niedługo zamieszczę obszerniejszy wpis na temat par reguł na podstawie analizy wpisów w logach. Poniższy przykład który jest zamieszczony jest tylko teoretyczny i może mieć dużo fałszywych spamów. Kiedyś go może sprawdzę:)

header ZABOJCASPAMU_SUBJECT_ZAPYTANIE Subject=~/(Z|z)apytanie/
describe  ZABOJCASPAMU_SUBJECT_ZAPYTANIE Zapytanie w temacie
score   ZABOJCASPAMU_SUBJECT_ZAPYTANIE 0.01

Otrzymaliśmy regułę która dodaje 0.01 punktu jeśli w temacie jest słowo zapytanie. Oczywiście temat z takim zapytaniem może być prawdziwy i dlatego dajemy mu mało punktów. Właściwie to jest potrzebne do zbudowania pary reguł. Możemy poprzednią regułę o BAYESIE połączyć z ta i otrzymamy całkiem (chyba) sensowną regułę.

meta ZABOJCASPAMU_PARA_0001 ZABOJCASPAMU_SUBJECT_ZAPYTANIE && ZABOJCASPAMU_BAYES_80_PLUS
describe ZABOJCASPAMU_PARA_0001 Zapytanie z Bayesem powyzej 80
score  ZABOJCASPAMU_PARA_0001 1
Przypominam ta reguła jest teoretyczna. Jak widać można budować takich reguł dużo. Należy obserwować spam i analizować.
Jak zawsze mogą pojawić się problemy. Znajdziemy reguły które są niby dobre a będą wszczynać fałszywe alarmy. Pamiętajcie: zawsze zaczynać od minimalnej punktacji i obserwować

 

Pisanie własnych reguł
 Do pisania reguł w spamassassinie potrzebna jest znajomość wyrażeń regularnych. Ale to techniczna umiejętność. Najważniejsza jest spostrzegawczość:) Oto zasady jakie można stosować w pisaniu reguł.
  • należy unikać reguł które dotyczą jednego spamu jednej firmy. Nie ma sensu pisać w SA reguł z cytowaniem tematu dokładnym jeśli jest specyficzny typu „Super oferta na wczasy„. Zaraz się okaże, że spam minął a na serwerze zostanie duzo niepotrzebnych reguł.
  • Znajduj ciekawe właściowości w nagłówkach. Mogą być dodatkowe pola w nim, czy specyficzne wartości. Jeśli znajdziemy pola lub dziwne wartości pisać można reguły.
  • w treści maila lepiej szukać konstrukcji całych i dłuższych. Za krótkie mogą pasować do za dużej ilości maili
  • znajdywać trzeba błędy w konstrukcjach maili i nagłówkach

I uczyć się jak i uczą się spamerzy:)

O pisaniu reguł do spamassassina na pewno powstanie jeszcze dużo tekstów bo to jeden z ważniejszych tematów.

Testowanie

Każdą regułę należy testować. Zaczynać od punktacji 0.1 i potem obserwować czy nie pojawiają się dobre maila zakwalifikowane jako spam. Niektóre reguły dobre w teorii okazują się nieprzydatne bo dają dużo fałszywych alarmów.

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *