Jak zrobić kuku spamerowi?

Jak wielu innych ludzi, darzę spamerów czystym i płomiennym uczuciem. Jakiś czas temu popełniłem automat do wykrywania spamu na Blox. W zasadzie, to tych skryptów jest kilka i raczej dane zbierają się „na kiedyś”, niż działa to produkcyjnie, ale czasem coś tam podeślę do blokowania. Niemniej, nie jest to pełny automat.

Jeśli chodzi o pocztę, to nie jest u mnie ze spamem źle. Łącznie na wszystkie konta dostaję jakieś małe pojedyncze sztuki dziennie. Część odsiewają dostawcy poczty, przytłaczającą większość tych nielicznych, które przejdą oznacza Thunderbird.

Dodatkowo, jeśli już coś do mnie dotrze, to zwykle trafia na Spamcopa (polecam zarejestrowanie się). Roboty z tym tyle, co kliknięcie Forward i linka w mailu, więc niewiele, a powiadamiane są wszystkie powiązane abuse. Polecam rejestrację. Czasem nawet odpiszą, że zablokowali (i to niekoniecznie nadawcę, bo potrafią reagować także właściciele domen/hostingów na których znajduje się „reklamowana” strona. Tak czy inaczej, o ile nie zadziała to pewnie na spam o niebieskich pastylkach wysyłanych z botnetów (ale liczę, że to odpada na etapie dostawcy poczty, zresztą mało tego typu dociera do mnie), to działa[1] na byznesmenów wysyłających zapytania o możliwość wysłania oferty handlowej do adresatów z baz pozyskanych z ogólnodostępnych źródeł. Znaczy, tłumacząc na polski: na spamerów wysyłających spam, bo (polskie) prawo prawem, ale o tym, czy wiadomość była zamówiona decyduje jednak odbiorca.

Niedawno, podczas szukania rozwiązań antyspamowych trafiłem na ciekawą stronę Email Labirynth, która generuje losowe adresy email w celu zaśmiecenia baz danych harvesterom, a w konsekwencji spamerom. Czyli po pierwsze stracą czas zbierając te adresy, po drugie stracą czas wysyłając maile na nieistniejące adresy, a po trzecie jest spora szansa, że dzięki takim wysyłkom trafią na RBLe. Nie jestem przekonany o skuteczności, ale spróbować IMO nie zaszkodzi. Sceptykom twierdzącym, że spamerzy nie mogą być aż tak głupi od razu mówię, że nie tylko mogą, ale są. Może nie wszyscy, ale większość. No i zwykle mają słabe automaty, a nadzór ludzki kosztuje.

W każdym razie powyższe rozwiązanie ma IMO kilka wad:

  • Brak spamtrapa na każdej stronie. IMHO na każdej(?) stronie wśród generowanych maili powinien być także spamtrap w celu automatycznego zgłaszania IP korzystających z harvestowanych adresów email do abuse/RBLi.
  • Stały adres strony. Wystarczy szczątkowa inteligencja, by nie harvestować tam adresów email.
  • W pełni losowe loginy. Trochę wada, trochę zaleta. W każdym razie wyglądają mało naturalnie i przy odrobinie wysiłku można je odsiać.
  • Brak lokalizacji. Wiadomo, że spamerzy celują z niektórymi produktami raczej w określone grupy klientów, np. klientów z Polski. Dane z ww. strony zdecydowanie nie wyglądają na bazę polskich klientów email.

Koniec końców postanowiłem zrobić swoje rozwiązanie realizujące podobny cel (oczywiście Perl). Na razie mam opracowane częściowe rozwiązanie[2] dla dwóch ostatnich punktów. Punkt drugi też będzie rozwiązany, bo zamierzam opublikować gotowca, którego każdy będzie mógł podpiąć na swojej stronie.

Ponieważ pewnie trochę czasu będę miał dopiero w przyszły weekend, liczę do tego czasu na uwagi dot. sensowności i ew. innych funkcjonalności.

[1] Działa, znam trochę środowisko hostingowe. Przyzwoite hostingi nie przepadają za wysyłającymi spam do zaśmieconych baz adresów email, a z tego co wiem w polskich firmach hostingowych abuse raczej działa.

[2] Jak dam sobie na luz z perfekcjonizmem, to pewnie uznam je za docelowe, przynajmniej w pierwszej wersji.

UPDATE: No i uruchomiłem. Póki co wersja testowa karmnika z adresami email wisi tu.

12 odpowiedzi na “Jak zrobić kuku spamerowi?”

  1. „Dodatkowo, jeśli już coś do mnie dotrze, to zwykle trafia na Spamcopa (polecam zarejestrowanie się). Roboty z tym tyle, co kliknięcie Forward i linka w mailu, więc niewiele, a powiadamiane są wszystkie powiązane abuse. Polecam rejestrację.”

    To nie jest takie fajne jak myślisz. Widzisz tę sytuację tylko od strony użytkownika.

    A wystarczyłoby tylko abyś uruchomił np na swojej stronie Powiadamianie o nowych wpisach na e-mail dla swoich czytelników. I co ? i masz problem!

    Ludzie będę się świadomie rejestrować bo pasuje im otrzymywanie powiadomień o Twoich wpisach na e-mail. Ale po pewnym czasie komuś się znudzi, i zamiast kliknąć w treści wiadomości na linka Wypisz mnie z powiadomień (newslettera) to zgłosi Cię do takiej bazy spamów. Tacy są ludzie, aby szybko i aby im pasowało. Niech jeszcze zrobi to kilka osób. I co ?

    I twoje e-maile wysyłane zgodnie z zapotrzebowaniem ludzi nie będą do nich dochodzić! Bo w różnych bazach będziesz oznaczony jako SPAMER bez żadnych konsekwencji dla osób które Cię na te listy wpisały. Bo tak.

    Przemyśl to.

  2. Problem jest też z tym, że ludzie pisząc komentarze nie chcą podawać swojego adresu email, i często wpisują w to pole totalne głupoty. Albo co gorsza jakieś znane sobie adresy (żeby automat przepuścił), ale nie swoje. Z loginami/podpisami jest podobnie. Z kolei jak zrobisz, że komentować mogą tylko zarejestrowani, prawie nikt nie będzie się chciał rejestrować. Nie ma złotego środka.

    Ja sobie do WordPressa dorobiłem taki gadżet, że jak IP jest serwerowe/hostingowe to se może jedynie czytać, ale komentarz już nie przejdzie – przecież serwery nie biegają po necie i nie komentują, prawda? ;o) Do tego korzystam z blacklisty Sblam. Póki co mi się to sprawdza.

    A że spamerzy są głupi to wiem. Ma to jednak swoje dobre strony, bo dzięki temu np. do dziś doskonale sprawdza się myk z dodatkowym polem input i sprawdzaniem jego zawartości – automaty spamerów walą po polach formularza jak leci i sami się w ten sposób podkładają.

  3. @pawellekpawellek Widzę sytuację od strony użytkownika, ISP oraz… wysyłającego. I mam przemyślane. Co prawda nie ja odpowiadam za wysyłkę u mnie w firmie, a wysyłki robimy przez (zaprzyjaźnioną) firmę obsługującą całość komunikacji (SMS, email itd.), ale mamy też porządną bazę, czyli adresy faktycznie podane przez klientów. I sytuacja o której piszesz z tego co wiem nie występuje.

    Ja osobiście pamiętam, komu dawałem email, czyli gdzie się rejestrowałem i oczywiście korzystam z normalnego unsubscribe, do którego link powinien być w każdym mailu, jeśli się zapisałem z własnej nieprzymuszonej woli. Zresztą zwykle, jeśli tylko mogę, to wybieram brak przesyłek marketingowych.

    listy mailowe z których korzystam również przypominają cyklicznie o uczestnictwie w nich i dają link do wypisania i… AFAIK nie mają problemu opisywanego przez Ciebie.

    Osobna kwestia to wymuszone podawanie adresu (typu by przejść dalej) i wymuszona zgoda na przekazywanie baz podmiotom trzecim, ukryta drobnym drukiem. I wtedy biorca (często N-ty z kolei) takiej bazy, choć niby legalnej, faktycznie może mieć problem. Cóż, koszt pójścia na łatwiznę i zignorowania dobrych obyczajów. IMO większość tych niby kupionych baz to w praktyce zdobycze harvesterów, bo zapytania, czy mogą korzystać z adresu ani mówiącego cokolwiek źródła jeszcze nie spotkałem – od razu oferta i teksty w stylu „adres pochodzi z bazy firmy X pozyskanej z Internetu”. To ja klikać, żeby potwierdzić, że to prawidłowy, czytany przez człowieka w takich przypadkach nie zwykłem i „wypisuję się” via Spamcop.

    Oczywiście jakiś pojedynczy psychopata/złośliwiec czy zwyczajny zapominalski może się trafić, ale też nie jest tak, że na RBL ląduje się po pojedynczym zgłoszeniu czy po kilku zgłoszeniach w długim okresie czasu. No i z RBL można się wypisać, a o byciu na RBL i odrzuconych mailach dowiadujesz się natychmiast (jeśli tylko sprawdzasz logi, a nie wysyłasz na pałę jakimś biednym narzędziem). Więc IMO dramatyzujesz.

    @Monter: Jeśli masz na myśli bloga to nie rozumiem tych ludzi. O ile to ludzie. Poza tym, przyzwoity bloger nie powinien wykorzystywać tych adresów inaczej jak do skontaktowania się z autorem komentarza, jeśli chce coś wyjaśnić/uściślić. Ew. służą do zasubskrybowania wpisów/komentarzy, ale wtedy wychodzi jeden email, w którym trzeba kliknąć linka, by działało. O treści określonej przez WordPressa, więc bezużyteczne dla spamerów. I łatwe do odfiltrowania. I nikt normalny nie zgłosi tego do Spamcopa.

    Co do wycinania serwerów/hostingu – Twój blog, Twój wybór. Ja bym tak nie robił z kilku powodów: ktoś może korzystać z „serwerowego” IP jako proxy/VPN (np. ja, czasami). Duże ryzyko false positives ogólnie (nie da się prosto i z dużą pewnością sprawdzić, czy IP jest z klasy „serwerowej” czy nie. A botów i tak nie wytniesz w ten sposób, bo atakują także z dynamicznych IP.

    Prawdopodobnie niedługo będę się zajmował blogiem na WordPressie, wtedy skrobnę więcej o zabezpieczeniach. Bo na razie mam parę rozwiązań i trochę przemyśleń, ale na własnym WP nie testowałem skuteczności.

  4. Rzadko się niestety zdarza, aby ktoś korzystał z VPN jak Ty, do normalnego/grzecznego chodzenia po sieci. Dzięki mojej zabawce (nie twierdzę, że idealnej) wchodzą sobie np. boty odpalone gdzieś w czeluściach OVH, strona się otwiera, więc robią BUM – a ja im SRU. Tak to działa. Z rozmysłem pozwalam wejść z takich IP, bo 99% ludzi czyta sieć przez własne czytniki RSS wrzucone gdzieś na jakiś hosting lub właśnie przerz Proxy/VPNy. Ogólnie mało osób komentuje w stosunku do ilości wejść, więc póki co takie podejście się sprawdza. Ale ja mam tylko dane ze swojej własnej strony.

    Odnośnie „nie ludzi” – zdarzały mi się takie wpisy. Komentujący nie chcą zdradzić swojego maila, a czasem nawet loginu, ale chcą coś napisać. Czasem przeciwko czemuś lub komuś. Zdarza się i już. Nie ogarniam tego i nawet nie próbuję.

    A na WordPressie obserwuję jeszcze inną zależność – więcej jest przypadków próby zarejestrowania sobie konta lub dodania nowego wpisu, niż spamerskiego komentarza. Póki co jest tak gdzieś 70 do 30 %, przynajmniej u mnie.

  5. @Monter Myślałeś o cloudflare na froncie? Mogłoby odsiać sporo botów. Ew. Akismet. Ponoć niezły, na pewno popularny. Nie że bezproblemowy, bo miałem z nim jako komentujący problem, ale bdb. support.

  6. Myślałem, ale póki co mam jakąś dziwną niechęć do takich rozwiązań. Bez nich jest też większy fun, no i się mogę czegoś nauczyć, mam okazję pokombinować samemu, po prostu ruszyć szare komórki.

  7. A ja tez cos takiego mam zainstalowane, dodatkowo sleep() przed wysłaniem danych. Czy coś pomaga na dużą skalę? Nie wiem. W ostateczności harvestery adresów dodadzą moją stronę (więc zatem i mój adres mailowy na niej opublikowany) do czarnej listy – dla mnie OK.

  8. @GDR! Na dużą skalę to na pewno nie. Ale ziarnko do ziarnka… 😉 Z ciekawości: zerknij w logi na ile to jest u Ciebie odwiedzane.

    Moją testową wersję publikuję powyżej, w aktualizacji wpisu (i liczę na uwagi).

  9. Jak dla mnie pomysł średni. Potrzeba by wygenerować naprawdę masę takich maili, aby taki spamer to odczuł. Ktoś kto wysyła spamik do miliona użyszkodników raczej nie odczuje kilkudziesięciu dodatkowych lewych maili 🙂

  10. Też coś takiego kiedyś popełniłem. Nie podoba mi się że generujesz maile w rzeczywistych domenach polskich dostawców. Czym sobie na to zasłużyli żeby ich spamem tak dojeżdżać?

    1. Z jednej strony rozumiem, z drugiej jest parę powodów, by używać istniejących domen.
      1. Odsianie nieistniejących jest trywialne.
      2. Zwykle dostawcy poczty mają limity, np. per IP, więc jeśli spamer wyśle N maili na nieistniejące adresy, to o tyle mniej wyśle na istniejące w danej jednostce czasu.
      3. Więcej maili na nieistniejące konta to łatwiejsze wykrywanie spamujących IP i zgłaszanie ich do RBLi.
      Last but not least, wielkiej odwiedzalności tam nie ma, więc przypuszczam, że efekt dla ISP jest przyzerowy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *