Na navigaci | Klávesové zkratky

Experiment s maskováním e-mailů před roboty

Jak účinně zamaskovat e-maily před zraky spamových robotů? To měl zjistit půlroční experiment. Jenže výsledky jsou docela překvapivé.

Trocha teorie

Důležitým zdrojem, kde spammeři získávají e-mailové adresy, jsou webové stránky. Těmi procházejí roboti a adresy hromadně extrahují. Proto se doporučuje zapisovat e-maily ve formě pochopitelné člověku, avšak nepochopitelné stroji. Například ve tvaru franta (at) example.cz. Jenže i tento zápis může některým lidem připadat matoucí, naopak robot se mu může přizpůsobit. Proto se vymýšlejí stále sofistikovanější způsoby, jak adresu zakamuflovat (klíčové slovo: obfuscate email).

V této souvislosti se pochlubím s nápadem, jak neviditelně zastřít e-mail pomocí HTML komentáře. Použil jsem ho v Texy2 a nahradil jím méně přístupné (at) zavináče z Texy 1.

Jenže je otázka, jak chytří spamoví roboti skutečně jsou? Který způsob maskování je dostatečný? Proč to nevyzkoušet.

Roboti pod lupou

Jako pokusného králíka jsem použil tento blog. GTPR 6 a cca 350 stránek obsahu by mělo škodnou přilákat.

Protože jsem od robotů žádné zázraky nečekal, nejprve jsem ověřil, jestli vůbec převádějí HTML entity na znaky (v řeči PHP: zavolají html_entity_decode). Pokud by je totiž zmátlo primitivní používání entit, nemusel bych experimentovat dál.

Na všechny stránky La Trine jsem na půl roku umístil skryté pastičky:

// 1) nechráněná e-mailová adresa v textu stránky
<a href="mailto:foo">test@example.com</a>

// 2) nechráněná e-mailová adresa jako odkaz
<a href="mailto:test@example.com">foo</a>

// 3) "mailto:" chráněné HTML entitami
<a href="mai&#108;&#116;&#111;&#58;test@example.com">foo</a>

// 4) zavináč chráněný HTML entitou
<a href="mailto:test&#64;example.com">foo</a>

// 5) kombinace bodů 3) a 4)
<a href="mai&#108;&#116;&#111;&#58;test&#64;example.com">foo</a>

Test ukázal, že náhrada zavináče HTML entitou je zcela dostačující ochranou. Po půl roce dorazily jen tři spamy! A to ještě mohl mít na svědomí slovníkový útok.

Tím bych mohl článek ukončit. Nejlepší prevence se jmenuje &#64;. Jenže…

Skutečné zdroje e-mailových adres

Jak jsem zmínil, do pastiček č. 4 a 5 spadly jen tři spamy. Návnady č. 2 a 3 přilákaly 85 kousků a prim pochopitelně drží zcela nechráněný e-mail se 126 zářezy.

Jenže, 126 spamíků za půl roku je nějak podezřele málo. Do mé schránky jich víc dorazí za jediný den! Jak je to možné?

Po pravdě, netuším. Nejspíš se webové stránky staly zcela okrajovým zdrojem e-mailových adres. Spameři už loví jinde. Možná se zaměřují na malware, který šíří do cizích počítačů. Záškodnický program pak sám rozesílá spam a e-mailové adresy čerpá z poštovních klientů (adresář + doručená pošta). Nebo je to úplně jinak…


Související:

