反垃圾邮件技术的措施及主流技术

转自:《计算机教育》2005年第1期 P67

作者:李云春

反垃圾邮件技术介绍

按照网络层次结构的不同层面,反垃圾邮件技术可以划分为:基于IP层、基于SMTP协议和基于内容过滤三类方法。

由于电子邮件具有高度的时效性,所以加快邮件过滤的速度,减少邮件的迟延是设计一个反垃圾邮件系统首先需要考虑的问题,同时,由于低层次的过滤技术,如IP层和SMTP层的过滤技术已经趋于成熟,改进主要集中在了基于内容的文本分析上,例如贝叶斯(Bayesian)分类的过滤技术和基于神经网络的过滤技术,但是,基于文本分析的过滤器需要巨大的计算量,如果对进入邮件系统的邮件进行内容过滤,往往需要消耗掉大量的服务器资源,甚至造成服务器阻塞。大量的计算消耗很长的时间,与上面邮件的时效性相违背,所以针对这个问题,大多数的反垃圾邮件系统和针对邮件协议的改进都离不开一个基本的思想:尽量首先识别出正常的邮件,尽量减少流向网络高层次应用的数据。所以,大多数的反垃圾邮件系统都采用了分层过滤的体系结构,从IP层、SMTP层到文本的内容分析,数据由低层次向高层次流动。

1. IP层的反垃圾邮件技术

基于IP层的反垃圾邮件技术中,常见的技术有:黑名单、白名单、实时黑名单(RBL)、实时白名单服务等。

黒名单技术是最早出现的一种反垃圾邮件技术,一般的邮件服务器都有该功能。黑名单技术的原理是确定已知垃圾邮件制造者及其ISP的域名或IP地址,然后将其整理成黑名单,将黑名单部署在处理网关处,拒绝任何来自黑名单上的垃圾邮件制造者的邮件。黑名单服务是基于用户投诉和采样积累而建立的、由域名或IP组成的数据库,最著名的是RBL、DCC和Razor等,这些数据库保存了频繁发送垃圾邮件的主机名字或IP地址,供邮件服务器中的邮件传输代理(MTA)进行实时查询以决定是否拒收相应的邮件。黑名单技术可能会阻止正常用户的邮件。如果这位用户碰巧使用了与垃圾邮件制造者相同的ISP,或者IP地址与垃圾邮件制造者的IP地址在同一范围内,黑名单技术可能会将一些正常邮件地址列入其中。而且当垃圾邮件制造者快速改变其邮件地址时,黑名单技术的处理效果将大幅下降,忽略垃圾邮件、过滤掉正常邮件的误报率将大大增加。目前各种黑名单数据库都具有很强的区域歧视性,例如,北美的RBL和DCC包含了我国大量的主机名字和IP地址,其中有些是早期的邮件服务器中的Open Relay属性打开造成的,有些则是由于误报造成的。这些错误迟迟得不到纠正,阻碍了我国与北美地区的正常邮件联系,也妨碍了中国的用户使用这些黑名单服务。在我国,黑名单服务仍处在起步阶段,可用服务器较少,其有效性也没有得到充分验证。

白名单的原理是拒绝接收任何邮件,除非用户的邮件地址在白名单上允许接收。白名单提供两种使用方式:一种方法是用户阻止不在名单上的信件;另一种方式是系统邮件发送者发送信件,要求其回复,以证实确有邮件发送者其人,经过确认后将其列入白名单中。白名单技术并不总是有效。如果用户希望收到来自某一地址的电子邮件,用户必须事先设置允许接收这一地址邮件的规则,而且如果以前获得批准的用户改变了邮件地址,用户必须再次将新地址写入白名单,否则就收不到来自这位用户的电子邮件。在理论上,白名单是不错的解决方法,但是它会产生大量要求垃圾邮件制造者回复的邮件,因此也会造成更多的垃圾邮件。

实时黑名单是简单黑名单的扩展和发展,实时黑名单实际上是一个可供查询的IP地址列表,通过DNS的查询方式来查找一个IP地址的记录是否存在来判断其是否被列入了该实时黑名单中。由于邮件服务器非常繁忙,对黑名单服务器的查询会非常多,导致查询响应迟缓,增加了延迟,可以使用DNS的区域传输方法解决,将黑名单服务器的数据传输到本地的DNS服务器,然后对本地的DNS服务器进行查询即可。区域传输可以设置为手工更新、定时更新或自动更新等方式。实时黑名单具有时效性强的特点,其维护一般由较为权威和公益性的组织提供,国内的RBL服务器由“中国反垃圾邮件联盟”提供。

2. SMTP层的反垃圾邮件技术

