[Nospam-PL.NET] [Nospam-PL.NET]


Twój IP:
54.83.224.32





Wtorek, 23 XII 2014

wersja do druku [print]

Ofensywna walka ze spamem

Za cenne uwagi dziękuję Darkowi, Szymonowi, Krzyśkowi, Bartkowi i Marcinowi.


Wszystkie metody opisane na poprzedniej stronie[nospam-pl.net], to defensywne formy walki ze spamem - czyli reakcje na spam jaki już otrzymałeś. Istnieją jednak również metody walki ofensywnej, czyli utrudnianie życia spamerom jeszcze zanim ich spam do Ciebie dotrze.

Najczęściej wykorzystywaną przez spamerów metodą zdobywania adresów mailowych jest skanowanie po kolei stron www i wpisywanie do bazy wszystkich znalezionych w Internecie adresów mailowych (o tym jak się przed tą praktyką bronić pisałem na stronie obrona[nospam-pl.net]).

Zatem jedną z metod walki ze spamem jest podsuwanie spamerom do wykorzystania specjalnie spreparowanych adresów mailowych, przy czym można tu wyróżnić 2 metody: pułapki i fałszywe adresy.


Pułapki antyspamowe

Zasada działania pułapki antyspamowej (spamtrapa) jest banalnie prosta: podsunąć robotowi skanującemu Internet adres mailowy, który będzie tak ukryty w kodzie, by nie został zobaczony przez człowieka oglądającego stronę www. Każdy mail przysłany na ten adres będzie automatycznie przekierowywany - nawet bez udziału człowieka (admina lub właściciela strony) - do listy blokującej pocztę z określonego serwera lub od określonego nadawcy. Do takiego przekierowywania można wykorzystać np. procmail'a[nospam-pl.net] , a pocztę ze spamtrapa forwardować do jakiegoś RBL'a[nospam-pl.net]

Dlaczego ? Ano dlatego, że żaden człowiek nie miał ani możliwości, ani powodu by na ten adres przysyłać e-mail, a więc musiał to być spam wysłany na podstawie skanowania Internetu. Nie będę na razie tłumaczył jak zrobić pułapkę - jeśli masz pewną wiedzę o pisaniu stron www, sam sobie z tym poradzisz. Może zresztą za jakiś czas na ten temat też napiszę jakiś artykuł.

Połączenie pułapki ze skryptem umożliwiającym kontakt e-mailowy

Jak pułapka może umozliwić kontakt ? A jednak... może ;-)

  1. Zakładasz sobie spamtrap, np. pulapka_na_kretynow@wp.pl. Jeszcze lepiej, jeśli ten spamtrap, to konto nad którym masz większą kontrolę - np. na Twoim serwerze.
  2. Na swoim serwerze www umieszczasz plik o nazwie takiej jak ten spamtrap. Zgadza się, ten plik ma nazwę z '@' w środku. Końcowka .pl - jak można się domyśleć - oznacza, że jest to skrypt w perlu.
  3. Nazwa tego skryptu może być dowolna, byle wyglądała jak e-mail - ale w takim wypadku w konfiguracji serwera trzeba ustawić, by był on traktowany jak sprypt perla, pythona, php - czy też inny.
  4. W zależonści od tego, w jakim języku jest skrypt, ma on zawartość podobną do :

    Wersja w PHP - przykład

    <?php header ("Location: mailto:moj_prawdziwy_adres@domena.pl"); ?>
    

    Wersja w Perlu - przykład

    #!/usr/bin/perl
    print "Location: mailto:moj_prawdziwy_adres\@domena.pl\r\n\r\n";
    

    Wersja w Pythonie - przykład

    #!/usr/bin/python
    print "Location: mailto:moj_prawdziwy_adres@domena.pl\r\n\r\n";
    

    Oczywiście, zamiast moj_prawdziwy_adres@domena.pl musisz wpisać swój adres oraz sprawdzić, czy biblioteki perl i python są na Twoim serwerze w takim miajscu, jak wpisano w przykładzie. Ważne również, by na początku skryptu nie było zbędnych spacji albo znaków nowej linii.

  5. W kodzie strony umieszczasz swoj adres w postaci podobnej do:
    <a href="pulapka_na_kretynow@wp.pl">napisz do mnie</a>. Uwaga - to nie jest mój adres. Kliknij w link aby poznać prawdziwy. Nigdy nie wysyłaj e-maila na adres jaki widać na stronie.

    Zwróć uwagę na brak mailto:. Bardzo ważne jest również poinformowanie, że należy kliknąć, ponieważ w niektórych przeglądarkach www (np. tekstowych) ten adres może być widoczny, a zatem ktoś mógłby chcieć wysłać list na ten adres e-mailowy.

  6. Harvester zobaczy adres spamtrapa i wpisze go do swojej bazy. Ktoś, kto będzie chciał do nas wysłać maila, kliknie na link, a wtedy skrypt prześle mu nagłówki, wywyłujące jego program mailowy z naszym właściwym adresem.
  7. Całą pocztę, która przychodzić zacznie na adres spamtrapa automatycznie forwardujemy do swoich i cudzych list antyspamowych[nospam-pl.net], a pocztę na nasz prawdziwy adres czytamy :-)

