26

„Z arsenału admina” – pierwsza część sztuczek spamowych i zabezpieczeń antyspamowych

Autorem artykułu jest Andrzej Butkiewicz, Kierownik Zespołu Funkcjonowania Poczty WP.PL. Dziś problem spamu dotyczy niemal każdego użytkownika internetu. Administratorzy starają się wprowadzać coraz nowsze zabezpieczenia, dzięki którym korzystanie ze współczesnych systemów pocztowych jest w ogóle możliwe. Gdyby nie ochrona antyspamowa, to w codziennej porcji korespondencji znajdowalibyśmy setki lub nawet tysiące e-maili ze spamem! Bez wątpienia […]

Autorem artykułu jest Andrzej Butkiewicz, Kierownik Zespołu Funkcjonowania Poczty WP.PL.
Dziś problem spamu dotyczy niemal każdego użytkownika internetu. Administratorzy starają się wprowadzać coraz nowsze zabezpieczenia, dzięki którym korzystanie ze współczesnych systemów pocztowych jest w ogóle możliwe. Gdyby nie ochrona antyspamowa, to w codziennej porcji korespondencji znajdowalibyśmy setki lub nawet tysiące e-maili ze spamem! Bez wątpienia doprowadziłoby to do paraliżu wszystkich dużych serwisów poczty elektronicznej na świecie.

Korzystając z okazji, chciałbym przedstawić arsenał technik antyspamowych, jakimi dysponuje współczesny admin. Czasy, gdy do zapewnienia ciągłości działania systemu pocztowego wystarczyła instalacja jednego rodzaju oprogramowania (często dostarczanego wraz z systemem operacyjnym) bezpowrotnie minęły. Dzisiejsze systemy ochronne to ciągły wyścig, polegający na tworzeniu coraz bardziej wyrafinowanych mechanizmów, które będą w stanie chronić użytkownika przed udoskonalanym spamem.

Ktoś zapyta: w jaki sposób można udoskonalić spam? Jest to przecież zwykły e-mail zawierający reklamę, na ogół w formie tekstu lub grafiki. Proszę jednak zauważyć, że spam musi zostać w jakiś konkretny sposób dostarczony do skrzynki odbiorcy. Najprostszym sposobem jest oczywiście wysłanie takiego spamu ręcznie, z własnego komputera domowego. Tak też się działo na początku ery spamerów. Jednak człowiek jest istotą z natury leniwą, więc ręczne wysyłanie maili zostało zautomatyzowane.

Najpierw pojawiły się programy do automatycznej wysyłki, a następnie botnety oraz wirusy automatycznie wysyłające spam z milionów zainfekowanych komputerów. Szerokie pole do popisu jest także w obszarze treści przesyłanego spamu. Kiedyś wystarczyła bezpośrednia reklama w postaci zdjęcia i tekstu. Dziś, aby ukryć spam przed filtrami, stosuje się rozmaite sztuczki zmieniające zawartość treści wiadomości, np. poprzez zniekształcenia niektórych słów lub bardziej zaawansowane techniki, polegające na preparowaniu odpowiedniego kodu HTML. Jednym z przykładów może być e-mail w HTML, w którym odbiorca widzi jedno proste zdanie zachęcające do zakupu. Tymczasem w źródle tego e-maila znajduje się kilka tysięcy wersów „Romea i Julii”, napisanych czcionką o rozmiarze 1 i dodatkowo w kolorze tła. Internauta otrzymujący taki list odczyta jedynie ofertę sprzedaży, a automat zostanie zmylony tysiącami innych wpisów, nie mających nic wspólnego ze spamem.

Jak widać, udoskonalanie zarówno metod przesyłania spamu, jak i samej zawartości, można przedłużać praktycznie w nieskończoność. Spójrzmy zatem na wybrane mechanizmy ochronne, którymi dysponują administratorzy i dzięki którym mamy w ogóle szansę na komunikację za pomocą poczty elektronicznej.

SPF (Sender Policy Framework)

Jednym z najprostszych zabezpieczeń, które jednocześnie wykazuje się bardzo wysoką skutecznością, jest SPF. Nie chroni bezpośrednio przed spamem, lecz zapobiega podszywaniu się pod innego nadawcę. Sfałszowany e-mail zostanie od razu wykryty po stronie odbiorcy i odrzucony lub przesunięty do folderu SPAM. Wysyłanie e-maili, których nadawca podszywa się pod kogoś innego jest bardzo popularnym sposobem na dostarczanie dużej liczby niechcianej korespondencji. Jest to o tyle groźne, że w miejsce oferty (spamu) może zostać wysłany e-mail zachęcający do wejścia na stronę udającą formularz logowania do banku lub serwisu społecznościowego (tzw. phishing). Po wprowadzeniu prawidłowego loginu i hasła w fałszywy formularz, użytkownik traci dostęp do swojego konta, z wieloma tego faktu konsekwencjami.

