Walka ze spamem w obrazkach przy użyciu FuzzyOcr w Debianie

W ostatnim czasie pojawiło się wiele maili spamowych, których treść ukryta jest w obrazku. Filtry spamowe takie jak SpamAssassin nie radzą sobie zbyt dobrze z tego typu spamem. Ciągłe uczenie bayesa bądz dodawanie źródeł spamu do blacklisty jest uciążliwe. Z pomocą przychodzi nam plugin do SpamAssassina o nazwie FuzzyOcr, który analizuje tekst załączonych obrazków oraz ich właściwości i klasyfikuje maila do spamu bądz hamu. Na pierwszy rzut oka taka funkcjonalność wydaje się zasobożerna, jednak plugin jest na tyle sprytny, że skanuje jedynie te maile, które nie zostały wcześniej zaklasyfikowane do spamu przez SpamAssassina co pozwala zachować obciążenie serwera na niskim poziomie.

Opis, który tutaj zamieściłem bazuje na Debianie Etch (4.0), SpamAssassinie 3.1.7 oraz FuzzyOcr 3.5.1.

1. Instalacja pakietów wymaganych przez FuzzyOcr

Ściągamy pakiety wymagane przez FuzzyOcr (ocrad i gocr)

apt-get install netpbm gifsicle libungif-bin gocr ocrad libstring-approx-perl
libmldbm-sync-perl imagemagick tesseract-ocr

2. Instalacja FuzzyOcr

Kolejnym krokiem jest ściągniecie pluginu FuzzyOcr i rozpakowanie go w katalogu SpamAssassina:

cd /usr/src
wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-3.5.1-devel.tar.gz
tar -zxf fuzzyocr-3.5.1-devel.tar.gz
mv FuzzyOcr-3.5.1/FuzzyOcr* /etc/mail/spamassassin

W tym momencie mamy zainstalowany FuzzyOcr. Teraz należy go skonfigurować.

3. Konfiguracja FuzzyOcr

Edytujemy plik /etc/mail/spamassassin/FuzzyOcr.cf:

odhashowujemy linijke:

[?]
focr_global_wordlist /etc/mail/spamassassin/FuzzyOcr.words
[?]

zamieniamy:

[?]
# Include additional scanner/preprocessor commands here:
#
focr_bin_helper pnmnorm, pnminvert, pamthreshold, ppmtopgm, pamtopnm
focr_bin_helper tesseract
[?]

na:

[?]
# Include additional scanner/preprocessor commands here:
#
focr_bin_helper pnmnorm, pnminvert, convert, ppmtopgm, tesseract
[?]

i dodajemy:

[?]
# Search path for locating helper applications
focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/bin
focr_preprocessor_file /etc/mail/spamassassin/FuzzyOcr.preps
focr_scanset_file /etc/mail/spamassassin/FuzzyOcr.scansets
focr_enable_image_hashing 2
focr_digest_db /etc/mail/spamassassin/FuzzyOcr.hashdb
focr_db_hash /etc/mail/spamassassin/FuzzyOcr.db
focr_db_safe /etc/mail/spamassassin/FuzzyOcr.safe.db
[?]

FuzzyOcr jest skonfigurowany i gotowy do użycia.

4. Testowanie

Uruchamiamy spamassassina z parametrami:

spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null

Wynik powinien być następujący:

[?]
[23115] info: FuzzyOcr: Updating Exact info File:?sbillet? Type:?image/jpeg?
[23115] info: FuzzyOcr: Found Score <15.000> for Exact Image Hash
[23115] info: FuzzyOcr: Matched [1] time(s). Prev match: 1 hrs. 16 min. 16 sec. ago
[23115] info: FuzzyOcr: Message is SPAM. Words found:
[23115] info: FuzzyOcr: ?target? in 1 lines
[23115] info: FuzzyOcr: ?service? in 1 lines
[23115] info: FuzzyOcr: ?stock? in 2 lines
[23115] info: FuzzyOcr: ?price? in 2 lines
[23115] info: FuzzyOcr: ?company? in 1 lines
[23115] info: FuzzyOcr: ?recommendation? in 1 lines
[23115] info: FuzzyOcr: (12 word occurrences found)
[23115] dbg: FuzzyOcr: Remove DIR: /tmp/.spamassassin23115Uwc0fitmp
[23115] dbg: FuzzyOcr: Processed in 0.571583 sec.

Mail został sklasyfikowany jako spam i dostał 15 punktów.



Brak komentarzy.

Skomentuj...

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

Wpisz kod z obrazka zawierajacy 5 znakow sposrod 0..9 i A..F, i wcisnij OK.

  

Jesli nie mozesz odczytac tresci obrazka wygeneruj ponownie kod