Bayes wiecznie żywy

Dotychczasowe metody walki ze spamem okazały się z punktu widzenia użytkowników systemów pocztowych nieskuteczne. Wygląda jednak na to, że rozwiązaniem problemu są funkcje statystyczne odkryte przez Thomasa Bayesa jeszcze w XVIII wieku.

Dotychczasowe metody walki ze spamem okazały się z punktu widzenia użytkowników systemów pocztowych nieskuteczne. Wygląda jednak na to, że rozwiązaniem problemu są funkcje statystyczne odkryte przez Thomasa Bayesa jeszcze w XVIII wieku.

Zaczyna się niewinnie: jeden, dwa listy dziennie. Spamerzy wiedzą, że nie należy przesadzać, przynajmniej nie od razu. Wykasowanie kilku e-maili informujących o świetnym biznesie w Nigerii czy dużej wygranej na loterii nie sprawia większych problemów. Firmy zajmujące się "promocją przez Internet" wymieniają się posiadanymi adresami i z czasem listów przybywa. Gdy do skrzynki trafia 100-200 listów dziennie, kasowanie spamu staje się przymusowym porannym rytuałem - człowiek przyzwyczai się do wszystkiego.

Nerwy puszczają zwykle któregoś pięknego poranka, gdy walcząc z zalewem niechcianej korespondencji przez nieuwagę kasujemy ten jeden ważny list, na który czekaliśmy. Zwykle dopiero wtedy uświadamiamy sobie, że spam stanowi realne zagrożenie dla biznesu: zwiększa prawdopodobieństwo przeoczenia ważnego listu, odrywa ludzi od produktywnej pracy, a ponadto zapycha łącza do Internetu i zmniejsza wydajność serwerów pocztowych.

Strach przed czarną listą

Najstarszą metodą walki ze spamem jest powiadamianie administratorów sieci, z których spam jest wysyłany. Wymaga to jednak wielu zabiegów ze strony administratora: dodatkowych kontaktów z użytkownikami systemu pocztowego, analizy nagłówków niechcianych listów, wyszukiwania kontaktów do administratorów innych sieci, dodatkowej korespondencji z nimi. Część tych czynności można zautomatyzować, pisząc odpowiednie skrypty. Nadal jest to jednak zajęcie bardzo niewdzięczne i bez jakiejś formy automatyzacji na dłuższą metę wytrzymać się nie da.

Jedną z prostszych technik walki ze spamem na poziomie serwera poczty jest korzystanie z tzw. czarnych list (black lists) - tworzone przez ochotników i wymieniane między administratorami spisy domen, w których działają źle skonfigurowane systemy pocztowe umożliwiające wysyłanie spamu. Znalezienie się domeny na takiej liście to dla jej administratora środowiskowy wstyd i zwykle powód do natychmiastowego działania. Czarne listy nie są jednak panaceum na spam.

Z listami wiąże się jednak realne niebezpieczeństwo, że niekiedy poszczególne adresy mogą na nie trafić przez pomyłkę lub nawet czyjeś celowe działanie. Nieostrożne korzystanie z czarnych list może więc skończyć się tym, że w pewnym momencie dostęp do sieci zostanie odcięty użytkownikom, na których obsłudze nam zależy, np. klientów. Wielokrotnie przeprowadzane testy wykazują, że metoda ta pozwala wyeliminować w najlepszym razie ok. 50% spamu, a najczęściej dużo mniej - w granicach 15-25%. Atrakcyjne jest głównie to, że jest ona niezmiernie prosta w implementacji, dlatego można ją traktować jako pierwszy krok w walce ze spamem. Warto w tym celu skorzystać ze sprawdzonych list, np. The Spamhaus Block List.

Z reguły nieskutecznie

Stosowaną z powodzeniem techniką walki ze spamem jest filtrowanie nagłówków i treści listów na poziomie bramki pocztowej lub serwera pocztowego. Filtry dzielą się na takie, które posługują się sygnaturami (wzorcami), oraz takie, które analizują zawartość listu wg pewnych ogólniejszych kryteriów (skanery oparte na regułach, zwane niekiedy heurystycznymi).

Bieżącym tworzeniem wzorców zajmują się wyspecjalizowane firmy. Przykładowo, firma Brightmail utrzymuje ponad 2 mln kont pocztowych, na które przychodzi dziennie ok. 2 mld spamerskich przesyłek. Dla każdego z tych listów jest tworzona sygnatura, która ląduje w bazie danych dostępnej dla klientów. Jeśli do klienta trafi list podobny do tego, który został opisany w sygnaturze, zostanie on oznaczony jako spam. Oczywiście, spamerzy są tego świadomi i stosują metody, które mają za zadanie zmylenie filtrów (np. do każdego listu wstawiają losowe jakieś słowo, aby różnił się od wzorca zawartego w sygnaturze). Spam więc nadal zalewa nas szerokim strumieniem, napędzany kreatywnością spamerów, a twórcy oprogramowania antyspamowego wydają kolejne sygnatury.

