金笛邮件论坛  

返回   金笛邮件论坛 > 开发者乐园 > 电子邮件系统技术交流

回复
 
LinkBack 主题工具 显示模式
旧 2013-11-29, 15:06   #1 (permalink)
版主
 
注册日期: 2012-02-07
帖子: 281
默认 图片垃圾邮件过滤 FuzzyOcr

一、FuzzyOcr简介
部分垃圾邮件采用图片或PDF的方式来发送邮件,这些垃圾邮件在图片内容加入大量的噪声数据(noisy data),以避开扫描引擎的侦测。
FuzzyOcr是利用光学字符识别(OCR)的方式,来识别图像邮件所包含的文字信息,并利用Fuzzy matching算法,辨别出里面的文字;

FuzzyOcr的功能:
1、光学字符识别使用不同的引擎和设置;
2、模糊词匹配算法应用于光学字符识别结果;
3、图像散列系统,以了解已知的垃圾邮件图像独特属性;
4、尺寸,大小和完整的图像检查;
5、内容类型核查包含电子邮件;
6、匹配和学习技巧;
7、支持DB,可将处理过的图片,以feature vectors的形态储存在数据库,因此相同或是类似的图片,便可以利用储存在DB的特征向量来处理;

二、配置FuzzyOcr
1、安装依赖
# rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum install giflib-utils gifsicle netpbm-progs ocrad gocr perl-String-Approx

2、安装FuzzyOcr
# rpm -ivh spamassassin-FuzzyOcr-3.6.0-9.noarch.rpm
3、配置FuzzyOcr
FuzzyOcr的配置文件,基本上不用修改就可以使用,下面参数请根据自己的情况修改。
# vi /etc/mail/spamassassin/FuzzyOcr.cf

内容如下:
##开启日志,日志有4种级别(0-3),数值越大,日志越详细。
focr_logfile /var/log/FuzzyOcr.log

##扫描命令,根据自己的需要添加或减少
focr_bin_helper pnmnorm, pnminvert, pamthreshold, ppmtopgm, pamtopnm
#focr_bin_helper tesseract

##扫描最大运行时间,默认是10秒
#focr_timeout 15

##最小图像尺寸,小于这个参数的图片将被跳过,此参数不适用于PDF文件
#focr_min_height 4
#focr_min_width 4

##最大图像尺寸,大于这个参数的图片将被跳过,此参数不适用于PDF文件
#focr_max_height 800
#focr_max_width 800

##不同格式的最大图片大小,单位是"byte",大于这个参数的图片将不会扫描,默认值:无限制
#focr_max_size_gif 80000
#focr_max_size_jpeg 100000
#focr_max_size_png 80000
#focr_max_size_bmp 500000
#focr_max_size_tiff 500000

##跳过以下图像类型的检查,默认值:0 (检查图像类型)
#focr_skip_gif 1
#focr_skip_jpeg 1
#focr_skip_png 1
#focr_skip_bmp 1
#focr_skip_tiff 1

##定期情况临时目录
#focr_keep_bad_images 1


4、备注:配置FuzzyOcr数据库
如果你想采用数据库来存储邮件特征,FuzzyOcr有两种数据库存储方式,第一种是Hash,第二种是MySQL,这里我只结束MySQL存储方式。

建立数据库
# mysql -u root -p -e "create database FuzzyOcr"
# mysql -u root -p -e "grant all on FuzzyOcr.* to fuzzyocr@localhost identified by 'ruzzyocr'"
# mysql -u root -p FuzzyOccr < /usr/share/doc/spamassassin-FuzzyOcr-3.6.0/FuzzyOcr.mysql

配置FuzzyOcr
# vi /etc/mail/spamassassin/FuzzyOcr.cf
##设置MySQL数据库名、用户名、密码、SOKCET
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass fuzzyocr
focr_mysql_host localhost
#focr_mysql_port 3306
focr_mysql_socket /tmp/mysql.sock

##从下列选项采用不同的数据更新数据库表,默认是0
#focr_mysql_update_hash 1

三、测试:
# service amavisd reload
# spamassassin --lint

示例分析
一封邮件信头:
X-Spam-Level: ***********************************
X-Spam-Status: Yes, score=35.41 tagged_above=-10 required=5
tests=[DSPAM:Innocent=-1.000, ALL_TRUSTED=-1.44, DSPAM_HAM_99=-3.23,
FH_DATE_PAST_20XX=3.384, FUZZY_OCR=34.500, LONGWORDS=3.196]
autolearn=no
测试的环境为EMOS-1.5,没有导入DSPAM训练库;发送了一封带图片的垃圾邮件,在信头的绿色部分是DSPAM评分,红色为FUZZY_OCR的评分,可以看到邮件已经被识别为垃圾邮件;


备注:
如果FuyyzOcr不需要tesseract支持,可以不用安装

四、配置tesseract-ocr
Tesseract的OCR引擎最早由HP实验室于1985年开始研发,到1995年时已经成为OCR业内最准确的三款识别引擎之一。2005年,Tesseract由美国内华达州信息技术研究所获得,并请Google对Tesseract进行改进。目前,Tesseract被认为是最精确的开源 OCR 引擎之一,并支持多国语言。

1、安装依赖
# yum install libgif-devel libjpeg-devel libpng-devel libtiff-devel zlib-devel
# wget https://leptonica.googlecode.com/files/leptonica-1.69.tar.gz
# tar zxvf leptonica-1.69.tar.gz
# cd leptonica && ./configure
# make && make install

2、安装tesseract-ocr
# wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz
# tar zxvf tesseract-ocr-3.02.02.tar.gz
# cd tesseract-ocr && ./configure
# make && make install

3、安装tesseract语言包,我这里添加了英文、中文的支持,如果需要其他语言支持,请下载其他的语言包
# wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.eng.tar.gz
# wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.chi_sim.tar.gz
# wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.chi_tra.tar.gz
解压这些语言包,然后复制到/usr/local/share/tessdata目录,然后测试是否生效
# tesseract --list-langs
List of available languages (3):
chi_sim
chi_tra
eng

4、测试图像识别
# tesseract -v
显示以下内容,说明安装正常。
tesseract 3.02.02
leptonica-1.69
libjpeg 6b : libpng 1.2.10 : libtiff 3.8.2 : zlib 1.2.3

使用tesseract-ocr测试识别,识别出来的文件在output文件里面
# tesseract phototest.tif output -l eng

5、配置FuzzyOcr支持tesseract
# vi /etc/mail/spamassassin/FuzzyOcr.cf
内容修改如下:
focr_bin_helper tesseract

6、测试:
# service amavisd reload
# spamassassin --lint
__________________
陈彦博 
邮件事业部 技术支持工程师
北京春笛网络信息技术服务有限公司
北京海淀区知春路23号863软件园量子银座903室 100191
电话:010-82356575-6023
传真:010-82356575-6004
手机:18622575102
电邮:chenyb@mailer.com.cn
网址:www.chundi.com
QQ:1481461853 1650928809
chyb 当前离线   回复时引用此帖
回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 13:40


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.