Pytanie jak w tytule z pewnością zadał sobie niejeden internauta, który otrzymał pierwszy spam. Metody pozyskiwania adresów przez spamerów nie są jednak tajemnicą i warto je znać, by zabezpieczyć swój nowy adres e-mailowy. W tym wpisie postaram się opisać zarówno same metody, jak i sposoby ochrony naszego adresu przed napływem niepożądanej poczty.

Upublicznianie adresu

Najlepszą metodą dostarczenia spamerom naszego adresu e-mailowego jest jego upublicznienie, czyli podanie go w otwartej formie na dowolnej stronie internetowej (nawet mało znanej), grupie dyskusyjnej itp. Spamerzy w celu pozyskiwania adresów stosują programy nazywane harvesterami, czyli po polsku „kombajnami”. Są to często skomplikowane aplikacje, które umożliwiają wychwycenie nawet adresów zabezpieczonych.

Kombajny działają różnie, w zależności od medium, które przeszukują. Na przykład kombajn przeszukujący grupy dyskusyjne może po prostu pobierać wszystkie nowe wpisy na wybranych grupach (zazwyczaj wszystkich dostępnych), a następnie przeszukiwać ich treść i nagłówki w poszukiwaniu wzorców przypominających adres e-mail. Z kolei kombajn przeszukujący strony internetowe działa podobnie jak spider, czyli „pająk” wyszukiwarki internetowej. Zaczyna od jednej strony, wyszukuje w niej wzorce, a następnie przechodzi przez wszystkie odnośniki do innych witryn i tam kontynuuje dzieło.

Jak bronić się przed kombajnami

Podstawowym sposobem ochrony adresu e-mailowego przed kombajnami jest niepublikowanie go. Nie należy go podawać szczególnie na:
  • grupach dyskusyjnych (zarówno w nagłówku, jak i treści wpisu),
  • forach dyskusyjnych (np. w podpisie),
  • stronach internetowych (wykonanych samodzielnie, w komentarzach na czyichś stronach itp.).
Oczywiście, nie należy też podawać adresów osób znajomych, ponieważ kombajn nie interesuje się tym, skąd adres wziął się w danym medium, tylko samym faktem, że tam został umieszczony. Złośliwi internauci często podają adresy innych osób na popularnych stronach, by spowodować że nielubiana osoba będzie dostawać więcej spamu. Niestety, często robią to również osoby po prostu nieświadome potencjalnych szkód dla właściciela adresu.

