CN101795273B - 一种垃圾邮件过滤方法及装置 - Google Patents
一种垃圾邮件过滤方法及装置 Download PDFInfo
- Publication number
- CN101795273B CN101795273B CN 201010101650 CN201010101650A CN101795273B CN 101795273 B CN101795273 B CN 101795273B CN 201010101650 CN201010101650 CN 201010101650 CN 201010101650 A CN201010101650 A CN 201010101650A CN 101795273 B CN101795273 B CN 101795273B
- Authority
- CN
- China
- Prior art keywords
- message
- mail message
- mapping relations
- centerdot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种垃圾邮件过滤方法及装置,所述方法包括:当邮件的第一个邮件报文到来时,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间;在所述内存地址执行邮件报文的分析步骤,将邮件报文中包含的特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;如果是垃圾邮件,则将该邮件作为垃圾邮件过滤。通过本发明,能够节省CPU资源,提高过滤垃圾邮件的实现效率。
Description
技术领域
本发明涉及网络安全技术领域,特别是涉及一种垃圾邮件过滤方法及网络安全设备。
背景技术
随着互联网应用的深入,电子邮件已经成为人们日常工作和生活的交流工具,正在发挥越来越重要的作用。与此同时,垃圾邮件的出现却破坏了和谐的网络文明,一方面,垃圾邮件会浪费企业生产力,浪费企业IT资源;另一方面,各类垃圾邮件往往带有病毒或恶意软件进行广泛传播,可能造成病毒传播、信息泄密等其他方面的Web安全威胁,给用户的邮件系统带来了较大的安全隐患。
面对垃圾邮件对电子邮件系统带来的种种安全威胁,需要采用网络安全设备对垃圾邮件进行过滤。网络安全设备一般都是放置在邮件服务器的外围,设备中的反垃圾邮件功能可以先于邮件服务器对网络中的垃圾邮件流进行过滤,减少邮件服务器的压力。传统的垃圾邮件过滤方法通常是:在邮件到达网络安全设备时,网络安全设备采用代理技术,完全接管连接的整个过程,对整封邮件进行接收,然后进行基于贝叶斯决策等处理方法进行垃圾邮件的识别。但是,该方法会使得网络安全设备的性能变得非常慢。
为此,现有技术中出现了另一种垃圾邮件过滤方法,在该方法中,在邮件到达网络安全设备时,网络安全设备先利用拷贝技术拷贝邮件报文,并存放到设备内存中,等到拷贝完邮件的最后一个邮件报文之后,再对整封邮件进行基于贝叶斯决策的处理。
然而,该现有技术中由于需要对邮件报文进行拷贝,而拷贝操作会占用较多的CPU资源,因此,同样会使得网络安全设备处理邮件报文的性能降低,进一步地,降低了过滤垃圾邮件的实现效率。
发明内容
本发明提供一种垃圾邮件过滤方法及网络安全设备,能够在进行垃圾邮件过滤的过程中节省CPU资源,提高过滤垃圾邮件的实现效率。
本发明提供了如下方案:
一种垃圾邮件过滤方法,预先建立映射关系表,所述映射关系表用于保存特征串与垃圾概率之间的映射关系,所述方法包括:
当邮件的第一个邮件报文到来时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间;
执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
优选的,所述映射关系表以哈希索引表方式建立;
所述查找预先建立的映射关系表包括:通过哈希方式查找所述预先建立的映射关系表。
优选的,所述映射关系表具体用于保存特征串的键值与该特征串的垃圾概率之间的映射关系;
所述对所述邮件报文的标题和/或内容进行分词之后还包括:
利用与计算特征串键值相同的方法计算各个分词结果的键值;
所述查找预先建立的映射关系表,获取切分结果中包含的特征串包括:
判断所述分词结果的键值是否出现在所述映射关系表中,如果出现,则所述切分结果中包含特征串。
优选的,所述利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率包括:
其中,
P为该邮件是垃圾邮件的概率;
P1、P2…Pn为该邮件的各个邮件报文的标题和/或内容中,包含的各个特征串的垃圾概率;
n为正整数;
所述根据所述计算出的概率确定该邮件是否为垃圾邮件包括:
当所述计算出的概率超过预置阈值时,将所述邮件确定为垃圾邮件。
优选的,所述将该邮件作为垃圾邮件过滤包括:
将该邮件的最后一个邮件报文丢弃。
优选的,如果该邮件不是垃圾邮件,还包括:
将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
一种垃圾邮件过滤装置,预先建立映射关系表,所述映射关系表用于保存特征串与垃圾概率之间的映射关系,所述方法包括:
跟踪建立单元,用于当需要转发邮件的第一个邮件报文时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间;
报文分析单元,用于执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
过滤单元,用于当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
优选的,所述映射关系表以哈希索引表方式建立;
所述报文分析单元具体用于,通过哈希方式查找所述预先建立的映射关系表。
优选的,所述映射关系表具体用于保存特征串的键值与该特征串的垃圾概率之间的映射关系;所述装置还包括:
键值计算单元,用于对所述邮件报文的标题和/或内容进行分词之后,利用与计算特征串键值相同的方法计算各个分词结果的键值;
所述报文分析单元具体用于,判断所述分词结果的键值是否出现在所述映射关系表中,如果出现,则所述切分结果中包含特征串。
优选的,所述邮件过滤单元具体用于将该邮件的最后一个邮件报文丢弃。
优选的,还包括:
发送单元,用于如果该邮件不是垃圾邮件,将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明在判断邮件是否为垃圾邮件的过程中,直接在邮件报文所在的内存地址进行分析,不需要拷贝邮件报文,因此,能够在进行垃圾邮件过滤的过程中节省CPU资源,提高过滤垃圾邮件的实现效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的方法的流程图;
图2是本发明实施例提供的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中在进行垃圾邮件过滤的过程中,需要对邮件报文进行拷贝,但是拷贝的过程会耗费较多的CPU资源,因此使得网络安全设备处理邮件报文的性能降低。显然,如果不对邮件报文进行拷贝,那么自然可以节省CPU资源,提高垃圾邮件过滤的效率。但是,在进行垃圾邮件过滤的过程中,需要对邮件报文进行分析处理,分析处理会产生一些中间数据,那么,分析的过程中将邮件报文保存在哪里、分析产生的中间数据又保存在哪里,这些都是需要解决的问题。本发明实施例正是提供了解决这些问题的方法。
首先,为了便于对邮件报文进行分析计算,本发明实施例中首先对于预先收集的训练库中的邮件进行统计。在垃圾邮件中,一些字符串的出现的频率较高,在普通邮件中出现的次数很少,例如,“优惠”、“商机”、“欢迎访问”、“点击”、“体验”、“代开”、“发票”、“free”等在垃圾邮件中出现的概率较高,但在普通的合法邮件中却很少出现,甚至有些垃圾邮件为了防止被过滤,可能对词语进行变换,例如,“*免*费*”、“保你赚大钱(文字之间加入空格)”等,但这种字符串在合法邮件中几乎不会出现。因此,可以将这些字符串汇总,将其作为垃圾邮件的特征串。
而在合法邮件中,另一些字符串出现的频率可能较高,例如“昨天下午”、“请假”、“吵架”以及一些专业性质的词汇,如“编译修改”、“技术答疑”等等,这些字符串在垃圾邮件中出现的概率可能就很低。
可见,同一个字符串分别在垃圾邮件和合法邮件中所出现的概率可能是不同的(例如,同一个词“free”,在100封垃圾邮件中,80封会出现;而在100封合法邮件中,只有10封会出现),因此,可以使用向量化方法,对训练库中的邮件内容进行切分处理。根据贝叶斯定理,对每个出现的特征串,都可以生成一个垃圾邮件概率的指标,并且可以建立一个存储特征串的键值和垃圾概率指标的映射关系表。参见表1,该映射关系表可以保存为如下形式:
表1
其中,对邮件内容切分后得到的可能是一个一个的单词,所有的单词都可能是特征串,并且,特征串也可能是多个单词的链式组合,例如“单词+单词”等。统计结束时,可以选择词频最高的部分单词进行垃圾邮件概率计算,例如每封邮件都取15个词频最高的单词,当然,这里取15仅仅是举例说明,不应看作是对本发明的限制。
在为特征串生成垃圾邮件概率时,可以采用条件概率的计算方法,例如,训练的邮件中,垃圾邮件的总数为T1,合法邮件的总数为T2,其中,单词w在T1中出现的次数为C1,在T2中出现的次数为C2,则该单词的垃圾邮件概率可以表示为:P(w)=(C1/T1)/(C1/T1+C2/T2)。当然,也可以采用其他的计算方法,这里仅仅是举例说明,不应看作是对本发明的限制。
所述特征串的键值是指,将特征串转换成数值,这个数值可以唯一的标识这个特征串。具体实现时,可以利用一些现有的算法来进行转换,例如,最常用的哈希算法等。
在完成上述准备工作之后,就可以进行具体的垃圾邮件过滤流程了,下面进行详细地介绍。
参见图1,本发明实施例提供的垃圾邮件过滤方法包括以下步骤:
S101:当邮件的第一个邮件报文到来时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间;
首先需要说明的是,网络安全设备通常是指由一个由软件和硬件设备组合而成、在内部网与外部网之间、专用网与公共网之间的保护屏障。网络安全设备一般都是放置在邮件服务器的外围,先于邮件服务器对网络中的垃圾邮件流进行过滤。
另外,一封邮件在网络中传输时,会被分成多个邮件报文进行传送,这些邮件报文包括报文头和负载两部分。其中,在报文头中记录有邮件报文的源IP地址、端口号、目的IP地址、目的端口号、协议号以及负载的长度等信息,报文负载则包含邮件协议的命令或邮件的内容。邮件报文的数量和邮件的大小有关,邮件大,相应报文数量就多。
其中,通过报文的端口和报文负载就可以确定“第一个”邮件报文。例如,如果报文的目的端口是TCP的25端口,并且报文负载是HELO命令请求,则可以确定该报文时邮件的第一个邮件报文。邮件内容的开始报文,可以通过DATA命令的报文请求来判断。
总之,在具体实现时,可以通过报文的端口和报文负载来感知第一个邮件报文的到来(即需要转发该第一个邮件报文),然后,从报文头中就可以获取到该邮件报文的源IP地址、端口号、目的I P地址、目的端口号及协议号信息,同时,根据这些信息还可以确定该邮件报文所在的内存地址。其中,由于邮件系统采用存储转发的方式发送邮件,因此,这里所述的邮件报文的内存地址是指,当网卡感知到一封邮件发送时,会为该文件的邮件报文分配内存地址,然后,该邮件的各个报文都会保存在该内存地址中(当然,同一时刻该内存地址只有一个邮件报文,当该邮件报文发送到接收服务器之后,下一个邮件报文再进入到该内存地址,相当于各个邮件报文复用同一内存地址)。也就是说,实际上邮件报文具有自己的内存地址,当接收到邮件的第一个邮件报文时,就可以获知该内存地址。
此外,为了获取该邮件的其他邮件报文,还需要为该邮件建立连接跟踪,利用该连接跟踪可以跟踪到该邮件的各个邮件报文。同时,为了保存在垃圾邮件分析过程中得到的中间数据,本发明实施例还在为该连接跟踪建立私有数据空间,即对于利用该连接跟踪得到的各个邮件报文,分析得到的中间数据都可以报文到该私有数据空间,因此解决了分析产生的中间数据保存在哪里的问题。
其中,所述连接跟踪是指,跟踪并且记录连接状态。即,网络安全设备为每一个经过网络堆栈的数据包,都可以生成一个连接记录项,此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。
S102:执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
在步骤S101中发现了邮件的第一个邮件报文到来,并且获知了邮件报文所在的内存地址,因此,就可以直接在该内存地址中查找到相应的邮件报文,对该邮件报文进行分析。具体的分析过程可以是:对邮件报文中的邮件标题和/或内容进行分词;然后可以利用与计算特征串键值时相同的方法计算各个分词结果的键值。之后就可以检索预先建立的映射关系表中是否存在各个分词结果的键值,检索到之后,取出各个键值对应的垃圾概率,然后保存在之前建立的私有数据空间即可。
其中,如果在建立映射关系表时,采用哈希算法计算特征串的键值,则相当于是以哈希索引表方式建立所述映射关系表,具体在查找预先建立的映射关系表时,可以通过哈希方式查找所述预先建立的映射关系表。当然,在计算各个分词结果的键值时,也需要采用哈希算法。
当然,由于计算键值的方法不限于哈希算法,因此,这里的查找方式也不限于哈希方式。此外,在其他实施例中,也不一定计算特征串的键值,直接用界分结果与原始特征串进行比较,也是可以实现的,具体的实现方法这里不再赘述。
在对一个邮件报文分析完毕之后,就可以将该邮件报文转发到接收端,然后下一个邮件报文就会保存到上一个邮件报文所在的内存空间。可见,本发明实施例在对邮件报文进行分析的过程中,并没有对邮件报文进行拷贝,而是直接在邮件报文所在的内存地址中对邮件报文进行分析,因此,大大节省了CPU资源,网络安全设备仅需完成分析工作,而不用执行邮件报文的拷贝,提高了报文分析的速度。
同时,在将一个邮件报文分析完之后,该邮件的下一个邮件报文将会到来,此时,可以重复执行分析步骤,即,对各个邮件报文的分析处理时相同的,各个邮件报文分析得到的中间数据都会保存到该邮件的私有数据空间中。直到该邮件的最后一个邮件报文到来。
S103:当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
由于邮件协议规定,邮件的结束的时候,需要发送一个仅包含单独的字符“.”的报文作为邮件的结束报文,根据这个报文就可以判断邮件内容结束。显然,该最后一个邮件报文由于只有“.”一个字符,因此并不包含任何关于邮件内容的信息,因此,不用再进行报文分析。但是,当该最后一个邮件报文到来时,并不是直接将其发送到接收端,而是先对该邮件的私有数据空间中的数据进行统一计算,得到该邮件是垃圾邮件的概率;然后,根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则不再将该邮件的最后一个邮件报文发送到接收端,也就是将该邮件作为垃圾邮件过滤。对于接收端而言,虽然已经接收到之前所有的邮件报文,但是由于最后一个邮件报文没有接收到,因此,接收端无法组装成完整的邮件,而直接将其丢弃。当然,如果判定该邮件不是垃圾邮件,则可以将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
其中,判断一个邮件是否为垃圾邮件的具体计算方法可以是:
假设邮件的各个邮件报文中包含特征串S1,S2,…,Sn,转换成的键值分别为K1,K2,…,Kn,查询训练库中的映射关系表得到各特征串对应的垃圾概率为P1,P2,…,Pn。因此,该邮件连接的哈希索引表中,最后得到的所有私有数据为(K1,P1),(K2,P2),…,(Kn,Pn),其中,n为正整数,具体的取值与具体的邮件报文有关;或者,n的取值也可以是固定的,例如可以取词频最高的15个单词,即每封邮件都是取15个计算,当然,n的取值应该与训练时每封邮件中取的单词数目一致,由于训练时假设从每封邮件中取15个单词,因此,相应的,此处的n也应该取为15。
设P(M|S1,S2,…Sn)表示邮件为垃圾邮件的概率,则可以由公式(1)所示的复合概率公式进行计算:
计算完成之后,当P(M|S1,S2,…Sn)超过预设阈值时,就可以判断邮件为垃圾邮件。其中,预设阈值可以根据统计获得,或者依据具体的应用环境设定,这里不作具体的限定。
为使本发明的原理、优点和特性更加清楚,下面结合具体实例对本发明进行描述。
在该实例中,主要基于邮件协议SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)发送一封电子邮件进行描述,并假设预先设定的垃圾邮件阈值为0.9,如果计算出来的概率为达到或超过0.9,则判定邮件为垃圾邮件;如果计算出来的概率小于0.9,则判定为普通邮件。
其中,SMTP协议属于TCP/IP协议族,利用本发明实施例提供的方法,当一个SMTP连接建立时,就可以新建一个连接跟踪,并在该连接跟踪的私有数据空间中创建一个哈希索引表。然后,直接在邮件报文的内存地址对邮件报文进行分析,对邮件报文中包含的特征串建立映射关系,并保存在该邮件私有数据空间的哈希索引表中。到最后一个邮件内容结束报文“.”到来时,对哈希索引表中的数据,进行统一计算,得到邮件是垃圾邮件的概率。假设计算出来的概率为0.9999,该值超过阈值0.9,因此,可以判定邮件为垃圾邮件。当该连接结束时,可以清空并释放为该邮件连接建立的私有数据空间,以留给其他邮件使用。
与本发明实施例提供的垃圾邮件过滤方法相对应,本发明实施例还提供了一种垃圾邮件过滤装置,首先,需要预先建立映射关系表,所述映射关系表用于保存特征串与垃圾概率之间的映射关系,具体的,该装置可以包括以下各个单元:
跟踪建立单元201,用于当需要转发邮件的第一个邮件报文时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间;
报文分析单元202,用于执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
过滤单元203,用于当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
其中,所述映射关系表可以以哈希索引表方式建立;
相应的,报文分析单元202具体用于,通过哈希方式查找所述预先建立的映射关系表。
其中,所述映射关系表具体可以用于保存特征串的键值与该特征串的垃圾概率之间的映射关系;此时,该装置还包括:
键值计算单元,用于对所述邮件报文的标题和/或内容进行分词之后,利用与计算特征串键值相同的方法计算各个分词结果的键值;
相应的,报文分析单元202具体用于,判断所述分词结果的键值是否出现在所述映射关系表中,如果出现,则所述切分结果中包含特征串。
其中,邮件过滤单元203具体用于将该邮件的最后一个邮件报文丢弃,这样接收端由于无法接收到邮件的最后一个邮件报文,因此,即使接收到了之前的所有邮件报文,依然无法组装成完整的邮件,当等待一定的时间之后,就可以将该邮件丢弃。
当然,如果判定出邮件不是垃圾邮件,则该装置还可以包括:
发送单元,用于如果该邮件不是垃圾邮件,将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
以上对本发明所提供的一种垃圾邮件过滤方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种垃圾邮件过滤方法,其特征在于,预先建立映射关系表,所述映射关系表用于保存特征串与垃圾概率之间的映射关系,所述方法包括:
当邮件的第一个邮件报文到来时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间,所述的连接跟踪用于跟踪所述该邮件的其他各个邮件报文;
执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
2.根据权利要求1所述的方法,其特征在于,所述映射关系表以哈希索引表方式建立;
所述查找预先建立的映射关系表包括:通过哈希方式查找所述预先建立的映射关系表。
3.根据权利要求1所述的方法,其特征在于,所述映射关系表具体用于保存特征串的键值与该特征串的垃圾概率之间的映射关系;
所述对所述邮件报文的标题和/或内容进行分词之后还包括:
利用与计算特征串键值相同的方法计算各个分词结果的键值;
所述查找预先建立的映射关系表,获取切分结果中包含的特征串包括:
判断所述分词结果的键值是否出现在所述映射关系表中,如果出现,则所述切分结果中包含特征串。
4.根据权利要求1所述的方法,其特征在于,所述利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率包括:
其中,
P为该邮件是垃圾邮件的概率;
P1、P2…Pn为该邮件的各个邮件报文的标题和/或内容中,包含的各个特征串的垃圾概率;
n为正整数;
所述根据所述计算出的概率确定该邮件是否为垃圾邮件包括:
当所述计算出的概率超过预置阈值时,将所述邮件确定为垃圾邮件。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述将该邮件作为垃圾邮件过滤包括:
将该邮件的最后一个邮件报文丢弃。
6.根据权利要求1至4任一项所述的方法,其特征在于,如果该邮件不是垃圾邮件,还包括:
将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
7.一种垃圾邮件过滤装置,其特征在于,预先建立映射关系表,所述映射关系表用于保存特征串与垃圾概率之间的映射关系,所述装置包括:
跟踪建立单元,用于当需要转发邮件的第一个邮件报文时,根据该邮件报文的源IP地址、端口号、目的IP地址、目的端口号及协议号,为该邮件建立连接跟踪并确定该邮件报文的内存地址,为该连接跟踪建立私有数据空间,所述的连接跟踪用于跟踪所述该邮件的其他各个邮件报文;
报文分析单元,用于执行邮件报文的分析步骤,所述分析步骤包括:在所述内存地址中查找到所述邮件报文,对所述邮件报文中的邮件标题和/或内容进行分词;查找预先建立的映射关系表,获取切分结果中包含的特征串,以及所述特征串对应的垃圾概率,将所述特征串与对应的垃圾概率保存在所述私有数据空间中,并将所述邮件报文转发到接收端;当该邮件的下一邮件报文到来时,重复执行所述分析步骤,直到该邮件的最后一个邮件报文到来;
过滤单元,用于当该邮件的最后一个邮件报文到来时,利用所述私有数据空间中的数据计算该邮件是垃圾邮件的概率;根据所述计算出的概率确定该邮件是否为垃圾邮件,如果是,则将该邮件作为垃圾邮件过滤。
8.根据权利要求7所述的装置,其特征在于,所述映射关系表以哈希索引表方式建立;
所述报文分析单元具体用于,通过哈希方式查找所述预先建立的映射关系表。
9.根据权利要求7所述的装置,其特征在于,所述映射关系表具体用于保存特征串的键值与该特征串的垃圾概率之间的映射关系;所述装置还包括:
键值计算单元,用于对所述邮件报文的标题和/或内容进行分词之后,利用与计算特征串键值相同的方法计算各个分词结果的键值;
所述报文分析单元具体用于,判断所述分词结果的键值是否出现在所述映射关系表中,如果出现,则所述切分结果中包含特征串。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述过滤单元具体用于将该邮件的最后一个邮件报文丢弃。
11.根据权利要求7至9任一项所述的装置,其特征在于,还包括:
发送单元,用于如果该邮件不是垃圾邮件,将该邮件的最后一个邮件报文发送到接收端,以便所述接收端将各个邮件报文组合为完整的邮件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010101650 CN101795273B (zh) | 2010-01-26 | 2010-01-26 | 一种垃圾邮件过滤方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010101650 CN101795273B (zh) | 2010-01-26 | 2010-01-26 | 一种垃圾邮件过滤方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101795273A CN101795273A (zh) | 2010-08-04 |
CN101795273B true CN101795273B (zh) | 2013-08-14 |
Family
ID=42587698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010101650 Expired - Fee Related CN101795273B (zh) | 2010-01-26 | 2010-01-26 | 一种垃圾邮件过滤方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101795273B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130847A (zh) * | 2011-02-18 | 2011-07-20 | 杭州迪普科技有限公司 | 一种互联网邮件审计方法及装置 |
CN102158428B (zh) * | 2011-04-18 | 2014-07-30 | 柳州职业技术学院 | 快速高准确率的垃圾邮件过滤方法 |
CN103078787B (zh) * | 2013-01-17 | 2015-11-25 | 华为技术有限公司 | 邮件处理方法和设备 |
CN107888484A (zh) * | 2017-11-29 | 2018-04-06 | 北京明朝万达科技股份有限公司 | 一种邮件处理方法及系统 |
CN112714040B (zh) * | 2020-12-11 | 2022-10-28 | 深圳供电局有限公司 | 全息报文检测方法、装置、设备及存储介质 |
CN115567476A (zh) * | 2022-09-28 | 2023-01-03 | 建信金融科技有限责任公司 | 垃圾邮件检测方法、装置、处理器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1628448A1 (en) * | 2004-08-17 | 2006-02-22 | Lucent Technologies Inc. | Spam filtering for mobile communication devices |
CN1750030A (zh) * | 2005-10-25 | 2006-03-22 | 二六三网络通信股份有限公司 | 一种过滤垃圾邮件的方法 |
CN1760901A (zh) * | 2005-11-03 | 2006-04-19 | 上海交通大学 | 电子邮件过滤系统 |
-
2010
- 2010-01-26 CN CN 201010101650 patent/CN101795273B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1628448A1 (en) * | 2004-08-17 | 2006-02-22 | Lucent Technologies Inc. | Spam filtering for mobile communication devices |
CN1750030A (zh) * | 2005-10-25 | 2006-03-22 | 二六三网络通信股份有限公司 | 一种过滤垃圾邮件的方法 |
CN1760901A (zh) * | 2005-11-03 | 2006-04-19 | 上海交通大学 | 电子邮件过滤系统 |
Non-Patent Citations (1)
Title |
---|
张璐.基于改进贝叶斯算法的文本广告邮件过滤.《网络安全技术与应用》.2009, * |
Also Published As
Publication number | Publication date |
---|---|
CN101795273A (zh) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101795273B (zh) | 一种垃圾邮件过滤方法及装置 | |
CN100527117C (zh) | 在含多个反垃圾邮件模块的系统中确定消息的方法和系统 | |
AU2011276986B2 (en) | Monitoring communications | |
US7277885B2 (en) | Systems and methods for filter processing using hierarchical data and data structures | |
Saadat | Survey on spam filtering techniques | |
CN101158954B (zh) | 一种在计算机存储中识别重复数据的方法 | |
Liu et al. | Content based spam e-mail filtering | |
CN101299729B (zh) | 一种基于拓扑行为的垃圾邮件判定方法 | |
TW201308102A (zh) | 由電腦實施的消息過濾方法、消息過濾裝置及系統 | |
CN103873348A (zh) | 电子邮件过滤方法和系统 | |
CN101789105B (zh) | 一种在数据包的级别动态检测邮件附件病毒的方法 | |
US20120246219A1 (en) | Shared cache for potentially repetitive message data in a publish-subscription environment | |
CN111107181B (zh) | Nat规则匹配方法、装置、电子设备及存储介质 | |
CN102655483A (zh) | 一种通过电子邮件获取联系人信息的方法、客户端及系统 | |
CN103942282A (zh) | 一种样本数据获取方法、装置及系统 | |
WO2010037292A1 (zh) | 一种确定可疑垃圾邮件范围的方法和系统 | |
CN101969411A (zh) | 一种非加密web邮件的分析还原方法及系统 | |
CN102724290B (zh) | 一种获取目标客户群的方法、设备及系统 | |
US20120215858A1 (en) | Caching potentially repetitive message data in a publish-subscription environment | |
Wolfovitz | Triangle‐free subgraphs in the triangle‐free process | |
CN101094197A (zh) | 反垃圾邮件的方法及其邮件服务器 | |
Paul et al. | A privatised approach in enhanced spam filtering techniques using TSAS over cloud networks | |
AU2011276987B2 (en) | Monitoring communications | |
CN110380952A (zh) | 邮件收发方法及装置 | |
CN102118383A (zh) | 识别电子邮件的方法及识别电子邮件服务器的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130814 Termination date: 20190126 |