Internet je síce dobrý sluha, ale zlý pán, čo často svojim užívateľom dokazuje.
Spoločnosť VNET a.s. popri webhostingu poskytuje svojim používateľom aj virtuálne mailové domény a schránky. Zákazníci sa však často stávajú obeťami hackerov, ktorí sa neoprávnene zmocnia ich prístupových údajov a odosielajú prostredníctvom ich mailových schránok spam. Tento spam spôsobuje každej spoločnosti, ktorá prevádzkuje mailové služby veľké problémy, pretože sa kvôli tomu môže celá doména dostať na verejné mailingové čierne listiny (Blacklists), kvôli ktorým správy celej spoločnosti môžu byť blokované do veľkej časti Internetu.
Na svojich mailových serveroch využívajú vo VNETe k boju proti spamu v kombinácii s MTA postfix aj program postfwd. Postfwd je jednoduchá mailová bezpečnostná brána, ktorá umožňuje pridávať pravidlá na blokovanie odosielania správ na základe rôznych údajov z SMTP protokolu, alebo údajov získaných z postfix-u. Je možné tu nadefinovať akcie ako maximálne počty odoslaných správ za čas, kontrolovať odosielateľov, sasl autentifikáciu a mnoho ďalších atribútov.
Odhalenie spamu
Prelomené kontá vo svojich serveroch odhalili doteraz väčšinou podľa množstva odoslaných mailov na používateľa cez monitorovací systém zabbix, alebo podľa zvýšeného vyťaženia serverov. Následne v logoch vyhľadali používateľov, ktorí toto vyťaženie spôsobujú. Takéto riešenie bolo neefektívne a museli rýchlo pristúpiť k sofistikovanému riešeniu.
Rozhodli sa analyzovať spôsob akým hackeri rozosielajú spam a odhalili tieto zaujímavé poznatky:
- Spam sa šíril cez botnet, čo detegovali z veľkého počtu rôznych klientských IP adries.
- Spam bol šírený s nízkou kadenciou správ pre jednotlivé IP adresy, aby sa konto vyhlo limitom počtu správ za časové obdobie.
- IP adresy použité na prihlasovanie sa do prelomeného konta po analýze cez geografické databázy IP adries ukázali, že počet unikátnych krajín, z ktorých sa prihlasoval hacker, je už po minúte odosielania spamu viac ako 30.
Na prvotnú analýzu dát bol použitý jednoduchý Linuxový one-liner, ktorý bol ešte presmerovaný do geoip pluginu a zobrazil počty pripojení používateľov pre jednotlivé IP adresy a kód štátu pre IP adresu:
[code language="bash"]
grep 'rule=.*queue=' /var/log/mail.log.1 | grep 'user=' | awk -F, '{print $4" "$5" "$6" "$8}' | sort | uniq -c | sort -n
[/code]
Potvrdilo sa, že hackeri využívajú nadnárodný botnet na prihlasovanie sa do mailových účtov.
Po istom čase si VNET opäť všimol vysoké vyťaženie serverov a vtedy už po použití nimi navrhnutého a implementovaného riešenia získali cenné dáta a podrobnú analýzu, ktorá im odkryla viacero možností ako zakročiť voči spamerom:
- Obmedziť počet unikátnych IP adries, z ktorých sa používateľ prihlasuje na svoj účet.
- Obmedziť počet unikátnych krajín (zistených cez geolokáciu IP adresy), z ktorých sa pripája používateľ.
Blokovanie botnetu
Používatelia sú počas dňa mobilní, pripájajú sa na rôzne wifi, pevné, mobilné, VPN pripojenia a potrebujú mať povolený vyšší počet IP adries, aby nebol mylne zablokovaný relevantný používateľ. Čo sa týka druhej možnosti, do nej spadajú používatelia, ktorí používajú VPN pripojenia alebo cestujú, tu ako parameter maximálneho počtu krajín z ktorých sa pripájajú je postačujúce zvoliť menšie číslo ako v prvej možnosti. Prvá možnosť s vhodne nastaveným parametrom počtu unikátnych IP adries na prihlásenie používateľa aj druhá možnosť s vhodne nastaveným parametrom počtu unikátnych krajín z ktorých sa používateľ prihlásil sú vhodné na použitie, poprípade môžu byť skombinované.
Pre ich prístup sa rozhodli použiť druhú možnosť, a to zablokovať používateľov ktorí sa cez sasl autentifikáciu prihlasujú z viac ako N štátov podľa geografickej lokácie IP adresy. Táto voľba jasne indikuje, že klientov účet bol kompromitovaný a oni môžu správy z tohoto účtu zablokovať a upozorniť klienta, že pre ďalšie používanie je nutné si zmeniť prihlasovacie heslo.
Ako parameter počtu unikátnych štátov, z ktorých sa používateľ prihlasuje zvolili v produkcii hodnotu 5 (teda používateľ po prihlásení zo 6 a viac štátov bude blokovaný) a zabezpečili, aby sa záznamy staršie ako 1 deň premazávali. Počas testovania VNET spozoroval, že žiadny používateľ nepoužil na prihlasovanie IP adresy z viac ako 2 rôznych štátov. Ak by sa vyskytol používateľ, ktorý napríklad cestuje a počas dňa sa mu menia IP adresy pre mobilné pripojenie, jeho prípad ošetrí premazávanie databázy, takže ak nevystrieda za deň IP adresy zo 6 a viac rôznych štátov, nebude blokovaný.
Na finálne zlikvidovanie spamera je ale potrebné zmeniť používateľovi heslo. Po identifikácii kompromitovaného účtu sa používateľ stále môže prihlásiť do schránky, avšak nemôže odosielať správy. Na jeho schránku je automaticky cez postfwd odoslaný mail, že jeho účet je kompromitovaný a má si zmeniť heslo, čo môže vo VNETe cez webmaily Squirrel a Roundcube. Po zmene hesla sa údaje o blokovaní pre jeho mailovú adresu z databázy automaticky odstránia a používateľ môže opäť odosielať správy.
Technická realizácia bola vykonaná cez program postfwd, kde bol implementovaný vlastný plugin VNETu. Program postfwd je napísaný v jazyku Perl a dovoľuje pridávať rôzne filtre a akcie prostredníctvom pluginov, ktoré sa potom môžu aktivovať v konfiguračnom súbore. Plugin má VNET zverejnený na svojom verejnom firemnom repozitári na serveri github - postfwd-anti-spam-plugin, odkiaľ je možné si ho prevziať a použiť. Návod na inštaláciu a použitie sa nachádza priamo v repozitári.