Jak działa SPF?

Można by rzec, działa tak jak Ty czy ja, gdy otrzymujemy klasyczny (papierowy) list. Oczywiście żaden szanujący się admin nie będzie korzystał z tak zacofanej technologii, jednakże spróbujmy sobie wyobrazić tę nieprawdopodobną sytuację. Tak więc otrzymaliśmy list. Nie patrząc na kopertę, otwieramy go i czytamy: „Cześć, mam pilną prośbę, pożycz mi 3 stówy, najlepiej prześlij na podane niżej konto. Pozdrawiam – Celina”. Załóżmy, że faktycznie Celina jest naszą koleżanką, lecz po przeczytaniu wiadomości zapala się światełko alarmowe. Dlaczego Celina wysłała list, zamiast zadzwonić lub po prostu poprosić osobiście o pomoc? Sprawdzamy kopertę, na której, niestety, brak nadawcy, lecz, dzięki oczytaniu sir Arthurem C. D., analizujemy stempel pocztowy. Pochodzi on spoza granic naszego kraju. Wydaje się nieprawdopodobne, że Celina, z którą wczoraj do późnych godzin wieczornych piliśmy herbatę, wysłała list, prosząc o pożyczkę. Wykazując się bystrością umysłu ścisłego, uznajemy list za fałszywkę i wyrzucamy do kosza. Właśnie zadziałaliśmy identycznie jak SPF!

Schemat_działania_SPF

Z technicznego punktu widzenia (można pominąć ten akapit jeśli ktoś nie lubi słów: DNS, połączenie SMTP, adresy IP), pomysł wygląda następująco: administrator serwera w domenie mojasuperdomena.com wpisuje do rekordu TXT (w DNS tej domeny) wszystkie adresy IP, z których wysyłana jest poczta w jej imieniu. Jest to jedynie informacja. To tak, jakbym chodził po mieście z naklejką na czole o treści „listy w swoim imieniu wysyłam tylko z adresu: ul. Traugutta 115C”. Od tej pory każdy, kto otrzyma ode mnie list, powinien sprawdzić czy faktycznie został nadany z ul. Traugutta. Analogicznie serwer odbiorcy, do którego wysłano e-mail z domeny mojasuperdomena.com, powinien zapytać DNS z jakiego adresu IP można wysyłać korespondencję w jej imieniu. Jeśli adres IP wpisany w DNS nie zgadza się z adresem połączenia podczas sesji SMTP, oznacza to fałszywkę.

DKIM (DomainKeys Identified Mail), oraz trochę o SSL (Secure Socket Layer)

Teraz będzie rzecz o kryptografii. Bardzo to modne słowo, już samo jego brzmienie podnosi bezpieczeństwo o 10 pkt. I powiem szczerze, to naprawdę działa.

Od wielu lat istnieje coś o pięknej nazwie „kryptografia klucza publicznego”, lub „kryptografia asymetryczna”. Gdyby był to twór fizyczny, śmiało mógłby pojawić się na wystawie sztuki nowoczesnej i konkurować z „nośnikiem treblinek”.

To doprawdy wspaniały wynalazek. Wyobraźmy sobie, że chcemy zaszyfrować wiadomość i przekazać ją adresatowi, naszej koleżance Celinie. Najpierw musimy wymyślić klucz szyfrujący, a następnie wysłać ten klucz Celinie, by mogła odczytywać nasze wiadomości. Problem w tym, że pomiędzy nami a Celiną krąży Ziutek. Może on podsłuchiwać nasze rozmowy (z tego też powodu chcemy je szyfrować). Skoro jednak może podsłuchać rozmowę, to może także przechwycić nasz klucz szyfrujący. Na nic nam wtedy szyfrowanie.

Schemat_komputer

Prawdopodobnie kryptografia asymetryczna wzięła się właśnie z takiej potrzeby. Pomysł jest prosty. Wymyślono specjalny sposób szyfrowania, w którym wiadomość można szyfrować kluczem nr 1 (publicznym), a odszyfrowywać jedynie innym kluczem, nr 2 (prywatnym) – i na odwrót. Teraz sprawa wygląda tak: Celina w specjalnym programie tworzy parę kluczy, publiczny oraz prywatny, które działają tylko razem. Klucz publiczny jest dostępny dla wszystkich, więc zaczajony w serwerowni Ziutek również ma do niego dostęp. My szyfrujemy wiadomość tym kluczem i wysyłamy do Celiny już w postaci zaszyfrowanej. Celina do odszyfrowania wiadomości używa klucza prywatnego, którego nigdy do nas nie przesłała i nikt nie mógł go przechwycić. Ziutek próbując odszyfrować wiadomość za pomocą klucza publicznego otrzymuje w wyniku tzw. krzaki. Istnieje jednak niebezpieczeństwo, że Ziutek poprosi o pomoc admina Mundka i razem przeprowadzą atak man-in-the-middle. Jest to jednak temat na osobny artykuł.

