SpamBayes: ještě chytřeji na spamy

14. 1. 2005 07:00    Rubrika: Ostatní    Autor: Václav Návrat

Spamy byly, jsou a budou. Jak co nejefektivněji a nejjednodušeji snížit jejich počet je tématem dnešního článku.

SpamBayes: ještě chytřeji na spamy

Ze začátku si vyjasněme, co to ten "spam" vlastně je. Jednoduše a velmi výstižně se dá toto záhadné slovíčko přeložit jako "nevyžádaná pošta". Může se jednat o hromadně rozesílané reklamní e-maily, o poštu od syna nigerijského krále, který vás žádá o finanční podporu, nebo i o rádoby vtipné psaníčko rozesílané hromadně vašim kamarádem s drobnou poznámkou, že pokud e-mail nerozešlete do 15ti minut vašim 10ti známým, budete mít 5 roků samou smůlu. No uznejte, takový kamarád je k nezaplacení. Tím, jak se nadobro zbavit právě této velice přínosné pošty, se budeme dnes zabývat.

Problém spamu není žádnou novinkou a v zahraničí by mohl psát více jak patnáctiletou historii. V našich končinách se pochopitelně objevil o nějaký ten rok později. Vše totiž souviselo s masivním rozvojem internetu a zvyšováním jeho propustnosti, kde ze začátku Česká republika bohužel trochu zaostávala. V dnešní době se však rozdíly pomalu smazávají, a tak už i my se můžeme pochlubit statistikou, která říká, že každý třetí e-mail v uživatelově schránce je spam.

Je pochopitelné, že takovýto stav se nedá nazvat ani jako uspokojivý, a tak se začal řešit problém, jak naučit počítač rozpoznat, že přijatý e-mail je spam a okamžitě jej odstranit nebo alespoň označit jako nevyžádanou poštu. Řešení na sebe nenechalo dlouho čekat a začaly se objevovat více či méně úspěšné rozpoznávací algoritmy. Čas a spousta testů ukázala, že jako velmi uspokojující se jeví algoritmus podle návrhu Paula Grahama. Na něm je také založena spousta dnešních anti-spamových programů.

Z návrhu P. Grahama také částečně čerpá projekt SpamBayes. O co vlastně jde? Na první pohled by člověk nezasvěcený do problematiky řekl "další anti-spamová aplikace". Není to ale tak úplně pravda a SpamBayes se liší od podobných programů hned v několika věcech. Tou první, která mě při objevení projektu překvapila, je, že se jedná o OpenSource aplikaci. Pokud jste trochu zkušenými programátory, můžete se nejen podívat, jak program funguje, ale také jej upravit nebo vylepšit. A pokud se bude jednat o opravdu přínosné vylepšení, můžete ho zaslat přímo autorům, ti jej určitě velice rádi do svého projektu přidají. Dalším velice zajímavým překvapením je zjištění, že projekt si sice bere příklad z Grahamova algoritmu, ale na jeho základě vyvíjí zcela nový, který je podle testů ještě úspěšnější. Jeho síla je také v tom, že se jedná o "učící se" algoritmus. Autoři to na svých webových stránkách vysvětlují následovně:

"Například ve spamu se často objevuje slovo Nigeria. Můžete tedy použít spamový filtr, který označí každý mail obsahující slovo Nigeria jako spam. Ale co když vaši obchodní partneři jsou z Nigerie? Potřebujete jasnější a více flexibilní nástroj. Navíc spammeři budou časem měnit obsah svých e-mailů a nebudou používat slovo Nigeria. Ideální software se musí umět adaptovat na změnu spamu."

Projekt SpamBayes zatím obsahuje 4 utility na ochranu proto všudypřítomnému spamu:

  • Outlook plugin - plugin pro Microsoft Outlook, který jej vylepší o klasifikaci e-mailů a výuku (viz. níže)
  • Pop3proxy - filtr stojící mezi POP3 serverem (server pro stahování pošty) a uživatelovým klientem. Ovládá se pomocí webového rozhraní
  • Imapfilter - filtr fungující na principu Pop3proxy, ale využívající protokol IMAP
  • Hammiefilter - filtr pro použití na straně serveru implementovatelný do programu Procmail.

Již jsem se zmínil o učení algoritmu. Celý princip funguje tak, že před používáním SpamBayes jako spamového filtru mu ukážete vzorek vyhovující zprávy a vzorek zprávy, kterou by jste rádi označovali jako nevyžádanou. Program tyto zprávy porovná a najde rozdíly, jako například odlišná slova a diference v hlavičkách či obsahu e-mailu. Po provedené konfiguraci bude dostávat e-maily označené jako "spam" nebo v případě nezávadnosti zprávy jako "ham" [v překladu šunka, zde ovšem myšleno jako e-mail s bezproblémovým obsahem]. Může se také stát, že filtr najde jen několik málo kritérií ukazujících na to, že by se mohlo jednat o nevyžádaný mail a není si jist, jestli jej má zařadit do kategorie ham nebo spam. V takovém případě jde na to lišáčky a příchozí mail označí jako "unsure" [nejistý].

Tento projekt je jistě velmi zajímavým počinem několika nadšenců, kteří se pokouší o co největší úspěšnost při rozpoznávání nevyžádané pošty. Navíc jim nahrává do karet fakt, že svůj projekt prezentují jako OpenSource a těší se poměrně velkému zájmu ze stran programátorů, kteří chtějí přispět svou troškou do mlýna. Pokud vás už nebaví každodenní čtení několika spamů a čekáte na svou spásu, projekt SpamBayes je tu právě pro vás.

Zdroj: SpamBayes

Ostatní

Diskuse