Upozornění

Poštovní systémy FI a MU poskytují některé služby pro omezení šíření zavirované pošty a pro alespoň částečnou detekci nevyžádané (obvykle komerční) pošty - spamu. Na této stránce popíšeme celkovou činnost systému a možnost uživatelské konfigurace. Zdůrazňujeme, že kontrola probíhá na dvou úrovních. První je univerzitní poštovní server a druhá je fakultní poštovní server.

Tato ochrana není a nemůže být stoprocentní. Stále platí: neotevírejte přílohy, které jste dostali od neznámých odesílatelů (nebo od na první pohled známých odesílatelů, přičemž zpráva vypadá podezřele)!

VÁŽNOU HROZBOU doprovázející jakékoli filtrování pošty je FALEŠNÝ pocit bezpečí. Počítejte s tím, že některé viry odhaleny budou, ale všechny nutně odhaleny být nemusí!

Nezbytnou součástí antivirové ochrany počítače s operačním systémem MS Windows je i přímo na počítači instalovaný kvalitní antivirový program, jehož databáze rozpoznávaných virů je pravidelně (1x denně je blízko optimu) aktualizována. Pro počítače, které jsou majetkem FI, jsou zakoupeny licence antivirového programu (se žádostí o instalaci se obraťte na win (at) fi.muni.cz). Studenti mohou pro své počítače využít některý z volně dostupných antivirových programů, např. avast!.

Pokud je vaše pošta přesměrována pomocí souboru .forward, k antispamové kontrole nedochází. Jestli chcete poštu přeposílat a zároveň kontrolovat, použijte program procmail.

Kontrola příchozí pošty na celouniverzitní úrovni

Před vpuštěním do sítě univerzity je každý příchozí mail prohlédnut na serveru relay.muni.cz antivirovým programem a projde zevrubnou antispamovou rutinou (zejména tzv. greylistingem). Pozitivní nález v libovolném z těchto dvou testů je následován okamžitým a nenávratným zahozením mailu bez uvědomění potenciálního příjemce. Je-li výsledek testů negativní, je mail přeposlán dál do univerzitní sítě, a to mj. s těmito přidanými hlavičkami:
  • X-Muni-Spam-TestIP - IP adresa serveru, odkud relay.muni.cz obdržel daný mail;
  • X-Muni-Envelope-From - e-mailová adresa odesilatele specifikovaného v obálce mailu.
Těchto informací lze při citlivém zacházení využít k dodatečnému filtrování pošty na uživatelské úrovni před doručením do schránky (např. procmailem).

Kontrola příchozí pošty na fakultní úrovni

Pošta pocházející z vnitřní sítě fakulty neprochází žádnou anti-spamovou kontrolou. Pakliže mail pochází z vnějšku a je-li doručován do cílové schránky serverem Anxur nebo Aisa (viz detaily; přeposlání pomocí procmailu se však pro tento účel považuje za doručení do cílové schránky), projde standardně anti-spamovou kontrolou o těchto fázích (v uvedeném pořadí):
  1. whitelist/blacklist
  2. SpamAssassin
  3. dSpam

Whitelisting / blacklisting

Whitelist je v nejjednodušším slova smyslu seznam adres, ze kterých žádná příchozí pošta nemá být označována za spam, a to s absolutní platností, za každých okolností. Ve whitelistu mohou existovat i víceznačné položky díky speciálnímu znaku '*', který reprezentuje libovolný počet (i nulový) libovolných znaků. Položka "*@math.muni.cz" tedy whitelistuje veškeré adresy v doméně math.muni.cz. Existují dvě úrovně whitelistu - globální (udržovaný CVT, platný pro všechny uživatele e-mailu na Anxurovi či Aise) a uživatelský (platný pro příchozí poštu jediného uživatele). Na FI je whitelist realizován pomocí programu SpamAssassin (viz dále). Svůj whitelist si můžete nadefinovat přidáním libovolného počtu řádků následujícího tvaru do souboru ~/.spamassassin/user_prefs:
whitelist_from WhitelistovanyOdesilatel@abc.xyz
Aby byl tento konfigurační soubor vzat v úvahu, je nutné:
  • domovskému adresáři a adresáři ~/.spamassassin přidělit právo "x" pro ostatní
  • souboru ~/.spamassassin/user_prefs přidělit právo "r" pro ostatní