Jeśli jednak nie podamy nigdzie swojego adresu, to nikt prócz naszych znajomych nie będzie go znał, a więc nie będzie się mógł z nami skontaktować. Jest to niedopuszczalne np. w przypadku firm. Dlatego też należy stosować specjalne sposoby ochrony podawanego adresu. Oto kilka z nich:
  • Używanie formularzy na stronach. Jeśli jesteśmy autorem strony i chcemy, by ktoś się z nami skontaktował, możemy utworzyć formularz, w którym nadawca będzie mógł wpisać treść listu, a następnie go wysłać. Pamiętajmy jednak, aby nie podawać adresu w źródle strony. Stamtąd kombajn również będzie mógł go wychwycić. Taką metodę bardzo często stosują firmy, nie należy się więc dziwić jeśli na jakiejś stronie w zakładce „kontakt” zamiast adresu znajdziemy taki formularz. Firma po prostu chce się ochronić przed spamem.
  • Przekształcanie adresu tak, by mógł go zgadnąć tylko człowiek. Załóżmy na przykład, że mamy adres spam@tonid.net (nie należy się martwić, adres podałem specjalnie, albowiem jest to moja pułapka na spam — wszystkie listy wysłane na ten adres automatycznie trafiają jako pożywka do mojego systemu antyspamowego). Tradycyjną formą przekształcania jest dodawanie członu „nospam”, czyli nasz adres moglibyśmy podawać jako spam-nospam@tonid.net. Niestety, wiele kombajnów rozpoznaje już takie najprostsze przekształcenia. Dlatego też czym bardziej nietypowe przekształcenie, tym lepiej (warto też przy przekształcaniu nie używać słów w języku angielskim). Dobrym przekształceniem tego adresu byłoby więc na przykład „spam.usun-wszystko-po-kropce_malpka_tonid_kropka_net”. Oczywiście z przekształcaniem nie należy też przesadzać, ponieważ może się okazać, iż nadawca nie będzie na tyle inteligentny by zrozumieć, co należy zrobić aby z adresu przekształconego uzyskać prawidłowy. Przekształcenia są szczególnie popularne na grupach dyskusyjnych, gdzie istnieje niewiele innych metod możliwych do zastosowania.
  • Odwracalne, proste kodowanie adresu. Adres można zakodować algorytmem łatwo odwracalnym, na przykład ROT-13 lub Base64. Aby zakodować adres przy użyciu ROT-13, możemy użyć tego konwertera. W ten sposób ze spam@tonid.net otrzymujemy fcnz@gbavq.arg. Świadomy internauta od razu rozpozna, że adres został zaszyfrowany przy użyciu ROT-13, ale możemy napisać np. w podpisie wiadomości wysłanej na grupę dyskusyjną, że adres jest zakodowany za pomocą tego algorytmu. Aby zakodować adres przy użyciu Base64 możemy użyć tego konwertera, a odkodować za pomocą dekodera. Adres spam@tonid.net będzie więc wyglądał po zakodowaniu następująco: c3BhbUB0b25pZC5uZXQ=. Niestety, tu koniecznie trzeba podać w jaki sposób został zakodowany, ponieważ większość internautów nie będzie miała zielonego pojęcia, co z takim adresem zrobić.
  • Kodowanie adresu na potrzeby stron internetowych. Istnieje sporo sposobów, by zakodować adres tak, aby był widoczny na stronie internetowej w czytelnej formie, zaś w kodzie strony był zaszyfrowany. Większość kombajnów nie potrafi takich adresów wychwycić (ponieważ analizują kod strony, a nie jej formę wyświetloną), ale zawsze istnieje niebezpieczeństwo, że spamerzy wbudowali już funkcje wychwytujące i dekodujące w swoje programy.
    • Pierwszą metodą, którą możemy tu zastosować jest kodowanie za pomocą tzw. HTML Entities, czyli encji HTML. Możemy do tego zastosować np. ten konwerter. Adres spam@tonid.net będzie miał w kodzie strony postać: spam@tonid.net, ale będzie wyświetlany obsługiwany (i wyświetlany) na stronie (dowód). Uwaga: wiele osób twierdzi, że ta technika ochrony już nie działa.
    • Drugą metodą jest kodowanie za pomocą tzw. URL encoding (użyteczne tylko przy tworzeniu odnośników do wysyłania poczty). Można do tego celu użyć tej strony. W tej formie adres spam@tonid.net wygląda następująco: %73%70%61%6D%40%74%6F%6E%69%64%2E%6E%65%74. Adres jest również obsługiwany prawidłowo przez przeglądarki (dowód). Niestety, chodzą słuchy że ta metoda może również już nie działać (tzn. programy spamerów są w stanie ją obejść).
    • Trzecią metodą jest użycie Javascriptu. Do kodowania możemy skorzystać np. z tej strony. Zastosowany algorytm łączy Javascript z poprzednimi metodami i daje moim zdaniem bardzo wysokie prawdopodobieństwo, że programy spamerów adresu nie wychwycą. Niestety, aby adres został wyświetlony, przeglądarka musi mieć włączoną obsługę Javascriptu (na szczęście w większości przeglądarek jest ona włączona domyślnie). Oto dowód, że metoda ta działa: .
  • Zastosowanie obrazka zamiast adresu. To metoda chyba najbezpieczniejsza, ponieważ nie słyszałem, aby jakiekolwiek programy spamerów stosowały mechanizmy przekształcania grafiki na tekst (OCR). Wadą jest to, że użytkownicy przeglądarek tekstowych oraz osoby niewidome naszego adresu nie zobaczą. Musimy też użyć programu do stworzenia elementu graficznego. Na szczęście istnieją co najmniej dwa rozwiązania, które mogą nam to ułatwić:
    • Serwis hidentity umożliwia automatyczne utworzenie elementu graficznego z naszym adresem e-mail i nie tylko (także np. numerem Gadu-Gadu, ICQ, adresem Jabbera, adresem strony, numerem telefonu itp.). Wystarczy się zarejestrować, podać odpowiednie adresy, wybrać wzór graficzny i wkleić odpowiedni kod na stronie. Jak to wygląda, możecie zobaczyć na stronie głównej tego bloga (w prawej kolumnie). Jest to rozwiązanie bardzo wygodne, ponieważ wszystkie dane są przechowywane na koncie hidentity, a więc jeśli zmienimy adres e-mail (lub założymy nowy), możemy po prostu wprowadzić zmiany w koncie, a wszystkie wyświetlane na innych stronach (w tym np. forach dyskusyjnych) obrazki zostaną automatycznie zmodyfikowane.
    • Ostatnio dzięki serwisowi digg trafiłem na ciekawy pomysł — tekst zrealizowany całkowicie w CSS. Jest to jednak propozycja dla bardziej zaawansowanych webmasterów, albowiem należy przeanalizować kod tej strony i zobaczyć, jak możemy to zrobić samodzielnie.
