反垃圾邮件技术解析(2)
来源:云南设计港 发布时间:2007-08-28 13:49:00
2、反垃圾邮件技术
已经存在的和在被提及的反垃圾邮件方法试图来减少垃圾邮件问题和处理安全需求。通过正确的识别垃圾邮件,邮件病毒或者邮件攻击程序等都会减少。这些解决方法采取多种安全途径来努力阻止垃圾邮件。
Dr. Neal Krawetz在Anti-Spam Solutions and Security[ref 1]文中将反垃圾邮件技术作了非常好的分类。当前的反垃圾邮件技术可以分为4大类:过滤器(Filter)、反向查询(Reverse lookup)、挑战(challenges)和密码术(cryptography),这些解决办法都可以减少垃圾邮件问题,但是都有它们的局限性。本文将在下面的内容讨论这些技术以及一些主要技术的实现。
2.1、过滤
过滤(Filter)是一种相对来说最简单却很直接的处理垃圾邮件技术。这种技术主要用于接收系统(MUA,如OUTLOOK EXPRESS或者MTA,如sendmail)来辨别和处理垃圾邮件。从应用情况来看,这种技术也是使用最广泛的,比如很多邮件服务器上的反垃圾邮件插件、反垃圾邮件网关、客户端上的反垃圾邮件功能等,都是采用的过滤技术。
2.1.1、关键词过滤
关键词过滤技术通常创建一些简单或复杂的与垃圾邮件关联的单词表来识别和处理垃圾邮件。比如某些关键词大量出现在垃圾邮件中,如一些病毒的邮件标题,比如:test。这种方式比较类似反病毒软件利用的病毒特征一样。可以说这是一种简单的内容过滤方式来处理垃圾邮件,它的基础是必须创建一个庞大的过滤关键词列表。
这种技术缺陷很明显,过滤的能力同关键词有明显联系,关键词列表也会造成错报可能比较大,当然系统采用这种技术来处理邮件的时候消耗的系统资源会比较多。并且,一般躲避关键词的技术比如拆词,组词就很容易绕过过滤。
2.1.2、黑白名单
黑名单(Black List)和白名单(White List)。分别是已知的垃圾邮件发送者或可信任的发送者IP地址或者邮件地址。现在有很多组织都在做*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) 表示在邮件中同时出现多个TOKEN串t1,t2……tn时,该邮件为垃圾邮件的概率。
由复合概率公式可得:
P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
当 P(A|t1 ,t2, t3……tn) 超过预定阈值时,就可以判断邮件为垃圾邮件。
当新邮件到达的时候,就通过贝叶斯过滤器分析,通过使用各个特征来计算邮件是spam的概率。通过不断的分析,过滤器也不断地获得自更新。比如,通过各种特征判断一个包含单词AAA的邮件是spam,那么单词AAA成为垃圾邮件特征的概率就增加了。
这样,贝叶斯过滤器就有了自适应能力,既能自动进行,也可以用户手工操作,也就更能适应单个用户的使用。而垃圾邮件发送者要获得这样的适应能力就很难了,因此,更难逃避过滤器的过滤,但他们当然还是能够将邮件伪装成很普遍的正常邮件的样子。除非垃圾邮件发送者能去对某个人的过滤器进行判断,比如,采用发送回执的办法来了解哪些邮件被用户打开了等,这样他们就可以适应过滤器了。
虽然贝叶斯过滤器还存在有评分过滤器的缺陷,但是它更优化了。实践也证明,贝叶斯过滤器在客户端和服务器中效果是非常明显的,优秀的贝叶斯过滤器能够识别超过99.9%的垃圾邮件。大多数目前应用的反垃圾邮件产品都采用了这样的技术。比如Foxmail中的贝叶斯过滤。


猜你喜欢
- 使用yum可以进行连通依赖关系一起进行安装,而是用–downloadonly –downloaddir选项则可以不进行安装,而将rpm连同依
- WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,被认为是WebM多媒体格
- 一台服务器 几乎所有网站打开网页 甚至HTML网页 都出现了<iframe src="http://xxxdfsfd/web
- 假设在math目录下已编辑好add.c sub.c div.c mul.c func_point.c文件,func_point.c为包含ma
- 11月26日 360安全浏览器推出一年来迅速赢得了网民的认可,而安全无疑是这款浏览器最显著的特色。360总裁齐向东表示,90%的
- 详解Vista系统自带的iis7.0有很多让人耳目一新的内容,这篇文章介绍一些设置技巧。未来的iis将如何发展,我们拭目以待。如何安装IIS
- 先前我曾经报道过Google即将推出通过Google Analytics统计Google Adsense的功能,今天,我登录AdSense后
- Google PR是现在搜索引擎技术的基石之一,其他搜索引擎不一定叫PR,但肯定也在使用相同的技术。PR值在搜索引擎排名的各个阶段都可能用到
- 我们终于进入了这个社会。从此结束了被学校老师看管的生涯,结束了做父母乖宝贝的日子,也结束从父母兄长那里拿钱的幸福时光。我们从家里搬了出来,提
- 背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题?通过多线程模拟多窗口售票为例:#include <iostream>
- 从Discuz!官方了解到,目前QQ互联服务已经全面开放,无任何站点规模以及日发帖限制,使用Discuz!X2的站点可通过Discuz!云平
- 1、创建一个SpringBooot项目并且打成jar包2、在Linux中创建一个文件夹,来做docker测试[root@izwz90lvzs
- 在广州我发现父亲的台式机被病毒感染得"满目疮痍"。虽然我的笔记本使用原版Windows XP SP2到现在四年都没&qu
- Windows 2003 IIS6 .ASP目录执行漏洞专题Windows 2003 Enterprise Edition是微软目前主流的服
- MIME(Multipurpose Internet Mail Extensions,多目的Internet邮件扩展)是创建用于电子邮件交换
- 我是一个菜鸟站长。做站时间不长。满打满算,刚刚8个月,也想一些前辈说的一样,每天晚上12点以后睡觉。早上起来的第一件事情就是 去百度site
- 首先下载VMware安装包:双击安装:点击:“uninstall”安装,这个过程需要一些时间点击“Next”选择典型或者自定义安装这里我选择
- 10月12日消息,据国外媒体报道,互联网用户管理机构ViziSense最新数据显示,谷歌Gmail已经超越雅虎,成为印度最受欢迎的电子邮件服
- 首先是管理方面的特点,主要有:是否图形方式配置、是否图形方式安装、有没有远程管理能力、可否利用简单网管协议配置和监视。第二是从扩展能力来说,
- 微软日前承认其最新有关Windows 7的安全特性的电视广告有可能对消费者进行误导,微软表示,“用户能够在零售商店或者网络上得到更好的指导。