用于识别垃圾电子邮件的方法和系统的制作方法

文档序号:7643830阅读:280来源:国知局
专利名称:用于识别垃圾电子邮件的方法和系统的制作方法
技术领域
所公开的本发明宽泛地涉及信息处理系统领域,更具体地说,涉及未经请求(unsolicited)的电子邮件的领域。
背景技术
垃圾电子邮件(spam)是因特网上日益增加的问题,其继续要求新的解决方案。用于攻击垃圾电子邮件的现有机制使用诸如SMTP(简单邮件传输协议)分析之类的独立邮件传送交易的分析、邮件寻址报头(“来自”、“至”、“发送者”等)的分析以及邮件的主题和/或内容的分析。虽然这些机制在较大程度上是有效的,但是垃圾电子邮件发送者(spammer)已经学会了绕过它们,并且继续改进他们的技术。当前在该领域中存在的流行机制和想法是(1)DNS(域名服务器)块列表-“知道”要发送垃圾电子邮件的邮件代理的IP地址的列表;接收邮件服务器可以检查这些列表并且拒绝从出现在该列表中的代理接受邮件。这些是由垃圾电子邮件抱怨者维持的反应性的、静态列表。它们遭受维护困难的困扰(包括大公司和服务提供商的有声誉的发送者常常发现他们被错误地放入这些列表中,并且经常不容易将他们自己从这些列表中拿掉)。
(2)SPF(寄信人来源确认(Sender Permitted From)或者发送者策略框架)、发送者ID、CSV(验证的服务器确认)、域密钥和相关的建议-这些都是被设计来确认邮件的发送者不试图谎报其身份的技术。也就是,它们的每一个都定义“发送域”并且提供用于域发表信息的机制,该信息允许接收者确定好像具有特定“发送域”的消息是否来自被授权代表该域发送邮件的代理。当充分采用时,这些对于“白列出(white listing)”是有效的但是不能用于检测垃圾电子邮件。实际上,许多垃圾电子邮件域参与在SPF中,大概是希望这种参与会给予它们可信性(credibility)。
用于验证电子邮件消息的发送域的机制正变得流行、标准化和被激烈辩论。SPF、呼叫者ID和发送者ID的目标基本上是相同的它们的每一个都被设计来通过使得域所有者发表有效的输出(outgoing)电子邮件服务器的列表成为可能来防止“哄骗(spoofing)”。可以可靠地将通过这些测试之一的消息与参与该消息的传输的域相关联,“可靠地”的某种值是许多争论和争议的主题。因为这些技术意味着“最大努力(best effort)”验证,因此,“似乎正确(plausibly)”可能是较好的定性。
但是,这种信息不足以过滤垃圾电子邮件。在知道负责的域之外,垃圾电子邮件过滤需要关于什么域发送垃圾电子邮件的信息。因此域验证的大多数支持者建议将域验证与声誉服务进行组合。
SPF使得域声明其输出电子邮件网关。如果SPF信息正确,则来自该域的所有邮件“应该”通过这些网关。如果消息通过SPF检查,并且我们假设域原则上不发送垃圾电子邮件,则将该邮件直接继续发给用户是安全的。但是由于垃圾电子邮件发送者也已经注册了域并且发表了SPF记录,因此我们不能假设通过了SPF验证的邮件是源自非垃圾电子邮件域的。
因此,需要分析超出垃圾电子邮件发送者的控制的电子邮件单元并且克服上述缺陷的方法和系统。

发明内容
主要地,根据本发明的实施方式,方法包括步骤接收包括多个分组和发送路径信息的电子邮件消息;使用所述发送路径信息来确定所述电子邮件的路径;将所述路径与多个之前电子邮件路径进行比较;确定接收的所述电子邮件的所述路径与多个之前电子邮件路径中的一个或多个之间的相似性度量;以及根据相似性度量来确定接收的所述电子邮件的垃圾电子邮件得分。其他实施方式包括具有用于执行上述功能的计算机代码的计算机可读介质,和具有被配置(例如,被硬件布线(hard-wired)或者被编程)来执行所述方法的处理器的信息处理系统。