Gdzie taka technika jest jeszcze stosowana? Otóż w SSL. Każda strona internetowa chroniona za pomocą SSL to tak na prawdę komplet kluczy (w uproszczeniu). Przeglądarka internetowa, wchodząc na daną stronę, pobiera jej klucz publiczny, którym szyfruje całą swoją korespondencję (np. przekazywany login i hasło). Serwer po drugiej stronie, korzystając z klucza prywatnego, jest w stanie wszystko odszyfrować bez ryzyka „podsłuchu”.

Kolejnym miejscem zastosowania tej technologii jest podpis elektroniczny. Czasem istnieje potrzeba przesłania wiadomości otwartym tekstem (bez szyfrowania), lecz zależy nam, aby odbiorca był pewien, że to my jesteśmy nadawcą oraz że nikt w międzyczasie nie zmodyfikował treści. Aby przesłać wiadomość do Ziutka, musimy zrobić dwie rzeczy.

Po pierwsze, trzeba wygenerować tzw. skrót wiadomości. Skrót to utworzony specjalnym programem ciąg znaków, znacznie krótszy od wiadomości źródłowej, lecz z zagwarantowaną unikalnością. Oznacza to, że każda wiadomość ma dokładnie 1 unikalny skrót. Następnie skrót szyfrujemy – uwaga – NASZYM kluczem prywatnym. Wynik wstawiamy do e-maila, jako nasz podpis. Co robi Ziutek? Odbiera e-mail, a następnie odszyfrowuje podpis za pomocą NASZEGO klucza publicznego (którym przecież dysponuje, bo jest publiczny). Odszyfrowany podpis to skrót. Można teraz łatwo sprawdzić, czy skrót pasuje do treści, czy może ktoś wprowadził po drodze jakąś jej korektę.

Na koniec dochodzimy do DKIM. Gdy zna się już technologię kryptografii asymetrycznej, technika DKIM wydaje się banalnie prosta. Otóż, serwer pocztowy tworzy skrót z kilku wybranych pól nagłówka pocztowego (np. Od, Do, Temat) i szyfruje go własnym kluczem prywatnym. Klucz publiczny serwera dostępny jest w internecie, zapisany w DNS danej domeny (podobnie do SPF). Każdy adresat wiadomości może dzięki temu sprawdzić czy wiadomość została wysłana faktycznie z tego konkretnego serwera nadawcy.

Schemat_działania_DKIM

W Poczcie Wirtualnej Polski stosujemy mechanizm WP-Trusted. To program partnerski, w którym obecnie uczestniczą: Allegro, Alior Bank oraz PayPal. Wiadomości przesyłane przez partnerów są weryfikowane (na podstawie SPF + DKIM) i oznaczane w interfejsie WWW specjalną ikoną Bezpieczny Nadawca. Dzięki temu nasi użytkownicy mają pewność, że korespondencja związana np. z ich operacjami finansowymi pochodzi z wiarygodnego źródła.

WP_trusted

Kilka dobrych rad, ułatwiających wirtualne życie

Świat zmienia się w niesamowicie szybkim tempie. Chcemy żyć coraz wygodniej, korzystając ze wszystkich nowych technologii. Pamiętajmy jednak, że warto być świadomym konsumentem i nadążać za nowinkami nie tylko poprzez ich posiadanie, ale również zrozumienie ich działania.

Zadbajmy o aktualizację systemów antywirusowych na swoich komputerach. Logując się do banku czy innego ważnego dla nas serwisu, sprawdzajmy czy adres, pod który wchodzimy jest prawidłowy. Nie klikajmy we wszystkie linki, które podsyłają nam znajomi, a przynajmniej nie z tego samego komputera, z którego dokonujemy płatności. Twórzmy skomplikowane hasła, inne dla każdego serwisu, ale przede wszystkim miejmy wyobraźnię i głód wiedzy o rzeczach, z których codziennie korzystamy.

W kolejnym artykule z cyklu „Z arsenału admina” poruszę inne sprytne sposoby na walkę ze spamem, m.in. systemy reputacji czy twierdzenie Bayesa.

Zdjęcie tytułowe pochodzi z serwisu Shutterstock.