Ciekawą metodą walki z kombajnami jest walka aktywna, a więc poddawanie im ogromnej liczby fałszywych, nieistniejących adresów e-mail (bądź adresów należących do spamerów). Kombajn nie jest bowiem w stanie sprawdzić, czy adres jest prawidłowy czy nie (może jedynie sprawdzać jego składnię). W ten sposób spamerskie kombajny zostają przepełnione fałszywymi adresami, co powoduje że efektywność wysyłania spamu znacznie się zmniejsza.

Dwoma serwisami, które oferują tego typu usługę, są Antyspam.pl i Spam Poison. Warto podawać adresy tych dwóch stron w linkach na np. swoich blogach czy też w podpisie na forum dyskusyjnym. Możemy oczywiście bezpiecznie wejść na obie strony. Zobaczymy ogromne listy adresów e-mailowych. W przypadku Antyspam.pl są one generowane losowo, natomiast Spam Poison podaje adresy używane przez spamerów. Jedyną wadą jest fakt, że domeny tych serwisów mogą być w łatwy sposób dodane do zablokowanych w spamerskich kombajnach. Ale z czasem i na to przyjdzie rozwiązanie (możemy np. w porozumieniu z autorami serwisów utworzyć poddomeny we własnych domenach — zaproponowałem to twórcom serwisu Antyspam.pl i czekam na odpowiedź).

Złośliwe robale

Inną metodą pozyskiwania adresów przez spamerów jest wykorzystywanie zainfekowanych komputerów. Wyobraźmy sobie, że korespondujemy z osobą, która dodaje nasz adres do książki adresowej w programie Outlook Express. Następnie na komputerze tej osoby zagnieżdża się spamerski robal. Jest on w stanie przeanalizować znajdujące się na dysku dane i pobrać z książki adresowej Outlook Expressa wszystkie zachowane adresy, a następnie albo wykorzystać je od razu do wysyłania spamu, albo przesłać swojemu twórcy, aby z adresów mogły korzystać także inne osoby.

Wbrew pozorom, jest to sytuacja bardzo częsta. W ten sposób spamerzy wychwytują adresy osób, które nie udzielają się publicznie w Internecie i nie publikują nigdzie swojego adresu (bo mają go np. tylko do kontaktów z rodziną przebywającą za granicą). Większość robaków internetowych ma funkcje umożliwiające analizę książki adresowej czy skrzynki pocztowej najpopularniejszych programów pocztowych.

Jak bronić się przed robalami

Niestety, nie możemy praktycznie w żaden sposób ochronić swojego adresu przed takimi robakami, ponieważ nie mamy wpływu na to, co robią użytkownicy do których piszemy (a nawet nie wiemy, co robią). Nie wiemy, jakiego programu używają, czy przechowują stare e-maile, czy dodają nasz adres do książek adresowych. Jedyne, co możemy zrobić, to korespondować z naszego ulubionego adresu z niewielką liczbą zaufanych osób (czyli takich, które dbają o swój komputer i nie dopuszczają do infekcji, a także używają bezpieczniejszych programów pocztowych).

Możemy jednak ochronić adresy naszych znajomych. Oczywiste jest, że powinniśmy stosować dobry, aktualizowany program antywirusowy, ale niezbyt oczywisty może wydawać się fakt, że nie powinniśmy używać Outlook Expressa ani Outlooka. Robaki mają bowiem algorytmy praktycznie do wychwytywania adresów jedynie z najpopularniejszych programów. Używając innego programu (mniej popularnego) ochronimy przechowywane w nim adresy, ponieważ robak nie będzie w stanie znaleźć ich na naszym dysku (o ile oczywiście robaka złapiemy, czego w pierwszej kolejności należy uniknąć).

Uczynni znajomi

