Zbrojíme v súboji so spamom (2. časť)


  • Zdieľať na Google+

Tento blog je pokračovaním môjho, presne rok starého článku o tom, čo robíme v boji proti odchodzím spamom. Za tých posledných dvanásť mesiacov sme sa riadne posunuli a neskromne si myslím, že málokto na Slovensku robí tak veľa v boji proti spamom, ako my.

Vychádza to z faktu, že odošleme denne úctyhodných jeden a pol milióna mailov a oproti klasickým ISP sa živíme hlavne prevádzkou webov. A z toho pochádza veľké množstvo našich problémov a výziev, lebo hostujeme slovenský Internet taký, aký je – dynamický a dravý, ale aj zraniteľný, divoký a občas neférový. Množstvo spamu, ktorý k nám prichádza a snaží sa aj odísť jednoducho vychádza z faktu, že prevádzkujeme obrovské množstvo webovských stránok a poštových schránok, ktoré samé o sebe generujú množstvo mailov, ktoré občas padnú na nejasnú čiaru, deliacu „vyžiadanú“ a „nevyžiadanú“ poštu. Ale hlavne – bez rozdielu o akú stránku sa jedná, na všetky nepretržite ťukajú hackeri z celého sveta s jedným hlavným zámerom – odoslať si od nás nejaký ten spam.

Takto vyzerá množstvo nami sprocesovanej pošty v jeden deň. V celkových číslach chýba asi tretina infraštruktúry, ale z priebehu je vidieť, že Slováci najviac mailujú ráno po príchode do práce a potom večer, keď prídu domov. Občas na grafe reálne vidíme, hlavne v prípade zhoršenia počasia, poobednú dopravnú zápchu 🙂

Spam1
Najprv rekapitulácia toho, čo robíme proti spamom ako úplný základ: príchodzie SMTP servery si overujeme oproti black-list databáze SpamHaus a kontrolujeme SPF záznamy. Pri odchodzích mailoch kontrolujeme hlavičky mailov, či sedia s našimi mailboxami, no a používame anti-spam od ESETu a pre istotu po novom aj open-source SpamAssassin.

Prihlasovanie do schránok a na SMTP server limitujeme GeoIP ochranou na vybrané krajiny. Užívatelia si môžu ľubovoľnú krajinu povoliť a pridať, je to ale aj tak pomerne nepopulárne, i keď z technického pohľadu úžasne účinné riešenie. Aj tak sa nám ale stávalo, že hackeri dokázali útočiť na schránky z IP adries povolených krajín. Vyhodnocujeme preto, ak sa niekto v krátkom čase zázračne presunie z jednej povolenej krajiny do inej povolenej, ale nesusediacej krajiny, schránku mu vtedy zablokujeme. Údajne to takto robia aj mobilní operátori so SIM kartami a pamätám si jeden starý urban legend o pilotovi kanadskej vojenskej stíhačky, ktorý preletel Kanadou tak rýchlo, že mu to zablokovalo mobil na podobnom ochrannom algoritme.

Na prihlasovanie do webmailov sme pridali nenápadný kus Javascript kódu, ktorý rozlišuje medzi človekom a strojom, detekujeme použitie myši. Dosť to pomohlo.

Ďalej sme pridali veľké množstvo štatistických kontrol, všetky ale stáli a padali na tom, že sme potrebovali zjednotiť na jedno miesto logy zo všetkých našich mailových, ale aj iných serverov. Len tých poštových serverov, ktoré máme vystrčené do sveta, je sedemdesiat sedem. Preto sme rozbehli grandiózny a veľmi úspešný projekt centralizovanej databázy všetkých našich logov. Beží to na logstash manažmente, s elastic-search databázou a na grafické vyhodnotenie logov používame nástroj kibana. Denne zaznamenáme 350 miliónov logov a držíme dvoj týždňovú históriu. Beží nám to ako víno, na dvoch nových a štyroch starších fyzických serveroch.

