Než začnu, chtěl bych vyjasnit jednu věc: tento text je o statistice a o velkých číslech. Ale v praxi nastávají různé, z hlediska statistiky okrajové situace. Proto zcela jistě existují mailboxy, pro které je používání blacklistů perfektním antispamovým opatřením. Stejně tak ale existují i mailboxy, pro které je perfektním opatřením například nepřijímat poštu od nikoho mimo doménu .cz. Čím větší mailový server spravujete, tím více bude vaše situace podobná té popsané.
Blacklisty vznikly jako jedna z prvních metod boje se spamem. V těch dobách rozesílali spamy většinou sami spammeři, případně využívali otevřených SMTP serverů. Idea blacklistů je jednoduchá – mít seznamy těchto počítačů a blokovat poštu z nich. A to veškerou poštu, i tu (případně) legitimní.
Dnes se ale pro rozesílání spamů ve velké míře používají vyhackované počítače koncových uživatelů. Ty se mění tak rychle a je jich tolik, že blacklisty je nestíhají registrovat. To silně snižuje jejich účinnost.
Stejně tak jsou blacklisty – alespoň při obvyklém způsobu implementace do SMTP serveru – neúčinné v okamžiku, kdy si do jimi „chráněné“ schránky budete přeposílat poštu odjinud. Budou ji střídavě všechnu propouštět nebo naopak všechnu odmítat, podle toho, jestli je přeposílací počítač zrovna na blacklistu. A to samozřejmě zcela bez jakékoli souvislosti s počtem spamů ve vaší poště.
Na druhé straně má používání blacklistů za následek velké procento false positive (odmítnutých legitimních mailů; false negative je naopak nezachycený spam). Blacklisty zachycující špatně nakonfigurované počítače sice existují, ale jejich význam je malý (viz měření). Takže většinou platí, že na blacklist se počítač dostane, pokud jsou zachyceny (třeba) tři spamy z něj během jednoho týdne.
I když pominu problematiku určování „co je to spam a kdo ho vlastně původně poslal“, má tento princip ještě jeden zádrhel, který považuji za Achillovu patu blacklistingu. Při umisťování na blacklist se vůbec nebere v potaz procento spamů, které pošlete. Ať pošlete za týden tři spamy a žádný ham, nebo tři spamy a milion hamů, dostanete se na blacklist úplně stejně.
To vede k tomu, že počítače odesílající hodně pošty (SMTP ISP, freemaily, listservery) jsou na blacklistech velmi často. Zastánci blacklistů tvrdí „mají si dát pozor a neposílat spam“. To se samozřejmě děje. Ale každé opatření má nějakou účinnost a při velkém počtu e-mailů prostě unikne dost spamů na to, aby se počítač na blacklist dostal.
Ale dost planého teoretizování. Abych měl po ruce i reálná čísla, provedl jsem praktický test blacklistů. Antispam na portálu Centrum.cz loguje (i) IP adresu, ze které e-mail přišel. Principem testu bylo vyhledat pro každý e-mail tuto adresu v různých blacklistech a zjistit, kolik procent spamů zadrží a kolik e-mailů naopak odmítnou neoprávněně.
Vyhodnocování se nedělo ručně – to by bylo příliš náročné a navíc by bylo narušeno soukromí uživatelů. Jako „etalon“ byl vzat výsledek antispamu Centra. Pomocí jeho výsledků byla spočítána účinnost (kolik procent spamů blacklist zachytil) a chybovost (kolik procent hamů bylo neoprávněně označeno za spamy – tzv. false positive rate).
Antispam Centra samozřejmě není úplně stoprocentní. Jeho účinnost se podle našich měření pohybuje kolem 96 až 98 procent. Pro účely testu jsem vzal pesimistickou hodnotu 96 procent. Chybovost se měří hůře, a je zhruba kolem 0.1 procenta. Zvolil jsem opět pesimistickou hodnotu 0.4 procenta.
Korekci přesnosti jsem provedl následovně: z výše uvedených hodnot jsem dopočítal „reálný“ počet hamů a spamů (jelikož je false negative o hodně více než false positive, počet spamů stoupl).
Dále bylo nutné zkorigovat počet false positive a false negative blacklistů. U false positive jsem postupoval tak, že jsem vzal počet false negative antispamu Centra a vynásobil jsem jej účinností filtru. Získal jsem (statisticky) počet spamů, které spamfiltr Centra nezachytil, ale blacklist ano – tedy byly neoprávněně započítány mezi false positive.
Tyto zprávy jsem od počtu false positive odečetl. Naopak jsem přičetl počet false positive antispamu Centra, vynásobený false positive rate. Tedy false positiva, která díky chybovosti etalonu započítána nebyla.
Obdobným postupem jsem zkorigoval false negativa, i když tam se jednalo jen o malé změny. Jelikož se false positive rate korekcí hodně změnila, používal jsem při korekci false negative už její novou hodnotu.
Tento postup není matematicky úplně správně. Korekcí se změní parametry, pomocí nichž se vypočítává velikost korekce, takže by se muselo iterovat. Ale tato nepřesnost je poměrně malá (účinnost se mění málo a false positive rate v prvním kroku má malý vliv díky malé false positive rate antispamu Centra). Takže jsem korekci i vzhledem k (ne)přesnosti odhadu účinnosti antispamu Centra prováděl jen v jednom kroku.
Dále je tento odhad založen na čisté náhodnosti – nepočítá s možnými korelacemi. Ty mohou být dvojího směru:
- pokud zprávu antispam Centra nezachytí, je větší pravděpodobnost, že odesílatel bude na blacklistech,
- pokud zprávu antispam Centra nezachytí, je větší pravděpodobnost, že odesílatel nebude na blacklistech.
První možnost nebude asi moc pravděpodobná, respektive si moc nedovedu představit mechanismus, který by k ní vedl. Druhá možnost mi přijde pravděpodobnější – pokud začne spamovat nový spammer, bude chvíli trvat, než se dostane na blacklisty i než se jej bayesiánský antispamový filtr naučí. Potom by reálné hodnoty ležely někde mezi naměřenými a korigovanými.
Data pro následující tabulky jsem sbíral po dobu jednoho týdne na začátku května. Nejsou to samozřejmě všechny příchozí e-maily, ale jen náhodně vybraných 704.979. Z toho bylo 361.112 označeno naším antispamem jako spam a 343.867 jako ham. Po „korekci“ těchto čísel (viz výše) se dostáváme na 374.783 spamů a 330.196 hamů.
Abyste dnes viděli alespoň nějaká čísla, uvedu výsledky blacklistů, které nepoužívají „pasti“, ale obsahují počítače, které jsou špatně nakonfigurované. Výše jsem o nich tvrdil, že jsou neúčinné. Zde jsou čísla z různých listů serveru SORBS:
Blacklist | Zachycených spamů | Popis |
---|---|---|
http.dnsbl.sorbs.net | 19.644 (5,44 %) | seznam otevřených HTTP proxy |
socks.dnsbl.sorbs.net | 20.647 (5,72 %) | seznam otevřených SOCKS proxy |
misc.dnsbl.sorbs.net | 1425 (0,39 %) | seznam otevřených proxy serverů (které nejsou v SOCKS ani v HTTP) |
web.dnsbl.sorbs.net | 25.924 (7,18 %) | seznam webů, které mají chyby, umožňující odesílat mail kamkoliv (FormMail skripty atp.) |
smtp.dnsbl.sorbs.net | 61 (0,02 %) | seznam otevřených SMTP relay serverů |
nomail.dnsbl.sorbs.net | 1 (0,00 %) | seznam domén, ze kterých podle jejich vlastníků nemá chodit žádná pošta |
badconf.dnsbl.sorbs.net | 1 (0,00 %) | seznam domén, kde A nebo MX záznamy ukazují na špatná IP (neplatný rozsah) |
zombie.dnsbl.sorbs.net | 0 (0,00 %) | seznam zombií – ovládnutých počítačů použitých pro rozesílání spamu |
block.dnsbl.sorbs.net | 0 (0,00 %) | seznam počítačů, které nechtějí být testovány SORBSem |
průnik | 48.800 (13,51 %) | (Chybovost vyšla 0,89 %, po korekci 0,31 %.) |
Jak vidíte, většina blacklistů je naprosto neúčinná. Průnik má sice přijatelnou chybovost, ale účinnost je příliš malá, aby stálo za to se tímto druhem blacklistů zabývat.
Touto tabulkou dnes skončím. V příštím díle uvedu a vyhodnotím kompletní výsledky měření účinnosti blacklistů pro všech pět testovaných databázi (spamhaus.org, dsbl.org, sorbs.net, spamcop.net a njabl.org).