Hlavní navigace

Antispam, antivir ano, ale...

1. 7. 2004

Sdílet

V současné době se stává stále aktuálnější potřeba filtrovat elektronickoupoštu proti spamu a virům. Stále více lidí si instaluje tyto filtry na své domácí počítače a servery s...
V současné době se stává stále aktuálnější potřeba filtrovat elektronickou
poštu proti spamu a virům. Stále více lidí si instaluje tyto filtry na své
domácí počítače a servery svých sítí a mnozí poskytovatelé internetu jsou
nuceni je zapínat i bez požadavku uživatele. Rozhodl jsem se podělit se s vámi
o své zkušenosti s touto problematikou.

Doufám, že tento článek bude užitečný při rozhodování, jestli filtr použít nebo
nikoli. Hlavně mám v úmyslu upozornit na nejčastější chyby a problémy při
používání těchto prostředků, a to jak při "domácím" použití, tak i při použití
na serveru.
Nevhodné použití filtru proti spamu a virům totiž může stát hodně času, stresu
a peněz.

Nejprve stručné vysvětlení pojmů
• Virus přenášený elektronickou poštou je e-mail, který vám obvykle odešle něčí
zavirovaný počítač bez vědomí svého majitele. Na vašem počítači může virus
způsobit nějakou škodu (například zničit vaše dokumenty) a většinou se odešle
všem vašim známým, s nimiž jste v e-mailovém kontaktu. A tam rovněž může
způsobit nějakou škodu a rozeslat sám sebe dál.
Vzniká řetězová reakce, škody u uživatelů a přetížení internetu.
• Spam je naopak rozesílán většinou vědomě člověkem, který je za to mnohdy
dokonce placen a je to jistá forma reklamy. Možná jste již někdy (nebo
mnohokrát) dostali e-mail s obsahem například "Jsem třetí syn rolníka ze
Zimbabwe, vyděláte miliony, když mi pošlete sto tisíc..." anebo nabídku nějaké
firmy, že jste vyhráli letecký zájezd na Kanáry, pokud si koupíte její zboží a
budete mezi první tisícovkou zákazníků...
Klasickou papírovou obdobou e-mailového spamu není nic jiného než třeba
reklamní letáky obchodních domů, jež pravidelně nacházíme doma ve svých
poštovních schránkách.
Před několika dny jsem viděl aktuální statistiku za poslední dubnový týden -
78,3 % pošty na světě tvořil spam, 3,8 % viry a pouze zbytek je skutečná pošta.
Tahle čísla jsou poměrně šokující, i když v ČR je situace (zatím) poněkud
příznivější. Problémem spamu je, že globálně přetěžuje poštovní infrastrukturu
internetu a zahlcuje uživatele - příjemce pošty - množstvím e-mailů, které je
nutné prohlédnout, identifikovat jako nesmysl a smazat.
Problémem virů je, že působí uživatelům mnohdy nenahraditelné škody a rovněž
nárazově přetěžují internet. Je tedy rozumné a nutné poštu filtrovat, tedy
nechat počítač, ať e-maily obsahující spam a viry automaticky smaže. Zdá se, že
technologie k tomuto určené v současnosti "hýbou světem". Například na letošním
InfoSecurity veletrhu v Londýně byl právě toto možná úplně nejvíce nabízený
artikl.
Antispamové a antivirové filtry (dále jen filtry) lze rozdělit podle několika
hledisek.
Například podle toho, ve kterém místě cesty pošty internetem se filtr aplikuje.
Zjednodušeně řečeno: filtr může použít přímo koncový příjemce pošty na
počítači, na němž poštu přijímá a čte. Tedy na svém počítači doma nebo v
kanceláři. Nebo může být filtr aplikován někde v infrastruktuře internetu,
například na poštovním serveru u providera. Použití filtru doma má výhodu, že
je přímo v rukou uživatele a nastavení a použití filtru záleží jen na jeho
rozhodnutí. Ale na druhou stranu filtr aplikovaný až na konci cesty e-mailu od
odesílatele k příjemci vůbec nesnižuje zatížení sítě, a to ani koncové linky od
providera k uživateli. Je poněkud nepříjemné půl hodiny stahovat po modemu
e-maily a pak zjistit, že to bylo 20 spamů a 6 zavirovaných e-mailů, ale e-mail
od tetičky stejně nepřišel. Navíc antivir aplikovaný až na cílovém stroji
teoreticky neznamená 100% ochranu před virem. Co když virus hackne něco v
systému ještě před filtrem? Ještě jsem to v praxi na vlastní oči neviděl, ale
prý se to občas stává...
Použití filtru na mail serveru u providera nebo jinde "uvnitř" internetu tyto
nevýhody nemá, ale zase je uživatel zcela bezbranný proti nežádoucím účinkům
filtru. Což také občas stojí nervy a peníze, viz níže. Typickým představitelem
filtru, který je určen pro aplikaci "doma" jsou např. produkty Symantecu,
McAfee nebo známé AVG. Typickým představitelem filtru, který se používá
převážně na serverech, je třeba clamav.
Dále lze filtry rozdělit na hardwarové a softwarové. SW filtr někdy viděl asi
každý - třeba právě zmíněné AVG. Prostě je to program, který převezme e-mail,
zkontroluje ho, jestli je "nezávadný", a pokud ano, tak ho předá dál. Pokud ne,
tak ho zahodí. Popřípadě místo něj odešle upozornění, že e-mail přišel, ale byl
zahozen. HW filtr naopak viděl zatím málokdo, i když je to zboží, jež právě
prožívá svůj veliký boom. HW filtr pro "domácí" použití je prostě malá
krabička, která se vloží do kabelu mezi síť a počítač. A kupodivu závadné
e-maily do počítače nikdy nedorazí a ta kouzelná krabička je odstraní. Domácí
HW filtr připomíná modem. Ostatně většinou jej vyrábějí právě výrobci modemů.
Mnohdy mají HW filtry ještě další funkce: třídění pošty, archivaci pošty,
odesílání pošty v off-peak hodinách, příjem pošty při vypnutém počítači a
rozblikání se, když přišel toužebně očekávaný e-mail, šifrování pošty, funkci
firewallu, VPN atd... Serverové HW filtry mají podobné funkce, ale jsou to
velké bedny anebo racky, dají se obhospodařovat na dálku a tak dále. Prostě
běžný kus síťového železa.