图1是表示简化的电子邮件消息路径的高级框图;图2是示出根据本发明另一种实施方式的信息处理系统的高级框图;和图3是根据本发明实施方式的方法的流程图。
具体实施例方式
参照图1,我们示出电子邮件基础设施100的高度简化的框图。发送者节点102将电子邮件消息发送给目的地节点108。由路由器104和106将该电子邮件消息路由到目的地节点108。每个路由器将信息添加到该电子邮件消息,使得该消息包括从节点102到节点108的电子邮件路径指示。本发明的实施方式针对该消息通过因特网邮件传输基础设施的路径来分析在该电子邮件消息中所存储的信息。一旦该消息离开垃圾电子邮件发送者的控制,就将发送路径信息添加到该消息中,垃圾电子邮件发送者不能去除该信息。通过分析这种信息,并且学习不同发送通道的垃圾电子邮件和非垃圾电子邮件模式,我们能够检测到通过内容分析或者其他现存技术不能检测到的垃圾电子邮件。就用于垃圾电子邮件检测的现在所尝试的解决方案来说,本发明的实施方式的优点是使用我们发明的系统从实际消息中的发送路径信息中动态学习,不需要其他参与者的“参与”,并且能够将发送路径识别为“垃圾电子邮件的”,以及将一些发送路径识别为“好的”。
本实施方式通过下面步骤工作分析因特网消息报头中的标准“接收”行、从它们中提取该消息声称被传过的IP地址和邮件域的列表、以及将这种信息与习得的发送路径数据库进行比较。参照图2,我们示出了使用本发明实施方式的信息系统200的简化的框图。系统200包括处理器202、系统存储器204、网络接口206和数据库208。数据库208可以是系统200的一部分或者可以被远程地经由网络接口206耦合到系统200。系统200通过网络接口206接收电子邮件消息。然后,其分析该电子邮件消息内的路径信息,以确定是否将该电子邮件消息路由到目的地。将处理器202配置(例如,硬件布线或者编程)为提取该路径信息并且将其与来自之前所分析的电子邮件的路径信息进行比较。系统200通过被针对被分类(sort)的消息、垃圾电子邮件和非垃圾电子邮件的开始集合进行训练来学习其初始数据库;在其整个操作中,其通过从将它们接收到的新消息告诉给其的终端用户接收者接收“选票”来继续学习。根据它们的可靠性的判断来对来自每个消息的地址进行分类,根据已经从该地址来的垃圾电子邮件和非垃圾电子邮件将得分给予这些地址的每一个,并且这些的组合产生用于该消息的总得分。然后可以单独或者与其他消息分类器(classifier)组合来使用这种得分以确定该消息的处置。
当评价每个地址并且将得分给予其时,我们使用“聚集(aggregation)”算法。聚集是不用所分配的网络拓扑的直接知识而执行的、而是通过直接组合IP地址的各部分而进行的一种特设算法。在当前因特网邮件行进其上的IPV4系统中,IP地址每个包括四个字节,并且层级地进行分配。仅仅使用该信息,可以为收集用于每个IP地址的信息,并且为该地址及其数据与共享连续高级字节的所有那些相连接,而创建数据库208。例如,表示为“64.233.161.99”的地址可以使得其信息与用“64.233.161”开始的所有那些聚集,其随后与用“64.233”开始的那些聚集。数据库208分散地维持这种信息(使得地址不产生浪费空间),并且结果是有效率的,并且在发现垃圾电子邮件发送和非垃圾电子邮件发送的模式时也有效。还可以使用诸如利用域所有者关系(例如,列在下面的whois)之类的其他“聚集”方法。
对于每个地址(和聚集),我们保留在训练阶段期间从该地址(或者聚集)接收来的、通过在操作阶段期间所接收到的选票增加的一些数量的垃圾电子邮件和非垃圾电子邮件信息。在操作期间,我们通过沿如由聚集所确定的其父节点和“靠近”其的节点在数据库中发现其节点来评价每个地址,这为那个地址产生一个得分。
在以最新地址开始评价了每个地址之后,我们累积经加权的平均值,与仅仅从其他“靠近的”地址中获得的那些相比,将更多的权重给予精确(exact)的数据库匹配。我们检测和去除虚假信息,并且结果是作为整体用于消息的得分。可以单独使用该得分、或者与从内容分析或者其他反垃圾电子邮件技术中获得的得分组合,以确定消息的最终处置。
参照图3,我们讨论根据本发明实施方式用于分类电子消息的计算机实施的方法300。可以由控制路由“中继段(hop)”的电子邮件网络中的任何节点来实施方法300。
步骤302确定用于传输消息的网络路径。这可以包括从消息报头提取发送路径。可选地,消息可以符合RFC 2822而且可以从“RECEIVED”报头中提取网络路径。
步骤304将可信性函数应用于网络路径以确定沿从其接收到电子邮件消息的路径的节点的可信性。应用可信性函数的步骤可以包括分离地考虑网络路径中的每个节点;针对每个节点确定初步可信性;使用所述初步可信性,和路径中一个或多个其他节点的可信性来确定该节点的可信性。确定初步可信性的步骤可以包括计数每个节点之前所发送的每个分类的消息的频率。每个节点可以由它的IP地址来表示。
步骤306将关系函数应用于网络路径。步骤308根据网络路径与之前所分析的消息所使用的路径的相似性来确定消息的分类。步骤310根据该路径的分析来确定要对电子邮件消息采取的行动(例如,作为垃圾电子邮件删除、发送到用户的收件箱(inbox)或者发送到诸如“可疑垃圾电子邮件”邮件箱之类的替代目的地)。步骤310可以包括检查从最近到最早的节点和将不好于之前所检查的节点的可信性分配给每个节点。
方法300可以包括附加条件,即将低可信性给予计数步骤中对于适当计数不具有足够的历史的节点。在本方法中,可以通过检查由从消息中确定的参考域所发表的信息来确定初步可信性。
关系函数将每个之前没被看到的节点与带有类似IP地址的已知节点进行比较。可以认为在它们的高阶比特(higher-order bit)中匹配的IP地址和具有相同所有者的IP地址类似。
关系函数将每个之前没被看到的节点域带有类似域名的已知节点进行比较。可以认为在域名层级中带有部分匹配的节点类似。可以认为其域名具有相同所有者的节点类似。
根据另一种实施方式,我们讨论根据分析用于传输已知垃圾电子邮件和已知好邮件的路径来学习电子邮件域和IP地址的声誉的方法。将该信息与用于过滤经哄骗的邮件报头的方法组合以确保垃圾电子邮件发送者不能规避路由分类分析。
所讨论的方法只使用来自电子邮件消息的报头中在标准“接收”行中所提及的IP地址来将消息分类为垃圾电子邮件或者非垃圾电子邮件。其实施一学习算法,其中我们假设用所选择的对应IP地址在之前所分类的邮件的代表集合上训练该算法。来自相同或者类似IP地址的邮件可能共享相同的分类。
为了精确地标定(label)针对其存在少量数据的站点,我们可以使用利用诸如本地Bayes(native Bayes)或者Chung-Kwei之类的、可以更加精确地进行区分的另一种技术的分类器。例如,虽然SMTP路径分析不如通常所使用的Bayesian垃圾电子邮件分类器精确,但是其识别Bayesian分类器一般处理得最好的信息,并且在该空间的那些部分上其做得更好。虽然Bayesian分类器可以分类针对其不存在用于有效路径分析的足够数据的例子,但是可以使用SMTP路径分析结果来修正来自Bayesian分类器的错误评价。使用两种结果的聚集分类器可以比使用任何一个的都好。
这里所描述的方法直接使用IP地址并且有时根据邻近的IP地址来建立它们的声誉,而不是通过声明的外部集合将它们成组(grouping)并且学习这些组的声誉。SPF在这方面具有的主要优点是SPF可以将根本不同的地址范围成组为单个实体,所以需要损失信息来创建用于该成组的声誉;而且SPF明确描述范围的界限在哪里。
SPF(寄信人来源确认)可以宣称另一个优点,其中,如果声称发送的域发表SPF记录,其可以将通过合法网关的邮件与从僵进程(zombie)直接发送到因特网的邮件进行区分。然而,我们的算法实际上善于识别合法网关以及将直接来自僵进程机器(或者“botnets”)的邮件进行分类,所以该优点小于其可能表现的那样。当可用时可以结合我们的算法来清楚地使用SPF信息,而当不可用时,该算法代表其自己。还要注意,虽然如果所声称的发送域不发布SPF记录,则SPF不能说明任何问题,但是我们的算法还是从发送路径中学习而不论将什么域宣称为消息的源。
SMTP协议指定用于发送电子邮件消息的每个SMTP中继必须将(至少)包含关于接收该消息的SMTP服务器(服务器从该位置接收了消息)的信息的“接收”行、和声明添加该报头的时间的时间戳添加到该消息报头列表的开始处。当被一同考虑时,这些报头行提供用于发送消息的SMTP路径的踪迹(trace)。
然而,不能完全相信在消息的接收报头中所列出的SMTP路径。不以任何方式标记(sign)或者验证消息报头,因此可以容易地进行哄骗。沿路径的任何SMTP服务器可以插入虚假报头,其使得该消息看起来来自发送者选择的任何路径。
尽管如此,某些所接收的行报头是可靠的。例如,可以信任由用户自己域的进入(inbound)SMPT服务器添加的所有报头。站点还可以相信由与其有规律地进行商业往来的组织所产生的接收行,假设它们可以识别这些组织的发出(outbound)服务器。但是一旦在接收行中暗示的SMTP路径到达未知或者不值得信任的服务器,就不能信任剩余的所声称的SMTP路径。
SMTP路径分析通过分析使用该IP地址所发送的电子邮件的过去的历史来学习IP地址的垃圾电子邮件特性(spamminess)或者良好性以进行工作。该算法的学习阶段将被标为垃圾电子邮件或者非垃圾电子邮件的预先分类的消息的集合作为输入。该学习算法从每个消息中提取按照推测邮件采用来到达接收者的IP地址序列,并且收集关于每个IP地址的统计。在其分类阶段,该算法从目标消息中提取IP地址序列,并且根据按照推测用于传输该消息的网关的IP地址产生用于该消息的得分。该得分可以受阈值的支配以产生是否为垃圾电子邮件的分类,或者可以被用作对聚集分类器的输入。该算法不查看其他信息;特别是,其不另外地分析消息的内容,也不考虑任何域信息。
在我们的方法的最基本形式中,针对每个IP地址所收集的统计完全就是其为之出现的垃圾电子邮件和非垃圾电子邮件的数量。然后,使用这些计数来估计通过任何之前所看见的IP地址的邮件是垃圾电子邮件的概率。根据需要将所述概率估计进行平滑以针对小样本尺寸进行修正。在分类期间,我们查看用于传送该消息的IP地址的序列并且根据我们具有针对其的足够数据的链中的最后IP地址来将垃圾电子邮件特性分配给该消息。
在算法的上述概述甚至似乎正确之前还有两个必须被解决的问题1.许多机器(特别是在链的开始的那些,其可以是连接到它们的服务提供商的僵进程或者垃圾电子邮件发送者)不具有固定的IP地址,所以在作为我们正在试图分类的消息中的一个的训练集合中看见相同IP地址的概率比希望的小。
2.上面技术易于哄骗。也就是,该消息可能来自垃圾电子邮件性的(spammy)IP地址和可能宣称其正在继续发送来自合法发送者的消息的机器。
我们通过在不存在针对当前IP地址作出可靠决定的足够数据的任何时候将当前IP地址的统计与“邻近“IP”地址的那些进行组合来应对动态IP问题。存在可以用于这种目的的“邻近”的许多可能定义。一种解决方案是建造迄今我们已经看见的IP地址的树。该树的根具有多至256个子树,每个与IP地址的各种可能的第一字节对应。为了效率,我们使得树稀疏,所以我们还没有遇到的第一字节在该树中不出现。这种稀疏性在该树的所有分支中继续。
随后这些子树的每一个其自己具有多至256个子树,每个对应于第二字节。虽然针对第三和第四字节进行相同的过程,当然,当我们沿树向下时分支变得更加稀疏,产生带有少于232个节点的树。
在每个节点n,我们存储该节点所表示的该IP地址或者范围已经出现在其中的非垃圾电子邮件消息的数量NSn和垃圾电子邮件消息的数量Sn。计算作为节点的垃圾电子邮件性度量的比率,即Sn/(Sn+NSn)将垃圾电子邮件消息的数量除以已经通过该地址或者范围的消息的总数。
我们不能仅仅就这样使用该比率。而且,存在两个问题1.我们正在试图记录在内部节点处的是如果我们获得IP地址而不具有在该节点下面的精确匹配则将会有帮助的信息。应该通过在平均IP子范围处所发生的而不是在这些范围中在一些特定IP地址处可能发生的来影响该值。在垃圾电子邮件发送者使用特定地址而不是作为整体的范围的情况下这可能特别重要,并且因此我们将子节点的活动进行平均,而不由通过它们的邮件的数量进行加权。
2.如果节点仅仅看见一个垃圾电子邮件而没有非垃圾电子邮件,下一个邮件是垃圾电子邮件的概率不是100%。
我们通过我们实际计算用于该IP地址的得分的方式来解决这两个问题。我们添加带有得分为0.5的人为的新的根。如果可以获得一个的话,我们重复地转到包含实际IP地址的子树。在该子树处,我们计算该子树的孩子和父亲的平均值。也就是,如果存在九个孩子则我们采用平均十个节点父亲和九个孩子。对于叶节点,我们采用由包含该叶的消息的数量所加权的叶节点的比率和父亲的平均值。当然,有时如果我们从未在我们的训练集合中看见这种精确的IP地址,则我们不到达叶节点。当我们获得新消息时,我们查看每个IP地址,从最后一个(最接近我们的接收机器的一个)开始。我们计算其得分,其为在0和1之间的数字,然后将其与用于下一个IP地址的得分组合。我们以权重等于1/(s*(1-s))采用两个IP地址的垃圾电子邮件性的经加权的平均,其中s是上述的垃圾电子邮件性。原理是在序列中强垃圾电子邮件性和强非垃圾电子邮件性的IP地址是消息邮件的特性的较高指示器-带有最极端得分的地址是对于计算最有意义的地址。我们继续将当前的平均值与下一个IP地址的垃圾电子邮件性组合的这种过程,直到我们到达列表结尾为止。
如上所述,上面技术易于哄骗。如果垃圾电子邮件发送者进行哄骗以妨碍我们的算法,则邮件将显示为通过垃圾电子邮件性的地址而来自合法的源。为了应对这种问题,我们为每个中间地址建立可信性值,并且如果地址是不可信的,则我们至少可以部分忽略剩余的地址。
在实践中,如果在序列中存在与训练集合中的IP地址精确匹配的任何IP地址,则当我们只发现内部节点时,其是比上面给出的得分更好的指示器。所以我们将更多权重给予精确的匹配。
在作为消息源头的地址和作为网关动作的地址之间存在区别,而我们针对源头地址和中间地址保持分离的统计。考虑这样的例子,一个企业,当其开发了其公司现在的因特网时,在一个部门中的、已经在之前的某段时间内具有了因特网电子邮件地址的大多数用户缓慢地从该部门内的网关向企业范围的网关移动。当垃圾电子邮件增加时,很少将该部门的网关用于合法邮件-通过这些网关之一移动的邮件中98%为垃圾电子邮件,但是某些部门员工还继续使用它。因此,根据对接收到的行的分析,会将从那些到该企业的其他部分的邮件标为可能的垃圾电子邮件。可以通过将最后IP地址(按照推测为源头站点)的统计与所有其他的分离来解决这个问题。所以,如果地址范围接收许多垃圾电子邮件,但是源头靠近其的所有邮件是好的,则其将被给予好的得分。
因此,虽然已经描述了现在被认为是优选实施方式的实施方式,但是本领域的普通技术人员应该理解,在本发明的精神内可以进行其他修改。
权利要求
1.一种计算机实施的方法,包括步骤接收电子邮件消息,其包括多个分组、包括一个或多个单元的传输路径信息以及针对所述电子邮件消息的至少一个接收者;使用所述传输路径信息的所述一个或多个单元来确定针对所述电子邮件的网络路径;将所述路径与多个之前电子邮件路径进行比较;确定所接收到的电子邮件的路径和多个之前电子邮件路径中的一个或多个之间的相似性度量;和根据所述相似性度量来确定针对所接收到的所述电子邮件的垃圾电子邮件得分。
2.根据权利要求1所述的方法,还包括当将所述电子邮件消息确定为包括垃圾电子邮件时不将所述电子邮件消息转发到所述的至少一个接收者。
3.根据权利要求1所述的方法,其中,所述传输路径信息包括接收行,而所述方法还包括分析所述电子邮件消息报头中的所述接收行;从所述接收行中提取所述电子邮件声称通过的IP地址和邮件域的列表;和将所述IP地址与包括沿每个传输路径的IP地址的传输路径的习得数据库进行比较。
4.根据权利要求3所述的方法,其中,在接收所述电子邮件消息之前,所述方法包括通过训练包括垃圾电子邮件和非垃圾电子邮件消息的经分类的消息的开始集合来创建用于存储多个之前电子邮件路径的习得数据库;和存储用于在所述数据库中所存储的每个IP地址的开始垃圾电子邮件得分,其中所述垃圾电子邮件得分指示所接收到的电子邮件是垃圾电子邮件的似然性。
5.根据权利要求4所述的方法,还包括通过从接收电子邮件的用户处接收选票来更新所述数据库,其中每个选票指示所述用户将所述电子邮件当作垃圾电子邮件还是非垃圾电子邮件。
6.根据权利要求5所述的方法,还包括当存储IP地址时组合所述IP地址的各部分。
7.根据权利要求6所述的方法,还包括当训练所述数据库时聚集IP地址。
8.根据权利要求1所述的方法,还包括在以最近地址开始评价每个地址之后,累积经加权的平均值,并且与仅仅从其他邻近地址所获得的那些相比将更多的权重给予精确的数据库匹配。
9.根据权利要求1所述的方法,还包括检测和去除虚假信息,和作为整体提供关于该消息的得分。
10.根据权利要求1所述的方法,还包括对由所述电子邮件消息所跟随的所述网络路径应用可信性函数。
11.根据权利要求1所述的方法,还包括对由所述电子邮件消息所跟随的所述网络路径应用关系函数。
12.根据权利要求11所述的方法,其中应用所述可信性函数的所述步骤包括分离地考虑所述网络路径中的每个节点;确定针对每个节点的初步可信性;使用所述初步可信性,和所述路径中一个或多个其他节点的可信性,来确定该节点的可信性。
13.根据权利要求11所述的方法,其中确定所述初步可信性的所述步骤包括对之前由每个节点所发送的每个分类的消息的频率进行计数。
14.根据权利要求7所述的方法,其中聚集IP地址是基于域所有者关系的。
15.根据权利要求11所述的方法,其中至少一个节点由其IP地址表示。
16.根据权利要求11所述的方法,其中由所述网关计算机的DNS名表示至少一个节点。
17.根据权利要求12所述的方法,其中使用所述初步可信性的所述步骤包括检查从最近到最早的所述节点;将不好于所述之前检查的节点的可信性的可信性分配给每个节点。
18.根据权利要求12所述的方法,其中将低可信性给予在所述计数步骤中针对适当计数不具有足够历史的节点。
19.一种信息处理系统,包括处理器,配置来接收包括多个分组和传输路径信息的电子邮件消息;使用所述传输路径信息来确定针对所述电子邮件的路径;将所述路径与多个之前电子邮件路径进行比较;确定所接收到的所述电子邮件的所述路径和多个之前电子邮件路径中的一个或多个之间的相似性度量;和根据所述相似性度量来确定针对接收到的所述电子邮件的垃圾电子邮件得分。
全文摘要
一种方法,包括步骤接收包括多个分组和传输路径信息的电子邮件消息;使用所述传输路径信息确定针对所述电子邮件的路径;将所述路径与多个之前电子邮件路径进行比较;确定所接收到的电子邮件的路径和多个之前电子邮件路径中的一个或多个之间的相似性度量;和根据所述相似性度量来确定针对所接收到的所述电子邮件的垃圾电子邮件得分。其他实施方式包括具有执行上述功能的计算机代码的计算机可读介质,和包括被配置(即,硬件布线或者编程)来执行该方法的处理器的信息处理系统。
文档编号H04L9/00GK101014020SQ200710004759
公开日2007年8月8日 申请日期2007年1月30日 优先权日2006年2月3日
发明者马克·N·韦格曼, 巴里·莱巴, 理查德·西格尔, 韦达科达图·T·拉简, 乔尔·奥施尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1