Hlavní navigace

Jak funguje antispam Bogofilter

22. 12. 2006
Doba čtení: 3 minuty

Sdílet

V diskusi pod článkem o implementaci Bogofilteru v KMail se objevilo mnoho čtenářů, kteří by rádi podrobně vysvětlili princip filtrování pomocí tohoto účinného nástroje. Zde je podrobné vysvětlení celé technologie. Jak Bogofilter pracuje? Jak je účinný? Jaké výhody má pro uživatele?

Základním principem je Bayesovský filtr (Thomas Bayes *1702 +1761 britský matematik). Jedná se o statistickou metodu klasifikace dokumentů. V případě klasifikace e-mailů použitím Bogofilteru se jedná o statistickou analýzu jednotlivých slov obsažených v e-mailu. K masovému rozšíření této metody došlo následně po publikování prvního a druhého článku Paula Grahama. Autorem Bogofilteru je Eric S. Raymond, který napsal první verzi. Od roku 2002 se na tvorbě podíleli David Relson, Matthias Andree, Greg Louis a mnoho dalších open source vývojářů.

Bogofilter klasifikuje slova celého e-mailu včetně hlavičky, což je důležité. Klasifikace pouhého textu a titulku by nebyla příliš účinná a docházelo by k omylům filtru. Stačilo by, aby spam obsahoval nejčastější běžná slova vyskytující se v běžných e-mailech a prošel by přes spam filtr. Po zpracování každého e-mailu se Bogofilter naučí pravděpodobnost výskytu slov v e-mailu a čím více normálních e-mailů a spamu jím projde, tím lépe je později schopen spam rozpoznávat. Slova jsou ukládána do databáze a ke každému slovu je přiřazena tato klasifikace a četnost výskytu v již dříve zpracovaných e-mailech. Metoda je vylepšena o rozdílnou klasifikaci slov podle toho, v které části e-mailu se nacházejí. Například jinou klasifikaci má slovo obsažené v titulku a jinou v těle zprávy apod.

To se provádí zařazením slova do databáze ne ve formě „slovo”, ale „titulekslovo” nebo „těloslovo”, tím je možno přiřadit různou klasifikaci. Klasifikace je prováděna desetinným číslem od 0 do 0.99, kdy nejvyšší hodnota znamená, že se jedná o spam. Klasifikaci pro ruční třídění, které je zpočátku nutné, můžete sami nastavit zadáním parametru do Bogofilteru. Nejvhodnější kombinace je 0.4 a 0.9, kdy 0.9 určuje spam a 0.4 se osvědčilo jako střední mezní hodnota. To jsou hodnoty, které se používají pro třístavový provoz Bogofilteru a osvědčily se. Pro učení jsou zpracovávána všechna slova z e-mailu, ale pro vyhodnocení ne, protože by opět docházelo k omylům filtru.

Při zpětném zpracování je vyhodnocováno jen určité množství slov z e-mailu (např. 15) a to podle jejich četnosti v databázi Bogofilteru. Jinak řečeno, každé slovo má svoji váhu, podle toho, jak často se v e-mailech vyskytuje, a jeho aktuální klasifikace uložená v databázi má při vyhodnocování vyšší nebo nižší prioritu. Největší zbraní Bogofilteru je lokální databáze každého uživatele a její obsah podle toho, jaký obsah přijímá daný uživatel. Spamer tedy nemůže vytvořit e-mail, který by univerzálně prošel spam filtry 90 % uživatelů.

root_podpora

Konkrétní příklad by mohl být na slovu Nigerie, které se často ve spamech vyskytovalo. Pokud by filtr fungoval podle jednoznačné klasifikace slov a označoval za spam všechny e-mailu obsahující slovo Nigerie, nemohl by toto slovo nikdo používat. Bogofilter je však schopen se naučit, že toto slovo používáte ve svých e-mailech a třídit e-maily dokáže podle výskytu dalších N slov. To je pro případ, že by vám chodily e-maily se spamem, který obsahuje slovo Nigerie a přitom vy sami byste slovo používali při komunikaci e-mailem.

Účinnost Bogofilteru je vyšší než 99 % a pokud některý spam projde, jsou to jednotlivé kusy, které člověka již zdrží minimálně. Navíc v případě třístavového provozu se spamy objevují roztříděné ve složce „nejisté”, nemusíme je tudíž třídit okamžitě a neobtěžují v příchozí poště. Wizardem defaultně nastavený filtr nechává e-maily v příchozí poště, pokud si není jistý, zda se jedná o spam. To je také jeden z důvodů proč je vhodné použít nastavení publikované v mém předchozím článku a nepoužívat wizarda pro nastavení Bogofilteru.

Máte potíže se spamem?

Byl pro vás článek přínosný?

Autor článku

Pavel Chalupa je redaktorem zpráviček a příležitostným pisatelem článků na Root.cz.