Moim zdaniem, z wszystkich programów pocztowych powinna zostać usunięta na dobre funkcja CC (Carbon Copy, czyli Do Wiadomości), a program powinien umożliwiać wstawianie w polu To (Do) tylko jednego adresu. W ten sposób ochronilibyśmy się przed nieświadomością internautów, którzy ujawniają nasz adres osobom trzecim bez naszej zgody. Jeśli bowiem ktokolwiek wyśle list z naszym adresem w CC do innej osoby, ta inna osoba również ten adres widzi (i może np. zachować list lub dodać nasz adres do książki adresowej — patrz punkt poprzedni). Oczywiście większość internautów nie jest świadoma istnienia pola BCC (Ukryte Do Wiadomości) i nie wie, że jeśli tam wstawi adresy wszystkich odbiorców, to żaden odbiorca nie będzie widział adresów pozostałych osób.

Skrajnym przypadkiem głupoty (tak, nie obawiam się tu użyć tego słowa) jest rozsyłanie przez internautów łańcuszków lub śmiesznych obrazków do wszystkich znajomych. Machinalnie klikają na wszystkie adresy w książce i wysyłają bezużyteczny list, jednocześnie dając wszystkim pozostałym odbiorcom nasz adres. W przypadku łańcuszków głupota sięga dalej, ponieważ internauci przekazują list wraz z nagłówkiem zawierającym wszystkie adresy poprzednich odbiorców. W ten sposób jeden list z łańcuszkiem (typu „Bill Gates daje sto dolarów każdemu, kto prześle ten list dalej!” albo „Pilnie potrzebna krew typu AB RH-!”), który trafi do nieodpowiedzialnego internauty (np. z zawirusowanym komputerem) to genialna pożywka dla spamera, który otrzymuje często setki albo tysiące nowych, sprawdzonych adresów.

Jak bronić się przed uczynnymi znajomymi

Niestety, przed ludzką nieświadomością i głupotą nie ma żadnej obrony. Możemy zawsze próbować edukować naszych znajomych (np. pisząc w podpisie, że nie życzymy sobie by nasz adres był wykorzystywany do przesyłania jakichkolwiek łańcuszków lub obrazków, besztając ich po otrzymaniu tego typu listu itp.), ale z moich doświadczeń skuteczność tego typu działań jest znikoma. Prędzej ktoś się na nas obrazi, niż zrozumie czemu nie życzymy sobie, by był nadmiernie uczynny.

Uczynne serwisy internetowe

Wiele serwisów internetowych wymaga podania do rejestracji adresu e-mail. Jaką możemy mieć jednak pewność, że serwis nie współpracuje ze spamerami, albo że bez naszej wiedzy nie publikuje naszego adresu na jakiejś stronie? Żadną.

Ostatnio w Polsce było głośno o dwóch przypadkach opublikowania ogromnych list adresów e-mailowych subskrybentów biuletynów informacyjnych. W obu przypadkach spamerzy, którzy natrafili na takie strony, otrzymali pożywkę dla swoich kombajnów. Za jeden przypadek odpowiedzialna była Grupa Żywiec, zaś za drugi Ministerstwo Transportu i Budownictwa. Z kolei w niedawnym wpisie na swoim blogu Peres informuje, że ma podejrzenia iż adres użyty do rejestracji w serwisie ImageShack został ujawnionym spamerom. Są to niezbite dowody, że rejestrowanie się na żadnej stronie nie gwarantuje bezpieczeństwa adresu.

Jak bronić się przed uczynnymi serwisami

Najlepszym sposobem, by nie ujawniać swojego adresu e-mailowego przy rejestracji jest założenie oddzielnego adresu (darmowego) przeznaczonego tylko i wyłącznie do użycia przy rejestracji w serwisach. W ten sposób możemy też uniknąć otrzymywania „legalnego spamu” czyli wszelakich biuletynów i reklam wysyłanych w zamian za możliwość rejestracji.

Jeśli jednak chcemy mieć wiedzę o tym, jaki serwis jest odpowiedzialny za przesyłanie nam spamu, możemy skorzystać z usług MailNull. Zakładamy tam alias pocztowy, który możemy dowolnie rozszerzać. Jeśli np. nazwa naszego konta w MailNull to tonid, możemy utworzyć (na stronie MailNull), a następnie podać przy rejestracji w ImageShack adres tonid.spamjogger@mailnull.com, a będziemy wiedzieć, że spamer uzyskał ten adres dokładnie z tego źródła, w którym adres został podany. Tak właśnie zrobił wspomniany powyżej Peres, aby dowiedzieć się, iż spamerzy uzyskali jego adres z ImageShack. Uwaga: założenie aliasu na MailNull może być trudne, jeśli dostawca naszego konta pocztowego używa szarych list (wtedy trzeba spróbować założyć konto ponownie po kilku minutach) lub SPF (wtedy trzeba użyć innego konta pocztowego i podziękować dostawcy za to, że uniemożliwia korzystanie z aliasów pocztowych stosując SPF).

