垃圾邮件过滤器的模糊化
技术领域
本发明涉及用于降低垃圾邮件传播的系统和方法,特别地涉及阻碍垃圾邮件过滤器的反向工程(reverse engineering)和/或减缓垃圾邮件制造者(SPAMER)的模仿和对垃圾邮件过滤器性能的预测。
技术背景
诸如因特网等国际全球通信网络的来临已经展示出达到大量潜在客户的商机。作为一种向网络用户传播多余的广告和推销(也表示为“垃圾邮件”)方法,电子消息,尤其是电子邮件(email)变得越来越普遍。
Radicati股份有限公司是一个进行咨询和市场研究的公司,该公司在2002年8月就估计每天将有20亿垃圾电子邮件消息被发送-这个数字预计每两年增加三倍。大量个人和团体(例如,商业、政府团体)觉得越来越麻烦而且时常因垃圾消息而烦恼。因此,垃圾邮件现在或很快将成为可靠计算的主要威胁。
用于阻止垃圾邮件的普通技术涉及对过滤系统/方法学的应用。一种已证明有效的过滤技术是基于机械学习方法的。机械学习型过滤器分配一个进入信息是垃圾邮件的概率。在这种方法中,从两类示例消息(例如,垃圾邮件和非垃圾邮件)中提取典型的特征,并使用学习型过滤器分辨在这两类之间的概率。因为许多消息特征与内容(例如,主题和/或消息体中全部的单词和短语)有关,这种类型的过滤器一般称为“基于内容的过滤器”。为了从好消息中探测和区分垃圾消息,这些类型的机械学习型过滤器通常采用精确匹配技术。
不幸地,垃圾邮件制造者不断发现绕过包括这些机械学习系统的传统垃圾邮件过滤器的方法。例如,它们可以利用数学处理和连续的电子邮件修改以测试和预测垃圾邮件过滤器的性能。另外,解释了普通垃圾邮件过滤器是如何操作的大量信息被应用于公众。一些互联网服务商甚至提供通过特殊过滤器操作消息并恢复那些过滤器各自的结果。因此,制造垃圾邮件者有机会通过多种已知垃圾邮件过滤器和/或修改他们的消息而操作他们的垃圾邮件,直到它们成功通过该过滤器。鉴于此,针对垃圾邮件,这种传统过滤器提供的是有限的保护。
发明内容
为了提供本发明一些方面的基本理解,下面介绍本发明简要的概述。该概述不是本发明全部观点。它不打算确定本发明关键/重要部分或描述本发明的范围,它唯一目的是以简要形式表现本发明一些内容作为以后被介绍的更详细描述的序言。
传统机械学习垃圾邮件过滤器可以被垃圾邮件制造者加以反向工程化,这可以使他们查找到不被过滤器捕获的消息。另外,当垃圾邮件过滤器总是不考虑用户地捕获相同消息,垃圾邮件制造者可以采用试验和误差来轻易找到可通过的消息。在找到这种消息之后,他们可以通过向潜在的百万人发送该消息而开发过滤器。如果不在某方面改变该垃圾邮件过滤器,垃圾邮件制造者的这种形式的欺骗可无限持续下去。
本发明目的提供促进模糊化垃圾邮件过滤器的系统和方法,从而使垃圾邮件制造者更难以反向工程和/或使垃圾邮件制造者更难以找到恒定通过过滤器的消息。本质上,本发明提供一种改变垃圾邮件过滤器行为的方式,它通过向垃圾邮件过滤过程加入随机元素而得以部分地实现。
多数常规垃圾邮件过滤器处理消息并返回消息的某类分值。它可以是消息的概率、任意分值、消息概率的记录、当前消息和非垃圾邮件消息间的匹配程度、或其他任何数字。某些情况下,一定阈值以上的分值可以被标记为垃圾邮件。这样的标记包括但不限于删除、移向特殊的文件夹、异议、和/或标志。因此,改变垃圾邮件过滤过程的行为的一种方法涉及对消息的分值进行随机化。随机化包括,但是不局限于:向分值加入一些数值和/或用诸如1.1或0.9的某个因子乘以该分值。
进行随机化的第二方法涉及使用时间。更特别地,向消息分值加入的随机数字随着和/或依赖于日期当前时间或当前时间增加而变化。例如,随机化可以被编程为每15分钟使用一个不同的随机数字,或采用其它任何所需的时间增量。可选择地,随机数字可以随日期时间的改变而改变。结果,垃圾邮件制造者将会发现,例如确定一个接近阈值(例如被考虑垃圾邮件或非垃圾邮件的)且在一个小的(例如,微小)改变之后从被阻塞变为获得通过的消息是否由于修改或由于随机因子而得以改变将更为困难。
随机化过滤器的第三方法部分取决于用户和/或接收该消息的域。例如,通过采用依赖于用户的随机数字,邮件垃圾制造者可以找到只针对它的测试用户但不针对其他用户通过的消息。因此,对于垃圾邮件制造者而言,要测试他的消息的代价将更高。
根据本发明,消息内容是随机化的另一个方面。例如,可以至少根据部分消息的内容来计算随机数字。一种相关技术是散列。一个消息的散列是由其内容而确定性地产生的伪随机数,因此对于内容的微小改变会导致散列值的巨大变化。如果垃圾邮件制造者尝试对该消息进行逆向工程,消息内容中的微小变化将导致消息分值的相对大的变化。可选择或附加地,对消息分值的影响高于阈值的特定消息特征可以被提取并予以散列。然后该散列值可以用作随机数发生器的输入,从而使其更难于找出最重要特征的影响。
将进一步注意到尽管可以将随机化加入向垃圾邮件过滤过程,以受控方式完成它是重要的。特别地,如果一个垃圾邮件过滤器有时使显然是垃圾邮件的消息通过,那么合法的用户将会被扰乱。相反,如果显然是好的消息有时被当作垃圾邮件标记,那么合法的用户将再一次被扰乱。因此,本发明目的促进影响“近于”垃圾邮件或非垃圾邮件边界的消息。换句话说,过滤器过程的随机化既没有充分影响显然是垃圾邮件或也没有充分影响显然是非垃圾邮件。更确切地说,它影响接近和/或在垃圾邮件和非垃圾邮件之间阈值上的消息的过滤。
最后,代替采用单个最好垃圾邮件过滤器,可以采用多个垃圾邮件过滤器以阻碍由垃圾邮件制造者对对垃圾邮件过滤器性能的模仿和预测。采用多个垃圾邮件过滤器迫在划分消息为垃圾邮件或非垃圾邮件之前使消息的不同方面得到检查,因此,反向工程一个过滤器、或找到通过一个过滤器的消息的垃圾邮件制造者将未必通过一个不同的过滤器。更进一步,选择采用哪一个过滤器处理和划分消息可以涉及上文描述的随机化技术的任何一个或其组合。
为实现前述和有关的目的,结合下列描述和附图,这里将描述本发明某些示例性方面。这些方面是象征性的,然而可以采用本发明原理中仅仅几个不同方法中,并且本发明意欲包括所有这样的方面和它们的等同物。当结合附图考虑时,本发明其他优点和新颖特征通过下列所描述的本发明说明将显而易见。
附图说明
图1是根据本发明的一个方面的一个系统的通用方框图,该系统促进模糊化(OBSCURING)垃圾邮件过滤过程。
图2根据本发明的一个方面的是一个系统的通用方框图,该系统利用多个过滤器以简化模糊垃圾邮件过滤过程。
图3是根据本发明的一个方面的一个示例性方法的流程图,该方法促进模糊化垃圾邮件过滤过程。
图4是根据本发明的一个方面的一个示例性方法的流程图,该方法促进确定随机或伪随机数。
图5是根据本发明的一个方面的一个示例性方法的流程图,该方法部分基于消息内容促进执行随机化。
图6是根据本发明的一个方面的一个示例性方法的流程图,该方法通过训练和利用多个垃圾邮件过滤器促进模糊化垃圾邮件过滤过程。
图7是根据本发明的一个方面的一个示例性方法的流程图,该方法通过训练和利用多个垃圾邮件过滤器促进模糊化垃圾邮件过滤过程。
图8是一个根据本发明示例性通信环境的示意方框图。
发明详细描述
现在参照附图描述本发明,其中贯穿全文所采用的相同参考数字涉及相同的组成元件。下列描述中,出于解释目的,为提供本发明彻底的理解,阐述大量特殊的细节。显然,但是本发明可以不用这些特殊细节实践。在其他示例中,为便于描述本发明用方框图示出已知的结构和设备。
在这种应用中,欲意将术语“组成元件”和“系统”引用为与计算机相关的实体,也是硬件、硬件和软件的组合、可执行中的软件。例如,组成部件可以是,但不局限于此,在处理器上运行的程序、处理器、对象、可执行的、可执行的线程、程序、和/或计算器。作为举例说明,在服务器上运行的应用和服务器都可以是组成部件。一个或更多组成部件可以存在一个程序或可执行的线程中,组成部件可以局限于一个计算机和/或分布在两个或更多计算机间。
本发明目的可以结合与生成的机械学习垃圾邮件过滤的训练数据有关的各种推论方案和/或技术。如用于此,术语“推论”通常指关于来自通过事件和/或数据作为捕获的一组观察结果的系统、环境、和/或用户的推论过程或推断状态。推论可以用于标识一个特殊内容和行为、或者可以生成状态上的概率分布状态。例如,推论可以是概率性的,即基于数据和事件的考虑对状态上的概率分布状态计算的兴趣。推论也可以引用为用于组合来自一组事件和/或数据的较高水平。如此推论导致来自一组观察事件和/或存储的事件数据在新事件或行为的结构。无论该事件是否暂时紧密联系,以及该事件和数据是否来自一个或几个事件和数据源。
应该理解的是,虽然术语“消息”被完全广泛用于本说明书,该术语不局限于电子邮件本身,但可以使用于包括可以以任何适当通信体系分布的电子消息的任何形式。例如,当各用户交换信息时,不受欢迎的文本可以被电子的散布到正常聊天信息中,和/或作为开始(lead-off)信息、结束信息或所有上述信息插入到正常聊天信息中,所以促进在两个或更多人之间(如,交互聊天节目、以及即时消息节目)开会的会议应用程序也可以利用在此公开的过滤好处。在这个特别应用中,过滤器可能被训练自动过滤特别消息内容(正文和图像)从而捕获不需要的内容(如商业、推销、或广告)并将其标记为垃圾。另一示例应用是在蜂窝电话或类似设备上的SMS消息。
模糊垃圾邮件过滤器的内部工作的多种目的之一是防止垃圾邮件制造者查找到一种消息,这种消息差不多总是被保证通过,不管过滤器功能如何。另一目的是降低垃圾邮件制造者对垃圾邮件过滤器的工作方式的理解,从而阻碍由垃圾邮件制造者反向工程过滤器的任何尝试。这特别适用于近于垃圾邮件边缘的消息,其中对于消息的一个相当细小的变化(如,向消息加入或去除某种单词或特征)会影响过滤器是否将消息“视为”为垃圾邮件。例如,如果垃圾邮件制造者可以学习到具有某个单词,例如“伟哥(Viagra)”的消息总是被划分为垃圾邮件,他/她只需可以构造无该单词的消息。因此构造本质上阻止反向工程尝试的垃圾邮件过滤器或垃圾邮件过滤系统是具有优点的。
许多垃圾邮件过滤器采用线性模型。在线性模型中,消息的特征被提取,如消息中的单词、以及例如消息是否在子夜发送的任何特殊特征。每个特征有相关的权重或分值。与消息有关的所有权重的总和被计算产生一个总权重(如,总分值)。如果总权重超过某个阈值,那么该消息不能够通过,或者甚至被阻止传送。相反地,如果总权重落至某个阈值以下,那么该消息可以通过接收。
垃圾邮件过滤器中可以采用其他典型的模型,例如运行一个分值通过具有下列公式的S形函数:
该函数将分值转换成0和1之间的数值(例如,称为最终分值)。该数值可以进一步转换成可以便于确定该消息是否是垃圾邮件的概率。
然而,不管垃圾邮件过滤器中所使用的模型或策略如何,垃圾邮件制造者可以设法确定与至少一个从消息中提取的特征有关的评分方案。他/她可以通过建立大量具有不同特征的消息以观察哪个消息被划为垃圾邮件(例如,被阻塞传送)和哪个消息没有被划为垃圾邮件(例如,传送至接收方)。最后,垃圾邮件制造者可以尝试推论什么特征的分值将导致这样的划分。
一种抑制这种类型的垃圾邮件制造者行为的方法涉及以某种微小方式修改至少一个与消息有关的各种分值以向与该消息有关的实际分值有效地加入噪声。修改分值可部分通过随机化总分值或随机化最终分值、或随机化二者而得到完成。例如,在一个典型垃圾邮件过滤器中,消息的最终分值可以与某个(概率)阈值进行比较以确定该消息是否是垃圾邮件或比非垃圾邮件更象垃圾的邮件。因此,通过用随机或伪随机数加入或相乘而修改该最终分值,最终分值的值有效地增加或降低某个微小的量,因此当它与某个阈值比较时,该最终分值此刻可以超过该阈值,而原先情况下,它可以低于阈值以下。因此,由于总分值的轻微变化,该消息此刻将被标记为垃圾邮件或可能的垃圾邮件。
可选择地,对总分值可以执行类似形式的修改,因为总分值的值对在最终值是否超过阈值具有影响。因此,如果达到了总分阈值,或达到了最终分值,那么该消息几乎不可能通过。然而,向垃圾邮件或非垃圾邮件的阈值附近的消息分值加入噪音使垃圾邮件制造者更难于确定他们的消息的当前状态(如,垃圾邮件/非垃圾邮件;被阻塞/被传送)是否是由于某随机化特征或由于消息内容中的某个变化所致。
现在,参见图1,说明了根据本发明的一个方面,促进模糊化垃圾邮件过滤器功能的垃圾邮件过滤系统100的通用方框图。系统100包括垃圾邮件过滤器110,消息120可以由该垃圾邮件过滤器处理以产生一个消息的分值130,该分值最终确定该消息是否被划分为垃圾邮件(或类似垃圾邮件)或非垃圾邮件(或类似非垃圾邮件)。
更特别地,垃圾过滤器110包括过滤器分值计算部件140和可操作地耦合其中的随机化部件150。该过滤器分值计算部件140可以采用评定该消息120是否为垃圾邮件的概率的机械学习系统。为了提供该消息的评定,过滤器可以查看该消息的特殊特征。例如,可以提取和分析涉及任何发源信息的特征以及涉及消息特别内容的特征(如,表现的图像、URLs、单词和/或垃圾邮件的短语特征)。然后可以至少部分地由随机化部件150修改此结果分值。
随机化部件150包括随机数字发生器160,它可以从一个或更多输入部件170接收输入(如,输入部件1172、输入部件2174、直到输入部件N176,其中N是一个大于或等于1的整数)以对结果分值的值(如,如果采用S形函数的总分值和/或最终分值值)产生小或微小的增加或减少的影响。
来自输入部件170的输入所采用的形式可以是在划分消息是垃圾邮件或非垃圾邮件之前向每个分组加入某个随机或伪随机数。以这种方式,消息的分值被改变,并且一个找到了通过过滤器消息的垃圾邮件制造者可能仅仅找到的是由于一个有利随机数而通过了一次的消息。例如,假设加入特定垃圾邮件消息的随机数是0.7,在这个特定消息的情况下,增加0.7在垃圾邮件消息的划分上具有轻微的影响;因此,该消息被允许通过。从而垃圾邮件制造者可以在该消息之后模仿将来的过滤器。然而,垃圾邮件制造者不知道的是,由于加入其中的随机数可以随时改变,因此这些未来的垃圾邮件消息不可能通过。而且,垃圾邮件制造者将难以确定为什么初期的消息可通过而更新近的垃圾邮件消息却不可以通过。
另一方面,假设随机数是1,该随机数可能足够高,从而对于特定垃圾邮件产生不利效果。换句话来说,通过向垃圾邮件消息的分值中加入数字1,此刻总的或全部消息分值可能超过某个阈值。结果,消息被划分成垃圾邮件而不允许通过过滤器。因此,由于消息的分值以及是否划分为垃圾邮件可能或可能不会改变正巧由于对消息的微小修改而改变,所以,加入一个随机和伪随机数将使得对过滤器反向工程变得困难。因此,这使得发送方不能确定:此时消息通过是缘由于对消息的微小的修改还是缘由于有利的随机数字。
另一个输入形式可以涉及采用时间。例如,通过根据日期或小时计算随机数,垃圾邮件制造者必须在一较长时间期间上执行分类操作以对过滤器进行方向工程。在一些情况下,过滤器可以有规律地自动更新,诸如每天,于是,例如,一个具有每4小时变化一次的随机化部件150的过滤器,可以在垃圾邮件制造者反向工程它之前自动变化。就是说,随机数生成器160可被编程以设定为在不同的时间增量上,诸如5分钟、10分钟、1小时和/或4小时的时间增量,应用不同的随机数。
此外,垃圾邮件制造者可能发现,在第一时间增量时一消息此刻正在通过过滤器。随即,垃圾邮件制造者也许能够发出一些更多的消息复制品以进一步“测试”过滤器。当看到那些消息通过,垃圾邮件制造者然后可以上百万次发出该消息。然而,通过时间变化,随机化部件160已经移向另外的输入部件170,并由此移向另一时间增量(例如,第二时间增量)。因此,在第二时间增量上加入了不同的随机数,从而明显影响那些接近垃圾邮件边缘的消息,或者,影响那些由于先前的随机数曾经被归类为不是垃圾邮件的消息。结果,让已经成功地使他们少量的消息穿过过滤器的垃圾邮件制造者无法轻易地确定:是否对它们的信息的微小改变使它们通过了过滤器,或者他们的随机数是否已被改变。
影响由随机化部件150产生的随机数的另一种类型的输入包括用户和/或接收消息的区域、和/或垃圾邮件过滤器正在运行的区域的。特别地,所生成的随机数可至少部分地依赖消息的接受者。例如,垃圾邮件制造者的测试用户可以通过其识别信息的一部分,诸如用户邮件地址、显示的名字和/或用户的区域,而被辨认出。于是,为垃圾邮件制造者的测试用户生成的随机数能够足够小到几乎每次都允许垃圾邮件消息可以穿过过滤器到达测试用户。
相反,其他区域名和/或被指示为接收信息的其他用户可以导致产生的随机数字足够高以阻塞垃圾邮件制造者的消息通过以到达他们那里。因此,垃圾邮件制造者可以找到通过并到达他的测试用户的消息,但找不到通过并到达其他用户的消息。如果垃圾邮件制造者没有意识到只有他的测试用户在接收垃圾邮件,那么在仅仅通过到达测试用户的消息之后,垃圾邮件制造者将被欺骗以模仿未来的垃圾邮件消息。结果,发送给发往其他非测试用户的垃圾邮件的数量减少。然而,通过使得随机数的生成至少部分依赖消息接收方的某些方面,垃圾邮件制造者测试垃圾邮件过滤器的成本将变得更加昂贵。
可选择或者附加地,输入可以至少部分地基于消息的内容。这有利于抑制垃圾邮件制造者反向工程垃圾邮件过滤器内部的工作原理。更特别地,基于消息内容计算随机数,即获得消息内容的散列值。散列计算是将一串字符转换为较短的固定长度的数值或表示最初字符串的密钥。在当前的实例中,为每一个信息所计算的散列值是一个随机数。
垃圾邮件制造者经常尝试略微改动他们消息的内容以绕过垃圾邮件过滤器。于是,当垃圾邮件制造者尝试反向工程消息时,消息内容的轻微改变能够导致相应的消息分值的大幅变化。例如,假如消息“X”被划为垃圾邮件。垃圾邮件制造者加入诸如“免费(FREE)!!!”的词语以有效地使消息更象垃圾邮件。然而,由于依照了本发明的随机化方面,垃圾邮件制造者认为该消息现在可能被归为非垃圾邮件一类。不幸地,垃圾邮件制造者错误地认为单词“免费(FREE)!!!”使消息很少像垃圾邮件,而事实相反。
为了反击依据基于消息内容随机化处理给他们的消息带来的潜在的不利待遇,例如,垃圾邮件制造者可能试图加入他们认为未必影响消息的词语,例如“the”或“on”。结果,垃圾邮件制造者能够拥有许多在只改变这些单词以后被分类的消息,于是能够计算出一平均值以确定针对他们消息的哪种类型的修改最有可能通过过滤器。
在对垃圾邮件制造者这样行为的预料下,可以计算出基本上对消息分值有贡献的特征的散列值。更特别地,回想一下可以从消息中提取的特征。从已提取的众多特征当中,可以选择那些作用超过阈值(例如阈值.01)的特征。于是可以计算出所选特征的散列值并将其作为输入用于随机数发生器160。因为垃圾邮件制造者将很难找到哪个消息特征对消息分值作用最大,所以垃圾邮件制造者将非常难以反向工程此类型的垃圾邮件过滤器的性能。
可选择或者附加地,可计算出发送方所宣称的IP地址的散列值,以确定为该消息生成什么随机数。于是,再一次地,垃圾邮件制造者将很难确定哪个消息特征被用以确定散列值,并随后确定什么随机数对应散列值。
一旦随机化部件150输出特定消息的随机数,则将该随机数加到,例如,由过滤器记分部件140评定的分值或权重。最后,可以获取消息的总的或最终分值130以促进垃圾邮件或是非垃圾邮件的消息分类。
可在多个区域和/或为多个用户配置多个垃圾邮件过滤器,而不是向消息分值加入一个随机功能以模糊化垃圾邮件过滤器的机能。特别地,用户能够随机地或者非随机地选择一个或更多的垃圾邮件过滤器来用以划分其消息。过滤器本身可以是不同类型的垃圾邮件过滤器和/或使用不同组的训练数据被训练。因此,垃圾邮件制造方在对由它的垃圾邮件消息特定接受者所应用的过滤器进行解密的过程中将极其可能体会到巨大困难。此外,每次使用超过一台的过滤器来对消息进行划分,因此几乎不可能找到差不多每次都可以通过这些过滤器的一种消息。
图2说明依照本发明一方面的一个示例多个过滤垃圾邮件的过滤系统200的方框图。系统200包括多个用户组210(例如,用户1212,用户2214和/或至用户Y216,其中Y是大于或等于1的整数)。用户组210通常是包括垃圾邮件在内的任意收入消息的接收者。系统200也包含多种垃圾邮件过滤器组220(例如,垃圾邮件过滤器1222,垃圾邮件过滤器2224和/或至垃圾邮件过滤器W226,其中W是大于或等于1的整数).
每个垃圾邮件过滤器220可至少部分地基于不同组的训练数据而被训练。更特别地,可通过使用第一训练数据子集的机械学习系统来训练第一过滤器212。同样地,以类似的方法使用第二训练数据子集训练第二过滤器214,第二训练数据子集或与第一训练数据子集部分重叠。例如,第一过滤器212包括普通术语,而第二过滤器214包含非普通术语。在将消息进行垃圾邮件或非垃圾邮件的分类之前,过滤器运用两组过滤装置检测消息不同的标准或特征或内容。
以类似的方法,根据用户的希望,可从一个或更多滤波器210的训练中排除某种数据。可通过随机数发生器来排除掉所排除的数据。另外,一些被提取用于创建训练数据的消息特征可被赋予特定的数值。于是,通过部分地依赖用户的偏好和指令,垃圾邮件过滤器组220可以是用户专用的,或者被个性化以实现不同程度的客户化。
其后,与多个用户组210和多个垃圾邮件过滤器组220有效地结合的过滤器选择部件230,能够与用户组210通信,从而基于特定用户和/或基于特定用户来选择一个或多个过滤器220。可选择地,过滤器选择可以是随机的或者至少部分地基于消息内容的散列值或基于消息的大小。
如图所示,过滤器选择也可以是部分地基于从时间输入部件240接收的输入。即,不同的过滤器可以在一天运行不同时刻使用。例如,如果在下午2点钟发送消息,可使用多个过滤器组220。然而,如果在凌晨3点钟发送消息,只可使用多个过滤器组220的子集。例如,第一、第二、第四和第六过滤器。可选择地,只选用一个过滤器,对于过滤器的取决于每日时间。
除上述以外,可由集群部件250基于某种类似程度、特性或者类型而把用户组210集群成子群。同样地,可以以类似方式对训练数据集群,从而导致在至少一个集群或者类型的数据上训练过滤器。因此,过滤器选择部件230可以选择对应于特定用户群的一个或多个垃圾邮件过滤器组220。总体来说,和依靠单个最好的垃圾邮件过滤器相比,如此所述的以随机或伪随机方式运用多种过滤器可以更有利于垃圾邮件的过滤。尽管一个消息当前可以通过,但是由于以随机或非随机的方式选择不同的过滤器,同样或类似的消息下次未必可以通过,故对于垃圾邮件制造者,更加难以反向工程、预测垃圾邮件过滤器性能和找到每次可以通过的个别消息。然而对于垃圾邮件制造者,由于不能轻易地反向工程和/或预测过滤器的内部工作方式,更加难以(如果尚不是不能)确定发送的消息不能每次通过或者下次通过的原因。此外,通过模糊垃圾邮件的过滤过程,少量接近垃圾邮件边缘的消息可以通过,但有效地阻塞了多数邻近“垃圾邮件”的信息的传送。
依据本发明主题,通过如图3-8对一系列动作的说明,现描述不同的方法。可以理解和赏识的是,本发明不受动作的次序的限制,如依据本发明的一些动作与其他在此表示和描述的动作一起可以按照不同的次序和/或同时发生。例如,那些本领域技术人员将理解和赏识方法应用如状态图中所表示成一系列相互关联的状况或者事件。此外,不要求所有的示例动作在依照本发明的方法论中实现。
现转向图3,说明示例过程300的流程图,该程序依照本发明一方面执行垃圾邮件过滤器生成的消息分值的随机化处理。过程300从310开始,其中消息被通过垃圾邮件过滤器。在320,垃圾邮件过滤器给消息赋一分值。分值可以是基于普通垃圾邮件过滤系统和方法的,诸如通过提取消息中一个和多个特征,每个特征具有与之相关的权重。计算各权重之和以生成消息的分值。然而,在对消息进行是或不是垃圾邮件的划分之前,在330中给分值增加一个随机或伪随机数以抑制垃圾邮件过滤程序的反向工程。
在340中获取消息的最终分值,在接下来的350中,对消息进行是或不是垃圾邮件的分类。为了抑制垃圾邮件制造者的反向工程和/或抑制其找到可以一贯地通过过滤器的消息,由垃圾邮件过滤器加入给初始分值的随机或伪随机数有效地给初始分值加载噪声。在另外情况中,如果垃圾邮件制造者知道垃圾邮件过滤器是如何运行的或者能够预测垃圾邮件过滤器的响应,他能够轻易地构建基本上每次都能穿过垃圾邮件过滤器的消息。然而,通过在垃圾邮件过滤器里集成随机化部件,垃圾邮件制造者非常难以确定:是否是对于消息或是对过滤器的一些特征的看似微小的改变导致了消息从垃圾邮件至非垃圾邮件状态的改变(或反之)的,因此这使得反向工程垃圾邮件过滤器几乎是不切实际的。
随机数或随机因素对消息分值的变更恰好足以影响接近垃圾邮件边缘的消息。就是说,沿着垃圾邮件与非垃圾邮件之间的界限分布的消息最受随机化处理的影响。明显是垃圾邮件(例如,具有高分值或大概率)或明显不是(例如,具有低分值或小概率)的其他消息不是非常必要由分值随机化处理施加影响。更进一步地,加在消息分值上的纯粹随机数不是每次都象本发明一样起作用,因为最终地,垃圾邮件制造者能够确定他的消息即将穿过过滤器的概率或平均概率并从而反向工程过滤器,或者找出可以总是穿过过滤器的消息,或二者兼有。
参照图4,分值随机化处理可以依据如图3中360所示的一个或多个的输入类型。图4说明示例过程400的流程图,用于确定什么随机数可被使用。在410,程序400涉及至少选择一个随机数所依赖的输入类型:时间420、用户430和/或消息内容440。
时间420涉及时间增量或者日期时间。更特别地,根据例如5分钟、10分钟、30分钟、2小时等的时间增量或日期,所采用的随机数可以变化。例如,随机数的数值可以在半夜变化,然后于上午5点再次变化,于上午7点30分、上午11点、下午4:13等再次变化。
用户430的身份(例如显示的名字、电子邮件地址)和/或用户区域和/或接收/发送信息的区域均可用作影响使用哪个随机数。当实施了这个策略,垃圾邮件制造者更加难以通过测试垃圾邮件过滤器来确定哪个消息到达哪个用户。最终,消息内容440或者至少其中的一部分可以从中确定什么随机数被加给初始(基础)分值。
现参照图5,依据本发明说明示例过程500的流程图,该流程利用消息内容确定加给消息基础分值的随机数。特别地,通过在510计算至少一部分的消息的散列值开始执行程序500。例如,能够基于消息主体计算随机数。由此,如果出现另一个该消息同样的消息,则可以给其赋予相同的随机数或者散列值。然而,消息主体轻微的变化可以导致消息分值巨大的变化。例如,垃圾邮件制造者试图增加或删除看似不重要的词语,为了使他们的垃圾邮件不再看起来象垃圾邮件。这对于相对少量的垃圾邮件而言,可能是可以的。然而,对于大多数的垃圾邮件而言,将阻塞其发送,因为它们不知道什么类型的词语可以增加或者减少随机数和/或消息的全部分值。
对消息内容进行散列计算的另一个选择是计算从消息中提取的可左右消息分值的一定特征的散列值。可左右消息分值的特征也可以随机或有意地变化。这样一来,垃圾邮件制造者无法意识到,也没有能力通过运行大量信息以找到平均值,并因此不能找地无论信息的特征如何散列也可以穿过的消息。另外,可在发送者的IP地址上算出散列值。因此,能够直接至少根据发送者的部分发源信息对消息进行分类。
在520,随机数被加给垃圾邮件过滤器独立于随机化处理而预先确定的初始分值或者基础分值。在530,可以得到消息的总分值,然后在540,消息被分为垃圾邮件或者非垃圾邮件。
如上文所述在图3至5中的随机化处理步骤仅仅是一种可被用以阻碍对垃圾邮件过滤器的反向工程和/或阻碍对垃圾邮件过滤器性能的模拟的策略。另一个策略涉及跨多用户和/或多区域地配置多种过滤器。最初,可以使用在某方面可能重叠或可能不重叠的不同套的训练数据分别训练多种形态的过滤器。使用多种过滤器检查和分析消息引起过滤系统同时查看消息中本质上不同的标准,而不是只集中在消息的一个特定方面。于是,因为难以确定使用哪种过滤器和将消息的什么方面归为分类的因素,所以当多个过滤器设备投入使用时,既便于提供更加精确的消息分类,也抑制对过滤系统进行反向工程。
图6说明基于用户类型的集群以定制化方式训练和采用多个垃圾邮件过滤器的示例过程600的流程图。在610开始执行程序600,例如将用户依据其类型分组成一个或多个组群。在620,可以一类似的方式分组训练数据以对应用户类型的组群。在630,可以针对每个训练数据组群而分别训练多种的过滤器。然后在640中,多种过滤器可供使用,从而能够利用和特定用户组群对应的过滤器为该组群进行消息分类。为进一步说明这点,可以设想使用组群R的训练数据训练过滤器R。用户类型集群R中的用户随后可以利用过滤器R对他们的消息分类。应该理解的是,以对用户进行群组处理的类似方法分组训练数据。
可选择地,可以采用如图7(在710中)的示例过程中所示的不同的训练数据子集训练多种的过滤器。可选择地,在720,能够从一组或多组培训数据子集中排除一个或多个特征或者相关数据。尽管在图中没有说明,从消息中提取的某种特征可以被强制具有某个值或权重。在730,一个或多个过滤器各自使用自己的训练数据进行训练,并在其后的740中,可以用该过滤器以处理消息。在750,可以如前文所述将消息垃圾邮件或者非垃圾邮件。尽管本图未描述,但是时间也能作为确定使用哪种垃圾邮件过滤器对消息分类的一个因素。换句话说,特定过滤器可以只在一天的特定时间段采用。因此,过滤器选择可以是随机的、非随机的、部分基于消息的接收用户的和/或基于日期的。
为了提供用于本发明不同方面的附加内容,图8和下面的论述将对可以实现本发明的不同方面所匹配的运行环境810进行简要的、一般的描述。当以可执行的计算机结构中的一般关系描述本发明时,例如被一个或多个计算机执行的程序模块,本领域的专业技术人员明白能够结合其它的程序模块和/或软硬件一起来实现本发明。
然而,通常,执行特定认为或者实现特定数据类型的一般包括常规事务、程序、实物、部件和数据结构等的程序模块。操作环境810仅仅是匹配的运行环境的一个例子,且不想暗示任何的限制,如用户的访问或者本发明的功能。本发明可以匹配其他已知的计算机系统、环境和/或结构,包括但不限于:个人计算机、手提电脑或膝上型电脑、微处理器系统、基于微处理器的系统、可编程的消费类电子产品、网络PC、微型计算机、大型计算机、包括上述系统或装置的分布式计算环境等。
参照图8,用于实现本发明不同方面的示例环境810包括计算机812。计算机812包括处理单元814、系统内存816和系统总线818。系统总线818连接了包括但不限于系统处理单元814和系统内存816的系统部件。能够采用各种各样的处理器作为系统处理单元814。双微处理器和其它多处理器的结构也可被用作系统处理单元814。
系统总线818能是几类总线结构中的任意一种,它包括内存总线或者内存控制器,外围总线或者外部总线,和/或使用任意可利用的总线的本地总线,其包括但不限于11位总线、工业标准结构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能化驱动器电子接口(IDE)、VESA本地总线(VLB)、外围设备件连接(PCI)、通用串行总线(USB)、高级图像端口(AGP)、个人计算机存储卡国际会议总线(PCMCIA)和小型计算机系统接口(SCSI)。
系统存储器816包括易失存储器820和非易失性存储器822。基本输入/输出系统(BIOS),包含存储在非易失性存储器822上的针对在计算机812内部的元器件之间传送信息的基本常规事务,例如在计算机启动期间。通过图解但并非限制的方式,非易失存储器822能够包括只读存储器(ROM),可编程ROM(PROM),电可编程ROM(EPROM),电可擦除ROM(EEPROM)或闪存。易失存储器820包括担当内部缓存的随机存取器(RAM)。通过图解但并非限制的方式,RAM可以以多种形式应用,例如同步RAM(SRAM),动态RAM(DRAM),同步DRAM(SDRAM),双数率SDRAM(DDR SDRAM),增强型SDRAM(ESDRAM),同步链接DRAM(SLDRAM)和直接RAM总线性RAM(DDRAM)。
计算机812也包括活动的/固定的、易失性的/非易失性的计算机存储媒体。图8示例出,例如磁盘存储器824。磁盘存储器824包括但不限于,象磁盘驱动器、软盘驱动器、磁带机、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡和记忆棒一样的装置。另外,磁盘存储器824能够包括相互独立的存储媒体或与其他存储媒体结合在一起的结合体,包括但不限于可附加的磁盘驱动器,例如高密度磁盘ROM驱动器(CD-ROM)、CD刻录机(CD-R Drive)、CD可擦写刻录机(CD-RWDrive)或者数字通用磁盘ROM驱动器(DVD-ROM)。为了便于磁盘存储器824与系统总线816的链接,将代表性地使用例如接口826的活动和固定的接口。
可以理解图8描述的软件在用户和匹配的运行环境810中的基础计算资源之间起到媒介物的作用。这种软件包括操作系统828。操作系统828被存储在磁盘存储器824中,并控制和分配计算系统812的资源。系统应用830通过操作系统828经由存储在系统内存816或磁盘存储器824中程序模块832和程序数据834利用资源管理功能。可以理解能够通过不同的操作系统或者组合操作系统实现本发明。
用户通过输入装置836将命令或信息输入计算机812。输入装置836包括但不限于指示装置,例如鼠标、轨迹球、手写笔、键盘、麦克风、游戏杆、游戏垫、卫星天线、扫描仪、电视转换卡、数字相机、数字摄像机和网络摄像头等。这些和其他的输入装置通过系统总线818经由接口端口838与处理单元814连接。接口端口838包括,例如,串口、并口、游戏端口和通用串行总线(USB)。输出装置840使用如输出装置836相同的一些相同类型的端口。于是,例如,可以使用USB接口对计算机812提供输入,从计算机812向另外的输出装置840输出信息。输出适配器842被用以说明一些需要专门适配器的输出装置840,如监视器、扬声器和在其他输出装置840之间的打印机。输出适配器840包括,如示例中但不局限于的方式,用以提供在输出装置840和系统总线818之间连接的手段的视频卡和声卡。应该注意的是,其他的装置和/或装置的系统都提供输入和输出能力,例如远程计算机844。
计算机812可以在网络环境中运行,可以在本地连接一个或者多个的远程计算机,例如远程计算机844。远程计算机844可以是个人计算机,服务器,路由器,网络PC,工作站,基于应用的微处理器,同等的装置或者其他普通网络节点等,并代表性地包括许多或者所有所述的与计算机812相关的元器件。出于简略的目的,只有内存存储装置846与远程计算机844被一起示例出。远程计算机844在本地经由网络接口848与计算机812连接,并随后经由通信连接850建立物理连接。网络接口848包括通信网络,例如局域网(LAN)和广域网(WAN)。LAN技术包括光纤分布式数据接口(FDDI),铜缆分布式数据接口(CDDI),以太网/IEEE1102.3和令牌网/IEEE1102.5等。WAN技术包括但不限于点对点链路,电路交换网如综合服务数字网(ISDN)和在这之上的变种,分组交换网,和数字用户链路(DSL)。
通信连接850涉及用以连接网络接口848和总线818的硬件/软件。当为了计算机812内部的说明性的清晰度而示出通信连接850时,其也可以是计算机812外部设备。只就示例目的而言,用于连接网络接口848的必需的邮件/软件包括内部和外部的技术,例如包括正规的电话等级调制解调器、电缆调制解调器和DSL调制解调器在内的调制解调器,以及以太网卡。
上文所述的内容包括本发明的示例。当然不可能描述每个可能用以描述本发明的部件或方法的组合,但是本领域的普通技术人员可以意识到,更多更进一步的本发明的组合排列是可能的。相应地,本发明包括全部符合权利要求之精神与范围的变更、修改和变化。更进一步地,术语“包括”达到的程度既被用于详细描述,也被用于权利要求,正如“包含”作为传统术语在权利要求中所解释的,这种术语规定为以类似的方式包括术语“包含”。