Jak to funguje?
Filtrování pošty proti spamu i proti virům většinou realizuje jeden program.
Ale principy jsou poněkud rozdílné. Použité algoritmy mohou být mnohdy poměrně
složité, zde popíši pouze základní princip. Detekce zavirovaného e-mailu se
dělá podobně jako detekce zavirovaných souborů na disku. Antivirový filtr
obsahuje databázi řetězců, které se vyskytují ve všech známých virech. Pokud
e-mail jeden z těchto řetězců obsahuje, tak je prohlášen za zavirovaný a
zlikvidován. Detekce spamu se takto dělat nedá. Nelze vytvořit databázi všech
existujících spamů a řetězců, které je identifikují. Není to možné ze dvou
důvodů:
• Spam píše na světě mnoho milionů lidí, viry píše jen několik programátorů.
Různých spamů tedy existuje o několik řádů více než virů. Databázi spamu tudíž
nelze vytvořit a udržovat pro její rozsáhlost.
• Viry jsou programy. Tedy člověku nesrozumitelný "text", určený pro čtení
počítačem. Ale spam je běžná lidská řeč. Pokud by se používala databáze řetězců
identifikujících spam, tak by za spam bylo prohlášeno množství běžné pošty.
Možná skoro veškerá pošta. Texty používané ve spamu se prostě a jednoduše
používají i v normálních e-mailech. Pro detekci spamu se používají tzv.
blacklisty, provozované většinou různými antispamovými nadacemi.

