Skip to content
 

Eat Spam

Una dintre ocupatiile mele de part time sysadmin prin diverse locuri este administrarea de servere de email. Prin ograde se gasesc atat “linuxuri” cat si “windowsuri”. Primele reprezentate prin vajnicul Postfix iar cele din urma prin nu mai putin celebrul Microsoft Exchange. Una dintre marile probleme cu serverele de mail este filtrarea spamului. Spamul e chestia aia care iti apare in inbox si care seamana cu un vanzator ambulant in metrou (3 la 10 mii anyone?). E zgomotos, e agasant si e in cantitati industriale. In general 90-95% din traficul de email e spam. I HATE SPAM.

Solutii pentru filtrarea spamului sunt in cantitatati suficiente unele mai eficiente ca altele . Problema filtrarii spamului este destul de complexa. Spre deosebire de virusi care sunt clar identificabili pe baza unor semnaturi, spamul este facut sa fie inteles de un operator uman (aka luser). Contine text si poze care il indeamna pe luser sa faca ceva: sa cumpere, sa viziteze, sa participe la o frauda de proportii, etc. Prin urmare spamul e mult mai anevoios de identificat automat.
In general o solutie antispam ofera urmatoarele facilitati:

1) Filtrare pe baza de RBLs – real time blackhole lists
cand primesc un email verific adresa IP a celui ce imi trimite. Trimit adresa IP la un server RBL iar daca acesta nu are adresa in lista sa de IP-uri ce sunt public cunoscute ca sursa de spam, emailul este trimis mai departe in inboxul luserului.
Daca vad ca un mail ce trebuia blocat a trecut prin server ca prin branza folosind o interfata web pot raporta unui anumit server RBL incidentul iar adresa IP sursa va fi marcata ca sursa de spam si trecuta in RBL.
Cum oricine poate semnala spam de la orice adresa IP exista si sansele ca cineva sa faca raportari rau-voitoare. Pentru a preveni astfe de abuzuri, in general este nevoie de mai multe semnalari intr-un interval de timp scurt pentru ca o adresa IP sa fie marcata semnul lui Zorro.
Eficienta unui server RBL este data de numarul de utilizatori ce contribuie la cresterea listei cu adrese IP ale spammerilor.Folosirea unor servere RBL alese pe spranceana poate scadea procentul de spam primit cu 60-70% sau poate chiar mai mult.Pe langa servere internationale ce pot bloca spam de oriunde exista o initiativa romaneasca ( rbl.sns.ro ) ce isi propune sa blocheze spamul de sorginte mioritica. Din pacate serviciul nu este extraordinar de popular printre sysadminii romani.
In general accesul la un server RBL este gratuit dar exista anumite companii ce administreaza propriile servere RBL iar in acest caz accesul este contra cost.
Dezavantajul acestei solutii este latenta ce intervine ( cerere catre server rbl, timp de asteptare, raspuns de la server). In cazul in care se folosesc mai multe servere RBL desi eficienta creste pot interveni timpi de intarziere destul de neplacuti (mai ales la trafic mare).

Multe din sursele de spam din ziua de azi sunt surse involuntare. Datorita unor gauri de securitate calculatoare inocente sunt compromise iar spamerii le folosesc pe post de “tunuri de spam”. Dupa ce un calculator a intrat sub controlul unui spammer putem sa ne asteptam la salve de mii / zeci de mii / sute de mii de mailuri pe zi ce vin de la o singura statie. Evident cineva va raporta adresa IP compromisa intr-un RBL. Sa vedem urmatorul scenariu:
Avem o retea micuta 10-15 luseri cu cunostinte limitate si nu prea isteti. In retea exista un server de mail ce iese in internet cu aceeasi adresa IP publica folosita de luseri. Unul dintre luseri descarca voit sau nu de pe internet un mic troian sau rootkit si devine o masina ce trimite in disperare spam. Cel ce primeste spamul va raporta in un RBL adresa ip sursa. Surpriza! Mailul legitm trimis de serverul de mail va fi catalogat automat drept spam. Reteaua trebuie tinuta intr-o stare de igiena minima pentru a evita asemenea situatii. Loguri si reguli de firewall de bun simt + un eventual mail relay server local.

Este bine sa verificam adresele serverelor NOASTRE de email in diverse rbl-uri pentru a evita situatii jenante in care emailuri legitime sa fie catalogate drept spam. Un site ce face cautarea automata in mai multe RBL-uri este www.robtex.com

