Hlavní navigace

Rozpoznávání spamu

6. 9. 2007

Sdílet

Rozpoznávání spamu metodami nezávislými na obsahu textu

Mnoho současných metod detekce spamu je založeno na metodách analýzy obsahu, jako jsou Bayesovy filtry, a na metodách analýzy klíčových slov. Tyto metody však bývají v praxi spammery obcházeny pomocí jednoduchých změn textu.

Tento článek popisuje dva další možné přístupy, které fungují zcela nezávisle na analýze textu:

1. Analýza struktury: Tato metoda je založena na analýze struktury HTML kódu e-mailu. Tato struktura je dána typem metajazyka. Metastruktura je přidána do databáze spamu a všechny přicházející e-maily jsou pak porovnávány na základě struktury místo podle těla e-mailu.

2. Analýza toků: Tato metoda, které bude věnován samostatný prostor v příštím čísle časopisu PC World Security, je založena na analýze toku příchozích e-mailů. Existují-li e-maily s identickým obsahem, ale různými odesílateli, které byly doručené v krátkém časovém období, systém může z těchto indicií usoudit, že se jedná o spam, protože neexistuje jiný druh hromadně rozesílaných e-mailů, který by toto kritérium splňoval. Tato metoda je tím efektivnější, čím větší množství spamových vzkazů podléhá analýze na straně poskytovatele poštovní služby. Analýzu toků je dále možné podpořit v boji proti nejčastějším trikům, jež útočníci používají, řadou dalších technik, jako je například strukturální analýza.

Díl 1. - Analýza struktury
V současnosti existuje několik metod nebo kombinací metod, které jsou pro blokování nevyžádané pošty používány. Patří mezi ně kontrola obsahu založená na filtrech, tedy vyhledávání klíčových slov, tzv. Bayesovy filtry, případně filtry založené na údajích o doručení, například seznamy Realtime Blockhole Lists, nebo heuristická analýza, jež analyzuje hlavičku e-mailu. Každá z těchto metod rozezná 50-80 % spamů. Pokud jsou tyto metody kombinovány, lze dosáhnout účinnosti přesahující 95 %.
Filtry založené na zkoumání obsahu e-mailů musí být v pravidelných intervalech aktualizovány. Jejich nevýhodou však je, že mohou být pomocí různých triků (například v pravopise) obcházeny. Heuristickou analýzu hlaviček e-mailů zase komplikuje nevýhoda, že má tendenci blokovat současně i různé zákaznické bulletiny.
Filtry nevyžádané pošty současnosti kombinují výhody různých detekčních metod, čímž dosahují při blokování nevyžádané pošty vyšší účinnosti a minimalizují počet nesprávných detekcí. Přesto chytří spammeři zneužívají chybných nežádoucích vlastností jednotlivých metod, díky čemuž jsou schopni obejít dokonce i kombinaci několika způsobů detekce.
Tento článek se zaměřuje na další dva možné přístupy k blokování nevyžádané pošty, přestože do výše uvedeného rozsahu nespadají.
Ani jeden z obou postupů nedokáže řešit otázku blokování spamu samostatně, jelikož existují speciální druhy spamové pošty. Existují totiž i další typy spamu, které nemohou být těmito detekčními metodami zachyceny (například čistý textový formát nelze analyzovat pomocí strukturální analýzy).


Analýza struktury
Analýza struktury využívá speciální databázi struktur, do které ukládá takzvané signatury struktury. Databáze struktur se nachází na straně klienta, je však dodavatelem několikrát denně aktualizována (například každou hodinu). Pro aktualizaci databáze struktur je proto zapotřebí efektivní mechanizmus. Výrobce i dodavatel databáze struktur potřebuje rozsáhlý přístup k spamu z takzvaných honey pots, aby byl schopen databázi neustále doplňovat.