Funguje to zhruba takto
Přijde vám spam. Vy se naštvete a tento mail přepošlete správci blacklistu (což
může být buď živý člověk, nebo program). Ten uváží, jestli jde opravdu o spam a
jestli se mu sešlo podobných stížností několik. Pokud ano, zveřejní
identifikaci odesilatele v blacklistu.
Pozor - tohle je důležité! V blacklistech je zveřejněna identifikace
ODESILATELE, nikoli jen identifikace konkrétního e-mailu! A protože každý
správný spamer každých 10 minut změní svoji e-mailovou adresu a každou
půlhodinu IP adresu svého počítače, tak se jako identifikace odesilatele
používá hlavně IP adresa serveru, přes který spam odešel. Jinak řečeno, spam
nebývá identifikován svým obsahem a dokonce ani svým odesilatelem, ale
identifikátorem SÍTĚ, ze které odešel! Například IP adresou smtp serveru
příslušného internet providera. Vyřazení z blacklistu se děje obvykle na žádost
správce postiženého serveru, popřípadě uplynutím nějakého času bez stížností.
Antispamové filtry tedy vezmou váš e-mail a podívají se, jestli náhodou nebyl
odeslán z adresy uvedené na blacklistu. Pokud e-mail pro vás z takovéto adresy
odeslán byl, tak je zahozen. A naopak pokud vy odesíláte e-maily přes server,
jenž se náhodou dostal na blacklist, tak se dostane ke svému adresátovi jenom
tehdy, pokud cestou nenarazí na antispamový filtr.

Největší problém
Právě tohle je největší problém v praxi při snaze o správné použití antispamové
filtrace pošty. Totiž většina uživatelů pošty je připojena přes velké
providery. Velcí provideři mají mnoho klientů. Mezi nimi se vždy najde nějaký
spamer. Čili čas od času se právě váš poštovní server (resp. server vašeho
providera) dostane na blacklist. A vaše e-maily pak filtry po celém světě
považují za spam, i když tomu tak ve skutečnosti není. Tohle se čas od času
stává všem velkým poštovním serverům všech velkých providerů.
Nebo řečeno totéž, ale z opačného úhlu pohledu: pokud si doma na svém počítači
nainstalujete antispamový filtr, tak musíte počítat s tím, že vám občas nějaký
e-mail nedojde, ale ztratí se. Protože jeho odesilatel sice není spamer, ale
náhodou používá server, který je zrovna náhodou na blacklistu. Tudíž váš filtr
tyto e-maily nepropustí.

Možná řešení
Existují různé možnosti a přístupy, jak se pokusit tento problém řešit. Úvahu o
možnostech řešení rozdělím na použití "doma" (tj. na koncovém počítači) a "na
síti" tj. například v rámci poštovního serveru vaší lokální sítě nebo pomocí
prostředků vašeho providera.

Doma
Doma je úvaha poměrně jednoduchá. Pokud zrovna nejste specialista na viry a
jiné speciality, tak si určitě aktivujte antivir. Ničemu totiž neuškodí, ale
naopak velmi prospěje, když vám nebudou doručeny zavirované e-maily. Ale úvaha
jestli aktivovat i antispamovou filtraci je něco jiného. Zde se musíte
rozhodnout, co vám vadí víc. Jestli záplava spamu nebo ztrácející se užitečné
e-maily. Instalace filtru "doma" samozřejmě nesníží zatížení linky, takže doma
je to opravdu jen o tomto uživatelském rozhodnutí.
Poznámka: Přesněji řečeno filtr instalovaný "doma" nesníží zátěž linky v
příchozím směru, odchozí záplavu e-mailů ze zavirovaného počítače samozřejmě
filtr zachytit může. Ale obvykle bývá užitečný jen HW filtr. Když je totiž
počítač zavirovaný, tak je často SW filtr nefunkční a viry přes něj nerušeně
odcházejí ven. Ale HW filtry u nás zatím nejsou příliš obvyklé, zejména ne při
domácím a kancelářském použití.

