手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>Mail服务器>列表

反垃圾邮件技术解析

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
邮件地址。现在有很多组织都在做*bl(block list),将那些经常发送垃圾邮件的IP地址(甚至IP地址范围)收集在一起,做成block list,比如spamhaus的SBL(Spamhaus Block List),一个BL,能够在很大范围内共享。许多ISP正在采用一些组织的BL来阻止接收垃圾邮件。白名单则和黑名单相反,对于那些信任的邮件地址或IP就完全接受了。

现在很多邮件接收端都采用了黑白名单的方式来处理垃圾邮件,包括MUA和MTA,当然在MTA中使用得更广泛,这样能够有效地减少服务器的负担。

BL技术也有明显的缺陷,因为不能在block list中包含任何的(即便是大量)的IP地址,而且垃圾邮件发送者很容易通过不同的IP地址来制造垃圾。

2.1.3 HASH技术

HASH技术是邮件系统通过创建HASH来描述邮件内容,比如将邮件的内容、发件人等作为参数,最后计算得出这个邮件的HASH来描述这个邮件。假如HASH相同,那么说明邮件内容、发件人等相同。这在一些ISP上在采用,假如出现重复的HASH值,那么就能够怀疑是大批量发送邮件了。

2.1.4 基于规则的过滤

这种过滤根据某些特征(比如单词、词组、位置、大小、附件等)来形成规则,通过这些规则来描述垃圾邮件,就好比IDS中描述一条入侵事件相同。要使得过滤器有效,就意味着管理人员要维护一个庞大的规则库。

2.1.5 智能和概率系统

广泛使用的就是贝叶斯(Bayesian)算法,能够学习单词的频率和模式,这样能够同垃圾邮件和正常邮件关联起来进行判断。这是一种相对于关键字来说,更复杂和更智能化的内容过滤技术。我将在下面周详描述这种在客户端和服务器中使用最广泛的技术。

2.1.5.1 Bayesian 贝叶斯算法

在过滤器中,现在表现最好的应该是基于评分(score)的过滤器,因为我们很容易就能够明白对付狡猾的垃圾邮件,那些黑白名单、关键词库或HASH等过滤器是多么的简单。评分系统过滤器是一种最基本的算法过滤器,也是贝叶斯算法的基本雏形。他的原理就是检查垃圾邮件中的词或字符等,将每个特征元素(最简单的元素就是单词,复杂点的元素就是短语)都给出一个分数(正分数),另一方面就是检查正常邮件的特征元素,用来降低得分的(负分数)。最后邮件整体就得到一个垃圾邮件总分,通过这个分数来判断是否spam。

这种评分过滤器尽量实现了自动识别垃圾邮件的功能,但是依然存在一些不适应的问题:

*特征元素列表通过垃圾邮件或正常邮件获得。因此,要提高识别垃圾邮件的效果,就要从数百邮件中来学习,这降低了过滤器效率,因为对于不同人来说,正常邮件的特征元素是不相同的。

*获得特征元素分析的邮件数量多少是个关键。假如垃圾邮件发送者也适应了这些特征,就可能让垃圾邮件更象正常邮件。这样的话,过滤特征就要更改了。

*每个词计算的分数应该基于一种很好的评价,但是还是有随意性。比如,特征就可能不会适应垃圾邮件的单词变化,也不会适应某个用户的需要。

贝叶斯理论现在在电脑行业中应用相当广泛,这是一种对事物的不确定性描述,比如google计算中就采用了贝叶斯理论。贝叶斯算法的过滤器就是计算邮件内容中成为垃圾邮件的概率,他要首先从许多垃圾邮件和正常邮件中进行学习,因此,效果将比普通的内容过滤器更优秀,错报就会更少。贝叶斯过滤器也是一种基于评分的过滤器。但不但仅是一种简单的计算分数,而更从根本上来识别。他采用自动建立特征表的方式,原理上,首先分析大量的垃圾邮件和大量的正常邮件,算法分析邮件中多种特征出现概率。

贝叶斯算法计算特征的来源通常是:

·邮件正文中的单词

·邮件头(发送者、传递路径等)

·其他表现,比如HTML编码(如颜色等)

·词组、短语

·meta信息,比如特别短语出现位置等

比如,正常邮件中经常出现单词AAA,但是基本不在垃圾邮件中出现,那么,AAA标示垃圾邮件的概率就接近0,反之则然。

贝叶斯算法的步骤为:

1. 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。

2. 提取特征来源中的单独字符串,例如 AAA等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的任何邮件

3. 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。

4. 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)

5. 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:

A 事件 ---- 邮件为垃圾邮件

t1,t2 …….tn 代表 TOKEN 串

则 P(A|ti)表示在邮件中出现 TOKEN 串 ti 时,该邮件为垃圾邮件的概率。设

P1(ti)=ti 在 hashtable_good 中的值

P2(ti)=ti 在 hashtable_ bad 中的值

则 P(A|ti)=P2(ti)/[(P1(ti) P2(ti)];

6. 建立新的哈希表hashtable_probability存储TOKEN串ti到P(A|ti)的映射

7.根据建立的哈希表 hashtable_probability能够估计一封新到的邮件为垃圾邮件的可能性。

当新到一封邮件时,按照步骤2,生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。假设由该邮件共得到N个TOKEN 串,t1,t2…….tn,hashtable_probability中对应的值为 P1 ,P2 ,……PN ,P(A|t1 ,t2, t3……tn) 表示在

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!