Centralizovaný log server využívame okrem iného na vyhľadávanie rôznych anomálií. Ak sa napríklad snaží nejaké poštové konto poslať určitý počet správ za hodinu, ktoré náš anti-spam označí za spam, blokujeme celé konto a automaticky notifikujeme užívateľa. Ak posiela niekto veľké množstvo legitímnych mailov, preraďujeme ho automaticky na iný mailout server, ako bežných užívateľov. Ak má u nás niekto „pochybnú“ minulosť z pohľadu posielania spamu, dostáva sa tiež na iný mailout server. A tak ďalej. Pridávať nové pravidlá je už teraz jednoduchšie, ako ich vymýšlať.

Tu je graf príchodzích a odchodzích spamov z časti našej infraštruktúry. Kým v minulosti musel náš ESET anti-spam stopnúť okolo dvesto-tisíc spamov denne, dnes je to už len asi desatina, práve kvôli automatickým ochranám, ktoré spamom zamedzujú priamo pri zdroji. Bledomodré sú príchodzie spamy, tie chodia rovnomerne. Tmavo-modré sú odchodzie z webov a žlté sú odchodzie spamy z SMTP serverov. Je vidieť, že je akákoľvek snaha odosielať spam automaticky systémom identifikovaná a zastavená v jadre príčiny, t.j. je zablokované konto a upovedomený užívateľ.

Spam2
Zaviedli sme tiež proces na sledovanie a odpovedanie na každý jeden abuse report, ktorý dostaneme. Tiež si sledujeme online reporty firiem ako Microsoft (hotmail.com, zoznam.sk, atd.), ktoré nám zobrazujú štatistiky spamov, ktoré od nás odišli. Je to pracné, ale účinné.

Veľkým zdrojom problémov boli a sú vyhackované, u nás hostované, www sajty. Je to šialená štatistika, ale až 10 percent webov, ktoré hostujeme, je napadnutých. Čiže v danom okamihu hostujeme približne 6000 vyhackovaných stránok, ktoré buď DDoS-ujú von, posielajú spam, alebo sa len tvária nenápadne a čakajú na budúce povely. Pravidelne všetky hostované stránky scanujeme na filesystem úrovni eseťáckym a aj vlastným scannerom. Malware súborom, ktoré nájdeme, meníme práva, aby neboli spustiteľné, užívateľov upozorňujeme.

Pomáha to, ale je to drina. Z môjho pohľadu naberá celá situácia okolo zraniteľnosti CMSiek ako WordPress, Joomla a podobne neznesiteľnú situáciu. Ak aj upozorníme užívateľa, že má starý a zraniteľný CMS, väčšina z nich nevie, čo s tým spraviť a pri efektivite súvisiacej s tým, za aké ceny tie stránky hostujeme, je neúnosné, aby sme im to my zdarma upgradovali a zabezpečovali.

Blokovať všetky zraniteľné stránky tiež nechceme, tak ich takto rôznymi metódami vyhľadávame a niekedy len čiastočne obmedzujeme. Reálne svetlo na konci tunela v tomto je len v podobe automaticky-sa-updatovaných CMS systémov, tak ako je to dnes bežné pre operačné systémy. Jednoducho web postavený na WordPresse, ktorý si nahodíte na Internet a nebudete updatovať, už v dnešnej dobe vydrží toľko isto nehacknutý, ako keby ste zobrali PCčko, dali na neho Windows a vypli firewall, antivír a updatovanie OS. Čiže asi len pár mesiacov, maximálne tak rok-dva.

Skúšali sme sa hrať s mod_security modulom do apache, ale nie je to škálovateľné riešenie pre webovského providera. Chránime zákaznické weby aspoň tak, že využívame centralizované logovanie a blokujeme abnormálne aktivity, napríklad nárazový traffic z jednej IP adresy. Sledujeme a vyhodnocujeme, ak má slovenská stránka abnormálny nárast zahraničného trafficu. Obmedzujeme prihlasovanie na administratívnu časť CMS-iek a podobne. Reálna technická ochrana proti napadnutiu webu typu IPS, alebo IDS, akú implementujú dôležité webovské stránky, je u nás nepoužiteľná. Polovica webov by pri nej prestala fungovať.