Na síti
Na síti je situace mnohem složitější. Správce sítě (nebo internet provider) je
pod několika různými protichůdnými tlaky. Uživatelé na něj tlačí, aby jim spam
a viry nebyly doručovány. Zároveň ale uživatelé velmi neradi vidí, když jim
"omylem" nepřijde užitečný e-mail. Zatížení poštovního serveru ho může nutit k
filtraci pošty. K témuž ho může nutit práce spojená s řešením opakovaně
zavirovaných počítačů. A také je tu snaha nedostat se na blacklist. A když už
se na blacklist dostane, tak ho stojí nemálo práce to zjistit a vyřešit. Není
se tedy čemu divit, že správci pošty inklinují k použití intenzivní filtrace
pošty. Mám mnohé zkušenosti z praxe, že správcové podceňují riziko spojené s
tím, že filtr omylem e-mail "sežere". Vždyť pošta přece není zabezpečený
protokol, e-maily se občas ztrácejí a stejně o nic moc nejde. Být zasypán
spamem a viry je přece mnohem horší. Já osobně jsem ale přesvědčen, že e-maily
omylem označené za spam jsou problém. Stojí to totiž čas a peníze.

Uvedu dva příklady z praxe:
1. Na blacklistech často bývají cestovní kanceláře. Z povahy jejich práce
vyplývá, že si občas tak trochu zaspamují... Představte si, že si u jedné z
nich objednáte levnou letenku. Cestovka pak několik dnů sleduje ceny a vybírá.
Když vybere něco levného, tak vám nabídku pošle e-mailem a 24 hodin čeká na
vaše potvrzení. Jenže e-mail cestou antispam spolkne (protože cestovka je na
blacklistu), vy se o nabídce nedozvíte, takže ji tudíž ani nepotvrdíte. A
nakonec letíte, ale o několik tisíc dráž.
2. Extrémní případ tohoto jevu je zkušenost jedné mé kamarádky. Ta se jednoho
krásného letního dne posadila před počítač v internetové kavárně kdesi
uprostřed Evropy. Na webu si vybrala letenku od EasyJetu a samozřejmě ji hned
kreditkou zaplatila (u EasyJetu to dnes snad už ani jinak nejde). A pak čekala
na e-mail. EasyJet totiž funguje tak, že po zaplacení kreditkou pošle e-mail,
ten si člověk vytiskne, a to je jeho letenka. S tímto vytištěným e-mailem se
jde na letiště a odletí se.
Jenže e-mail nepřišel. Tedy zavolala do EasyJetu. Neboť ale neznala číslo své
objednávky (spoléhala se, že bude v tom e-mailu), tak pro ni nemohli nic moc
udělat. Platby kreditkou totiž trvají několik dní než skutečně fyzicky
proběhnou a letadlo mělo odlet ještě téhož dne.
Takže kamarádka zatnula zuby a zaplatila ještě jednou. Tentokrát již byla
chytřejší a číslo objednávky si zapsala. Ale e-mail ji opět nepřišel. Takže se
vypravila na letiště s číslem na papírku v ruce. Než se domluvila, našla
příslušného člověka a vysvětlila situaci, tak letadlo opět odletělo. Následkem
toho letěla až další den mnohem dražším letadlem. Čili to máme celkem dvě
letenky levné, jedna drahá, noc ve drahém hotelu poblíž letiště - rovná se
několik desítek tisíc korun a ztráta času. To byla cena za to, že toho dne
došlo v jejich firmě k nasazení antispamového filtru... Již následující den byl
filtr opět vypnut.
Z těchto příkladů je vidět, že v praxi nelze jednoduše direktivně smazat
podezřelý e-mail uvnitř infrastruktury sítě (třeba na úrovni mail-serveru).
Jediný, kdo se pro tento krok může rozhodnout, je uživatel. Nikoli správce
sítě. Jenže správce sítě je nucen řešit výše uvedené problémy. Jinak by byl
vystaven kritice uživatelů a možná by byla narušena i samotná funkčnost sítě.
Pokusů o řešení tohoto problému jsem v praxi viděl mnoho. Dvě řešení tohoto
problému jsou popsána v rámečku.