Definování struktury
Základní myšlenkou této metody je odstranění veškerého obsahu z HTML části příchozích spamů. Tohoto cíle lze snadno dosáhnout syntaktickou analýzou HTML kódu. Značky a názvy atributů jsou ponechány, ale obsah je odstraněn (respektive nahrazen speciálním řetězcem, například "obsah"). Výsledkem je takzvaný řetězec struktury (HTML kostra e-mailu). Příklady spamu jsou na obrázku 1 a 2.
Oba spamy vypadají na první pohled identicky (náhodně generovaný text je ignorován), ale bližší prozkoumání zdrojového HTML kódu odhalí některé odlišnosti, jak je vidět už na části zdrojového kódu HTML, který vytváří první řádek spamu ("Viagra $ 69,95...").
Část zdrojových kódů HTML (na obrázku 3) jsme vybrali pro demonstraci metod analýzy struktury. Výsledný řetězec struktury tohoto fragmentu HTML kódu je v obou případech identický, jak ukazuje tabulka.

Výsledný řetězec struktury fragmentu HTML kódu
<div><font face=x size=3><span style=x>content</span>content<span
style=x>content</span>content<span
style=x>content</span>content<span
style=x>content</span>content<span
style=x>content</span>content<span
style=x>content</span>content<font color=x><strong>content<span
style=x>content</span>content</strong></font>content<span
style=x>content</span>content<span
style=x>content</span>content</font></div>


Při syntaktické analýze HTML kódu je třeba vzít v úvahu tyto faktory:
n Komplikovanost řetězce struktury. Abychom se vyhnuli nesprávnému vyhodnocení řetězce struktury, ze kterého jsou odvozeny spamové signatury, musí být přiměřeně komplexní. Možnosti, jak tohoto stavu dosáhnout, jsou dvě - definování počtu značek v HTML kódu nebo určení minimální délky řetězce struktury.
n Zpracování atributů a odpovídajících hodnot. Měla by existovat pravidla, na jejichž základě se rozhoduje o tom, které hodnoty atributů jsou nahrazeny libovolným znakem (například "x") a které hodnoty atributů změněny nebudou.
n Zpracování URL. Toto téma si zaslouží zvláštní pozornost, protože URL adresy jsou spammery měněny mnoha různými způsoby. Veškeré URL adresy by měly být nahrazeny vhodným řetězcem, díky kterému se stanou nezávislými na změně hostitele, cesty k souboru nebo parametrů adresy.
Jelikož HTML kód nerozlišuje velká a malá písmena, měl by být řetězec struktury převeden standardně na malá písmena.

Pracovní postupy na straně výrobce a klienta
n Strana dodavatele. Na straně výrobce probíhá u každého e-mailu, který přišel přes spamový honey pot, výpočet signatur a jejich vložení do databáze struktur. Nové přírůstky do databází struktur jsou ihned rozesílány do lokálních databází struktur na straně klientů. Aktualizace databáze se provádí několikrát denně (ideálně každou hodinu nebo i častěji).
V zájmu minimalizace falešných vyhodnocení jsou do databáze struktur doplňovány jen ty signatury, které došly z honey pots několikrát a které odpovídají spamům, jež nebyly detekovány žádnou jinou detekční metodou. Díky tomu, že je do databáze struktur ukládáno pouze několik signatur, výrazně klesá pravděpodobnost, že bude legitimně rozesílaný e-mail vyhodnocen jako spam, přestože bude mít podobnou HTML strukturu a bude odesílán v malých časových intervalech.
Pokud nejsou navíc signatury delší dobu používané, mohou být z databáze struktur odstraněny, aby se zabránilo blokování korektních e-mailů s podobnou strukturou HTML kódu. V případě, že i přesto dojde k chybné identifikaci e-mailu, je možné konkrétní strukturu uložit do seznamu výjimek na straně výrobce a trvale tak zabránit opětovnému vkládání této signatury do databáze.
n Strana klienta. Na straně klienta je každý nově příchozí e-mail okamžitě podroben výpočtu signatury. Při porovnávání struktur vstupuje do hry databáze struktur. Pokud je odpovídající struktura v databázi nalezena, e-mail je zablokován. Pokud ani jiné detekční metody e-mail nevyhodnotí jako spam, je zpřístupněn uživateli.
Všechny tyto procesy lze na straně klienta urychlit prostřednictvím jednoho či více serverů s databázemi struktur, jejichž aktualizace probíhá rychleji, než je tomu v případě lokální databáze (ta je aktualizována pouze několikrát denně).