Keď sa nám dostane mailový server na black-list, veľa užívateľov nevie odosielať poštu, je to dnes základný problém zdieľaného hostingu. Nie všetci si uvedomujú tento nevyhnutný kompromis, súvisiaci s efektivitou najekonomickejšej prítomnosti na Internete – zdieľaným hostingom. Práca s blacklistami je občas zaujímavá, napísali sme si vlastný scanner, ktorý nám monitoruje, keď sa na nejaký blacklist dostaneme a následne si pýtame delist, pravidlá sú ale rôzne. Tu je graf, ktorý nám ukazuje počet našich mail serverov, ktoré sú na black liste. Lepšíme sa a tak je zahnutý tým správnym smerom 🙂

Spam3
Od februára zavádzame limit na počet odoslaných mailov pre každú schránku, 300 kusov za hodinu. Je to preto, aby sme obmedzili dopad v prípadoch vyhackovaných poštových schránok, alebo webov. Kto potrebuje viac, vyplní nám online formulár s jednoduchou žiadosťou, odozva zákazníkov bola zatiaľ pozitívna. Sľubujeme si od toho ďaľšie zníženie odchodzieho spamu.

Toto všetko robíme v boji proti odchodzím spamom, lebo tie sú najotravnejšie, black-list má často dosah na mnohých užívateľov. V zásade o tomto všetkom užívatelia nevedia, lebo jediné, čo pocítia, ak všetko o čom som doteraz písal je, že im odoslaný mail normálne odíde. Robiť to ale cenovo efektívne pre veľa užívateľov na zdieľanej infraštruktúre je naozaj vcelku veľká veda.

Užívateľov obvykle trápi najviac príchodzí spam. Tu musím byť trochu alibista, lebo nevidím nás, webhostingového providera ako toho, kto má užívateľovi zaručene vymazať všetok príchodzí spam. Je to podľa mňa, milí užívatelia, tak trochu aj na vás. Jasné, že kontrolujeme reputáciu príchodzích SMTP serverov a došlú poštu zbehneme anti-spam softvérom, ale to je asi tak všetko, čo sa s tým dá robiť. Keď sa pozriete na jazykovú kvalitu mnohých spamov, dá sa pochopiť, že ja nad sily softvéru rozoznať legitímny mail od nevyžiadaného. Rozprával som sa o tomto s veľmi fundovanými ľuďmi v ESETe a potvrdili mi, že skôr reputácia príchodzích SMTP serverov a analýza hlavičky mailu je to, čo najviac funguje na rozoznanie spamov. Jazykové analýzy obsahu mailu nie sú hodnoverné. Sú si toho vedomí aj poskytovatelia webovských free-mail služieb ako gmail, či hotmail a z dôveryhodných zdrojov mám overené, že sa spoliehajú oveľa viacej, alebo dokonca výlučne na svojich užívateľov, ako na techniku. Spam je spamom vtedy, ak ho tak označí veľa ľudí. Reálne je s tým v praxi ale tiež problém – veľa užívateľov označí za spam aj správy, ktoré dostali z legitímneho newslettera, na ktorý sa dostali napríklad pri kúpe v online shope, len sú leniví sa z neho štandardne odhlásiť. My ako odosielateľ toho newslettera potom končíme na blackliste. Websupport tento typ kontroly na príchodzej pošte nevie veľmi použiť, lebo si väčšina našich užívateľov nečíta poštu cez webovské rozhranie. Horde aj RoundCube to ale podporujú a tak sa to predsa chystáme zaviesť.

Trest za chybu pri označovaní príchodzieho spamu je obrovský. Aj preto sme nastavili úrovne označenia príchodzieho spamu vo Websupporte pomerne vysoko – myslím si totiž, že je menší problém, ak neoznačíme tucty príchodzích spamov, než aby som vám za spam označil, alebo nebodaj zmazal čo len jeden dôležitý legitímny mail.