Další časté chyby při použití filtru
Upozorním ještě na dvě časté chyby v praxi při používání filtrace pošty.
1.Musíme si uvědomit, že denně na světě vznikne i několik stovek nových virů
(rekord je tuším 300 nových virů za 24 hodin, ale jistě bude brzy překonán).
Antivirový filtr má tudíž smysl jedině tehdy, pokud se jeho virová databáze
aktualizuje několikrát denně. Osobně používám aktualizaci po třech hodinách.
Což musíte podporovat jak vy (nastavením aktualizací), tak i váš dodavatel
antivirového softwaru (rychlostí tvorby upgradu). Ale ani tak neexistuje
jistota, že virus skutečně neprojde! Virů totiž vzniká mnoho a šíří se rychle,
takže i nejnovější virová databáze od dobré firmy není s jistotou aktuální. To
prostě není technicky možné. Je tedy nutno pravidelně skenovat disk na viry.
Nehledě na to, že viry se do počítačů dostávají i jinak nežli jenom poštou.
Jinak řečeno, mnoho uživatelů si myslí, že jsou v bezpečí, protože používají
antivirovou filtraci pošty, ale to není pravda.
2. Antispamová filtrace používá blacklisty, které se velmi rychle mění v čase.
Prakticky každou minutu a častěji. Antispam je tedy správně a plně funkční
pouze pokud k má přístup k aktuálním blacklistům, platným v době doručení
konkrétního e-mailu. Tedy musíte být on-line na síti a příjem pošty a její
filtrace musí běžet kontinuálně v reálném čase. Při dávkovém stahování pošty
například jednou týdně mnohdy antispam filtrace nadělá ještě více zmatku a chyb
než normálně: skutečný spam často pustí, neboť odesilatel již na blacklistu
není.

Závěrem
Doufám, že jsem čtenářům umožnil poznat aktuální žhavé téma a pomohl uživatelům
a správcům pošty vzájemně se domluvit a nedopustit se v praxi často opakovaných
chyb.

Řešení jednoduchá, ale dosti problematická
Jedno z častých řešení je filtrovat pouze viry a spam nechat procházet. V ČR je
to zatím asi přijatelné "řešení", ale na jak dlouho? Viz výše uvedená
statistika - cca 80 % světové pošty dnes tvoří spam. A bude hůř...
Jiné často používané řešení je zahozené e-maily nahradit e-mailem obsahujícím
informaci, že byl zahozen. Ale co to řeší? Snad objem dat prošlý mailserverem.
Ale pro uživatele se situace spíše zhoršila - neustále se musí vyrovnávat s
hromadou "divné"" pošty a navíc si musí složitě vyžádat od odesilatele poštu,
která měla dojít, ale nedošla. Navíc mohou vznikat trapasy. Zde je opět příklad
z praxe:
Jednou jsem přišel na jistou univerzitu. A vidím, že ctihodný pan profesor se
chová - mírně řečeno - velmi nectihodně. Opatrně jsem ho obešel a v bezpečné
vzdálenosti se zeptal jeho sekretářky, co že se přihodilo? Bylo mi vysvětleno,
že pan profesor pět let bádal, potom dva roky psal článek a pak půl roku
prováděl na žádost redakce korektury. A dnes mu ona ctihodná redakce skutečně
velmi prestižního světového vědeckého časopisu oznámila, že jeho článek přijímá
a žádá o definitivní souhlas s otištěním. Jenže SMTP server providera té
redakce byl tou dobou zrovna na blacklistu. Takže odpověď té redakci neposlal
pan profesor, ale poštovní server fakulty. Bylo to cosi rádoby vtipného ve
stylu "Spamerům e-maily nedoručuju, příště neotravuj!". A navíc s chybou v
angličtině. Pan redaktor se hluboce urazil, zavolal panu profesorovi telefonem
a měl pro něj rovněž jen jednu větu podobného obsahu. Raději jsem toho dne
odešel a přišel si svoje věci vyřídit o dva dny později.
Další častá metoda je smazat viry a spam doručovat. Ale doplněný o upozornění,
že jde o "***SPAM***". Mě osobně ale smysl tohoto opatření uniká. Zátěž sítě se
nezmenší a zátěž uživatele také ne. Spíše naopak.