2) Regular expresions
Pe baza unui dictionar si a unor expresii regulate se pot identifica fraze folosite standard folosite de spammeri. “Buy viagra now?” suna cunoscut ? Cautand in corpul fiecarui mesaj dupa viagra putem sa eliminam astfel de gunoaie. Aici rata de detectie este destul de scazuta pentru ca viagra se poate scrie in mii de feluri folsind scrieri de genul v1agra (literele sunt inlocuite de constructii de pot trimite un luser cu gandul la litere dar care eludeaza filtrele normale). Fiecare aparitie inregistrata creste punctajul acordat emailului. Daca un mail strange suficente puncte este catalogat spam si tratat corespunzator.

3) Bayesian learning
Formatul spamurilor este pana la urma destul de limitat. Exista o anumita rata de repetare a mesajelor. Daca am putea “invata” mai multe sabloane si caracteristici ale spamului am putea bloca mesajele ce au parti comune. Aici este vorba mai mult de “stil” si nu de bucati clare si concise comune. Putem sa privim acest algoritm de invatare ca o imbunatatire a variantei de mai sus cu cuvinte cheie.
O astfel de solutie in mod evident implica un efort destul de mare din partea programatorilor fiind vorba de ceva mai mult decat pattern matching. Eficienta creste pe masura ce avem un trafic din ce in ce mai mare. Dupa o perioada de antrenament in care filtrul se comporta absolut jenant se pot atinge procente surprinzator de mari. Evident invatarea consuma timpi de procesor si la un volum mare de mail poate cauza oarece load.
Invatarea se poate face si in sens invers in cazul in care un mail legitim a fost catalogat in mod gresit. Una dintre metode este prezenta unui mailbox de genul “notspam@domeniu” unde utilizatorii pot trimite mesajele catalogate gresit. Toate mesajele primite vor fi catalogate drept HAM (mail legitim). Data viitoare cand va trece un mail prin filtru nu va mai fi rapus cu salbaticie.

4) Greylisting
Greylistingul este o metoda relativ noua de combatere a spamului si desi pare foarte “intreaga” la minte pot interveni unele probleme. In ce consta ea? Pai…

In general spammeri sunt destul de imbecili. Asta e un lucru cunoscut. Mailurile cu porcarii nu sunt trimise folosind un server de mail legitim (al unei companii, administrat de un om capabil, care e suficient de tampit incat sa permita trimiterea de spam – NU asa ceva NU exista ;) ) ci se ajuta de diverse scripturi si programele. Am vazut cateva cu ochii mei si arata destul de imbecil. Pasii urmati sunt demni de o cauza mai buna : se incarca fisierul cu textul mailului, se incarca lista cu adrese de mail (sute mii milioane de adrese ) si se apasa send. Da e adevarat, si copilul lui gicu de la 3 poate face asta.

Ce face graylistingul? SMTP e un protocol relativ simplu si bazat pe niste coduri de eroare/control ce sunt pasate clientilor – de exemplu 250 indica totul ok iar 550 indica ceva naspa – lista de coduri aici sau chiar in RFC.
Cum ziceam, spammerul trimite mailuri intr-un mod automatizat cu un script/programel facut de un idiot. Se leaga la serverul nostru de mail si ii zice ca ar vrea sa trimita un mail catre webmaster@domeniulmeu.tld. Serverul de mail fiind configurat sa faca greylisting ii zice politicos ca nu poate primi mail chiar in clipa asta si prin urmare sa mai astepte nitel. Un server de mail ce respecta standardele va intelege mesajul si peste un timp se va reconecta la server si via trimite mesajul. De data asta serverul nostru n-o sa il mai trateze cu refuz pentru ca il recunoaste pe cel ce vrea sa trimita si nu ii mai pune nici o piedica. Revenind la spammer el nu doreste sa trimita neaparat la toate adresele alea de mail si nu il intereseaza una anume. Prin urmare cand primeste mesajul de “incearca mai incolo” va face pe prostul si nu va mai reveni. Astfel am scapat de un puhoi de mailuri jegoase.

Care sunt partile nasoale? In primul rand exista un delay intre momentul cand mailul pleaca de la expeditor si pana ajunge la destinatar. Serverul de mail trimite, e tratat cu refuz, asteapta si apoi trimite. Poate dura 1-5 minute sau chiar mai mult in functie de cum e configurat timpul de retry pe serverul de mail. Alt neajuns este intalnit la serverele ce nu inteleg mesajul de eroare si refuza sa incerce mai tarziu. In cazul asta mailul este pierdut pe vecie si s-ar putea sa iasa urat. Un server de mail de generatie recenta nu are problemele astea (sau nu ar trebui sa aiba). Nu trebuie uitat ca desi noi suntem administratori constiinciosi si avem grija de masinile noastre altii s-ar putea sa nu fie.