Navyše – množstvo prijatého spamu je do veľkej miery v rukách každého užívateľa. Treba mať ochránený svoj počítač, nesurfovať po divných stránkach, neinštalovať neoficiálny softvér, nedávať svoju adresu na web, nezadávať ju pochybným online firmám a podobne. No a v neposlednej rade je fajn nainštalovať si na svoj na počítač vlastný anti-spam softvér a trochu sa vyhrať s nastaveniami.

Ak ste sa prelúskali blogpostom až sem, pripájam súhrn všetkých vecí, ktoré sa nám podarilo zlepšiť, prípadne nasadiť, v poslednom období:

1. Overovanie príchodzích SMTP serverov oproti SpamHaus DB
2. Kontrola hlavičky odchodzích mailov – musia mať u nás účet
3. Kontrola SPF záznamov
4. Anti-spam filter ESET
5. Anti-spam filter SpamAssassin
6. Kontrola “človeka” pri prihlasovaní do webmail, prítomnosť myše
7. GeoIP ochrana prihlasovania do schránky z vybraných krajín
8. Náhly pohyb človeka medzi povolenými GeoIP krajinami
9. Blokovanie schránok pri odoslaní istého počtu spamov
10. Priradenie na rôzne mailout servery podľa počtu odoslanej pošty a “reputácie”
11. Kontrola a odpovedanie na príchodzie abuse reporty
12. Automatická kontrola veľkého počtu black-list serverov
13. Prehľadávanie súborov na malware
14. Ochrana WWW stránok proti brute force útokom na heslá do CMS
15. Kontrola verzií CMS systémov
16. Nastaviteľný limit na počet odoslaných mailov

Aktuálne pokladáme situáciu so spamami za uspokojivú. Ak sme mali v minulosti okamihy, kedy sme mali na blackliste aj tucet poštových serverov, dnes je to tak nanajvýš jeden, či dva servery. Viem ale dopredu, že to nevydrží. Boj proti spamerom je boj muža proti mužovi, kde sa každá strana musí prispôsobovať a posúvať dopredu. Niekedy až reálne cítime a vidíme, čo robí proti nám druhá strana, niekde v Nigérii, či v Rusku a je to zvláštny pocit. Tak bude mať tento blog iste o rok ďaľšie pokračovanie a v podstate nikdy neskončí. Aspoň pokiaľ neprejde ľudstvo na niečo iné, ako klasické e-maily. Len tam vidím ultimátne riešenie spamov – prechod Internetovej komunikácie do nejakej overenej, autorizovanej a šifrovanej formy, podobnej dnešnému instant messagingu.

