SPAM szűrés

Fogalmak:

A spam a fogadó által nem kért, elektronikusan, általában e-mailen keresztül tömegesen küldött hirdetés, felhívás. 

http://hu.wikipedia.org/wiki/Spam

Az adathalász levél az adatainkra, elsősorban a jelszavunkra vagy a bankkártyánkra pályázik. Direkt (pl. "küldje el nekem a jelszavát emailben") vagy gyakrabban indirekt, bújtatott módon, trükközve próbálják ezeket megszerezni. Leggyakoribb formái:

  • hamis quota értesítés vagy a postafiók bezárásával riogatás, esetleg hamis feltörési riasztással próbálják rávenni a címzettet, hogy egy hamis LOGIN oldalon írja be a jelszavát
  • futárszolgálatok nevében (pl. DHL, Fedex, Posta) küldött hamis levél, mely csomag kézbesítéséről szól, és így próbálja hamis login oldalon begyűjteni a címzett személyes adatait
  • hamis adó- vagy számlatartozásról szóló levél (általában közmű- vagy telefonszolgáltató nevében), pici összegről, azonnali kártyás befizetési lehetőséggel, ami valójában a bankkártya adatait lopja el! (a csalás lényege, hogy a nagyon alacsony összeg és a rövid határidő miatt nem éri meg utánajárni, ellenőrizni, egyszerűbb gyorsan befizetni)
  • különböző nyereményjátéknak álcázott, vagy irreálisan olcsón kínálnak műszaki cikkeket, pl. telefont, ezek célja is a bankkártya adatok lemásolása fizetéskor
  • ismert magyar bankok nevében küldött hamis levél, mely gyanús számlatranzakciókról vagy egyéb riasztásról szól, és arra próbálja rávenni a címzettet, hogy belépjen a (hamisított) netbank felületre

A számítógépes vírus olyan önsokszorosító program, amely saját másolatait helyezi el más, végrehajtható programokban vagy dokumentumokban. Az ún. féregvírus (worm) más számítógépeket fertőz, általában felhasználói beavatkozás nélkül is, a hálózaton keresztül, leggyakrabban e-mailben terjed.

Spam és vírusok - ezt a két problémát ma már nem lehet külön kezelni! A mai vírusok többségének célja spam-levelek terjesztése (vagy ennek elősegítése, pl. címlisták gyűjtésével), míg a spam-ek a régebbi vírusokban alkalmazott technikákat használják a különböző védelmi rendszerek kijátszására. 

Napjainkban a vírusok mindennapi fenyegetése elleni hatékony védekezés elengedhetetlenné - és sajnos szinte lehetetlenné - vált. Biztonságosnak vélt forrásból is gyakran kapunk vírusokat, hiszen működési mechanizmusukból következően az áldozat (a fertőzött gép felhasználója) az esetek többségében nem értesül idejében a fertőzésről, vagy csak felhasználják (hamisítják) a címét a ténylegesen vírusos gép elrejtésére. 

A víruskereső programok általában csak azután segítenek, hogy a fertőzés megtörtént, mivel a vírusok a gyors internet segítségével addigra nagyon sok gépet meg tudnak fertőzni, mire a víruskeresők felismerik őket.

Ezért a hagyományos módszer - az ismert vírusokat és spam-eket tartalmazó adatbázis alapján történő azonosítás - mellett egyre nagyobb hangsúlyt kapnak az ún. heurisztikus megelőző szűrések (vírusok és spam-ek általános jellemzőit, tulajdonságait figyelő és kereső). Ezek viszont tévedhetnek is!  

SPAM- és vírusszűrés az Óbudai Egyetem hálózatán: 

Az egyetem szervereinek bejövő levelezése, és valamennyi, az egyetemről elküldött levél átmegy a SENDMAIL nevű, spam- és vírusszűrést végző szerveren. 

Ez a szerver egy sok lépcsőből álló szűrő soron vezeti végig a leveleket, és csak azokat továbbítja, amelyek nem akadtak fent egyik szűrőn sem. Mivel sok, komplex szűrőről van szó, sajnos nem lehet 1-2 mondatban megfogalmazni, mitől akadhat fent egy levél. 

Általánosságban azért elmondható, hogy a szűrők - igazodva a mai spam-ek és vírusok természetéhez - leginkább arra érzékenyek, ha megpróbálják kijátszani, kikerülni őket. (Ironikus, de a legtöbb spam pont azért akad fenn, mert megpróbálta kikerülni a szűrőt, többségük e-nélkül átment volna! Ez fordítva is igaz, ha egy spam átjut a szűrőkön, az általában semmi gyanúsat, feltűnőt nem tartalmaz, így pont az eredeti célját - figyelemfelhívás, reklám - nem éri el...)  

A leggyakoribb három ok, ami miatt "tévesen" blokkol leveleket a rendszer: 

