Pewnie większość z Was już czytała o upadku Blue Security - twórców Blue Froga - systemu anty-spamowego. Jednak niespecjalnie dużo osób o tym później napisało. Nie wiem... Ja uważam, że to coś, może niekoniecznie nowego, ale na pewno ważnego. Upadek Blue Security pokazuje na przykładzie, że spam jest bardzo ściśle powiązany ze środowiskami przestępczymi, które skorzystają z wielu środków w ochornie swoich interesów. Jak pisze Tomek Nidecki: Przypuścili atak, w którym prócz Blue Security z Sieci chwilowo zniknęło prawie 2000 dużych serwisów internetowych. Jest on dowodem na to, że wszelkie nowoczesne zabezpieczenia okazują się nieskuteczne, gdy mamy do czynienia z internetowym terroryzmem. 2000 serwisów to sporo :| A chodziło "tylko" o spam...
Nie ma Blue Froga - trzeba więc jakoś inaczej zwalczać spam. Na szczęscie nie musiałem długo nad tym myśleć, bo wpadłem dzisiaj przez przypadek do Tomka Nideckiego i dowiedziałem się jak dokarmiać "kombajny".
Po przeczytaniu tekstu i 10 minutach też pomagam Harvey'owi :). Dużo się nie napracowałem, a coś co uważam za obowiązek każdego Świadomego Użytkownika Sieci, spełniłem.
Zaczęło się od narzekań Symka na zwiększającą się liczbę codziennie odfiltrowanego spamu na koncie na Gmailu. Wykombinował chłopak, że zamieni, w linku z mailem (mailto:), @ na [at]. Mleczarz jak zawsze zjechał Symka za pomysł i zaproponował użycie pięknego [orangutan] zamiast [at], co miało by zmylić ponoć nie tak głupie spamboty.
(Od razu dodaję, że piszę co mi się wydaje - nic mądrego nie czytałem i mogę się bardzo mylić.)
Postawmy się jednak na miejscu programisty tworzącego spambota. Jak taki powinien działać po odczytaniu strony? Najprościej - odszukać linki z adresem zaczynającym się od mailto: i zająć się tym co następuje dalej. Na początek sprawdźmy czy mail jest w porządku, czyli czy ma budowę ktos-cos@serwer.domena. Część maili tak podawana (np. Symka do dzisiaj) już trafiają do bazy. Teraz co z udrzuconymi? Na początek posprawdzałbym występowanie ciągów typu at, dot, nospam, itd. Niektóre bym pousuwał, resztę pozamieniał (np. [at] na @) i wrócił do początku (czyli do validacji adresu).
Przeglądnąłem właśnie około 30 losowych stron szukając w ich kodzie słowa mail. Nie znalazłem żadnego adresu w mailto zakodowanego w jakikolwiek sposób. Co więcej - niektórzy podają maile w sekcji <head> strony. Pytanie więc - czy opłaca się spowalniać spambota, wbudowując w niego algorytm do odkodowywania maili?... Nie wiem :P Nie jestem spamerem.
Powiedzmy jednak, że opłaca się, a my chcemy jeszcze lepiej zabezpieczyć naszą skrzynkę. Co teraz trzeba zrobić? Mój spambot zacząłby od poszukiwania adresów zapisanych w mailto, więc podajmy maila nie jako linka, a jako tekst, po ludzku (mój mail to palka@pralka.pl).
Mamy kolejne wyzwanie dla spambota. Czego teraz szukać? Bez wątpienia zacząłbym od znajdowania adresów po nazwach serwerów (wcześniej musiałbym stworzyć bazę tych główniejszych, czy mniej głównych). Czyli np. szukamy @gmail.com, @yahoo.com, @interia.pl, a później to co wcześniej.
Tylko czy wysyłanie spamu na takie konta ma sens? Na Gmaila - raczej nie, na inne nie wiem. Większe serwery mailowe mają zazwyczaj dość dobre filtry (chociaż patrząc na Interię, gdzie mam swoje drugie konto, to chyba nie do końca tak jest). Inaczej ma się sprawa przy trochę mniejszych serwerach, gdzie takie filtry to tylko marzenie użytowników. Bazę takich serwerów już ciężej stworzyć, więc wyszukiwanie po nazwach serwerów odpada. Został nam już tylko orangutan do tropienia. Coś mi się jednak wydaje, że szukanie po @ średnio ma sens, ale mogę się mylić...
Co więc zrobić, żeby maksymalnie się zabezpieczyć? Można użyć jeszcze encji. Jakiś RFC o tym traktował, ale nie mogę znaleźć który, więc przyjmijcie, że tak też można :]. Encji używają między innymi na Osiolkach, którym raczej zaufać można.
Jeśli komuś się ten sposób podoba, to w zakodowaniu maila pomaga funkcja PHP ord().
Podsumowując - najoptymalniejszym sposobem na zabezpieczenie adresu jest zapisanie go w treści strony i przy pomocy encji.
Niestety... Nie tylko spamboty są dla nas zagrożeniem. Trzeba pamiętać, że maila podajemy na forach, przy róźnych rejestracjach do serwisów. Nie zawsze wiemy co się z naszymi danym dzieje. Oczywiście Gazeta nie sprzeda naszego maila, ale zawsze możemy być pewni swojego bezpieczeństwa. No i są jeszcze wycieki...
Jeśli zamierzamy się nagle od dzisiaj zacząć super zabezpieczać, to tak jak zacząć się zabezpieczać od drugiego stosunku (super porównanie, co nie? :D). Dziecko może być już w toku (zainteresowani wiedzą o co chodzi :D) i ile gumek nie naciągniemy, to dziecko będzie. Tak samo - podany i zindexowany mail pewnie już sobie krąży pomiędzy bazami danych spamerów i lepiej chyba założyć nowego.
Co do samego zabezpieczania. To trzeba wspomnieć jeszcze o mailach zapisanych w obrazkach (polecam tutaj sposób Riddla) - nie zapominajmy o dostępności (!), maile generowane przez JS i różne rebusy, typu: [pierwsza litera mojego imienia][moje nazwisko]@gmail.com.
Jak ktoś chce sobie jeszcze poczytać (choć nie sądzę, żeby dotarł aż tutaj :D), to polecam adresy, o których zapomniałem, a które przypomniał mi Oleq dopiero przed chwilą:
Patrząc na długość tego tekstu... Dochodzę do wniosku, że wolę dobry filtr na Gmailu niż się tak męczyć :)
PS. Całość dopełnia jeszcze komentarz Mleczarza.
PS2. I jeszcze apropo zagrożenia na zindexowanie - "Email Address Harvesting: How Spammers Reap What You Sow" (pierwsza część tekstu).