Ako fungujú spamfiltre 5

08.01.2007 13:13 | betmen

Dnes idem pretriasť razor2, DCC a FuzzyOcr. Ide o 3 programčoky ktoré používa spamassassin pomocou svojich pluginov ale súčasne sú dosť veľké nato aby si zaslúžili viac miesta ako zvyšné pluginy spamassassinu.

Razor2
Ako som už minule naznačil, razor (origoš Vipul's Razor) je kolaboratívny mechanizmus na detekciu spamu. Funguje tak, že sú userkovia pridávajúci spamy do databázy, z nich sú generované signatúry. To znižuje riziko že by sa do databázy mohla automatizovaným spôsobom dostať správa, ktorá tam nemá čo robiť. Samotné maily sú ďalej ešte validované tým že userkovia môžu zamietnuť spam ktorý je v db lebo ho za spam nepokladajú/nie je.
Samotné signatúry sa vypočítavajú z tela emailu, takže sa nerieši žiadna z častí hlavičky. Vraj by mal mať úspešnosť 75-90% (ja som si to u seba neskúmal).
Detailnú inštaláciu ako som si v tomto seriáli zvykol riešiť nebudem, stačí vám vediet že razor2 sa nachádza zrejme v každej distribúcii, preto sa nemusíte trápiť s jeho inštaláciou zo src. Je napísaný v perli a vyžaduje aj niektoré moduly (predpokladám že vyriešia závislosti). Detailnú inštaláciu ako som si v tomto seriáli zvykol riešiť nebudem, stačí vám vediet že razor2 sa nachádza zrejme v každej distribúcii, preto sa nemusíte trápiť s jeho inštaláciou zo src. Je napísaný v perli a vyžaduje aj niektoré moduly (predpokladám že vyriešia závislosti). Detailnú inštaláciu ako som si v tomto seriáli zvykol riešiť nebudem, stačí vám vediet že razor2 sa nachádza zrejme v každej distribúcii, preto sa nemusíte trápiť s jeho inštaláciou zo src. Je napísaný v perli a vyžaduje aj niektoré moduly (predpokladám že vyriešia závislosti). Detailnú inštaláciu ako som si v tomto seriáli zvykol riešiť nebudem, stačí vám vediet že razor2 sa nachádza zrejme v každej distribúcii, preto sa nemusíte trápiť s jeho inštaláciou zo src. Je napísaný v perli a vyžaduje aj niektoré moduly (predpokladám že vyriešia závislosti).

Po inštalácii nasleduje konfigurácia:
pod userkom, ktorého potrebujeme spustíme razor-admin -create. V našom prípade ako userko amavis a ak postupujete podľa seriálu, razor-admin vytvori vo /var/amavis/.razor zoznamy serverov voči ktorým bude overovať + konfiguračný súbor.

Pre prípad, že chete byť aj spam reportérom, musíte sa zaregistrovať. Na to slúži prepínač -register (je možné použiť -user=user -pass=pass ak chete userka, -user=ja@moj.mail ak chcete byť podľa emailu alebo čisto len -register ak chete náhodne pridelené údaje). Po registrácii razor-admin v adresári .razor identity-tvojUsernejm súbor obsahujúci spomínané údaje. Potom vo svojom voľnom čase môžte začať reportovať maily (ručne) a prispejete tak k svetovému mieru :) Ja viem, dá sa to urobiť tak že maily budú reportované automaticky ale môže to zničiť reputáciu vášho accountu v systéme.

čo obsahuje /var/amavis/.razor:

razor-agent.conf                server.c105.cloudmark.com.conf
razor-agent.log                server.joy.cloudmark.com.conf
server.c101.cloudmark.com.conf  servers.catalogue.lst
server.c102.cloudmark.com.conf  servers.discovery.lst
server.c103.cloudmark.com.conf  servers.nomination.lst
server.c104.cloudmark.com.conf

server.XY.conf sú akési hatla-patla obsahujúce špecifické konfigy pre jednotlivé servery a človek do nich nemusí zasahovať. Sú vygenerované automaticky a priebežne cez razor-agenta sa podľa potreby samy aktualizujú.

XYZ.lst sú zoznamy serverov voči ktorým sa maily porovnávajú a taktiež sa aktualizujú automaticky.

razor-agent.conf:

debuglevel       = 0
identity              = identity
ignorelist            = 0
listfile_catalogue    = servers.catalogue.lst
listfile_discovery    = servers.discovery.lst
listfile_nomination    = servers.nomination.lst
logfile                = razor-agent.log
logic_method          = 4
min_cf                = ac
razordiscovery        = discovery.spamnet.com
rediscovery_wait      = 172800
report_headers        = 1
turn_off_discovery    = 0
use_engines            = 4,8
whitelist              = razor-whitelist

Tento súbor v ideálnom stave netreba nejako extra riešiť, hlavne by som odporúčal si (v prípade že idete reportovať) buď urobiť symlink z vášho identity-userko na identity alebo prepísať v riadku identity.
Aby ste si overili že razor vám funguje korektne, môžte si zapnúť v debuglevel na 1, 2, 3 - podľa ľubovôle. Potom sa do razor-agent.log alebo iného súboru budú ukladať napríklad takéto riadky:

Jan 08 11:09:46.831384 check[25187]: [ 3] mail 1 is not known spam.
Jan 08 11:09:57.041952 check[25187]: [ 2] [bootup] Logging initiated LogDebugLevel=3 to file:/var/amavis/.razor/razor-agent.log
Jan 08 11:09:57.998115 check[25187]: [ 3] mail 1 is not known spam.

Následne odporúčam debuglevel vrátiť na 0 lebo zbytočne sa bude robiť ďalší súbor v systéme. Reštartovať nemusíte nič keďže razor-agent sa volá cez spamassassin plugin takže si vždy otvára aktuálny .conf