1. A küldő ki akarja játszani a védelmet ("nehogy a spam-szűrőtök megfogja!"), ezért átnevezi a csatolt file-t (pl. valami.exe -> valami.gif)

Megoldás: nem kell átverni a rendszert, ha ártalmatlan a file, nem éri bántódás!

2. A csatolt file neve túl van az észszerűség határán, azaz vagy több mint 120 karakter hosszú, vagy filenévbe nem illő karaktereket is tartalmaz (pl. idézőjel, / jel, sok space stb.). Általában a Word által automatikusan adott nevekkel (a szöveg első bekezdése + .doc) szokott gond lenni.

Megoldas: csatolt file átnevezése és újraküldése.

3. Sokszorosan továbbküldött (forward) lánclevelek: Ezeknél általában a sokféle levelezőből belekerült kusza MIME fejlécek okozzák a blokkolást, de ezekért a levelekért úgysem kár...

Megoldás: ne továbbíts láncleveleket, mert:

http://yikes.tolna.net/hoax/

 

A szűrőlánc elemei, részletesebben:

1. procmailrc-spam - kézzel írt spam szűrő szabályok

Ilyenekkel tudjuk gyorsan és hatékonyan lekezelni a spam-támadást, amikor egyféle spam-ből hirtelen nagyon sok jön, és ezek a többi szűrőt nagyon le tudnák terhelni. Illetve van benne szűrés pár "örökzöldre" is (pl. viagra szó a subject-ben stb.).

Ezeket a leveleket a rendszer mindig blokkolja (eltárolja a szerveren, de a címzett nem kapja meg), értesítés nélkül (se feladónak, se címzettnek)! Mivel ezek a szűrő-szabályok konkrét spam levelekre (vagy típusokra) vonatkoznak, a tévedés itt kizárva. 

2. DeepSpam - neurális hálóval az adathalászat ellen

A legtöbb mai spamszűrő megoldás a naive Bayesian algoritmust használja a gépi tanulás megvalósításra. Ennek a legfőbb hátránya, hogy nem veszi figyelembe a szavak sorrendjét, sőt a szókapcsolatokat, vagy a magyar nyelvre nagyon jellemző különböző toldalékolást, ragozásokat sem. Ez egyszerűbb, egyértelműbb esetekben jól műküdik, de a manapság gyakori megtévesztő adathalász, phishing levelek esetében nagyon rossz hatásfokú.
A neurális hálózatokon alapuló text-classification tudománya 2011-2014 között rengeteget fejlődött, tucatnyi új algoritmust publikáltak, melyek a Bayesian módszerénél lényegesen pontosabbak, igaz sokkal számításigényesebbek is. Az ezt implementáló DeepSpam milter az FSF.hu támogatásával készült 2017-ben, elsőként az egyetemen került éles bevezetésre. Saját méréseink szerint ez a szűrő fokozat 99.9% pontosságú.

3. PyMaViS - vírusok kiszűrése

A PYMAVIS email-szűrő keretrendszer víruselemző modulja a levelet szétbontja elemeire, minden csatolmányt külön file-ba stb., majd erre a könyvtárra ráengedi a különböző víruskereső motorokat is (az egyetemen a NOD32 és ClamAV).

Ha valamelyik keresőmotor vírust talál, akkor a levelet nem továbbítjuk, és sem a feladó, sem a címzett NEM KAP erről értesítést! (mivel a vírusok 99%-a ma már hamis feladót használ, nincs értelme)

Ezen kívül van benne többféle heurisztikus és direkt szűrés, amivel felismeri a vírus-gyanús, pl. átnevezett exe file-okat és a különböző védelmi mechanizmusok kijátszására való próbálkozásokat. Emellett ellenőrzi a szintaktikát, pl. hibás file-név, fejlécek...
 
A teljesség igénye nélkül, pl. a következő esetekben blokkol:
  • túl hosszú a csatolt file neve (max 120 karakter lehet!)
  • szokatlan írásjelek vagy túl sok szóköz, tab a csatolt file nevében
  • átnevezett EXE/DLL file (pl. .GIF-re stb)
  • olyan EXE file, amely hálózati kapcsolatokat kezelő DLL-eket használ
  • olyan kisméretű EXE, amely exepackerrel vagy egyéb módon álcázza, kódolja magát
  • jelszóval védett, de nem tömörített (1:1 méretű) ZIP vagy RAR file
  • "hta","vb","vbs","bas","reg","inf","dll","vxd","pif" kiterjesztésű file-ok
  • "exe","pif","scr","com","bat","cmd" kiterjesztésűek tömörítetlen zip-ben
  • a MIME szabványnak ellentmondó fejlécek, sorok a levélben (min 3 db)

Blokkolás esetén csak a feladó kap értesítést, a címzett nem!

Ha csak gyanús a levél, akkor nem blokkolja, hanem VÍRUSGYANUS megjelöléssel a Subject-ben továbbengedi a címzettnek, esetleg a gyanús csatolt file-t átnevezi valami ártalmatlanra. (GYANUS.EXE -> GYANUS_EXE.TXT) 