Příklady z praxe
Všechna měření byla provedena pomocí zařízení Proventia Mail Filter společnosti IBM Internet Security Systems. V další tabulce najdete statistiku falešných negativních vyhodnocení.
Úspěšnost detekce pomocí analýzy struktury
Zdroj spamů Různé spamové honey pots
společnosti Internet Security Systems
Datum 1. 1. 2006 až 31. 3. 2006
Počet analyzovaných spamů 61 829
Spamy detekované analýzami struktur 27 871 (45,08 %)
Spamy detekované výhradně analýzami struktur 1 015 (1,64 %)


Poslední položka výše uvedené tabulky byla zjištěna simultánními analýzami spamů všech ostatních detekčních metod, které používá Proventia Mail Filter.
Třetí tabulka obsahuje statistiku falešných pozitivních vyhodnocení.

Četnost blokování korektních e-mailů pomocí analýzy struktury
Zdroj korektních e-mailů Interní e-mailový provoz společnosti
Internet Security Systems, zákaznické
bulletiny a různé e-mailové seznamy
Datum 2004 a 2005
Počet analyzovaných e-mailů 593 207
Počet nesprávně určených e-mailů 59 (0,010 %)


Z výše uvedených tabulek vyplývá, že strukturální analýza dostatečně odděluje korektní e-maily od spamu.
K zablokování probíhajícího "spamového útoku" navíc stačí jediná signatura v databázi struktur. V roce 2005 obdržela společnost IBM Internet Security Systems více než 210 000 spamů, z nichž všechny obsahovaly stejné signatury, které byly obsaženy v databázi. Statistiky udávají, že jedna signatura pokrývá v průměru 12,45 spamů. Tyto statistické údaje jsou založeny na analýzách několika milionů spamů, které ISS obdržela.
Analýza spamových vláken (týkající se například jejího trvání, po-
užitého textu, obměn URL adres atd.) na základě signatur struktur by mohla v budoucnosti vést k novým postupům, jak bojovat se spamovými útoky.

Typy spamů, které dokáže analýza struktury odhalit
Strukturální analýza je určena k blokování specifických typů spamu:
• Spamy, které používají k obcházení spamových filtrů komplexní
HTML kód a různé triky HTML.
• Spamy, které používají náhodně generovaný text v okolí původního
sdělení spamu.
• Spamy, které používají k sestavení větších obrázků více menších
obrázků.
• Spamy, které používají různé URL adresy uvnitř HTML rámců.
• Spamy bez URL adres (například burzovní zprávy), posílané ve
formátu HTML.
Samozřejmě existují i takové typy spamů, které analýza struktury nepostihne:
• Spamy psané v režimu prostého textu.
• Spamy, které obsahují jednodušší strukturu HTML kódu.
• Poznámky k době výpočtu a požadavkům na operační paměť
n Výpočetní čas (na straně uživatele): doba zpracování každého e-mailu závisí na jeho syntaktické analýze, na době výpočtu signatury a na čase, který je potřeba pro získání odpovědí na dotaz do databáze struktur. Celkový čas je tedy součtem P + M + R, kde P je průměrná doba trvání syntaktické analýzy (včetně generování signatury), M je průměrný čas potřebný na vytvoření kontrolního součtu a R je čas na dotaz do databáze.
n Požadavky na paměť (na straně uživatele): při analýze e-mailu (analýza e-mailu, generování řetězce struktury, hashování a dotaz do databáze struktur) je požadovaná paměť lineárně závislá na velikosti e-mailu.
Ralf Iffert pracuje jako technický specialista Internet Security Systems
společnosti IBM.

Porovnání části zdrojových kódů HTML.

Autor článku