Problém môžte mať, ak máte poobriezkovaný (nie, to nie) cez firewall outgoing traffic. V takom prípade potrebuje razor2 mať povolený outgoing tcp 2703.

DCC
Skratka DCC znamená distributed checksum clearinghouse a ide o ďalšiu kolaboratívnu hračičku. Autori tvrdia že má úspešnosť okolo 70%.
Môžte si spustit dcc klienta a ak máte napríklad hostingovú firmičku alebo veľké tony mailov vám drásajú pamäťou servera, môžte si rozbehnúť aj dcc server a pridať ho tak do dcc networku.
Po inštalácii (ja som si ho nainštaloval z balíkov môjho systému) mám v /etc/dcc nasledovné súborčeky:

dcc_conf  grey_flod      ids      whiteclnt    whitelist
flod      grey_whitelist  map.txt  whitecommon

Ak budete len dcc klient (myslím že drvivá väčšina serverov), zaujímať vás bude hlavne dcc_conf, whitelisty map.txt.

map.txt obsahuje public servery dcc voči ktorým sa overujú emaily. môžte si vymeniť za svoje ak máte.

whitelistové súborčeky myslím že sú jasné.

dcc_conf je konfigurácia dcc. Jediný súbor ktorý by sa patrilo trošku editnúť. Ide o shell skript. Keďže nepotrebujeme spúšťať dcc klienta pod rootom a celý antispamový mechanizmus nám beží pod amavisom, tak editneme riadok
DCCUID=amavis.

Treba si dať pozor na jednu vec. Ak predávate riešenia ktoré okrem iného obsahujú aj dcc, tak to nie je úplne v poriadku. V takom prípade by ste mali používať vlastný dcc server a storovať svoje dáta s dcc networkom.

FuzzyOcr
Ide o perlovský modulček ktorý je plugin pre spamassassin. Je to reakcia na škaredých zlých spamerkov a ich fintičky typu obrázkové spamy. Je postavený na Ocr plugine, ktorý bol dosť jednoduchý a taký všeliaký (mal som ho kvôli podivnosti len na jednom serveri). Fuzzy je jeho zdokonalená náhrada.
Medzi základné vlastnosti patrí ako z názvu vychádza, schopnosť v obrázkových mailoch vyhľadávať text a podľa wordlistu v ňom snoriť po pofidérnostiach. Pre čítanie obrázkov využíva gocr resp. ocrad. Aby šetril čas, vytvára si hashe obrázkov a podľa toho vie že niečo už raz kontroloval etc..Tak isto je to "posledná cesta" v assassine takže ak sa mail krvopotne prebije cez všetky filtre a napriek tomu si assassin myslí že to nie je spam ale obsahuje obrážťoke tak ho zdrapne do pazúrov a trhá, drása.
Inštalácia spočíva z jedného perlovského modulu, slovníkového súboru, konfiguračného súboru a voliteľne z logfajlu. Najjednoduchšie je ho rovno rozbaliť do destinácie assassinovej konfigurácie - /etc/mail/spamassassin. Používanie modulu zabezpečíme pridaním riadku
loadplugin FuzzyOcr /usr/lib/perl5/vendor_perl/5.8.8/Mail/SpamAssassin/Plugin/FuzzyOcr.pm
napríklad do local.cf resp do FuzzyOcr.cf (myslím že sa to tam aj vyskytuje genericky - už si nepamätám lebo na jednom serveri to mám tak na ďalšom inak).
V súbore FuzzyOcr.cf môžme rovno vypnúť logovanie pomocou focr_verbose 0.0, zvyšné nastavenia by mali byť ok (treba pozriet focr_global_wordlist ak chcete vlastný per_user rule tak focr_personal_wordlist, potom focr_digest_db).
Wordlist by mal byť nejaký ten pribalený (ja si fakt nespomínam lebo na jednom ho mám a na ďalšom strojčeku som si ho robil ručne atď..).
Pozor si treba dať hlavne na závislosti keďže ide o experimentálny plugin, nenachádza sa veľmi v distribúciách takže to treba zvládnuť. Podstatný je gocr a jeho libky, čo ale distribúcia vyrieši.

Adresy ku všetkému čo som doteraz v seriáli popísal:
http://www.ijs.si/software/amavisd/
http://www.clamav.net/
http://spamassassin.apache.org/
http://pyzor.sourceforge.net/
http://www.libspf2.org/
http://www.openspf.org/
http://www.dkim.org/
http://search.cpan.org/~anthonyu/Mail-DomainKeys-0.84
http://razor.sourceforge.net/
http://www.rhyolite.com/anti-spam/dcc/
http://fuzzyocr.own-hero.net/

Snažil som sa adresy zoradiť chronologicky, verím že som na nič nezabudol.

Nabudúce napíšem o veciach, ktoré si ešte zaslúžia pozornosť, o veciach mierne teoretických a o veciach, ktoré sa na stránkach jednotlivých programov nepíšu.

    • FuzzyOCR 08.01.2007 | 20:25
      Avatar blackhole   Návštevník

      FuzzyOCR je fajn, aj ked aj SPAMerske spiny zacinaju obrazky pomaly ale isto prekladat sumom, takze ta detekcia byva tazsia. Pekne na nom je hlavne to, ze ak mail ziska dostatok penalizacnych bodov z predchadzajucich testov, tak sa uz ziadne OCR nespusta a nezatazuje to system.

      • tak tak, spamerkovia maju 08.01.2007 | 20:41
        Avatar betmen   Používateľ

        tak tak, spamerkovia maju vyhodu prveho tahu
        ____________________
        promptne je alias pre nahovno

        ______________ kam by som chodil...na dvor