Metode zaštite od spama i virusa za servise elektroničke pošte - 1. dio

SPAM SPAM SPAM… nažalost nije samo uvod u jedan od najpoznatijih skečeva Montya Pythona već označava i svojevrsnu napast i dosadu koja zatrpava naše sandučiće e-pošte (engl. mailbox), a ujedno i stvara glavobolju sistemcu koji održava poslužitelj e-pošte (u daljnjem tekstu mail-poslužitelj). Srećom, danas postoji prilično dobar set alata koji omogućavaju učinkovitu zaštitu mail-poslužitelja od spama i virusa. U tekstu će se iznijeti pregled aktualnih metoda koje se mogu instalirati i pokrenuti na mail-poslužitelju Postfix, ali teorija je primjenjiva i na ostale mail-poslužitelje.

AMAVIS, CLAMAV I SPAMASSASSIN

zastita-od-spama-1.jpg

Na gornjoj slici vidljiv je proces prolaska e-pošte kroz mail-poslužitelj. Dolaznu e-poštu naš mail-poslužitelj Postfix će obraditi, napraviti razne provjere, predati ga filterima sadržaja i, ako je sve zadovoljeno, predat će je Dovecotu koji će je isporučiti u sandučić. Dovecot ovdje služi kao LDA (Local Delivery Agent), a ujedno je i IMAP/POP3 poslužitelj koji omogućava korisniku pristup putem IMAP i POP3 protokola za čitanje e-pošte putem mail-klijenta. Za filtriranje sadržaja, između ostalog, koristi se AMaViS (skraćeno od engl. A Mail Virus Scanner) koji se može integrirati u Postfix. Služi za obradu sadržaja e-pošte i omogućava sučelje za integraciju sa drugim filerima koji omogućavaju zaštitu od spama, virusa te ostalog malicioznog koda. Sam AMaViS koristi se drugim filterima i prema njihovim rezultatima odlučuje je li sadržaj e-pošte zaražen ili nije.

AMaViS omogućava:

  • filtriranje e-pošte
  • skeniranje e-pošte - virusi, spam, loš sadržaj
  • karantenu, arhiviranje poruka u datoteke, sandučiče ili SQL bazu
  • generiranje DKIM potpisa
  • provjeru DKIM potpisa.

Za otkrivanje  spama, AMaViS se u navedenoj implementaciji koristi SpamAssassinom. Nakon što SpamAssassin izvrši skeniranje e-pošte, vratit će rezultat skeniranja AMaViSu koji će dalje poruku proslijediti ClamAV-u, ako poruka nije klasificirana kao spam.

Za što bolje otkrivanje spama, u SpamAssassinu treba instalirati plugine Pyzor i Razor. Oba plugina nude baze podataka koje sadrže checksum svake e-pošte koja je proglašena spamom. Na taj način SpamAssassin uspoređuje checksum e-pošte koju skenira sa checksumima u bazi. Ako pronađe isti checksum, rezultat skeniranja je pozitivan te AMaViS može potom e-poštu obraditi kao spam, staviti je u karantenu itd.

Za otkrivanje virusa, AMaViS se u navedenoj implementaciji koristi antivirusnim programom ClamAV, koji je otvorenog koda i omogućava otkrivanje trojana, virusa, malwarea i drugog malicioznog koda. AMaViS će e-poštu koju dobije natrag od SpamAssassina, a nije klasificirana kao spam, predati ClamAV-u na skeniranje. ClamAV će skenirati sadržaj i prilog e-pošte (engl. attachment) te vratiti rezultat skeniranja AMaViSu. Ako e-pošta sadrži virus, AMaViS će je staviti u karantenu ili obrisati, ovisno o postavkama.

RBL LISTE, GREYLISTING

Poslužitelj e-pošte Postfix, osim što koristi AMaViS u kombinaciji sa SpamAssassinom i ClamAV-om, može raditi:

  • provjere pošiljatelja e-pošte
  • provjere domene s koje dolazi e-pošta
  • provjere primatelja e-pošte
  • provjere korištenja autentikacije
  • provjere mail-poslužitalja koji šalju e-poštu, uključujući Realtime Blackhole Liste (RBL)
  • greylisting, whitelisting, blacklisting.
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit_mynetworks, reject_sender_login_mismatch, permit_sasl_authenticated