Obdobným způsobem lze obcházet anti-spamovou kontrolu i whitelistingem klíčových slov v mailové hlavičce Subject. Jakýkoliv mail, jehož předmět bude obsahovat byť jediné z klíčových slov jako podřetězec, se rovněž vyhne anti-spamové kontrole a bude vždy řádně doručen. Seznam klíčových slov se uvádí do stejného souboru jako seznam whitelistovaných adres (platí i stejné požadavky na přístupová práva), formát řádků je však následující:
whitelist_subject WhitelistovanyRetezec
Blacklist (dle odesilatele i dle předmětu) má duální funkci k whitelistu: vyhovující zpráva bude bez dalších kontrol, s definitivní platností označena za spam. Konfigurace blacklistu je shodná s whitelistem, pouze místo whitelist_from pište blacklist_from a místo whitelist_subject potom blacklist_subject.

SpamAssassin

Tento filtr provádí heuristickou analýzu. Definuje pevnou množinu jevů (rules, pravidla; většinou přítomnost nějakého slova nebo slovního spojení), jejichž výskyt je v mailech zjišťován. Tato množina je fixní; může ji měnit jen ručně správce (s celofakultní platností) nebo uživatel (s platností pro svoji adresu). Každý jev má přiřazenu váhu (reálné číslo), která vyjadřuje jeho závažnost. Kladná váha označuje jevy, které jsou charakteristické pro spam, záporná váha jevy, které jsou typické pro regulérní poštu. Součet vah všech jevů, které se v mailu vyskytují (duplikátní výskyty jednoho jevu se ignorují), se nazývá skóre. Je-li skóre větší nebo rovno 7, je mail označen za spam a už vůbec nevstupuje do procesu kontroly programem dSpam.

V mailu, který byl zpracován SpamAssassinem, najdete hlavičku X-Spam-Status, z níž lze vyčíst výsledky analýzy mailu.
X-Spam-Status: Yes, score=14.3 required=7.0 tests=FI_NOTFROMFI,
	FORGED_MUA_OUTLOOK,FORGED_OUTLOOK_HTML,FORGED_OUTLOOK_TAGS,FORGED_RCVD_HELO,
	HTML_70_80,HTML_FONT_BIG,HTML_MESSAGE,INVALID_DATE,MIME_HTML_ONLY,
	NO_REAL_NAME,UNDISC_RECIPS autolearn=disabled version=3.1.9
  • mail byl označen za spam
  • jeho skóre činí 14,3
  • jevy, které se na skóre podílely, jsou vyjmenovány v seznamu tests
Jaký je význam jednotlivých jevů, je obvykle irelevantní, nicméně můžete se jej zevrubně dozvědět z hlavičky X-Spam-Report, kterou SpamAssassin vkládá do každého mailu, který považuje za spam.

Chování SpamAssassinu si můžete do jisté míry nakonfigurovat v již dříve zmiňovaném souboru ~/.spamassassin/user_prefs (platí i požadavky na oprávnění k přístupu). Následující stati popíší, jak soubor využít ke třem základním zásahům do konfigurace; detaily o nich i dalších možných úpravách poskytne příkaz man Mail::SpamAssassin::Conf.

Změna minimálního spamového skóre

Implicitně jakýkoli mail se skóre rovným nebo vyšším než 7 je označen za spam. Pokud chcete tuto hranici změnit, vložte do konfiguračního souboru řádek (namísto X dosaďte žádoucí reálnou hodnotu):
required_hits X
Zvyšování hraničního skóre je relativně bezpečné; zvýší se pravděpodobně počet spamů, které nebudou rozpoznány. Snižovat hranici se nedoporučuje.

Definice vlastních jevů

Nejčastěji je žádoucí identifikovat v mailu určité textové řetězce či vzory, které nesou jistou vypovídací hodnotu o spamovosti, resp. neškodnosti celého mailu. Ve SpamAssassinu se tyto vzory definují pomocí perlovských regulárních výrazů. Pro zavedení jevu nazvaného RULE (se slovním popisem DESC a skóre X), který bude obnášet hledání řetězce vyhovujícího výrazu EXP v hlavičce HDR mailu, vložte do konfiguračního souboru tyto řádky:
header    RULE  HDR =~ EXP
describe  RULE  DESC
score     RULE  X
Například tedy:
header    FI_CHEAPOEM  Subject =~ /cheap\s+oem\s+soft/i
describe  FI_CHEAPOEM  Cheap OEM Soft..
score     FI_CHEAPOEM  4.5
Pro zavedení jevu nazvaného RULE (se slovním popisem DESC a skóre X), který bude obnášet hledání řetězce vyhovujícího výrazu EXP v těle mailu, vložte do konfiguračního souboru tyto řádky:
body      RULE  EXP
describe  RULE  DESC
score     RULE  X
Například tedy:
body      FI_ISMU  /IS\s*MU/
describe  FI_ISMU  IS MU
score     FI_ISMU  -2

