Metody walki z niezamawianą treścią (kamil@witecki.net.pl) 19 maja 2010
Czym jest spam? SPAM Definicja Niechciana i niezamawiana wiadomość elektroniczna Niezależna od odbiorcy treść Nadawca przeważnie czerpie korzyści z wysłania wiadomości
Historia i etymologia I Definicja Słowo SPAM jest nazwą popularnej, w USA, mielonki wieprzowej Pierwsza wiadomość, którą uznaje się za spam, została wysłana już w 1978 r. - było to masowe zaproszenie na urodziny 12 największych spamerów w pierwszym kwartale 2010 roku[1]: 1 USA - 13.1% 2 Indie - 7.3% 3 Brazylia - 6.8% 4 Korea południowa - 4.8%
Historia i etymologia II Definicja 5 Vietnam - 3.4% 6 Niemcy - 3.2% 7 UK - 3.1% 8 Rosja - 3.1% 9 Włochy - 3.1% 10 Francja - 3.0% 11 Rumunia - 2.5% 12 Polska - 2.4% pozostali - 47.3%
Pole rażenia spamu I Definicja Związane z pocztą elektroniczną Generowane listy odbiorców, Zbieranie adresów w internecie, Kradzieże danych, książek adresowych itp. Związane z dowolną treścią elektroniczną Komentarze na forach, Generowanie stron w celu pozycjonowania innych witryn, Niechciana oferta handlowa itp. jako wiadomości na komunikatorach, w serwisach społecznościowych itp. Związane ze szkodliwym wpływem na komunikacje
Pole rażenia spamu II Definicja Zabezpieczenia antyspamowe skutecznie utrudniają dostarczanie zamawianego mailingu Powodują również problemy z pojedynczymi wiadomościami
Szkodliwe aspekty spamu Definicja Może zawierać treści obraźliwe, pornograficzne itp., Zabiera czas i przestrzeń na serwerach kradnąc w ten sposób zasoby operatorów i użytkowników, Zwiększa koszta pracy osób korzystających zawodowo z poczty elektronicznej, Poczta elektroniczna została pozbawiona wielu przydatnych funkcji ze względu na problem spamu
Metody przewdziałania zjawisku spamu Badające treść wiadomości, zabezpieczające komunikację między serwerami, wykorzystujące sztuczną inteligencje
Blacklistowanie hostów i adresów Przez blacklistowanie uznajemy umieszczanie na specjalnych listach pozycji zakazanych i późniejsze porównywanie odpowiednich własności wiadomości z tymże indeksem 100% pewność, że z danego adresu nie nadejdzie już niepożądana wiadomość Spamerzy mogą generować adresy email Spamerzy mogą korzystać z sieci prywatnych serwerów SMTP i/lub serwerów OpenRelay
Blacklistowanie hostów i adresów Przez blacklistowanie uznajemy umieszczanie na specjalnych listach pozycji zakazanych i późniejsze porównywanie odpowiednich własności wiadomości z tymże indeksem 100% pewność, że z danego adresu nie nadejdzie już niepożądana wiadomość Spamerzy mogą generować adresy email Spamerzy mogą korzystać z sieci prywatnych serwerów SMTP i/lub serwerów OpenRelay
Blacklistowanie hostów i adresów Przez blacklistowanie uznajemy umieszczanie na specjalnych listach pozycji zakazanych i późniejsze porównywanie odpowiednich własności wiadomości z tymże indeksem 100% pewność, że z danego adresu nie nadejdzie już niepożądana wiadomość Spamerzy mogą generować adresy email Spamerzy mogą korzystać z sieci prywatnych serwerów SMTP i/lub serwerów OpenRelay
Blacklistowanie zakazanych słów Podobnie jak poprzednio tylko na poziomie treści. 100% pewność, że nie otrzymamy wiadomości zawierających niepożądane ciągi znaków (np. Viagra) Spamerzy mogą zmieniać pisownię, zmuszając nas do budowania olbrzymich słowników Nie każda wiadomość zawierająca zakazane słowo jest spamem
Blacklistowanie zakazanych słów Podobnie jak poprzednio tylko na poziomie treści. 100% pewność, że nie otrzymamy wiadomości zawierających niepożądane ciągi znaków (np. Viagra) Spamerzy mogą zmieniać pisownię, zmuszając nas do budowania olbrzymich słowników Nie każda wiadomość zawierająca zakazane słowo jest spamem
Blacklistowanie zakazanych słów Podobnie jak poprzednio tylko na poziomie treści. 100% pewność, że nie otrzymamy wiadomości zawierających niepożądane ciągi znaków (np. Viagra) Spamerzy mogą zmieniać pisownię, zmuszając nas do budowania olbrzymich słowników Nie każda wiadomość zawierająca zakazane słowo jest spamem
Whitelistowanie SPAM Przez whitelistowanie należy rozumieć tworzenie indeksów zawierających tylko dopuszczalne wartości 100% pewność, że otrzymamy pocztę tylko od zaufanych dostawców i nadawców Problem z wiadomościami od ludzi, których nie mamy na liście
Whitelistowanie SPAM Przez whitelistowanie należy rozumieć tworzenie indeksów zawierających tylko dopuszczalne wartości 100% pewność, że otrzymamy pocztę tylko od zaufanych dostawców i nadawców Problem z wiadomościami od ludzi, których nie mamy na liście
Whitelistowanie SPAM Przez whitelistowanie należy rozumieć tworzenie indeksów zawierających tylko dopuszczalne wartości 100% pewność, że otrzymamy pocztę tylko od zaufanych dostawców i nadawców Problem z wiadomościami od ludzi, których nie mamy na liście
Aproksymacyjne blacklistowanie słów Można pokusić się o przeszukiwanie list na obecność słów podobnych do obecnych na blacklist. Wiadomości zawierające V1agra również zostaną odfiltrowane Tak samo wiadomości zawierające zupa, kura, viara,...
Aproksymacyjne blacklistowanie słów Można pokusić się o przeszukiwanie list na obecność słów podobnych do obecnych na blacklist. Wiadomości zawierające V1agra również zostaną odfiltrowane Tak samo wiadomości zawierające zupa, kura, viara,...
Aproksymacyjne blacklistowanie słów Można pokusić się o przeszukiwanie list na obecność słów podobnych do obecnych na blacklist. Wiadomości zawierające V1agra również zostaną odfiltrowane Tak samo wiadomości zawierające zupa, kura, viara,...
Greylistowanie SPAM Greylisting jest czymś pomiędzy white i black listingiem. Najpierw tymczasowo odrzuca prośbę o dostarczenie wiadomości umieszczając nadawcę na tymczasowej białej liście. Powtórna wysyłka odbywa się już bez problemów. Blokuje wszelkie próby wysłania dużej ilości wiadomości przez automaty W przypadku powodzenia można w czasie potrzebnym na powtórne nadanie ustalić adres nadawcy Powoduje opóźnienia w dostarczaniu zwykłej poczty, które można rozwiązać whitelistingiem
Greylistowanie SPAM Greylisting jest czymś pomiędzy white i black listingiem. Najpierw tymczasowo odrzuca prośbę o dostarczenie wiadomości umieszczając nadawcę na tymczasowej białej liście. Powtórna wysyłka odbywa się już bez problemów. Blokuje wszelkie próby wysłania dużej ilości wiadomości przez automaty W przypadku powodzenia można w czasie potrzebnym na powtórne nadanie ustalić adres nadawcy Powoduje opóźnienia w dostarczaniu zwykłej poczty, które można rozwiązać whitelistingiem
Greylistowanie SPAM Greylisting jest czymś pomiędzy white i black listingiem. Najpierw tymczasowo odrzuca prośbę o dostarczenie wiadomości umieszczając nadawcę na tymczasowej białej liście. Powtórna wysyłka odbywa się już bez problemów. Blokuje wszelkie próby wysłania dużej ilości wiadomości przez automaty W przypadku powodzenia można w czasie potrzebnym na powtórne nadanie ustalić adres nadawcy Powoduje opóźnienia w dostarczaniu zwykłej poczty, które można rozwiązać whitelistingiem
Greylistowanie II I SPAM Jako greylisting czasami rozumie się też technikę polegającą na blokowaniu adresów podejrzanych o wysyłanie spamu np. ze względu na generowanie zbyt dużego ruchu. W sytuacji, gdy serwer wykryje próbą ataku z danego hosta lub adresu email, dodaje go do temporal blacklist, czyli blacklistuje go na określony czas. Po wygaśnięciu listy ponownie pozwala na korzystanie ze swoich usług. Blokuje wszelkie próby wysłania dużej ilości wiadomości przez automaty Analizując listy adresów i hostów można próbować ustalić potencjalnych spamerów
Greylistowanie II II SPAM Powoduje problemy z rozsyłaniem masowego mailingu, np. newsletterów
Nolisting SPAM Technika polegająca na ustanowieniu domyślnym serwerem pocztowym serwera nieodpowiadającego i zapewnienie działającego serwera pomocniczego Tania i niewymagająca dodatkowych kosztów Skuteczna Wymusza wykonanie dwóch prób nadania dla każdej wiadomości Spamerzy nie zawsze trzymają się standardów
Nolisting SPAM Technika polegająca na ustanowieniu domyślnym serwerem pocztowym serwera nieodpowiadającego i zapewnienie działającego serwera pomocniczego Tania i niewymagająca dodatkowych kosztów Skuteczna Wymusza wykonanie dwóch prób nadania dla każdej wiadomości Spamerzy nie zawsze trzymają się standardów
Nolisting SPAM Technika polegająca na ustanowieniu domyślnym serwerem pocztowym serwera nieodpowiadającego i zapewnienie działającego serwera pomocniczego Tania i niewymagająca dodatkowych kosztów Skuteczna Wymusza wykonanie dwóch prób nadania dla każdej wiadomości Spamerzy nie zawsze trzymają się standardów
Sender Policy Framework Sender Privacy Protocol[3] Zabezpiecza komunikację pomiędzy serwerami dostarczającymi pocztę Oparty jest o architekturę DNS - wymaga wpisu w rekordzie TXT Zapewnia wierzytelność pochodzenia wiadomości Wymaga modyfikacji, które mogą uniemożliwić wysyłanie poczty przez prawdziwe serwery
Sender Policy Framework Sender Privacy Protocol[3] Zabezpiecza komunikację pomiędzy serwerami dostarczającymi pocztę Oparty jest o architekturę DNS - wymaga wpisu w rekordzie TXT Zapewnia wierzytelność pochodzenia wiadomości Wymaga modyfikacji, które mogą uniemożliwić wysyłanie poczty przez prawdziwe serwery
Sender Policy Framework Sender Privacy Protocol[3] Zabezpiecza komunikację pomiędzy serwerami dostarczającymi pocztę Oparty jest o architekturę DNS - wymaga wpisu w rekordzie TXT Zapewnia wierzytelność pochodzenia wiadomości Wymaga modyfikacji, które mogą uniemożliwić wysyłanie poczty przez prawdziwe serwery
DKIM I SPAM DomainKeys[2] potwierdzają autentyczność domeny nadawcy oraz spójność wiadomości Wykorzystuje kryptografię asymentryczną (domyślnie RSA) oraz funkcję haszującą (domyślnie SHA-256) do tworzenia podpisów wiadomości Sprawdzanie domeny oparte jest o architekturę DNS 1 Odbiorca otrzymuje wiadomość z adresu john@example.com 2 Sprawdza nagłówki wiadomości, jeśli spełniają warunki odnośnie wymaganych wartości i tagów pobiera selektor z nagłówka (np. s gamma) 3 Odbiorca pobiera klucz prywatny nadawcy john@example.com wykorzystując domenę s gamma. domainkey.example.com
DKIM II SPAM 4 Wykorzystuje do tego zapytanie do serwera DNS o wartości rekordów TXT domeny s gamma. domainkey.example.com 5 Wykonuje kanonikalizację wiadomości i nagłówków (oznacza to usuwanie zduplikowanych spacji itp.) po czym tworzy hash wiadomości i sprawdza podpis używając klucza publicznego pobranego z DNS 6 Jeśli podpisy się zgadzają oznacza to, że wiadomość nie została uszkodzona i nadawca faktycznie wykorzystywał serwer w danej domenie
DKIM III SPAM Zapewnia wierzytelność pochodzenia wiadomości Zapewnia integralność wiadomości Może być stosowany opcjonalnie nie psując komunikacji ze starszymi serwerami Sprawdzenie kluczy może być kosztowne Nie można sprawdzić wiadomości w trybie offline Może być podatna na podszywanie się pod serwery DNS Spamer może podpisać wiadomość np. na gmail.com, a później rozsyłać wiadomość do innych odbiorców masowo
Twierdzenie Bayesa[4] Naiwna klasyfikacja Bayesa Niech (Ω, F, P) będzie przestrzenią probabilistyczną, wtedy Ω = n T i i,j i j T i T j = = i=1 X Ω P(T i X ) = P(T i ) P(X T i) P(X )
Naiwna klasyfikacja Bayesa Twierdzenie o prawdopodobieństwie całkowitym Niech (Ω, F, P) będzie przestrzenią probabilistyczną, wtedy n Ω = T i i,j i j T i T j = i P(T i ) > 0 = i=1 n X Ω P(X ) = P(X T i ) P(T i ) i=1
Naiwna klasyfikacja Bayesa Zastosowanie powyższych do klasyfikacji treści I Zauważmy, że nie możemy wprost określić, czy dana wiadomość jest spamem (zdarzenie to nazwiemy C), ani też jakie jest bezpośrednie prawdopodobieństwo, Możemy jednak przyjąć na podstawie statystyk, że 80% wiadomości jest spamem, Mamy zbiór testowych wiadomości T i przyporządkowanie f : T > 0, 1 mówiące, czy dana wiadomość jest spamem, Wiadomości te zawierają słowa ze zbioru F, posługując się f możemy określić P(F i ) - prawdopodobieństwo, że dane słowo występuje w spamie
Naiwna klasyfikacja Bayesa Zastosowanie powyższych do klasyfikacji treści II Teraz możemy określić P(C F 1,..., F n ) używając wzoru Bayesa: P(C F 1,..., F n ) = P(C) P(F 1,..., F n C) P(F 1,..., F n ) Co z kolei możemy przedstawić jako P(C F 1,..., F n ) = P(C, F 1,..., F n C) P(F 1,..., F n )
Naiwna klasyfikacja Bayesa Zastosowanie powyższych do klasyfikacji treści III Idąc dalej tym tokiem rozumowania można zauważyć, że dla każdej treści i każdej klasy wiadomości mianownik nie ulega zmianie. Dlatego interesowały nas będą tylko wartości licznika P(C, F 1,..., F n ) P(C, F 1,..., F n ) = P(C) P(F 1,..., F n C) = P(C) P(F 1 C) P(F 2,..., F n C, F 1 ) =...
Naiwna klasyfikacja Bayesa Zastosowanie powyższych do klasyfikacji treści IV Postępując tak dalej i zakładając niezależność zdarzeń F i, F j, czyli że i j P(F i F j ) = 0 otrzymujemy i j P(F i C, F j ) = P(F i C), a stąd mamy P(C F 1,..., F n ) = p(c) n i=1 p(f i C) P(F 1,..., F n )
Naiwna klasyfikacja Bayesa Zastosowanie naiwnej klasyfikacji Bayesa I Mając model teoretyczny zbudowanie klasyfikatora Bayesa nie stanowi problemu: 1 Ustalamy prawdopodobieństwo wystąpienia spamu (np. licząc średnią ilość wystąpień spamu w reprezentatywnej próbce) 2 Wybieramy zbiór testowy, w którym określono, czy dana wiadomość jest spamem, czy też nie 3 Określamy prawdopodobieństwo wysąpienia słowa w spamie zliczając jego ilość jego wystąpień w tymże i dzieląc przez sumaryczną liczbę wystąpień Tak przygotowany mechanizm można uznać za naiwny klasyfikator Bayesa,
Naiwna klasyfikacja Bayesa Zastosowanie naiwnej klasyfikacji Bayesa II Możemy dodać element uczenia naszego klasyfikatora w momencie ręcznego klasyfikowania wiadomości - wystarczy przeliczać przechowywane prawdopodobieństwa i dodawać nowe wyrazy do rodziny F
SPAM Naiwna klasyfikacja Bayesa Metoda samoucząca się wykorzystuje metody sztucznej inteligencji Dostosowuje się do warunków użytkowania Jej skuteczność została potwierdzona w wielu programach (np. Thunderbird) Zdarzają się błędy zarówno pierwszego jak i drugiego typu Jest zdecydowanie najkosztowniejsza obliczeniowo
SPAM Naiwna klasyfikacja Bayesa Metoda samoucząca się wykorzystuje metody sztucznej inteligencji Dostosowuje się do warunków użytkowania Jej skuteczność została potwierdzona w wielu programach (np. Thunderbird) Zdarzają się błędy zarówno pierwszego jak i drugiego typu Jest zdecydowanie najkosztowniejsza obliczeniowo
SPAM Naiwna klasyfikacja Bayesa Metoda samoucząca się wykorzystuje metody sztucznej inteligencji Dostosowuje się do warunków użytkowania Jej skuteczność została potwierdzona w wielu programach (np. Thunderbird) Zdarzają się błędy zarówno pierwszego jak i drugiego typu Jest zdecydowanie najkosztowniejsza obliczeniowo
Wnioski SPAM Jest jeszcze wiele do zrobienia w tej kwestii - żadna metoda nie jest idealna, Dużą nadzieją darzone są metody oparte na bazie kryptografii oraz sztucznej inteligencji, niestety, są one kosztowne obliczeniowo,
Podziękowania Dziękuje za uwagę i zapraszam na kolejny wykład.
Bibliografia I Dirty dozen spam-relaying countries revealed by sophos, q1 2010. Domainkeys identified mail (dkim). Spf: Project overview. M. Sahami, S. Dumais, D. Heckerman, and E. Horvitz. A bayesian approach to filtering junk e-mail. In AAAI 98 Workshop on Learning for Text Categorization, 1998.