Komentáře

  1. Bochi #1

    avatar

    Úspěšnost té jednoduché „entitové“ metody mě docela překvapuje, myslel jsem, že se to roboti už dávno „naučili“. Takže díky za zajímavý test.
    Mimochodem, po vyzkoušení různých metod (kromě jiné i této) jsem nakonec skončil u nahrazení „mailto:…“ odkazem na skript s e-mailovou adresou ukrytou v parametrech, který provede přesměrování. Zatím se to zdá být neprůstřelné.

    před 17 lety
  2. Jakub #2

    Některá chytrá řešení je lepší nepublikovat. Teď abych pomalu začal přemýšlet na další přijatelnou ochranou (kdo ví kolik prodejců Viagry mluví česky).

    před 17 lety
  3. Pavel Jaroš #3

    avatar

    Hezký experiment, ale nevím, zda maskování adres není už dneska zbytečná věc. Já zadávám svojí e-mailou adresu všude, kde to jde a spam mi sice chodí, ale 99,9 % spamu zachytí už filtr na serveru, takže se ke mě nikdy nedostane.

    před 17 lety
  4. Ivo #4

    Mě nejvíce spamů začne chodit po registracích do katalogů. Proto využívám jen seznamácký email a od spamu mám relativně pokoj.

    před 17 lety
  5. lengy #5

    avatar

    Nejlepší řešení bývají nejjednodušší. Vyzkouším to na novém e-mailu a uvidíme, nakolik je to opravdu účinné. Každopádně díky za tipy od dalších komentujících. Také si myslím, že spamoví roboti jsou na ústupu a nevyžádaná reklama půjde jinou cestou.

    před 17 lety
  6. Radim Smička #6

    avatar

    Po pravdě řečeno si myslím, že největší zdroj spamů pramení ze samotného používání email schránky. Mám mail neco@example.com a vživotě jsem ho nedal na web, i když hledám to neco v Googlu nic to nenajde. Není to free mail, že by to někdo proda spamerům. Ale přesto na něj chodí 100 spamů denně (kdybych vypnul spam filtr samozřejmě). Podle mě je to tím, že se ten mail používá, čili pošlu mail kamarádovi ten má zavirovaný počítač a ejhle jeden nový mail účet pro spammery 🙂.

    před 17 lety | reagoval [14] David Grudl
  7. Jiří Bureš #7

    avatar

    Pokud není chyba v měření, tak je to docela dobrá odpověď všem, kteří v různých diskuzích a managerských mééétincích radí, jak (ne)používat e-maily na webových stránkách.

    před 17 lety
  8. Limonádový Joe #8

    avatar

    Spameři nepoužívají jen roboty k vyhledávání adres. Adresy info@něco.tld, admin@něco.tld, atp. jsou snad na každé doméně. Stejně tak není problém napsat generátor znaků a domyslet si miliony adres na různých freemailech. Stačí seznam častých jmen a příjmení, protože adres ve tvaru jmeno.prijmeni, prijmeni.jmeno, jprijmeni, atd. jsou tuny. Nějaké vymýšlení, jak skrýt emailovou adresu, je dnes ztráta času. Vše obstará dobrý spamový filtr a vzhledem k tomu, že není problém mít zdarma Gmail na svojí doméně, není co řešit. Veškeré ochrany jednou stejně selžou a roboti se je naučí prolomit, stejně jako se naučili číst capatchu.

    před 17 lety
  9. Jakub Hejda #9

    pro Limonádový Joe: Souhlasím s tím, že je mnohem jednodušší způsob k získání emailových adres. Hlavní zbraní proti spamu je spamfiltr.

    Na druhou stranu, je řada robotů kteří získávání emaily po staru – procházením webů. Já používám teď většinou emaily ve tvaru

    span class email jmeno.schranky ( zavináč ) domena.cz span

    a javascriptem nechám nahradit všechny elementy span se třídou email , které obsahují (zavináč).

    před 17 lety
  10. Lukee #10

    avatar

    Mně osobně třeba přijde dost neefektivní procházet nějaké náhodně vybrané weby, abych s trochou štěstí narazil na stránku s konktatky, kde bude uvedený jediný email na webmastera.

    Když už bych já dělal nějakého takového robota záškodníka, napsal bych ho třeba tak, aby každý den vlezl do diskusí na Novinkách, kde jsou všechny emaily ve tvaru Jsem.Prognostik (seznam.cz). Z toho už lze email vycucat hravě.

    Jestli někdo chce vyhrát spamovací soutěž u Atlasu, tady má návod jak na to 🙂

    před 17 lety
  11. MiSHAK #11

    avatar

    IMHO nejlepším spamovacím robotem bude hledač Gravatarů. MD5ka už byla označena za slabou šifru (vedlejší kanály) a když bude spammer líný ji prolomit, může ji využít jako ověřování cenných emailu.

    před 17 lety | reagoval [23] Acci
  12. Radek Matěj #12

    Myslím, že ve své hypotéze alternativních zdrojů e-mailových adres pro spammery se mýlíš. Určitě je pro ně malware zdrojem adres stejně jako např. řetězové e-maily, ze kterých lidé nemažou seznam adresátů.

    Tipuji spíš, že spameři sbírají funkční e-mailové adresy do databáze, kterou pak při dalších spamech využívají nebo ji snad dokonce prodávají. Firma, pro kterou jsem kdysi dávno pracoval, jeden takový seznam koupila – tehdy to ještě nebylo nelegální, spamy byly ještě v plenkách. No a čím déle tvoje e-mailová adresa existuje, v tím více spamerských databázích je obsažena. Nemůže to být tím?

    před 17 lety
  13. Vojtěch Kopal #13

    avatar

    2MiCHaK: LOL … MD5 je hash a neexistuje žádný! způsob jak získat původní heslo. Jediné co lze tím (tvým) průlomem najít je řetězec znaků, který má shodný md5 hash s originálním heslem. Takže představa, že by šlo získat email z gravatarů je naprosto chybná.

    před 17 lety | reagoval [14] David Grudl [15] MiSHAK
  14. David Grudl #14

    avatar

    #6 Radime Smičko, tak nějak to bude. Procházení stránek je velmi neefektivní metoda, lepší je dolovat adresy přímo v „místě použití“. Jenže proti tomu asi žádná preventivní obrana nebude…

    #13 Vojtěchu Kopale, pomocí Rainbow Table lze k MD5 otisku dohledat odpovídající e-mail během několika sekund až minut (online lze vyzkoušet třeba zde https://dan.com/…cracking.com?…, http://md5.rednoize.com/ nebo https://web.archive.org/…bitch.de:80/)

    před 17 lety | reagoval [18] rony [23] Acci
  15. MiSHAK #15

    avatar

    #13 Vojtěchu Kopale, Způsob jak získat původní heslo je slovníkový útok… U emailu by takto šlo ověřovat uživatelské jméno na vybraném serveru právě pomocí slovníku. Aniž by se ověřovalo na samotném emailovému serveru.

    Ale omlouvám se za špatně napsanou větu, šlo mi hlavně o ověřování adres resp. jejich vhodnosti pro spamování.

    před 17 lety
  16. veena #16

    Supr práce!
    Tohle by se dalo taky možná nějak využít pro komentáře. Co takovej name atribut zadanej entitama. Pošle ho prohlížeč na server decodovanej a spam robot ne?

    před 17 lety
  17. rony #17

    avatar

    dgx: podla mna je pol roka kratka doba. myslim, ze ten „zber“ e-mailov je trosku zlozitejsi. zrejme to funguje aj tak, ze niekto zozbierava adresy a v nejakom odstupe sa mu podari zozbierane zoznamy predavat dalsim subjektom – proste dalej distribuovat a jeho klienti si to postupne pridavaju k svojim inym databazam, takze emailova adresa sa dostava k dalsim spammerom pocas dlhsieho obdobia a az potom zrejme dochadza k masovejsiemu spamovaniu.

    zaroven suhlasim s tym, ze znacna cas spamu je generovana sietami zombie pocitacov a tam zrejme sa spam posiela hlavne na emailove adresy dostupne lokalne aj ked samozrejme podla mna by zombie trojan mohol citelne zatazovat stroj neustalym „indexovanim“ obsahu disku takze je celkom mozne, ze vyuzivaju skor vymyslanie adries k domenam – cojaviem spamer posle botnetu prikaz „ospamuj domenu example.org“ a zombie si uz konkretne adresy „vymysla“.

    před 17 lety
  18. rony #18

    avatar

    #14 Davide Grudle, teoreticka moznost ochrany voci dolovaniu existuje – znepristupnit e-mailove adresy – cojaviem jednoduchsim sifrovanim obsahu ulozeneho na disku vlastne podobnymi metodami ako robi dgxov texy a malo by to platit pre messagebazu emailovych klientov, cache prehliadacov atd.

    trojany na spamovanie si zrejme ulahcuju indexovanie tym, ze uz vopred vedia v ktorych suboroch a zlozkach maju adresy hladat.

    před 17 lety
  19. Vilém Málek #19

    Ten nápad se skrytým komentářem se mi velice líbí. Už jsem kdysi někde viděl něco podobného, ale nevěnoval jsem tomu pozornost, nicméně teď se na to kouknu pořádně 😉

    (P. S.: Nemám rád, když soft myslí za mě a předělává mi poctivé textové smajlíky na stupidní módní obrázky 2.0. Ne nedpostatně se tím deformuje sdělení – něco jako když někteří blogeři „upravují“ nevhodné komentáře ;–)

    před 17 lety | reagoval [20] David Grudl [29] roman
  20. David Grudl #20

    avatar

    #19 Viléme Málku, taky jsem nad tím tuhle přemýšlel a nakonec zvolil kompromis: černobílé smajlíky. Z dvojice „stupidní & módní“ jsem tak odstřihl to „módní“ :–)

    před 17 lety | reagoval [21] zirafka
  21. zirafka #21

    avatar

    #20 Davide Grudle, Nejlepsi obrana proti deformaci smajliku je skryt je pred roboty (-;

    před 17 lety | reagoval [22] David Grudl
  22. David Grudl #22

    avatar

    #21 zirafko, to ti nepomůže, nastavím:

    $texy->emoticonModule->mode = TexyEmoticonModule::ZIRAVKA;
    před 17 lety | reagoval [32] zirafka
  23. Acci #23

    avatar

    #11 MiSHAKu, Ovšem není problém pro gravatary používat neexistují e-mail. Navíc ověřovat pomocí MD5 otisku existenci e-mailové adresy by asi nebylo moc výhodné…

    #14 Davide Grudle, Pochybuji, že v jakékoliv duhové tabulce bude adresa moje, tvoje nebo kohokoliv jiného.

    před 17 lety | reagoval [24] Vilém Málek
  24. Vilém Málek #24

    #23 Acci, Tak o tom moc nepochybuj, tam jsou tuny slov. Tuhle jsem dostal nabídku na RT o rozsahu několika stovek GB…

    před 17 lety | reagoval [31] sairon
  25. Anton Piták #25

    Dosť neskoro tento experiment prišiel, eventuálne jeho výsledky. Trik s kódovaním entít je napr. na softpae.com už niekoľko rokov. Pre ešte vyššiu ochranu pred robotmi je doplnený aj krátky javascript, takže aj následné použitie html_entity_decode neprinesie robotovi vhodný výsledok. Jedina nevýhoda je trochu znásilnená prístupnosť, pri vypnutom JS je potrebné adresu skopírovať ručne.

    před 17 lety
  26. pracuji_v_utajeni #26

    No co se tyce spambotu, co „lovi“ e-maily na netu, tak tam je to myslim celkem jednoduche – proste misto skryvani e-mailu ten e-mail zverejnime… a ne jeden, ale rovnou tisice… tisice falesnych mailu kazdou hodinu – to je spravne krmeni pro poslusneho spambota…

    Problem ale bude asi hlavne s tim, ze, jak spravne rikas, e-maily se asi uz davno nelovi z webovych stranek… :-/

    před 17 lety
  27. Ondra #27

    Někteří spam boti používají renderovací jádra prohlížečů a email vyberou JavaScriptem.

    Kdysi jsem četl mnohem obsáhlejší průzkum, jak roboti emaily získávají, bylo zapojeno asi 600 mailů na nejrůznějších serverech. Už ho bohužel asi nenajdu, ale myslím, že tam říkali, že zdrojem mailů č.1 jsou newsy – odtud dojde spam na 100%. K tomu adresáře zavirovaných outlooků. Některé viry ani nebyly zaznamenány, protože to prostě byl jen VBscript, který odeslal maily někam. A to je vše. Web jako zdroj byl až kdesi ke konci.

    Osobně momentálně používám <img alt="&#64;">, vložený pomocí javascriptu. Pokud někdo nemá, místo zavináče je mezera. Se neda níc platný 🙂 Nemají si vypínat JS a místo toho seknout s MSIE.

    před 17 lety | reagoval [28] Ondra
  28. Ondra #28

    #27 Ondro, Oprava:
    „který odeslal maily někam. A to je vše“
    mělo vypadat:
    „který odeslal maily někam, a nic víc.“
    Samozřejmě že zdrojů mailů je víc…

    před 17 lety
  29. roman #29

    avatar

    #19 Viléme Málku, Tvrdiť že smajlíky sú web2.0 je taká istá kravina ako tvrdiť že nitriansky corgoň je hurbanovské pivo len preto že sa vyrába v hurbanove..

    před 17 lety
  30. DFly #30

    A ke spamum take patri odhlaseni nevyzadane posty.
    Zkuste na nize uvedene strance zadat urcite neexistujici e-mail
    🙂
    http://ca.avenija.com/…ubscribe.asp?…

    před 17 lety
  31. sairon #31

    avatar

    #24 Viléme Málku, Na reversnutí mailu by byly potřeba přinejmenším tabulky se sadou znaků všech malých písmen abecedy, zavináčem a tečkou a pro slova o délce minimálně od 10 znaků výše. Můj mail má znaků 16. RT lowalpha-numeric (character set má 36 znaků) pro slova od 1 do 8 znaků mají 36 GB a je v nich 2901713047668 (= 2.9×1012) kombinací. Pokud by byla pro slova od 1 do 16 znaků, pokrývala by asi 8.2×1024 kombinací. Pokud RT nabývají velikosti přímo úměrně, měla by pak asi 1,3 TB. Takže, stejně jako Acci, pochybuji, že tam bude můj mail.

    před 17 lety
  32. zirafka #32

    Parse error: parse error, unexpected 'V', expecting 'F' in #22 David Grudl on line 2

    před 17 lety
  33. zaachi #33

    avatar

    Spameri maji jak databaze emailu, tak databaze webovych stranek. Z tech potom generuji weby, na kterych se hleda. V zadnem pripade se nevraceji na weby, kde toho moc nenasli.
    Kdysi davno jsem v cecku udelal takoveho jednoducheho robota, ktery hledal emaily na webech.
    Pokud na tom danem webu nasel vice nez minimalni pocet emailu, ulozil si jej do databaze pro pozdejsi hledani. Stejne tak si ulozil hash cele stranky, aby zde mohl v budoucnu hledat a overit, zda na strance je neco noveho. Vetsinou se takto do databaze ukladaly adresy, kde byli diskuse a podobne.
    Prvni co jsem osetril bylo orezani poznamek a nahrazeni html entit.
    Potom jsem vytvoril jednoduche sablony pro emaily: email@neco.cz, email(at)neco.cz, email(at)neco(dot)cz, email (at) neco (dot) cz, atp.
    Pokud nasel na strance externi odkaz, otestoval zda uz zde nebyl, a pokud ne, pridal jej opet do databaze.
    Pridal jsem nekolik vychozich adres, kde ma zacit hledat a asi po hodine jsem mel databazi, ktera obsahovala temer 300 emailu.
    --- kdyby se nekdo chtel inspirovat 🙂

    Bohuzel si myslim, ze v dnesni dobe, z pohledu webmastera ci programatora, je boj se spamem zbytecny a marny. V dnesni dobe jsou spameri chytrejsi a jak se rika, vetsinou o sto kroku vepredu.
    Databaze emailu si mezi sebou prodavaji a neustale je doplnuji. Takze kdyz jeden spamer vlastni vas email, je jenom otazkou casu, nez jej vlastni i ostatni.
    Nekde na internetu jsem celt, ze problem Spamu bude vyresen do nekolika malo let, pomoci prosazeni Challenge/Response systemu. Tento zpusob je nejjednoduzsi a uzivatele se prizpusobi.
    Podle me by to chtelo zodpovednejsi pristup hlavne od tech, kteri spamerum poskytuji moznosti odesilat emaily, to znamena ISP a spravci serveru. Chtelo by to proverovat a kontrolovat mnozstvi odesilanych zprav. Povolovat port 25 jenom tem IP adresam, ktere si to vyzadaji a potom proverit zda neni open relay.
    Obavam se vsak, ze boj se spamem nebude tak jednoduchy a spam tady bude porad.

    před 17 lety | reagoval [34] sairon
  34. sairon #34

    avatar

    #33 zaachi, Po hodině jen 300? Zajímalo by mě, kolik by nasbíral Tvůj robot na help fóru Spolužáci.cz. Autoři nové verze Spolužáků jsou prostě géniové (rozuměj ignoranti) – momentálně je tam přes 6000 stránek, které jde všechny procházet a ve kterých je mail uveden naprosto nechráněný (dgxova varianta č. 1 :)) Já osobně Spolužáky používám, ale mám na to zvláštní účet, takže je mi putna, jestli si můj mail vysaje nějaký robot, ale plno lidí používá stejný, jako na mail. Skvělý přispěvek pro odlehčení provozu na mailserverech Seznamu, které nejsou populární neustálou nestabilitou.

    před 17 lety
  35. Vojtěch #35

    avatar

    Veškeré spamy, které mi kdy začaly chodit byly (subjektivně) vždy po „lavinových emailech“ typu „zachraňte deštné pralesy, pošlete dál“. Ať už tento email dále nepošlu, již jsem jednou zahrnut v odesílatelích a Ti, kteří toto dále pošlou distribuují i mou adresu. Těžko lidem dát najevo „nic takového mi neposílejte“.. stejně to pošlou znovu..

    před 17 lety
  36. GEe #36

    Spamování a získávání mailů je a byl fenomén a je jen otázkou jak dlouho vydrží. Zda bude ochrana před spamy jednou tak silná, že spam přestane jako marketingový či škodlivý nástroj mít význam. Z toho, co o této problematice vím, shrnul bych možnosti získávání mailů následovně:

    • databáze, které lze koupit
    • vlastní tvorba db mailů procházením webů (ať cíleně na konkrétní skupiny – což je účinnější – nebo obyčejné procházení webů bez cíle – pouhé sledování linků, je to méně účinné, ale i tak se dá najít dostatek funkčních adres –
    • spojením se sociálním inženýrstvím (což je aktuálně asi nejefektivnější metoda)

    Pokud bych se zaměřil na soc. inž., pak se určitě stalo, že Vám přišel mail, ve kterém bylo, že MS či kdokoliv jiný dá něco zdarma, pokud přepošlete mail všem kamarádům + kopie na nějaký konkrétní mail. Předesílám, že uživatelé jsou tak naivní a důvěřivý, že valná většina z nich to zkusí. Před cca 3 roky tímto způsobem 1 firma nabízela poukázky do vybraných hotelů v jistých zemích. Tehdy sice poukázky opravdu po odeslání mailů docházeli, ovšem co se stalo se stovkami či tisíci či více adresami nikdo neví, a jak všichni víme, jejich prodej byl dříve legální.

    před 17 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.


phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.