Máte něco proti spamu? Já ano - bayesiánský filtr. Vy jej můžete mít také, Mac OS X jej nabízí v rámci standardního systémového poštovního klienta. Kromě toho je k dispozici řada řešení pro jiné systémy: SpamAssassin, CRM114, SpamSieve a mnoho dalších. Bayesiánské filtry jsou daleko úspěšnější při rozpoznávání spamu než tradiční metody založené na fixních pravidlech. Co je ještě důležitější, téměř nikdy neoznačí "poctivouŽ zprávu za spam. Jejich další výhodou je to, že takřka neexistuje způsob, jak spam bayesiánským filtrem "protlačitŽ (podrobný rozbor je např. na www.paulgraham.com/better.html). Na trhu je dnes řada volně dostupných i komerčních bayesiánských filtrů. Firma Apple má svou vlastní implementaci - bohužel nemám k dispozici statistiku, jež by filtr Apple srovnávala s ostatními. Mohu jen z vlastní zkušenosti uvést, že je velmi kvalitní. V nové verzi 10.3 systému OS X je řada novinek a vylepšení; tato vylepšení se nevyhnula ani spamovému filtru. V Pantheru je nyní možné využít a dále rozšiřovat tabulky, jež analýzou spamu vytvořily jiné filtrovací systémy. Aplikace Mail také nyní umožňuje zakázat automatické načítání obrázků v HTML. To je významný prvek obrany proti spamerům, protože někteří z nich podle přístupu k odkazům automaticky vyhodnocují úspěšnost spamů a podle ní automaticky generují nové. O co vůbec jde Bayesiánské filtry jsou založeny na statistice - filtr prostě rozdělí zprávu na jednotlivá slova. Na základě existující knihovny "slušných zprávŽ a spamu pro každé slovo zjistí pravděpodobnost jeho výskytu v běžné zprávě i pravděpodobnost jeho výskytu ve spamu. Zbytek je jednoduchý: u nově přijaté zprávy se zjistí pravděpodobnosti slov, jež zpráva obsahuje. Vyberou se z nich ta "nejspamovějšíŽ a "nejnespamovějšíŽ a vyhodnotí se celková pravděpodobnost toho, že jde o spam. Neutrální slova, jež se stejně často vyskytují ve spamu i ve slušných zprávách, se ignorují. Bayesiánský filtr pracuje ve dvou fázích: v té první se "učíŽ, vyhodnocuje statistiky slov ve zprávách, o nichž je známo, zda jde o spam, nebo ne. Ve druhé fázi pak tuto statistiku využívá pro odlišení slušných zpráv a spamů. Z uživatelského hlediska nemusejí být fáze jasně odděleny - filtr může být nainstalován již se základní databází slov, podle níž může rozeznávat spam od ostatních zpráv hned od samého začátku. Učit se pak bude podle toho, jak bude uživatel jeho činnost průběžně korigovat. Srovnání s klasickými filtry Klasické antispamové filtry využívají řadu předdefinovaných pravidel například: obsahuje-li zpráva slovo "viagra", jde o spam, nebo pokud zpráva přišla ze systému s IP adresou 1.2.3.4, budeme ji považovat za spam (protože dotyčný systém je často zneužíván spamery). Nevýhodou filtrů založených na takovéto sadě pravidel je to, že je nesmírně snadné je obejít - spameři budou psát "viagra " (proloženě) nebo třeba "ta věc na zlepšení potence od v"; v e-mailech využívajících formát HTML budou do slov vkládat "neviditelnéŽ tagy. Zároveň existuje poměrně vysoké riziko, že zcela poctivá zpráva bude omylem rozeznána jako spam - stačí, aby třeba zákazník použil při popisu cesty "Viagra klubŽ jako orientační bod, a zpráva nedojde. V tomto směru je samozřejmě vůbec nejhorší tzv. blacklisting, tj. právě udržování seznamů "špatnýchŽ systémů a označování všech zpráv, jež z nich přijdou, za spam. Bayesiánské filtry založené na statistice těmito problémy netrpí. Pokud se ve spamech začne objevovat jakákoli transkripce nebo opis "nebezpečnéhoŽ slova, bayesiánský filtr to pozná na svých statistikách a bude i nadále rozlišovat spam správně. Vkládání neviditelných tagů a oddělovačů také nepomůže - místo celých slov se do statistik dostanou jejich části a také samotné neviditelné tagy a oddělovače! A naopak, bayesiánský filtr automaticky rozpozná slova, jež se často vyskytují ve slušných zprávách, a použije je pro identifikaci dalších zpráv, jež tato slova obsahují, jako "nespamu". Pokud se statistiky aplikují nejen na vlastní text zprávy, ale i na její hlavičku, funguje filtr navíc automaticky i jako blacklist - jestliže statistika ukáže, že se určitý konkrétní odesilatel vyskytuje ve spoustě spamů, zdvihne výskyt tohoto odesilatele pravděpodobnost, že jde o další spam. Na druhou stranu však zde (téměř) nehrozí "odstřeleníŽ slušné zprávy jen proto, že přišla ze špatného serveru: "nespamová" slova v jejím obsahu totiž pravděpodobnost zase sníží, takže se zpráva jako celek dostane pod práh určující spam. Velmi podstatná výhoda bayesiánských filtrů spočívá v tom, že jejich statistiky jsou individuální pro každého uživatele. Spameři mohou snadno zjistit, že široce užívané filtry vyřadí "viagru", "penis" a podobně, a těmto slovům se vyhnout. Pro oklamání bayesiánského filtru však spamer musí sestavit zprávu, jež využívá stejnou slovní zásobu a stejné výrazové prostředky jako slušné texty, jež ten který uživatel běžně dostává. To je - při rozesílání spamu milionům uživatelů - na hranici nemožnosti. Další výhodou bayesiánských filtrů je to, že snižují účinnost spamů - jestliže se spameři musejí vzdát výrazných slov, ostře červených a blikajících titulků a podobně, aby své zprávy "skrz" statistické filtry dostali k uživatelům, bude na ně reagovat méně lidí. Tím se samozřejmě sníží výnosnost spamování - takže spamu celkově bude méně. Ondřej Čada, ocs@ocs.cz