Image Spam
Bertugas sebagai kacung yang mengawasi lalu lintas email memang susah-susah gampang. Paling enak memang ketika sistem bekerja dengan lancar, tinggal ongkang-ongkang kaki. Tapi ketika ada masalah, semua orang berteriak serempak dan semuanya ingin didengarkan saat itu juga.
Yang paling jadi masalah belakangan ini adalah email-email spam. Sebagian besar email spam memang sudah diatasi dengan spamassassin, tapi masih banyak juga spam yang lolos. Dalam 1 hari, email spam yang lolos masuk ke inbox ada sekitar 80-90-an. Kategori 90-an email spam itu sudah tergolong besar mengingat klien-klien yang baru menerima 5-8 email spam saja sudah teriak-teriak.
Email spam yang berhasil lolos itu sebagian besar berupa image spam. Image spam biasanya berupa email dengan attachment gif, jpg, jpeg. Isi dari file image itu berupa kata-kata yang biasanya ada di email spam lainnya, seperti viagra, investor, medicine, dan lainnya.
Image spam ini menjadi masalah, karena spamassassin tidak bisa melakukan pengecekan terhadap attachment yang ada. Pantas aja semua spam pada lolos. Setelah mencari-cari di google, akhirnya dicoba untuk masang plugin FuzzyOcr di spamassassin. Berikut beberapa langkah instalasi yang diperlukan, diambil dari sini: (note: versi yang lebih baru sudah keluar)
Paket yang dibutuhkan:
- SpamAssassin 3.1.1 atau lebih
- libungif-4.1.4.tar.gz
- libnetpbm10-dev
- netpbm
- giflib3g-dev
- libimage-exif-perl
- libstring-approx-perl
- imagemagick
- libjpeg-progs
- gocr-0.40.tar.gz
- fuzzyocr-2.3b.tar.gz
Kalau pakai debian atau fedora, aplikasi yang ada bisa tinggal di apt-get atau di yum. Terkecuali untuk paket-paket .tar.gz ya, sebaiknya install dari source. Untuk paket libstring-approx-perl, lebih mudah install dari cpan.
perl -MCPAN -e shell
install String::Approx
- Download, extract, patch, dan install libungif
cd /usr/local/src
wget http://internap.dl.sourceforge.net/sourceforge/libungif/libungif-4.1.4.tar.gz
tar xzvf libungif-4.1.4.tar.gz
cd libungif-4.1.4/util
wget http://arjuna.files.wordpress.com/2007/02/giftext-segfaultpatch.doc
patch giftext.c < giftext-segfault.patch
cd ..
./configure –prefix=/usr && make && make install -
Download, extract, patch, compile dan install gocr:
cd /usr/local/src
wget http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.40.tar.gz
tar xzvf gocr-0.40.tar.gz
cd gocr-0.40/src
wget http://arjuna.files.wordpress.com/2007/02/patch-gocr-segfault.doc
patch pgm2asc.c < patch-gocr-segfault.doc
cd ..
./configure –prefix=/usr && make && make installTes gocr dengan file ini
wget http://arjuna.files.wordpress.com/2007/02/image001.gif
giftopnm image001.gif > image001.pnm
gocr image001.pnmHarusnya muncul seperti ini:
‘ AnENTlON ALL DAY TRADERS AND INVESTORS ‘Sekarang coba test dengan giffix, mustinya nggak ada error seperti di awal:
giffix image001.gif > image001.fixed
giftopnm image001.fixed > image001.pnm
gocr image001.pnm - Install FuzzyOcr 2.3b
cd /usr/local/src/
wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-2.3b.tar.gz
tar xzvf fuzzyocr-2.3b.tar.gz
cd FuzzyOcr-2.3bPatch pakai punyanya Robert LeBlanc
wget http://arjuna.files.wordpress.com/2007/02/fuzzyocr-23b-hashdb-poisonpatch.doc
patch FuzzyOcr.pm < fuzzyocr-23b-hashdb-poison.patch.docKopi plugin dan configurasi file ke direktori spamassassin:
cp FuzzyOcr.pm /etc/mail/spamassassin/
cp FuzzyOcr.cf /etc/mail/spamassassin/
cp FuzzyOcr.words.sample /etc/mail/spamassassin/FuzzyOcr.wordsTambahkan baris “loadplugin FuzzyOcr /etc/spamassassin/FuzzyOcr.pm” di file v310.pre
cp /etc/mail/spamassassin/v310.pre /etc/mail/spamassassin/v310.pre.bak
echo ” loadplugin FuzzyOcr /etc/mail/spamassassin/FuzzyOcr.pm” >> /etc/mail/spamassassin/v310.preEdit konfigurasi FuzzyOcr:
vi /etc/spamassassin/FuzzyOcr.cf
- Remark baris yang load plugin FuzzyOcr
#loadplugin FuzzyOcr FuzzyOcr.pm#Khusus spamassassin di bawah versi 3.1.4, uncomment baris ini dan ganti isinya ke 1.0:
focr_pre314 1.0#sesuaikan konfigurasi dengan di bawah ini
focr_base_score 2
focr_autodisable_score 50 - Test spamassassin dan fuzzyocr
spamassassin –lintKalau tidak ada error, test plugin fuzzyocr dengan file-file samples yang disediakan:
/usr/local/src/fuzzyocr-2.3b/samples
spamassassin -t < animated-gif.emlHasil:
19 FUZZY_OCR BODY: Mail contains an image with common spam text inside
Words found:
“alert” in 4 lines
“charts” in 1 lines
“symbol” in 1 lines
“alert” in 4 lines
“stock” in 2 lines
“company” in 3 lines
“trade” in 1 lines
“xanax” in 1 lines
“meridia” in 1 lines
“growth” in 1 lines
(19 word occurrences found)spamassassin -t < corrupted-gif.eml
Hasil:
1.5 FUZZY_OCR_WRONG_CTYPE BODY: Mail contains an image with wrong
content-type set
Image has format “GIF” but content-type is
“image/jpeg”
2.5 FUZZY_OCR_CORRUPT_IMG BODY: Mail contains a corrupted image
Corrupt image: GIF-LIB error: Image is
defective, decoding aborted.
10 FUZZY_OCR BODY: Mail contains an image with common spam text inside
Words found:
“alert” in 1 lines
“alert” in 1 lines
“stock” in 2 lines
“investor” in 1 lines
“company” in 1 lines
“trade” in 1 lines
“target” in 1 lines
“service” in 1 lines
“recommendation” in 1 lines
(10 word occurrences found)spamassassin -t < jpeg.eml
Hasil:
4.0 FUZZY_OCR BODY: Mail contains an image with common spam text inside
Words found:
“viagra” in 2 lines
“cialis” in 1 lines
“levitra” in 1 lines
(4 word occurrences found)spamassassin -t < png.eml
28 FUZZY_OCR BODY: Mail contains an image with common spam text inside
Words found:
“alert” in 2 lines
“news” in 2 lines
“symbol” in 1 lines
“alert” in 2 lines
“stock” in 1 lines
“investor” in 3 lines
“company” in 2 lines
“buy” in 1 lines
“price” in 2 lines
“trade” in 2 lines
“target” in 2 lines
“service” in 2 lines
“recommendation” in 1 lines
“levitra” in 1 lines
“software” in 2 lines
(26 word occurrences found)Kalau tidak ada masalah, kembalikan setingan focr_autodisable_score ke nilai yang normal
vi /etc/mail/spamassassin/FuzzyOcr.cf
focr_autodisable_score 8 - Restart Spamassassin
/etc/init.d/spamassassin restart - Cek log maillog
Lihat apakah plugin sudah berjalan atau belum
tail -f /var/log/maillog |grep FUZZY_OCR
Done! Selamat menikmati berkurangnya spam.
PS: hati-hati false positive
)