Změna skóre jevu definovaného globálně

Je možné změnit (s platností pouze pro vaši poštu) skóre i těch jevů, které jste nezavedli sami. Provedení je intuitivní: přidáním následujícího řádku do konfiguračního souboru změníte skóre jevu RULE na X:
score  RULE  X

dSpam

Statistický bayesovský filtr dSpam taktéž rozpoznává v mailech textové podřetězce - jevy -, kterým přiřazuje jisté skóre a na základě zvážení všech nalezených jevů stanoví, zda zkoumaný mail je či není spamem. Od chování SpamAssassinu se však liší.

Množina jevů a jejich skóre se samovolně proměňují, a to bez explicitního zásahu správce nebo uživatele do konfigurace. Filtr si jevy i skóre definuje/upravuje v tzv. fázi učení (tréningu) na základě zkoumání mailů, u nichž je příslušnost do kategorie spam/nespam předem explicitně stanovena. Jinými slovy: ve fázi učení jsou filtru předkládány maily, o nichž se ví, že jsou spamy a filtr si dle nich (pomocí Bayesova vzorce - odtud typ filtru) upraví představu o tom, jak zhruba spamy vypadají, aby je pak mohl mezi reálnou filtrovanou poštou rozpoznávat. To samé platí pro nespamy. Učení probíhá neustále (denně se filtr rekonfiguruje na řádově desítkách nových učících mailů) a filtr přitom jen velmi pomalu zapomíná, co se naučil již dříve. Vzniká tak velmi citlivý detekční mechanismus, který je šitý na míru konkrétnímu prostředí - konkrétním představám správce a uživatelů o tom, jak vypadá spam a jak vypadá nespam. Tento mechanismus se navíc vyvíjí v čase, aby průběžně bral v úvahu neustále se měnící rysy spamu.

Když byl dSpam na FI poprvé nasazen, byl vytrénován na netriviální množině spamu, resp. nespamu, který naakumuloval správce během posledních měsíců. Od té doby se dSpam učí převážně automatizovaně. Zdrojem učících spamů jsou:

  • maily přicházející na jistou e-mailovou adresu (tzv. honeypot - vábnička) v doméně FI, která nepřísluší žádnému uživateli a která je na Internetu ostentativně zveřejněna proto, aby byla ohlášena producentům spamu (reprezentovaným programy, které zpravidla neoplývají valnou vnitřní inteligencí pro odhalování honeypotů)
  • maily přicházející na adresu spam@fi.muni.cz

Zdrojem učících nespamů jsou maily přicházející na adresu notspam@fi.muni.cz.

Každý mail, který je dSpamem zpracován je obohacen o hlavičky, které uvádějí verdikt hodnocení dSpamu a také zdůvodnění tohoto verdiktu. Klíčovými jsou hlavičky X-DSPAM-Result a X-DSPAM-Factors. Příkladně:

X-DSPAM-Result: Spam
X-DSPAM-Factors: 15,
	liable+for, 0.00448,
	liable, 0.00673,
	shall+not, 0.00738,
	Offers+e, 0.99000,
	Offers+Microsoft, 0.99000,
	MSN+shall, 0.99000,
	mail+communications, 0.99000,
	WA+98052, 0.99000,
	target="_blank">More+Newsletters, 0.99000,
	This+shall, 0.99000,
	Feature+Offers, 0.99000,
	not+unsubscribe, 0.99000,
	content+nor, 0.99000,
	©2008, 0.99000,
	Newsletters+|, 0.99000
Mail s těmito hlavičkami:
  • nevyhověl whitelistu ani blacklistu a SpamAssassin jej označil za nespam
  • byl dSpamem označen za spam
  • tento verdikt byl stanoven na základě nalezení textových vzorů, které jsou vyjmenovány v hlavičce X-DSPAM-Factors

Textové vzory zde nevyžadují popis - přímo vyjadřují, co přesně bylo v mailu shledáno závadným či nezávadným. Ty vzory, u nichž je v hlavičce uvedeno číslo větší jak 0,5, mail staví více na stranu spamu; ostatní vzory na stranu nespamu. Čím větší uvedené číslo je, tím větší vypovídací hodnotu vzor nese. Pragmaticky vzato lze ze zmíněné ilustrace vyčíst, že v současné době dSpam považuje za silný rys spamu fakt, že se v těle či hlavičkách vyskytuje řetězec "©2008" nebo např. slovo "Feature" oddělené bílým místem od slova "Offers". Naopak výskyt slova "liable" silně naznačuje na regulérní poštu.

Vypnutí či omezení anti-spamové kontroly