Dvě velmi dobrá, ale asi složitá řešení
Znám dvě dobrá, ale složitá řešení. Musí se totiž vždy naprogramovat pro
konkrétní podmínky na konkrétní síti. Viry považuji za dobré (skoro) vždy
je\dnoduše smazat. Níže uvedené se tedy týká jen antispamové filtrace.
První řešení je technicky zajímavé a uspokojivě funkční, ale vyžaduje
nepřetržitou spolupráci živého člověka. Je tedy vhodné jen pro sítě střední
velikosti s dobrým rozpočtem. Pro běžné podmínky příliš vhodné není. Druhé
řešení já osobně považuji za zcela ideální řešení - vše probíhá zcela
automaticky, vše je přímo v rukou uživatele, žádný e-mail se nemůže ztratit,
ale zároveň je pošta filtrována s maximální možnou účinností.

První řešení: Adaptivní omezení šířky pásma pro odchozí i příchozí poštu plus
ruční obsluha
Představme si typickou kancelářskou síť střední velikosti. Omezme šířku pásma
pro e-maily řekněme na 50 KBd pro každou jednotlivou IP adresu. Pokud některá
naše adresa odešle nebo z nějaké vnější adresy přijde během půl hodiny více než
10 e-mailů, tak omezme (pouze!) této adrese šířku pásma na polovinu. Pokud
intenzivní mailování pokračuje, tak za půl hodiny zase na polovinu. A tak dále
až na cca 1 KBd. Pokud se provoz zmenší, tak zase postupně šířku pásma
obnovíme. Pokud jde o náhodné zvýšení užitečného provozu, v praxi příliš
nevadí, že e-maily začnou po půlhodině odcházet pomaleji. Pokud ale jde o
záplavu spamem nebo novým (tedy antivirem nerozpoznaným) virem, tak se expozice
naší sítě podstatně sníží - díky omezení šířky pásma. Samozřejmě musí být
neustále nablízku obsluha, jež se o vzniklé situaci včas dozví, situaci
vyhodnotí a ručně provoz z dané adresy zablokuje - pokud jde skutečně o spam
nebo nový virus. Bez obsluhy živým člověkem by toto opatření nemělo žádný smysl.

Druhé řešení: Uživatelský WWW interface - možná ideální řešení
Spam detekujeme běžným způsobem pomocí blacklistů. Ale nesmažeme ho, nýbrž
umístíme tyto "podezřelé" e-maily na WWW adresu, která je přístupná adresátovi
oněch e-mailů po zadání jeho loginu a hesla (pochopitelně s použitím https).
Na této stránce tyto e-maily zůstanou řekněme měsíc a pak se automaticky
vymažou. Dvakrát denně adresátovi těchto odsunutých podezřelých e-mailů pošleme
souhrnnou informaci o tom, co mu bylo odsunuto. Souhrn obsahuje čas,
odesilatele, předmět, několik náhodně vybraných vět z těla e-mailu a referenci
na URL, kde si lze tento e-mail vyzvednout. Pokud adresáta některý z odsunutých
e-mailů zaujme, tak si ho na WWW stránce vyzvedne a přečte. Pokud ho nezaujme,
tak se odsunuté e-maily po měsíci samy smažou. Vygenerovat zmíněný souhrn ovšem
není zcela triviální. Spam totiž často přijde v mnoha kopiích a souhrn je pak
nepřehledný. Takže je užitečné jednotlivé odsunuté e-maily vzájemně porovnávat
a do souhrnu opakovaný e-mail uvést pouze jednou s poznámkou, že počet
opakování se rovná například 12.
Jenže každý správný spamer mění adresy, počítače, předmět, oslovení, na konec
přidává náhodné řetězce znaků a vůbec se snaží takovéto porovnávání znesnadnit.
V praxi se osvědčilo při porovnávání vynechat celou hlavičku včetně předmětu a
v těle e-mailu vynechat první a poslední (nonwhite) řádek. A ve zbytku e-mailu
připustit 5 % rozdílných znaků z celkové délky zbylého textu pro porovnávání
(porovnáváno pomocí diff a počítáno pomocí wc s podporou unicode).
Tato kombinace klasické blacklistové filtrace, porovnávacího enginu,
pravidelných e-mailů uživateli se souhrnem a WWW rozhraní pro vyzvednutí
odsunuté pošty mě osobně připadá jako ideální řešení. Ale není implementačně
jednoduché.

Vaše případné čtenářské dotazy, návrhy na další články na toto téma a
připomínky můžete zasílat na mailovou adresu devic@seznam.cz.