smtpd_helo_required = yes

smtpd_reject_unlisted_sender = yes

smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_rbl_client zen.dnsbl-sh.carnet.hr, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, permit

Kod podešavanja raznih provjera najbolje je uključivati jednu po jednu, s periodima testiranja između pojedinih provjera, jer ne želite previše zatvoriti Postfix i onemogućiti slanje e-pošte aplikacijama koje npr. nisu dobro podešene, ali se koriste u produkciji. Postfixova main.cf konfiguracijska datoteka trebala bi za početak konfigurirati Postfix da radi sljedeće provjere:

Realtime Blackhole Liste (RBL) sadrže aktualni popis IP adresa mail-poslužitelja ili domena koje su na temelju prijava korisnika proglašene kao spam-domene, odnosno spam-poslužitelji. Popis RBL-ova, te je li mail-poslužitelj na listi, može se pronaći na nekoj od web-adresa, npr.:

Ako je mail-poslužitelj završio na spam RBL listama, a inače se koristi u produkciji kao normalni mail-poslužitelj, velika vjerojatnost je da je za to zaslužan sam korisnik e-pošte, tj. najčešći scenarij je provaljen račun e-pošte. Iz neznanja ili neopreznosti korisnik računa e-pošte nasjeo je na neku phishing e-poruku (poruka je obično loše gramatički sročena i počinje sa: „vaša administratora traži od Vas da se ulogirate na web adresa i unesete ponovo Vaša lozinka i login podatak…“) ili se pak korisnik koristi vrlo jednostavnom lozinkom. U prvom slučaju phishing e-poruke, sistemac ne može previše napraviti jer niti jedan sustav ne omogućava 100 % zaštitu od spama i takvih poruka. U slučaju korištenja jednostavnih lozinki problem je moguće riješiti tako da se korisnicima onemogući postavljanje i promijena lozinki u sučelju.

Kada napadači uspiju doći do korisničke lozinke, vrlo lako mogu preko mail-poslužitelja poslati velike količine spama po Internetu, što će rezultirati time da mail-poslužitelj završi na RBL-u. Tu doduše može pomoći i rate limitting, ako poslužitelj inače ne šalje velik broj poruka unutar npr. jednog sata.

Treća najčešća zasluga za to što je mail-poslužitelj završio na RBL-u obično ide u prilog web-poslužitelju koji je instaliran zajedno s mail-poslužiteljem i loše održavanoj web-aplikaciji koja se na njemu nalazi. S vremenom se takve web-aplikacije provale od strane napadača koji onda lako mogu poslati spam preko PHP funkcije e-pošte ili pak preko PHPMailera. CMS sustavi, poput Wordpressa i Joomle, najčešće su mete napadača.

Greylisting je vrlo kvalitetna metoda obrane od spam-poslužitelja. Radi na principu prvog odbijanja poruka od dolaznih mail-poslužitelja. U velikoj većini slučajeva, nakon što im se e-pošta odbije i vrati natrag, spam-poslužitelji e-poštu neće pokušati ponovo poslati, dok će je dobro podešeni mail-poslužitelji pokušati ponovo poslati i tek će nakon nekoliko puta ili nekoliko dana odustati od slanja. Whitelisting u ovom slučaju omogućava da se navedu mail-poslužitelji od kojih će se od prve i uvijek prihvatiti e-pošta, dok blacklisting služi za automatsko odbijanje e-pošte od navedenih mail-poslužitelja. Za greylisting najčešće se koristi program Postgrey http://postgrey.schweikert.ch/ koji se integrira u Postfix i omogućava whitelisting i blacklisting. Uz Postgrey postoji još jedan koristan program, nasljednik popularnog daemona Postfix PolicyD v1, koji više nije dostupan u Debian Wheezy Linux distribuciji, PolicyD v2 kodnog imena „cluebringer“. Cluebringer omogućava greylisting uz još neke dodatne mogućnosti koje će biti navedene kasnije.