SMTP层的反垃圾邮件技术目前应用得较为广泛,在RFC 2505:《反垃圾邮件建议》中有比较详细的描述。SMTP层的处理集中在对基本的SMTP指令的分析和判断上面,所以与文本内容分析相比,计算量很少且处理结果很好。这里集中了在正式传输邮件内容之前邮件服务器之间的交互信息,大多数的垃圾邮件服务器或多或少都会暴露相应的信息,特别是由于国内的垃圾邮件服务器技术水平并不高,正确地对SMTP指令进行分析处理,可以达到很好的垃圾邮件过滤效果。主要的技术有:域名反向解析和SMTP交互行为的检测两大类。

域名反向解析技术对发送者的IP地址进行逆向名字解析,通过DNS查询来判断发送者的IP与其声称的名字是否一致,例如其声称的名字为mx.yahoo.com,而其连接地址为20.200.200.200,与其DNS记录不符,则予以拒收。这种方法可以有效过滤掉来自动态IP的垃圾邮件,对于某些使用动态域名的发送者,也可以根据实际情况进行屏蔽。但这种方法对于借助Open Relay的垃圾邮件无效。对此,更进一步的技术是假设合法的用户只使用本域具有合法Internet名称的MTA主机发送E-Mail。例如,若发件人的邮件地址为somebody@google.com,则其使用的MTA的Internet名字应具有google.com的后缀。这种限制并不符合SMTP协议,但在多数情况下是切实有效的。逆向名字解析需要进行大量的DNS查询,从而耗用大量的系统资源和网络资源,为了提高性能和避免出现由于DNS服务中止或查询超时,该方法并未被普遍采用。

SMTP交互行为的检测技术往往是针对垃圾邮件服务器的特点设定的,相应的检测技术较多且在不断地更新发展。常见的检测手段包括:发送账号限制、发送无效账号统计、使用特殊命令等。

3. 基于内容过滤技术

基于内容过滤技术是目前反垃圾邮件用到的主要技术。电子邮件通常具有几个重要特征,标准电子邮件地址(包括收发件人邮箱名、收发人邮箱服务器IP地址或域名)、主题、信件内容(包括正文、关键字、附件)等相关字段,这些特征是过滤技术判断、分析、统计和提取的依据。目前的主要过滤技术有邮件来源特征过滤和内容过滤。

根据来源特征进行过滤的方式可以在邮件完全提交之前就进行阻断,通过对信头的分析进行垃圾邮件的判断,使用这种方法可减少网上传输,能有效保护网络资源。内容过滤就是对邮件正文进行内容匹配。从原理来看,提取邮件特征、获得关键词是过滤技术的关键。通常会设立专门垃圾邮件用户投诉信箱,技术人员可以从这些被反垃圾邮件处理软件“疏忽”的垃圾邮件中,摘取关键词进行分析过滤,或是统计垃圾邮件的相关特征,输入反垃圾邮件引擎,使升级后的反垃圾邮件软件能够拒收这些邮件。

基于内容的过滤方法主要有基于规则的过滤方法和贝叶斯过滤方法。

基于规则的过滤器可以对邮件标题和信件内容等进行多项过滤,比如结合内容扫描引擎,根据垃圾邮件的常用标题语、垃圾邮件受益者的姓名、电话号码、Web地址等信息关键词进行过滤,然后在邮件服务器上删除它们。这一工作原理决定了基于规则的过滤技术总是落后于垃圾邮件一步。例如,我们知道带有标题“FREEVIAGARA”的信件是垃圾邮件,但是基于规则的过滤器可能由于字母之间的空格而放过它。保持规则的准确和最新状态是一项永无止境的工作。另外,基于规则的过滤器越面面俱到,其运行速度就会越慢。尽管如此,基于规则的方法仍不失为一种有效的方法。

贝叶斯过滤技术似乎与基于规则的过滤技术相似,但是贝叶斯过滤器不必预先设定规则,不需要分析邮件句法或内容含义。这种方法的理论基础是通过对大量垃圾邮件中常见关键词进行分析后得出其分布的统计模型,并由此推算目标邮件是垃圾邮件的概率。贝叶斯过滤器是用户根据自己所接受的垃圾邮件和非垃圾邮件的统计数据来创建的,这意味着垃圾邮件发送者无法猜测出过滤器是如何配置的,从而有效阻止垃圾邮件。贝叶斯过滤器能够学习分辨垃圾邮件与非邮件之间的差别,差别是用概率来表示的,并且自动应用到以后的检测中。在收到几百封信件后,一个好的贝叶斯过滤器就可以自动识别各种垃圾邮件。该算法最早由Paul Graham提出(http://www.paulgraham.com/spam.html),并使用他自己设计的Arc语言实现。这种方法具有一定的自适应、自学习能力,目前已经得到了广泛的应用。内容过滤是各种方法中耗费计算资源最多的,在邮件流量较大的场合,需要配合高性能服务器使用。

[前一页]