Komentáre

  • Vlado
    Odpovedať
    Autor
    Vlado

    „Reálne je s tým v praxi ale tiež problém – veľa užívateľov označí za spam aj správy, ktoré dostali z legitímneho newslettera, na ktorý sa dostali napríklad pri kúpe v online shope, len sú leniví sa z neho štandardne odhlásiť.“

    Tu by som len dodal, že nemusí ísť ani tak o lenivosť užívateľov, no o komplikované odhlásenie z newslettra. Ak sa nedá z newslettra odhlásiť na 1-2 kliky alebo chce kvôli odhláseniu login, je logické, že užívateľ klikne na spam, lebo nemá chuť zabíjať čas.

  • Hati
    Odpovedať
    Autor
    Hati

    A najsamlepsi je zakaznik co sa dookola stazuje ze mu chodi vela spamu, ale aby stiahol zo svojho webu zoznam zamestnancov kde na kazdeho jedneho smeruje mailto:meno.priezvisko@firma.com alebo ho nahradil kontaktným formularom tak to ani za svet…

  • Hati
    Odpovedať
    Autor
    Hati

    Ale vlastne som chcel napisat ze super clanok, vela stastia pri boji ktory sa zial neda vyhrat. Mail je technologia stara 40 rokov a pre dnešnú dobu nevhodná.

  • Jaroslav
    Odpovedať
    Autor
    Jaroslav

    Dobrý deň. Z mojej e-mailovej adresy posielam newsletter. Ako si môžem overiť, či nie som na nejakom s blacklistov? Posielam naozaj férovo a v každom maily je odkaz na odhlásenie. PS: Rád by som požiadal o zvýšenie kvóty 300 emailov za hodinu. Je to pre mňa málo. Kde tak môžem učiniť? Vopred ďakujem pekne za odpoveď.

  • Martin Krcho
    Odpovedať
    Autor
    Martin Krcho

    Super clanok, je fajn dozvediet sa aj technicke pozadie takychto veci. Zaujimalo, ako je na tom s reputaciou nasa stranka http://www.mojandroid.sk, kedze posielame kazdy mesiac ludom newslettre, info o sutaziach a pod.

  • Peter
    Odpovedať
    Autor
    Peter

    na ake menite prava suborom, aby neboli spustitelne, prosim vas?

    • Miro Pikus
      Odpovedať
      Autor
      Miro Pikus

      menime im vlastnika, robime chown na uzivatela „4321“, takze tam ostanu, ale apache ich nespusti

  • Lukas Matula
    Odpovedať
    Autor
    Lukas Matula

    Vdaka za clanok a inspiraciu, aktualne kombinujem dspam a postfwd + nejake drobnosti, vysledok celkom ujde, ale je to otravny boj …

  • vlado
    Odpovedať
    Autor
    vlado

    skladam poklonu nad casom potrebnym na pripravu Vasho prispevku. Co vsak vytykam a neschvalujem je sposob akym ste zaviedli obmedzenia (300 mailov / hodina). Mne osobne to sposobilo nemale problemy pri odosielani legitimnych mailov u jedneho mojho zakaznika. On v tyzdennych inervaloch odosiela cca jedalne listky pre cca 3500 svojich zakaznikov, ktory si odoberanie jedalnych listkov aktivovali a mozu sa kedykolvek odhlasit. Skutocnost, ze ste na to upozornili vo svojom newsletteri je smiesna. Vyhrknu az slzy, ale od placu. Ocakavate, ze si s nadsenim precitame ktorykolvek newsletter aby sme sa mohli dozvediet ci nahodou nezavadzate nejake obmedzenia. Toto je informacia, ktora mala ist vasim zakaznikom priamo na mail s jasnym subjectom, 3 mesiace pred aktivovanim obmedzenia a potom cca 1 tyzden ako pripomienka. Rozhodne nie ako nejaky blogovy prispevok v nesletteri (umiestneny dokonca na konci).
    Uvedomujem si aky nevyrovnany boj musite zvadzat so SPAMOM kedze som vyse dva roky pracoval ako administrator Lotus Domino serverov.
    Nie kazdy Vas zakaznik berie problematiku odosielania nevyziadanej posty vazne ale verim, ze je vela takych, ktori si to uvedomuju a svoje mailove aktivity maju pod kontrolou. Navrhujem aby ste zaviedli jednoduche SPAM score pre kazdu hostovanu domenu. Priradili vsetkym inicializacnu hodnotu 1, ktora hovori o tom, ze sa na nu aplikuje obmedezenie (300/h) a vsetkym, ktorym toto obmedzenie stazuje zivot umoznili na zaklade ziadosti o (nazvime to) „spam audit“ preukazat legitimnost odosielanej posty aby mohol zmenit svoje SPAM score na 0 a tym padom sa vyhnut obmedzeniu. V sucasnosti mame na domene obmedzenie 2000/h a kedze odosielanie mailu vyzaduju aj ine procesy, ktore nie su planovane (potvrdenia objednavok, faktury, …) museli sme obmedzit rozosielanie planovanych mailov na skupiny po 1000/h, takze to co sa kedysi dalo odoslat behom niekolkych minut musi moj klient odoslat svojim zakaznikom v intervale 4 hodin. A to sa bavime o rozbiehajucom biznise, kde 3500 zakaznikov moze byt v buducnostii napr. 15000.

  • LOCHNESS
    Odpovedať
    Autor
    LOCHNESS

    „Užívateľov obvykle trápi najviac príchodzí spam.“
    to ani nie . .ale 100 x email na chrobáky , armadnu lopatku , chorvátsko a neviem čo ešte je dosť aj na koňa.
    zatial top bolo 5 x ten isty SPAM za 2 minuty 🙂