Nejhrubší konfiguraci filtru lze provést pomocí jednoduché aplikace https://fadmin.fi.muni.cz/auth/sys/mail_nastaveni.mpl. Ovládání je intuitivní; mezi její schopnosti patří:

  • specifikace schránky, kam bude dSpam a/nebo SpamAssassin odkládat spamy
  • úplné vynutí některého nebo obou filtrů
  • aktivace zasílání upozornění na přijatý spam
  • ovládání zacházení filtru s duplikovanými maily
Nastavení provedená touto aplikací se ukládají v souboru ~/.procmail.setup.

Důležité poznámky k anti-spamové infrastruktuře FI

Právě adresy spam@fi.muni.cz a notspam@fi.muni.cz používejte k přeučení bayesovského filtru, pokud tento učinil chybu. Je nezbytné špatně zařazenou zprávu (spam nesprávně zařazený mezi regulérní poštou - tzv. false-negative, resp. regulérní zprávu nesprávně zařazenou mezi spam - tzv. false-positive) na jednu z uvedených adres nikoli přeposlat (forward), ale přesměrovat (redirect, bounce; v muttu klávesa "b", v Thunderbirdu zpřístupní tuto funkci plugin mailredirect). Pro rekapitulaci: false-negatives bouncujte na spam@fi.muni.cz, false-positives na notspam@fi.muni.cz. Tím, že filtr budete upozorňovat na jeho chyby, přispějete ke zkvalitnění anti-spamové kontroly v celofakultním měřítku.

Z uvedeného vyplývá, že adresy (not)spam@fi.muni.cz mohou být omylem či záměrně využity k dezorientaci filtru zasíláním nesmyslných či cíleně nekorektních mailů (spamy na notspam@fi.muni.cz, resp. nespamy na spam@fi.muni.cz). Aby k tomuto nedocházelo, je obsah schránek (not)spam@fi.muni.cz pravidelně kontrolován správcem, který eliminuje bílý šum a zprávy, které by si pouze omezená skupina uživatelů mohla přát reklasifikovat. Ve výhledu do budoucna se počítá se zavedením "uživatelských spamových databází" - bounce nesprávně klasifikovaného mailu na (not)spam@fi.muni.cz nezpůsobí změnu chování filtru vůči všem uživatelům, ale pouze vůči uživateli, kterému byl dotyčný mail původně doručen.

Dalším důsledkem předchozího je skutečnost, že mail nekorektně označený za spam už SpamAssassinem zdánlivě nemá smysl bouncovat na notspam@fi.muni.cz, neboť takto lze přeučit pouze dSpam. Je to pravdou napůl. dSpam si jakousi špetku znalosti extrahuje i z mailu, který mu dříve vůbec nepřišel do ruky (neboť, jak bylo řečeno, rozhodne-li SpamAssassin, že daný mail je spamem, dSpamu není tento mail už vůbec předkládán). Ale i když pomineme tuto špetku znalosti, stále je takový bouncnutý nespam hodnotný, a to proto, že se správce dozví o možných vadách v konfiguraci SpamAssassinu, kterou je nutno upravovat ručně (SpamAssassin se neumí nijak automaticky učit). Lze takto upozornit na vadu v konfiguraci SpamAssassinu, která by měla být odstraněna globálně. Nutno však podotknout, že správce musí být v globálních úpravách konfigurace velmi zdrženlivý, neboť co je vhodné pro jednoho uživatele, nemusí být vhodné pro jiné. Mějte na paměti, že SpamAssassin můžete ovlivňovat i svou lokální konfigurací.

Speciální komentář si zaslouží whitelisting celých domén, např. whitelist_from *muni.cz, whitelist_from *@fit.vutbr.cz apod. Taková lokální úprava konfigurace je nebezpečná v tom smyslu, že může do vaší regulérní schránky propouštět spamy, které by jinak byly korektně rozpoznány a které žádná reálná osoba z uvedených domén zcela jistě neodeslala. U spamu je zcela běžné, že kamufluje svůj původ tím, že za svého odesilatele prohlásí libovolnou známou adresu v Internetu a to se týká i adres v doméně muni.cz, vutbr.cz nebo jakékoli jiné. Kromě částečného zamlčení původu tak spam může i snáze obejít právě ony odvážné whitelisty, které zahrnují celé domény a ne jednotlivé adresy. V reálné praxi je důsledkem zavedení takového whitelistu jednak rozčarování uživatele nad špatnou funkcí anti-spamového systému a jednak neutuchající bouncování "whitelistovaných spamů" na spam@fi.muni.cz v naději, že se problém vyřeší. Jediným možným řešením však v takovém případě je zrušení problematického záznamu ve whitelistu.