Cum scapam de delay ? Foarte simplu: whitelist - o lista cu domenii sau adrese de mail pe care pur si simplu nu le tratam cu refuz: in general servere de mail care stim ca sunt cu probleme si vrem neaparat sa primim mail de acolo , autowhitelist - o functie excelenta care functioneaza asa: daca un numar setat de noi de mailuri de la domeniul X au trecut prin procesul de greylisting atunci toate mailurile venite de la acel domeniu sunt acceptate fara alte discutii pe o perioada de <numar de zile> setata de noi. Domeniile sunt salvate automat intr-o mica baza de date si interventia utilizatorului este minima.

In general solutiile de greylisting sunt gratuite si foarte eficiente. Si mai e ceva bonus! Greylistingul merge de minune si impotriva virusilor ce se raspandesc pe mail. Cei care scriu virusi in general nu se obosesc sa trateze corect codurile SMTP. Prin urmare capata aceeasi soarta ca si spammeri! >:)

5) Solutii colaborative

Vipul’s Razor sau DCC sunt doua abordari care in principiu fac acelasi lucru. Genereaza un hash pentru fiecare mail primit. Hashul este trimis la un server central si cautat intr-o baza de date . Daca este gasit atunci cineva a mai dat peste un mail de tipul asta si mailul proaspat hashuit o sa capete o soarta nu foarte placuta. Daca nu a fost gasit si totusi filtrele noastre il vad ca spam hashul este trimis din nou catre server de data asta cu mentiunea de a fi inclus in baza de hashuri. Astfel daca cineva mai da peste asa ceva sa fie pregatit. Metoda nu necesita cine stie ce putere de procesare. In mod evident cu cat sunt mai multi cei care raporteaza spam cu atat este mai eficienta.

6) Spam engine

Aici deja vorbim de solutii pe bani. Intocmai ca la antivirusi exista companii ce produc motoare antispam. Ele au actualizari (sau updateuri de semnaturi) ceva mai rare decat antivirusii – undeva pe la 2-5 zile- si isi fac in general treaba foarte bine. Pe langa interceptarea de mesaje text mai nou sunt incluse si optiuni de OCR pentru poze cu reclame si tot recent au invatat sa priveasca si in PDF-uri. Impresionant!

Un astfel de motor este Spamcure care este inclus in Microsot Antigen for Exchange (or SMTP Gateways) si cred ca si in Forefront for Exchange 2007. De asemenea este disponibil si in format RPM pentru Redhat Linux. Nu uitati de costurile aditionale (aka licente anuale)!

7) Solutii hibride

Exista solutii antispam (si aici ma refer la spamd si spamassasin) care combina mai multe din variantele de mai sus. Via pluginuri se pot folosi mai toate din metodele prezentate mai sus. Fiecare metoda are o anumita pondere (rating) iar daca un mail a primit suficiente puncte este catalogat drept spam. Diferenta dintre spamd si spamassasin este de licentiere primul fiind sub licenta bsd iar cel de-al doilea sub licenta Apache (compatibila GPLv3).

8) Solutii dedicate

Pe langa solutiile software exista “cutii” dedicate. Exista producatori precum Barracuda care folosind o platforma hardware destul de obisnuita ofera o solutie integrata care face o singura chestie: antispam. Practic e un server decent cu 1-2-4 harduri ce foloseste solutii proprietare (rbl-uri private, motoare antispam, etc) pentru a elimina problema. Preturile si modelele variaza in functie de traficul facut si de functiile dorite. Administrarea este destul de triviala (nu ca la celelalte solutii n-ar fi :) ) si bataile de cap sunt relativ mici – asta daca exista bani pentru a cumpara scula. La Barracuda exista iarasi costuri suplimentare pentru actualizari ale softului (din ce tin eu minte se plateste o licenta anuala).

Acestea fiind spuse have fun! :)