Opisana metoda będzie działać pod warunkiem, że harvester nie umie czytać nagłówków HTTP. Prawdę mówiąc, nie wiem czy któryś harvester to umie, ale mogą się tego w przyszłości nauczyć. Ponadto, skrypt nie musi mieć mylącej nazwy - w takim wypadku ostrzeżenie o tym, że jego nazwa nie jest adresem e-mailowym będzie zbędne.

Fałszywe adresy mailowe

Co się jednak stanie, jeśli automat zamiast rzeczywistego adresu mailowego znajdzie adres nieistniejący ? Jeśli adres ten będzie pochodził z nieistniejącej domeny - to nie uda mu się spamu wysłać i spamer zapcha sobie pasmo transmisyjne zwrotami z serwera SMTP. Jeśli adres zostanie wysłany na fałszywe konto na istniejącym serwerze - spam albo zostanie zwrócony do spamera (jeśli podał prawdziwy adres nadawcy) albo trafi na konto administratora któregoś z serwerów który brał udział w rozsyłaniu spamu - co oczywiści skończy się zablokowaniem spamerowi dostępu do tego serwera.

Zatem metodą na zniechęcenie spamerów do wysyłania e-maili na zeskanowane adresy jest wypełnienie baz adresowych możliwie dużą ilością fałszywych adresów. Oczywiście, aby takie fałszywe adresy zostały znalezione na stronie www, trzeba je jakoś wygenerować, przy czym generowanie pojedynczych adresów nie ma większego sensu, bowiem zginą one wśród rzeczywistych adresów zeskanowanych z innych stron. Zatem warto napisać program, który będzie takie adresy generował - jednym z takich programów jest WPoison, który można sobie zainstalować na swoim serwerze (program napisany w Perlu), można też napisać własny program, który będzie miał tę przewagę, że może działać trochę inaczej od WPoison'a , co utrudni jego identyfikację przez spamerskie "harvestery"[1].

Generator fałszywych e-maili