Ten wyścig wydaje się nie mieć końca - podobnie jak nie widać końca zapału ludzi do pisania wirusów. Biorąc jednak pod uwagę fakt, że skuteczność tego typu filtrów jest oceniana na ok. 50-70%, wygląda na to, że w tym wyścigu spamerzy są cały czas o krok z przodu. Filtry wymagają też ciągłego utrzymywania odpowiedniej infrastruktury umożliwiającej tworzenie sygnatur, w związku z czym są to rozwiązania raczej drogie. Wspomniane rozwiązanie firmy Brightmail kosztuje 1500 USD rocznie za licencję dla 50 użytkowników. Mocną ich stroną jest jednak to, że nie ma w praktyce możliwości, aby list, który nie jest spamem, został przez oprogramowanie jako taki zakwalifikowany. To bardzo istotny czynnik dla firm, których funkcjonowanie jest związane z nawiązywaniem kontaktu z nowymi klientami za pomocą poczty elektronicznej.

Filtry oparte na regułach działają na nieco innej zasadzie. Najczęściej nie przechowują żadnej bazy danych, którą trzeba by na bieżąco uaktualniać. Zamiast tego analizują treść każdego listu wg pewnych kryteriów. Sprawdzają np. czy list pisany jest wielkimi literami, czy występują w nim pewne słowa kluczowe najczęściej pojawiające się w spamie, jak "YOU WON", "SEX", "VIAGRA", do ilu osób jest adresowany, czy zawiera odnośniki do zewnętrznych stron i do jakich itp. Każda z reguł ma przypisaną odpowiednią wagę wyrażoną pewną liczbą punktów. Jeśli list zbierze określoną liczbę punktów (np. zawiera "podejrzane" słowa kluczowe oraz linki do zewnętrznych stron), jest oznaczany jako spam. Skuteczność takich filtrów jest już całkiem zadowalająca - oscyluje w granicach 90-95%. Dotyczy to jednak tylko najlepszego oprogramowania tego typu, takiego jak bardzo popularny SpamAssasin rozwijany na zasadach open source.

Nie ma niestety róży bez kolców. Okazuje się, że tego typu filtry mają tendencję do oznaczania jako spam listów, które trudno zaliczyć do tej kategorii. Odsetek źle sklasyfikowanych listów sięga ok. 0,5%, co w większości przypadków jest wynikiem niedopuszczalnym, skutkuje bowiem "wycinaniem" uprawnionej korespondencji. Dodatkowo z racji tego, że oprogramowanie to korzysta z konkretnych algorytmów, przed wysłaniem konkretnego listu spamerzy mogą po prostu sprawdzić, czy zdoła on prześlizgnąć się przez dostępne filtry. Szanse na oszukanie filtra są w praktyce spore.

Klasyfikacja wg Bayesa

Thomas Bayes, osiemnastowieczny brytyjski kleryk, opracował metodę pozwalającą, w uproszczeniu, przewidywać prawdopodobieństwo występowania zjawisk w przyszłości na podstawie obserwacji dotychczasowej częstotliwości ich występowania. Metoda Bayesa jest stosowana m.in. do rozwiązywania problemów sortowania i klasyfikowania danych przy wykorzystywaniu uczenia maszynowego, ale także w bankowości i ubezpieczeniach, a więc wszędzie tam, gdzie występuje ryzyko. Najnowszym zastosowaniem jest klasyfikacja wiadomości e-mail pod kątem spamu.

Twierdzenie Bayesa mówi, że dla dwóch niezależnych zdarzeń A i B prawdopodobieństwo wystąpienia B, jeśli wystąpiło A, wynosi:

P(B|A) = (P(B) * P(A|B)) / P(A) = P(A i B) / P(A),

gdzie: P(A) oznacza prawdopodobieństwo, że wystąpi A; P(A|B) oznacza prawdopodobieństwo, że wystąpi A, pod warunkiem że wystąpiło już B; P(A i B) oznacza prawdopodobieństwo tego, że wystąpią zarówno A, jak i B

W odniesieniu do spamu za A uznajemy otrzymanie zwykłego listu, zaś za B - listu ze spamem. Powyższy wzór można by więc odczytać następująco: prawdopodobieństwo tego, że nowy list jest spamem, jest równe prawdopodobieństwu tego, że ten konkretny list jest spamem - ustalonemu na podstawie porównania z dotychczas otrzymanymi listami uznanymi za spam, pomnożonemu przez udział normalnych listów w dotychczasowej korespondencji i podzielonemu przez prawdopodobieństwo tego, że list spamem nie jest - ustalonemu na podstawie porównań z listami uznanymi za spam (jw.).

W przypadku bankowości klasyfikację Bayesa można zastosować do oceny wiarygodności klientów. Można np. stworzyć dwie klasy decyzyjne: pierwsza, to klienci, którzy nie spłacają rat w terminie. Druga to klienci, którzy sumiennie wywiązują się ze swoich zobowiązań. Gdy pojawi się nowy klient, dzięki metodom Bayesa można szacować prawdopodobieństwo, z jakim znajdzie się on w jednej bądź w drugiej grupie, a na podstawie obserwacji spłaty kredytu modyfikować ocenę jakości przyporządkowania jednej z dwóch klas.

Na podobnej zasadzie działają także np. katalogi stron WWW w wyszukiwarkach internetowych. W tym przypadku tworzone są odpowiednie grupy tematyczne (np. sport, wiadomości, rozrywka), którym przypisane są odpowiednie strony.