Tento blog je pokračováním mého rok starého článku o tom, co děláme v boji proti odchozímu spamu. Za těch posledních dvanáct měsíců jsme se zase pořádně posunuli. Osobně si myslím, že málokdo na Slovensku, a možná také v Česku, dělá tak mnoho v boji proti spamům.
Vychází to z faktu, že denně odešleme úctyhodných jeden a půl milionu mailů a oproti klasickým ISP se živíme hlavně provozem webů. A z toho vychází velké množství našich problémů a výzev. Hostujeme internet takový, jaký je – dynamický a dravý, ale i zranitelný, divoký a občas neférový. Množství spamu, který k nám přichází a snaží se také odejít, jednoduše vychází z faktu, že provozujeme obrovské množství webových stránek a poštovních schránek, které samy o sobě generují hromady mailů. Právě ty občas padnou na nejasnou čáru – „vyžádanou“ a „nevyžádanou“ poštu. Ale hlavně, bez rozdílu o jakou stránku se jedná, na všechny neustále ťukají hackeři z celého světa s jedním hlavním záměrem – odeslat si od nás nějaký spam.
Takhle vypadá množství námi zpracované pošty v jeden den. V celkových číslech chybí asi třetina infrastruktury, ale z průběhu je vidět, že naši uživatelé posílají emaily nejvíce ráno po příchodu do práce a potom večer, když dorazí domů. Občas na grafu reálně vidíme, hlavně v případě zhoršení počasí, odpolední dopravní zácpu :)
Nejprve ale zrekapitulujme, co děláme proti spamu. Jako úplný základ: příchozí SMTP servery si ověřujeme v black-listech Spamhausu a kontrolujeme SPF záznamy. U odchozí pošty kontrolujeme hlavičky mailů, zda sedí s našimi mailboxy. K tomu používáme anti-spam od ESETu a pro jistotu nově i open-source SpamAssassin.
Přihlašování do schránek a na SMTP server limitujeme GeoIP ochranou na vybrané země. Uživatelé si mohou libovolnou zemi povolit a přidat. Je to ale i tak poměrně nepopulární, i když z technického pohledu úžasně účinné řešení. Přesto se nám ale stávalo, že hackeři dokázali útočit na schránky z IP adres povolených zemí. Vyhodnocujeme proto, pokud se někdo v krátkém čase zázračně přesune z jedné povolené země do jiné povolené, které spolu ale nesousedí. Pokud ano, schránku mu tehdy zablokujeme. Údajně to tak dělají i mobilní operátoři se SIM kartami. Pamatuji si jeden starý urban legend o letci kanadské vojenské stíhačky, který proletěl Kanadou tak rychle, že mu podobný ochranný algoritmus zablokoval mobil.
Pro přihlašování do webmailu jsme přidali nenápadný kus Javascript kódu, který rozlišuje mezi člověkem a strojem plus detekuje použití myši. Tohle nám dost pomohlo.
Dále jsme přidali velké množství statistických kontrol. Všechny ale stály a padaly na tom, že jsme potřebovali sjednotit na jedno místo logy ze všech našich mailových, ale i jiných serverů. Jen těch poštovních serverů, které máme vystrčené do světa, je sedmdesát sedm. Proto jsme rozjeli grandiózní a velmi úspěšný projekt centralizované databáze všech našich logů. Běží to na logstash managementu s elastic-search databází a na grafické vyhodnocení logů používáme nástroj kibana. Denně zaznamenáme 350 milionů logů a držíme dvoutýdenní historii. Běží nám to skvěle na dvou nových a čtyřech starších fyzických serverech.
Centralizovaný log server využíváme také na vyhledávání různých anomálií. Pokud se například snaží nějaký poštovní účet poslat určitý počet zpráv za hodinu, které náš systém označí za spam, blokujeme celé konto a automaticky upozorňujeme uživatele. Pokud posílá někdo velké množství legitimních mailů, přeřadí ho systém automaticky na jiný mailout server. Pokud má u nás někdo „pochybnou“ minulost z pohledu zasílání spamu, dostává se také na jiný mailout server. Přidávat nová pravidla je nyní již jednodušší, než je vymýšlet.
Zde je graf příchozích a odchozích spamů z části naší infrastruktury. Zatímco v minulosti musel náš ESET anti-spam zastavit téměř 200 tisíc spamů denně, dnes je to už jen asi desetina. Právě kvůli automatickým ochranám, které spam odchytávají přímo u zdroje. Světle-modré jsou příchozí spamy, ty chodí rovnoměrně. Tmavě-modré jsou odchozí z webů a žluté jsou odchozí spamy ze SMTP serverů. Je vidět, že jakákoliv snaha odesílat spam automaticky je systémem identifikována a ihned zastavena. Tzn. je zablokováno konto a vyrozuměn uživatel.
Zavedli jsme také proces sledování a odpovídání na každý jeden abuse report, který dostaneme. Rovněž sledujeme online reporty firem jako Microsoft (hotmail.com, zoznam.sk, atd.), které nám zobrazují statistiky spamů, které od nás odešly. Je to pracné, ale účinné.
Velkým zdrojem problémů byly a jsou vyhackované, u nás hostované, www stránky. Je to šílená statistika, ale až 10 procent webů, které hostujeme, jsou napadeny. Takže v daném okamžiku hostujeme přibližně 6000 napadených stránek, které buď DDoS-ují ven, posílají spam nebo se jen tváří nenápadně a čekají na budoucí povely. Pravidelně všem hostovaným stránkám scanujeme soubory eseťáckým a také vlastním scannerem. Malware souborům, které najdeme, měníme práva, aby nebyly spustitelné a jejich uživatele okamžitě upozorňujeme.
Je to dřina, ale pomáhá to. Z mého pohledu nabírá celá situace kolem zranitelnosti CMSek jako WordPress, Joomla apod. neúnosnou situaci. Pokud upozorníme uživatele, že má starý a zranitelný CMS, většina z nich neví, co s tím udělat. Při efektivitě související s tím, za jaké ceny takové stránky hostujeme, je nemožné, abychom jim je zdarma upgradovali a zabezpečovali.
Blokovat všechny zranitelné stránky také nechceme. Proto je různými metodami vyhledáváme a někdy pouze částečně omezujeme. Světlo na konci tunelu je v podobě automaticky-se-updatovanými CMS systémy, tak jak je to dnes běžné pro operační systémy. Jednoduše, web postavený na WordPressu, který si nahodíte na internet a nebudete updatovat vydrží nehacknutý tolik, jako PCčko s Windows, vypnutým firewallem, bez antiviru a zakázanými aktualizacemi OS. Čili asi jen pár měsíců, maximálně tak rok, možná dva.
Zkoušeli jsme se hrát s mod_security modulem do apache, ale není to škálovatelné řešení pro webového providera. Chráníme zákaznické weby alespoň tak, že využíváme centralizované logování a blokujeme abnormální aktivity. Například nárazový traffic z jedné IP adresy. Sledujeme a vyhodnocujeme, pokud má slovenská nebo česká stránka abnormální nárůst zahraničního trafficu. Omezujeme přihlašování do administrativní části CMS atd.. Reálná technická ochrana proti napadení webu typu IPS nebo IDS, jakou implementují důležité webové stránky, je u nás nepoužitelná. Polovina webů by při ní přestala fungovat.
Když se dostane náš mailový server na black-list, mnoho uživatelů nemůže odesílat poštu. Je to dnes základní problém sdíleného hostingu. Ne všichni si uvědomují tento nezbytný kompromis, související s efektivitou nejekonomičtější přítomnosti na internetu – sdíleným hostingem. Práce s black-listy je občas zajímavá. Napsali jsme si vlastní scanner, který nám monitoruje, když se na nějaký black-list dostaneme. Ihned potom žádáme o odstranění z uvedeného seznamu, ale pravidla jsou různá. Zde je graf, který nám ukazuje počet našich mail serverů, které jsou na black-listu. Jak vidíte, tak se lepšíme, protože je “zahnutý” tím správným směrem :)
Od února zavádíme limit na počet odeslaných emailů pro každou schránku. Je to 300 zpráv za hodinu. Důvodem je snížení následků v případě, kdy je vyhackovaná poštovní schránka nebo web. Kdo potřebuje více, vyplní nám online formulář s žádostí. Odezva zákazníků byla zatím pozitivní. Slibujeme si od toho další snížení odchozího spamu.
Tohle všechno děláme v boji proti odchozímu spamu, neboť ten je nejotravnější. V podstatě o tom uživatelé ani nevědí, protože jediné co pocítí je to, že odchozí mail je v pořádku odeslán. Dělat to ale efektivně pro mnoho uživatelů na sdílené infrastruktuře, je opravdu celkem velká věda.
Obvykle trápí uživatele nejvíce příchozí spam. Tady ale musím být trošku alibista, protože nevnímám WebSupport (webhostingového providera) jako toho, kdo má uživateli zaručeně odstranit veškerý příchozí spam. Je to podle mého tak trochu i na samotných uživatelích. Jasně, kontrolujeme reputaci příchozích SMTP serverů a došlou poštu protáhneme anti-spam softwarem. Ale to je asi tak všechno, co se s tím dá dělat. Když se podíváte na jazykovou kvalitu mnoha spamů, dá se pochopit, že je nad síly softwaru rozeznat legitimní mail od nechtěného. Mluvil jsem o tom s fundovanými lidmi v ESETu a potvrdili mi, že spíše samotná reputace příchozích SMTP serverů a analýza hlavičky mailu je to, co nejvíce funguje při rozeznávání spamů. Jazykové analýzy obsahu mailu nejsou důvěryhodné. Jsou si toho vědomi i poskytovatelé webových free mailů jako Gmail nebo Hotmail. Z důvěryhodných zdrojů mám ověřeno, že se spoléhají mnohem více (dokonce výlučně) na své uživatele, kteří nežádoucí e-mail označí. Spamem je potom tehdy, když ho tak označí mnoho lidí. S tím je ale v praxi také problém. Dost uživatelů označí za spam i zprávy, které dostali z legitimního newsletteru, který jim zaslal jeden z eshopů, kde před časem nakoupili. Pouze jsou líní se z něj standartně odhlásit. Websupport tento typ kontroly pro příchozí poštu neumí dost dobře použít, protože si většina uživatelů nečte poštu přes webové rozhraní. Avšak Horde i RoundCube to podporují. Proto jsme se rozhodli tento typ kontroly přece jenom zavést.
Trest za chybu při označování příchozího spamu je obrovský. I proto jsme nastavili úrovně označení příchozího spamu ve WebSupportu poměrně vysoko. Myslíme si totiž, že je menší problém, pokud neoznačíme tucty příchozích spamů, než abychom za spam označili, nebo dokonce smazali, jen jeden důležitý a legitimní mail.
Navíc, množství přijatého spamu je do velké míry v rukou každého uživatele. Je nutné mít ochráněn svůj počítač, nesurfovat na divných stránkách, neinstalovat neoficiální software, nedávat svou adresu na web, neposkytovat ji pochybným online firmám atd.. V neposlední řadě je fajn nainstalovat si na svůj počítač vlastní anti-spam software a trošku se vyhrát s nastavením.
Pokud jste se dostali až sem, připojuji souhrn všech věcí, které se nám v posledním období podařilo zlepšit a nasadit:
1. Ověřování příchozích SMTP serverů vůči Spamhaus DB
2. Kontrola hlavičky odchozích mailů – je nutné mít u nás účet
3. Kontrola SPF záznamů
4. Anti-spam filtr ESET
5. Anti-spam filtr SpamAssassin
6. Kontrola „člověka“ při přihlašování do webmailu, přítomnost myšky
7. GeoIP ochrana přihlašování do schránky z vybraných zemí
8. Náhlý pohyb člověka mezi povolenými GeoIP zeměmi
9. Blokování schránek při odeslání jistého počtu spamů
10. Přiřazení na různé mailout servery podle počtu odeslané pošty a „reputace“
11. Kontrola a odpovídání na příchozí abuse reporty
12. Automatická kontrola velkého počtu black-list serverů
13. Procházení souborů na malware
14. Ochrana WWW stránek proti brute force útokům na hesla do CMS
15. Kontrola verzí CMS systémů
16. Nastavitelný limit na počet odeslaných mailů
Aktuálně pokládáme situaci se spamy za uspokojivou. Pokud se v minulosti stalo, že jsme měli na black-listu i tucet poštovních serverů, dnes je to tak nanejvýš jeden nebo dva servery. Vím ale jistě, že to nevydrží. Boj proti spamerům je boj muže proti muži, kde se každá strana musí přizpůsobovat a posouvat dopředu. Někdy až reálně cítíme a vidíme, co proti nám dělá druhá strana někde v Nigérii nebo v Rusku. A je to zvláštní pocit.
Je jisté, že tento blog bude mít další pokračování a v podstatě nikdy neskončí. Alespoň pokud nepřejde lidstvo na něco jiného, než klasické e-maily. Jen tam vidím ultimátní řešení spamů – přechod internetové komunikace do nějaké ověřené, autorizované a šifrované formy, podobné dnešnímu instant messagingu.
Co si myslíte o spamu vy? A jaký vývoj očekáváte u emailu? Přestaneme mailovat a začneme si psát zprávy někde jinde? Napište nám vaše postřehy a názory ke článku do komentářů.