Tak, mam oczywiście mój, działający, generator fałszywych adresów i może nawet go udostępnię, Zanim jednak to zrobię, musiałbym nad nim jeszcze trochę popracować. Krótko jednak go opiszę - jako wskazówkę dla każdego, kto chciałby napisać własny generator. W ogólności kierowałem się pomysłem i zasadami zaczerpniętymi z WPoison - tyle tylko, ze WPoison nie odpowiadał mi z kilku względów, więc napisałem coś po swojemu.

  1. Sens istnienia generatora polega na wypełnieniu baz adresowych spamerów bezsensownymi, nieistniejącymi adresami, a także adresami innych spamerów - obniżając w ten sposób wartość użytkową takich baz, ponieważ skrypt ten może wygenerować "nieskończoną" ilość fałszywych e-maili.
  2. Generator e-maili jest tak skonstruowany, by robot nie wiedział, że skanuje strony wygenerowane dynamicznie - a więc strony mają taki adres jak zwykłe statyczne strony www (żadnych "?","&", ";", "=" itp.). Napisanie skryptu w taki sposób wymaga nieco specyficznego podejścia, ale zazwyczaj nie jest trudne.
  3. Skrypt angażuje czas robota (co utrudnia mu skuteczne skanowanie Internetu), ponieważ jest napisany w taki sposób, aby przez ponad 90% czasu ładowania kolejnych stron, skrypt ich nie generował, zmuszając robota do czekania (i zapobiegając przeciążeniu serwera na którym skrypt działa).
  4. Jeśli spamerzy będą wysyłali maile na tak wygenerowane adresy - zostaną one albo zwrócone do nich, albo przesłane do admina któregoś z zaangażowanych serwerów, co może spowodować:
    • wypełnienie spamerom skrzynek zwrotami (heh, mało prawdopodobne);
    • zwrócenie uwagi admina domeny z której wysyłają, że ma wśród klientów spamera;
    • zwrócenie uwagi admina serwera docelowego spamu na spamera i zablokowanie go;
    • zwrócenie na spamera uwagi admina serwera ralay'ującego spam.
  5. Istnienie w sieci tego typu generatorów spowoduje, że spamerzy korzystający z hervesterów będą mieli cięższe życie, albo być może wręcz firmy zajmujące się bezmyślnym zbieraniem adresów z Internetu zostaną wypchnięte z rynku, bo koszt "czyszczenia" takiej bazy z fałszywych adresów będzie większy od wartości samej bazy.
  6. Klient - firma która kupiła tak zanieczyszczona bazę raczej zażąda zwrotu pieniędzy od sprzedawcy niż jeszcze raz kupi podobną bazę - zwłaszcza, jeśli w swej naiwności poda w spamie prawdziwy adres zwrotny.
  7. Odnośniki do skryptu generatora znajdują się wyłącznie na stronach www zaopatrzonych w meta tag języka HTML <META name="robots" content="index, nofollow">, zaś każda z wygenerowanych stron ma tag <META name="robots" content="noindex, nofollow"> - czyli nie powinny na nią trafić żadne roboty, które przestrzegają standardowych reguł wykluczających[en]. Ponadto, odnośniki owe mają taką postać, by człowiekowi nie przyszło raczej do głowy ich kliknięcie.
    Zastosowanie tagów "noindex, nofollow", lub odpowiednich wpisów w pliku robots.txt zabezpiecza generowane strony przed skanowaniem ich przez "uczciwe" crawlery[2]. Natomiast jeśli spamerzy nauczą się, że nie warto skanować oznaczonych w ten sposób stron - będzie można przy pomocy tych tagów zabezpieczać przed skanowaniem swój adres mailowy: człowiekowi nie przeszkodzi to w odczytaniu adresu, a harvester w stronę nie wdepnie. Już to byłoby "małym zwycięstwem" nad spamerami, ponieważ zastosowanie tych tagów zabezpieczy przed skanowaniem nie tylko użytkownika danego generatora, ale każdego, kto zechce w ten sposób chronić swój adres mailowy.
    Dodatkowo, w przypadku "gości" przychodzących z adresów IP znanych jako spamerskie, można zastosować odwrotny zapis: <META name="robots" content="index, follow"> - właśnie po to, by taki spamerski robot ugrzązł w losowo generowanych stronach www :->.
  8. IP każdego "gościa" jest odnotowywane w logu, co umożliwia jego późniejsze dopisanie do host_deny lub listy adresów z których poczta jest automatycznie blokowana.
  9. Idealną metodą jest wplecenie pomiędzy tak wygenerowane adresy jakiejś pułapki antyspamowej, specjalnie spreparowanej: wygenerowanej tylko raz i zapamiętanej wraz z danymi zebranymi podczas generowania strony - pozwoli to dokładniej zidentyfikować ewentualnego nadawcę spamu na ten adres i powiązać go z konkretnym robotem.
  10. Warte rozważenia jest również wplecenie pomiędzy fałszywe adresy - adresów rzeczywistych spamerów. Uwaga - może to jednak budzić wątpliwości natury prawnej.
  11. Warto zadbać o to, by określona losowo wygenerowana strona www (mająca losowy adres) zawsze prezentowała podobną zawartość - można to zrobić poprzez zainicjowanie funkcji losowej adresem strony. Warto to zrobić dlatego, że automat skanujący może porównać stronę o danym adresie pokazaną w 2 kolejnych odsłonach (lub po jakimś czasie) - jeśli będą zbyt drastyczne różnice, zostanie to zidentyfikowane jako "podpucha".

Metoda "bannerowa"

Jeśli masz swój generator fałszywych e-maili, możesz go wykorzystać w jeszcze jeden sposób.

W końcu prawie każdy webmaster ma do wyświetlenia jakieś bannery. Część z tego to programy wymiany bannerów, wyświetlanych na grubych setkach czy tysiącach różnych stron. W każdej wymianie bannerów są potrzebne jakieś "zapchajdziury" - najczęściej się je używa na autopromocję, ale autopromocja w wymiarze setek i tysięcy własnych bannerów we własnej witrynie, co miesiąc, nie ma chyba większego sensu...