Ataki słownikowe

Najbardziej zdziwieni otrzymywaniem spamu są ci, którzy założyli konto, z którego nigdzie jeszcze nie korzystali (a zaczynają otrzymywać na nie spam). Czasem pojawiają się wtedy bezpodstawne podejrzenia o to, że dostawca sprzedaje adresy zakładanych kont. Nie jest to jednak konieczne, by spamer mógł odkryć nasz adres e-mailowy. Może bowiem zastosować atak słownikowy i po prostu... zgadnąć nasz adres.

Szczególnie narażone na zgadywanie są:
  • adresy na popularnych serwisach,
  • adresy składające się z imion i/lub popularnych słów, a także cyfr reprezentujących np. rok urodzenia,
  • adresy domyślne takie jak admin, webmaster, a nawet obowiązkowe postmaster i abuse (niestety, bo z ich posiadania nie może zrezygnować administrator serwera).
Jeśli spamer ma jeden adres w danej domenie, podejrzewa iż domena istnieje. Jeśli ma ich dużo, może być pewien, iż domena istnieje. Wtedy nic nie stoi na przeszkodzie, by próbował zgadnąć inne adresy w istniejącej domenie. Może do tego celu stosować przeróżne metody. Zazwyczaj jednak po prostu używa gotowych słowników zawierających np. popularne imiona, słowa itp. Czasem do adresu dodaje np. dwucyfrowe lub czterocyfrowe liczby (reprezentujące rok) i voila. Mnóstwo gotowych adresów, do których można wysyłać śmieci (nieważne, czy istnieją czy nie, bo przecież spamerzy i tak kradną zasoby innych osób, np. przesyłając spam przez zainfekowane komputery domowe).

Jak bronić się przed atakiem słownikowym

Najprostszą metodą obrony jest wybór nazwy konta, którą będzie trudno zgadnąć. Złą nazwą konta byłaby na przykład tomek1972@tonid.net (nie martwcie się, ten adres nie istnieje), a dobrą: tonid.nie.lubi.spamu@tonid.net (ten też nie istnieje). Czym bardziej nieoczywisty jest adres, tym trudniej spamerowi będzie go zgadnąć i tym mniejsze prawdopodobieństwo, że otrzymamy nań spam.

Aby przekonać się, jak częste są ataki słownikowe, rzućcie okiem na listę adresów, na które spamerzy usiłowali wysłać spam do mojego serwera w przeciągu ostatnich 24 godzin:
  • osmozatonid@tonid.net,
  • relacjatonid@tonid.net,
  • oddaniatonid@tonid.net,
  • sekcjatonid@tonid.net,
  • temperaturatonid@tonid.net,
  • wienkatonid@tonid.net,
  • towarzystwatonid@tonid.net,
  • akwatonid@tonid.net,
  • wodatonid@tonid.net,
  • normalnetonid@tonid.net,
  • muszlowcetonid@tonid.net,
  • ogrzewanietonid@tonid.net,
  • pielegnicetonid@tonid.net,
  • sugestietonid@tonid.net,
  • algaetonid@tonid.net.
To tylko niektóre takie adresy (razem było ich kilkukrotnie więcej). Jak więc widać, ataki słownikowe są bardzo popularne, a programy spamerów w „inteligentny” sposób starają się zgadywać adresy internautów (w moim przypadku adresy były najwyraźniej zgadywane w oparciu o słowa często występujące w moich wpisach na grupie dyskusyjnej poświęconej akwarystyce).

Podsumowanie

Do jakich wniosków można dojść po lekturze powyższych informacji? Chyba tylko do jednego. Czegokolwiek byśmy nie robili, i tak wcześniej czy później spamerzy dostaną nasz adres e-mailowy. To wszystko tylko kwestia czasu.

Należy jednak pamiętać, że ochrona naszego adresu leży w naszym dobrym interesie nie tylko po to, byśmy otrzymywali mniej spamu. Spamerzy czasem używają takich adresów do podszywania się pod nadawcę. Wtedy zaś istnieje dodatkowe zagrożenie, że nieświadomy odbiorca uzna, iż to my byliśmy nadawcą spamu i prócz spamu zaczniemy otrzymywać tony bluzg.

Tomasz Andrzej Nidecki, 05.05 2006