14 Comments

  1. adri ROMANIA Windows XP Internet Explorer 6.0 says:

    salut.
    am si eu o problema legata de spam.
    Firma la care lucrez are cateva casute de mail de la ISP, si foloseste serverul lor de mail. De ceva vreme nu mai putem trimite mailuri de pe aceste conturi de mail (prin otlook express), iar mesajul de eroare se refera la RBL listing si la faptul ca suntem o sursa de spam. Avem un antivirus pe statiile de lucru, dar se pare ca avem un virus ce trimite spam, si nu ne putem folosi de mail (IP-ul pe care iesim pe mail este blocat). intrebarea mea este: cum putem scapa de acest virus, cum il putem detecta? cu putem identifica statia de pe care se trimite spam-ul? (e vorba de vreo 30 de statii, in spatele unui router). am mai avut problema asta, si in urma unei scanari cu un antivirus, am scapat momentan de neplaceri, dar se intampla din nou, si nu stiu care e sursa.daca ma puteti ajuta, apreciez. multumesc

  2. Cosu ROMANIA Windows Vista Mozilla Firefox 2.0.0.12 says:

    salut!
    In primul rand trebuie depistata sursa de Spam si eliminata. Routerul ce asigura accesul la internet s-ar putea sa aiba si niste functii de logging. Ar trebui activata functia asta pentru un anumit tip de trafic : sursa orice ip din reteaua interna, destinatie oricine cu exceptia serverului de mail al isp-ului, port 25 (portul de smtp).
    Asa vei vedea cine face trafic legitim si cine nu. Se poate char extinde loggingul la o interzicere completa a accesarii portului de smtp pentru toate statiile din internet cu exceptia serverului de email al providerului. Asa te asiguri ca vor pleca numai mailuri catre provider si nu si catre alte destinatii.
    Dupa ce ai descoperit sursa generatoare de spam trebuie sa vezi in ce lista RBL este inscris ip-ul tau. De obicei mesajul de email refuzat include si motivul precis (ex: “ip-ul X este trecut ca sursa de spam in RBL-ul Y”. Daca totusi nu se intampla asta poti sa folosesti un tool precum asta: http://www.robtex.com/rbl/ care sa caute pentru tine ip-ul in cele mai cunoscute rblrui.
    Odata identificat RBL-ul in care esti inscris trebuie sa il accesezi si sa treci prin procedura de delistare. Ea variaza de la un furnizor de RBL la altul dar de obicei include completarea unui formular cu IP-ul ce trebuie delistat.

    O solutie brutala ar fi sa dai un telefon/mail providerului si sa ii explici sa treaca IP-ul intr-o lista alba (whitelist) pe serverul lui de mail. In functie de marimea si amabilitatea providerului acest lucru se poate intampla, sau nu.
    Ma bucur ca ai postat aici. Daca mai ai intrebari nu ezita.
    Cosmin

  3. adri ROMANIA Windows XP Internet Explorer 6.0 says:

    multumesc, Cosmin, pt ajutor.
    Nu stiu exact cum, dar deocamdata problema s-a rezolvat, IP-ul se pare ca nu mai e blocat, din moment ce putem trimite mailuri de pe cont. am scanat statiile de lucru, pe rand, am depistat cativa virusi.
    am scanat si portul 25 cu WIRESHARK, pt a vedea daca se trimit pachete ciudate, de pe conturile care au doar internet, si nu un cont de email. dar asta dupa ce am sters virusii; nu am vazut nimic suspect.
    am alta intrebare: s-ar putea ca problema sa vina de la downloadarea de torrente? pe o statie e instalat AZUREUS, si scanand cu CAINE, am descoperit ca acea statie trimite pachete VOIP, ceea ce mi se pare f ciudat. cand inchid azureus-ul, pachetele VOIP nu se mai trimit.
    Poate intrebarile astea sunt cam confuze, dar, desi momentan am scapat de problema, nu stiu de unde a pornit totul, si nu stiu de ce suntem o sursa de spam.
    Daca aveti vreo idee, apreciez.
    Multumesc

  4. Stefan ROMANIA Windows XP Internet Explorer 6.0 says:

    Salut. Foarte tare topicul asta. Bravo.

    Am si eu o problema destul de ciudata. Am luat probabil un virus d p net. Am Avast si cind navigam mi-a spus ca o conexiune/ pagina contine “ceva” si mi-a zis sa inchid pagina. Am inchis-o. Faza e k mi-a aparut un fisier exe cu numele ctbnel.exe in C:\WINDOWS\system32 pe care l-am vazut abia cind calcualtorul mi-a raportat o eroare de genul “ctbnel.exe encountered a problem and needs to close….”

    Am intrat in task manager si am vazut k ruleaza un astfel de fisier ctbnel.exe :(

    I-am dat din Startup Inspector disable dar am vazut ca acolo era trecut ca “C:\WINDOWS\system32\ctbnel.exe \u” ???

    Toate bune si frumoase, parea totul ok dar la repornirea calculatorului Avast mi-a sarit in fata si mi-a zis k are o lista impresionanta de mailuri de trimis si m-a intrbat daca continua scanarea acestor mailuri sau nu. Imediat am deconectat calculatorul de la net si modulul de scaner mail de la Avast imi arata k au trecut prin el 32 de mailuri si imi pastreaza ultimul mail scanat care este f ciudat :( : “Haben Sie wieder Spass am Leben” De la: “Lilly Burris” catre

    Am apucat sa fac un printscreen cind scana Avast, pina sa deconectez calculatorul de la internet si am vazut ca mai apareau 194.209.141.189 (am vazut k IPul asta apartine Edipress din Elvetia), phil1.ethz.ch, mailgate…

    Colac peste pupaza mi-a aparut o noua eroare legata de fisiwerul “tufx.exe” .
    Am cautat pe net atit referinte despre ctbnel.exe cit si despre tufx.exe dar nu am gasit absolut nimic :(

    Te intreb pe tine pentru ca vad ca ai experienta extrem de vasta in domeniul asta: ce-i de facut?

    Ca o “masura de siguranta” eu am denumit ctbnel.exe in zzz_ctbnel.exe fara sa-l sterg din C:\WINDOWS\system32…

    Am mai downloadat si COMODO firewall si vreau sa-l instalez k masura de precautie.

    Multumesc tare mult pentru orice fel de sfat, stiu sigur ca o sa fie unul avizat.

    Stefan

  5. Stefan ROMANIA Windows XP Internet Explorer 6.0 says:

    si mai aduc o completare, asta imi apare intr-un fisier de raport de eroare:

  6. Stefan ROMANIA Windows XP Internet Explorer 6.0 says:

    EXE NAME=”tufx.exe” FILTER=”GRABMI_FILTER_PRIVACY”>
    <MATCHING_FILE NAME=”tufx.exe” SIZE=”67584″ CHECKSUM=”0x63CEC7DB” MODULE_TYPE=”WIN32″ PE_CHECKSUM=”0×0″ LINKER_VERSION=”0×0″ LINK_DATE=”01/19/2008 08:10:25″ UPTO_LINK_DATE=”01/19/2008 08:10:25″

  7. Cosu ROMANIA Windows XP Mozilla Firefox 3.0.1 says:

    Cel mai probabil ai un troian care trimite spam.
    Instaleaza si hijackthis si spybot search and destroy. Da o scanare si vezi ce si cum. Daca inca mai ai ceva firewallul ar trebui sa te anunte. tufx si ctbnel sunt cel mai probabil nume de fisier generate aleator si d-asta nu gasesti nimic.

  8. dominic ROMANIA Windows XP Internet Explorer 6.0 says:

    un serviciu filtrare email ( antispam ) este cel oferit de cei de la MessageLabs.
    http://www.messagelabs.com.ro/produse/email/anti-spam
    Serviciul a fost implementat la un prieten la birou in urma cu 2 saptamani iar din 100 spam-uri cate primea zilnic acum nu mai primeste nici macar unul
    Intrebarea mea a fost daca nu cumva sunt oprite si email-urile importante cele ce nu fac parte din categoria SPAM si se pare ca astia folosesc o tehnologie speciala Skeptic
    si nu au probleme de genul asta.
    Pe site-ul lor apar foarte multe servicii foarte interesante din punct de vedere al securitatii pe internet.
    Foarte intresat este serviciul de criptare date: e cam asa cica ai un certificat instalat pe o statie si un alt certificat pe alta statie poti comunica in
    siguranta intre cele 2 statii dar totodata cele 2 statii isi pot trimite si virusi intre ele si atunci cei de la MessageLabs au conceput o criptare canal-date intre statii si totodata si scanarea datelor trimise de la o statie la alta, super tare.
    Acum nu stiu exact daca e disponibil si pentru persoane fizice dar as fi curios ce pret are.
    Mai foloseste cineva acest serviciu?
    Ce parere aveti despre aceste servicii denumite SAAS.
    Multumesc

  9. andrei ROMANIA Windows XP Internet Explorer 7.0 says:

    Salut,

    Am pe cap un postfix si ma intereseaza sa filtrez mailurile care vin catre o casuta (alias) astfel incat numai cei din acelasi domeniu sa o poata folosi; ceva de genul:

    user@domeniu1.ro –da–> broadcast@domeniu1.ro
    user@domeniu2.ro –nu–> broadcast@domeniu1.ro

    unde domeniu2 poate fi orice.

    Googluiesc intre timp, dar nu am foarte multe idei de cum se fac…in ultima instanta ma voi apuca sa frunzaresc manualul de la postfix :)

Leave a Reply