A przecież wystarczy włączyć do systemu kilka bannerów o niskim priorytecie, w których obrazek będzie małym, niewidocznym gifem, a adres docelowy pobierany z generatora :-D. Generator musi być oczywiście napisany w taki sposób, by generował odnośnik do bannera w postaci mailto:falszywy_email@jakas_domena.

Zwykłe generatory prędzej czy później będą omijane przez harvestery - jeśli właściciel danego spam-bota zorientuje się, że został "wpuszczony w maliny", może tak przekonfigurować robota, by ten więcej nie wszedł na daną stronę. Dla właściciela danej witryny zysk może być taki, że cała witryna zostanie całkowicie pominięta przy skanowaniu. Gdyby jednak więcej webmasterów zastosowało "metodę bannerową" - harvestery będą ugotowane, bo nie będą w stanie przewidzieć na której stronie trafią na fałszywy adres e-mailowy :->.


Generatory fałszywych adresów

  • Wpoison[en] - skrypt w Perlu, autor Ronald F. Guilmette
  • Sugarplum -- spam poison[en] - kombinacja skryptu w Perlu + Apache mod_rewrite, program na licencji GPL. Poza bzdurnymi takstami na wygenerowanych stronach, wyglądają one bardzo realistyczne, i - co chyba ważne - przy kolejnych odsłonach są identyczne. Autor: Devin Carraway
  • blackflag.cgi[en] - skrypt w Perlu, w/g jego twórcy podobny, lecz lepszy od Wpoison, ponieważ generuje strony bardziej podobne do prawdziwych, generuje więcej adresów w bardziej nieprawdopodobnych domenach (co IMHO wcale nie musi być zaletą), może używać wielu nazw domen (hostowanych na tym samym serwerze, co jest zaletą), oraz lepiej zabezpiecza uczciwe crawlery przed indeksowaniem wygenerowanych stron. Wada: kolejne strony wygenerowane pod tym samym adresem mają różną zawartość. Autor: Erik Schorr
  • spam_the_spammers[en] - prosty skrypt w Pythonie, autor: caffeine.
  • Trap for Spammer Robots[en] - prosty skrypt w Perlu, autor: Bruno Wolff III
  • Spambait[en] - skrypt w Perlu, instrukcja do własnoręcznego napisania ;-); Skrypt używa rzeczywistych domen i loginów (wedle uznania). Autor: Aaron W.
  • Cliff's SpamBot Killer[en] - skrypt w Perlu, ale demo coś nie mi chce działać (albo host ma blokadę na moje IP).
  • makemail.f[en] - skrypt w Fortranie, generujący statyczne strony html; autor Michael Brown (1997)

Przypisy

[1] Nazwa "harvester", (żniwiarka) przylgnęła już do spam-botów zbierających adresy mailowe, choć jest wyjątkowo niezręczna. Żniwiarz bowiem zbiera to, co sam posiał i pielęgnował - zaś spamer używa spam-bota do tego, by "żąć, czego nie posiał"...

[2] Jedną z list hostów, które nie przestrzegają standardowych reguł wykluczających można znaleźć w SPEWS (z tym, ze ta lista dotyczy robotów nie przestrzagających wpisów w robots.txt).

Odnośniki


Poprzednie strony:
Metody defensywne »
Walka ze spamem - przez tłumaczenie co to jest spam »

                                                                                                                                 

Data ostatniej modyfikacji: 23 XII 2003

wersja do druku [print]

--REKLAMA-- --REKLAMA--

 

-

Przysięga głazu rzecznego

"W żadnych okolicznościach i pod żadnym pozorem nie kupię niczego, co zostało mi zaoferowane w formie niezamawianej przesyłki elektronicznej. Nigdy też nie będę forwardował do dużej liczby odbiorców listów łańcuszkowych, petycji, masowych przesyłek czy ostrzeżeń o wirusach. Niech powstrzymanie się od tego będzie moim wkładem dla przetrwania społeczności internetowej."

The Boulder Pledge

"Under no circumstances will I ever purchase anything offered to me as the result of an unsolicited e-mail message. Nor will I forward chain letters, petitions, mass mailings, or virus warnings to large numbers of others. This is my contribution to the survival of the online community."

Roger Ebert, 1996

-
 
[Lynx Friendly] [Valid CSS!] [Valid HTML 4.0!] [W3C-WAI WCAG 1.0 Level A] [Vim The Editor]
 
X X

Copyright by Łukasz Kozicki © 2002-2003
witryna hostowana przez home.pl
Privacy Policy