4. Szabály- és mintaalapú SPAM-szűrés

A SPAM osztályozás a spamassassin programon keresztül történik. Ez különböző módszerekkel vizsgálja a levelet, és az ezekből kapott pontszámokat összegzi. Az eredmény alapján osztályoz:

  • <1 pont:      nem gyanús, kézbesítjük
  • 1..5 pont:    gyanus, de kézbesítjük
  • 5..10 pont:  valószínűleg spam, de kézbesítjük SPAM-ként megjelölve
  • >10 pont:    biztosan spam, nem kézbesítjük

A középső két zóna ahol számolni kell tévedéssel, így ezeket ennek megfelelően óvatosabban kell kezelni. (ezért is kézbesítjük, ha jelölve is) 

A pontszámot befolyásoló szűrők: 

4.1. SpamAssassin súlyozott minta-illesztője, kb. 5000 féle beépített szűrő szabályt próbál illeszteni a levelekre, és összegzi az egyező minták súlyértékét/pontszámát. Ez a különböző technikai és szöveg/stilisztikai jellemzők mellett nézi pl. a szöveg nyelvet is. Ezek pontszámait lehet (és kell!) kézzel finomhangolni, a felhasználók visszajelzései (téves jelölés stb.) alapján, illetve új szabályokat is szoktam felvenni hozza.   Bővebben: http://www.spamassassin.org

4.2. Bayes-DB: egy (jelenleg) 10 millió szavas szótár alapján a spam-ra és nem spam-ra legjellemzőbb, a levélben előforduló szavak alapján számit egy valószínűséget 0..100% között, ez alapján -12 .. +8 ponttal korrigálja az 1. eredményét. Ez a szótár tanulással jön létre. Induláskor egy válogatott 15 ezres spam és ugyanekkora nem-spam lével gyűjteménnyel lett előtanítva, majd az ezután beérkező levelekből vett szavakkal, mintákkal bővíti a szótárt automatikusan. A módszerről: http://www.paulgraham.com/spam.html

4.3. A SpamAssassin-hez készített internetről folyamatosan frissülő (a vírusadatbázisokhoz hasonlóan) mintagyűjtemények: http://www.rulesemporium.com/rules.htm, illetve az ezeket automatikusan frissítő script: rules_du_jour. Ez általában az új, a SA beépített szabályaival már nem megfogható spam-ek kiszűrésére használatos. 

4.4. Különböző DNS-alapú blacklist szerverek (DNS-BL): Ezekkel IP cimeket illetve URL-eket lehet gyorsan és hatékonyan ellenőrizni a következők szerint:

  • az IP ahonnan a levél érkezett ismert spam-küldő-e
  • az URL(ek) ami a levélben található ismert spam-site-e
  • az IP ahonnan a levél jött dinamikus IP-e vagy fix IP?

Mivel ezek nem 100% megbízható információk (pl. gyakran kerülnek be a nagy net-szolgáltatók címei ezekbe a feketelistákba) így ezeket csak kis %-ban vesszük figyelembe, max. 1-2 pont értékkel. (Ha a küldő sok feketelistában szerepel, úgyis meglesz a blokkoláshoz vagy jelöléshez elegendő pontszáma.) 

5. DCC - Distributed Checksum Clearinghouse http://www.dcc-servers.net/dcc/

Ez egy elég trükkös módszer. Lényege, hogy egy szerver(hálózat) számolja a leveleket, amiket a résztvevő mailserverek továbbítanak. Minden levelet!!! (Persze csak egy ideig (pár napig) tarolja, és nem a levelet, hanem csak a checksum-ját). Ha ugyanaz a tartalmú levél (ugyanaz a checksum) rövid időn belül nagy számban fordul elő a hálózaton, akkor az vélhetően spam. A módszer előnye hogy semmit sem tud a levélről, nem nézi a tartalmat, csak azt számolja, hogy ugyanaz a levél hányszor megy át a rendszeren. Mivel a spam-eket milliós számban küldik, elég hamar eléri a kritikus határt és ezután kiszűrhető. Hátránya is ugyanez, mivel vannak olyan hírlevelek, ill. levelezőlisták, amik sok címre mennek ki egyszerre, mégsem spam-ek, viszont ez a módszer nem tud különbséget tenni köztük. 

Éppen emiatt ezt nem használjuk direkt szűrésre, csak a DCC által gyanúsnak talált leveleket letárolunk a szerveren a spam-dcc folderbe, de kézbesítjük is. Ez arra jó, hogy időnként kézzel átnézve a kiválogatott spam-ekkel tanítható a Bayes filter. 

Ha a levél végigment a tortúrán és egyik szűrő sem blokkolta, akkor kerül továbbításra a címzettnek. 

Statisztika: 

A grafikon felső felében levők a továbbított levelek, az alsón (negatív tartomány) a blokkoltak.