首页>>>技术>>>email

垃圾邮件技术分析

2004/03/12

垃圾邮件的由来

  去年8月,本报与雅虎中国网站针对垃圾邮件问题进行了一次联合调查,结果显示,几乎所有拥有电子邮箱的人都受到过垃圾邮件的困扰。曾几何时,相对于“垃圾邮件(spam)这种称谓,很多人认为“未经许可的商业邮件(Unsolicited Commercial Email,UCE)”是一种更准确的说法。但随着时间的推移,垃圾邮件的发送技术被黑客攻击程序和病毒程序(例如最近流行的MyDoom)所利用,为了施行攻击甚至仅仅为了浪费网络带宽资源而发送的垃圾邮件大量出现。因此,目前业界更倾向于使用“未经许可的大宗邮件(Unsolicited Bulk Email,UBE)”这种称谓。在下文中,我们统一使用“垃圾邮件”来代表UBE、UCE,总之,这些是邮件中不请自来,并且多半是不怀好意的不速之客。

  垃圾邮件源于电子邮件营销,后者是一种许可营销,是现代营销的重要手段之一。通常,电子邮件营销是在征得客户同意的前提下,向客户发送包含产品信息、促销信息的电子邮件。这种营销方式的主要成本在于收集和整理包含目标客户电子邮件地址的数据库。电子邮件营销具有针对性强、反馈率高的优点,因此得到了广泛的应用。然而,如果免去了积累数据库的时间和费用,电子邮件营销的成本将远远低于其他各种营销形式,想省去这部分成本的商家则大有人在。由此,收集、销售各种电子邮件地址数据库以及大规模发送电子邮件都成了新的商机。为了提高发送效率,群发工具也日趋普及,而对SMTP协议的缺陷加以利用,则最终导致了垃圾邮件泛滥成灾。

  垃圾邮件问题远不只是技术问题,但是垃圾邮件的产生和防范都有其必然的技术根源,只有了解垃圾邮件产生过程中的技术,才能有效地阻止垃圾邮件的传播。

保护好您的邮件地址

  用户在收到垃圾邮件的时候,除了感到烦恼和无奈之外,往往觉得奇怪—对方是怎样得到自己的邮箱地址的?垃圾邮件发送者获取邮箱地址的最常见方式是网上遍历收集,使用俗称“机器人(robot)”的自动搜索程序遍历Web,并收集其中的电子邮件地址。有时,垃圾邮件发送者还会对收集来的地址数据库通过专用工具进行验证,将无效地址排除。收集来的邮件地址很可能会被转售,而某些不负责任的论坛或网站也会将注册用户的邮件地址出售。除此之外,有的垃圾邮件发送工具还会使用字典穷举的方法对MTA进行大量邮件发送尝试,其中,少数成功的尝试会导致一些用户收到垃圾邮件,而其余的则全部作为无效退信在一定时间内存放在MTA的队列中,耗费大量系统资源。


  出于为反垃圾邮件产品评测积累样本的目的,记者于2003年12月在“计算机世界网”上张贴了一个诱饵信箱,令人吃惊的是,仅仅在诱饵信箱发布后不到5分钟,第一封垃圾邮件就不期而至。自从该诱饵信箱发布以来,其垃圾邮件的数量增长情况如上图所示。

  普通用户为了避免垃圾邮件的困扰,应尽量避免在网页上公开自己的E-mail地址,在进行论坛或网站成员注册时也应该尽量谨慎。如果怀疑哪个网页泄漏了自己的E-mail地址,可以通过google等搜索引擎对自己的地址进行检索,并采取相应的措施。

  对此,邮件系统的管理员应该尽量确保自己的前端MTA主机只接收本地存在的目的E-mail地址,限制来自同一IP或子网的并发连接数。如今Postfix等多数主流MTA都有这方面的功能。此外,禁用SMTP协议中有可能泄漏本地用户名列表的EXPN命令也是十分必要的。

  垃圾邮件防范技术

  垃圾邮件发送技术的演化


  有了邮件地址和邮件内容,垃圾邮件发送者要做的就是在尽量短的时间内将垃圾邮件发送出去。他们通常使用专用的群发工具或邮件列表系统来达到目的。

  在早些时候,Sendmail和IMS等多数MTA默认设置是开放转发(Open Relay)的。任何用户都可以通过Internet上大量存在的开放转发MTA主机来发送邮件。于是垃圾邮件制造者会首先查找一定数量的响应速度快的开放转发的MTA主机,通过它们来完成收件人服务器名字解析及发送的工作。后来,为了避免成为垃圾邮件的中转站,各种主流MTA程序的默认设置都改为默认禁止开放转发,而且,越来越多的开放转发的服务器都被列入各种黑名单过滤,Internet上可用的开放转发的主机正不断减少。因此,垃圾邮件制造者开始广泛使用本身具有收件服务器名字解析功能的群发工具和邮件列表系统,这些发送者通常使用家庭宽带进行发送,其IP地址也不断变化,为追踪和屏蔽制造了障碍。

  垃圾邮件的发送环节与对抗垃圾邮件的过滤环节具有直接的对应关系,在这个环节上可用的技术很多,用户应当从自身的实际情况出发进行遴选和应用。

SMTP用户认证

  一个最常见但十分有效的方法是在MTA上对来自本地网络以外的Internet的发信用户进行SMTP认证,仅允许通过认证的用户进行远程转发。这既能够有效避免MTA主机为垃圾邮件发送者所利用,又为出差在外或在家工作的员工提供了便利。如果不采取SMTP认证,在不牺牲安全的前提下,设立面向Internet的Web邮件网关也是可行的。

  此外,如果SMTP服务(MTA)和POP3服务集成在同一主机上,在用户试图发信之前对其进行POP3访问验证(POP before SMTP)就是一种更加安全的方法,但在应用的时候要考虑到当前支持这种认证方式的邮件客户端程序还不多。

逆向名字解析

  无论哪一种认证,其目的是避免MTA被垃圾邮件发送者所利用,对于发送到本地的垃圾邮件仍然无可奈何。要解决这个问题,最简单有效的方法是对发送者的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服务中止或查询超时,该方法并未被普遍采用。

实时黑名单过滤

  以上的防范措施对使用自身合法域名的垃圾邮件仍然无效。对此,最有效的方法可能就是使用黑名单服务了。黑名单服务是基于用户投诉和采样积累而建立的、由域名或IP组成的数据库,最著名的是RBL、DCC和Razor等,这些数据库保存了频繁发送垃圾邮件的主机名字或IP地址,供MTA进行实时查询以决定是否拒收相应的邮件。遗憾的是,目前各种黑名单数据库都具有很强的区域歧视性,例如,北美的RBL和DCC包含了我国大量的主机名字和IP地址,其中有些是早期的Open Relay造成的,有些则是由于误报造成的。但这些迟迟得不到纠正,在一定程度上阻碍了我国与北美地区的邮件联系,也妨碍了我国的用户使用这些黑名单服务。在我国,黑名单服务仍处在起步阶段,可用服务器较少,其有效性也没有得到充分验证。

内容过滤

  即使使用了前面诸多环节中的技术,仍然会有相当一部分垃圾邮件漏网。对此情况,目前最有效的方法是基于邮件标题或正文的内容过滤。其中,比较简单的方法是结合内容扫描引擎,根据垃圾邮件的常用标题语,垃圾邮件受益者的姓名、电话号码、Web地址等信息进行过滤。更加复杂但同时更具智能性的方法是基于贝叶斯概率理论的统计方法所进行的内容过滤,该算法最早由Paul Graham提出(http://www.paulgraham.com/spam.html),并使用他自己设计的Arc语言实现。这种方法的理论基础是通过对大量垃圾邮件中常见关键词进行分析后得出其分布的统计模型,并由此推算目标邮件是垃圾邮件的可能性。这种方法具有一定的自适应、自学习能力,目前已经得到了广泛的应用。最有名的垃圾邮件内容过滤是Spamassassin,它使用Perl语言实现,集成了以上两种过滤方法,可以与当前各种主流的MTA集成使用。令人遗憾的是,从记者的使用情况来看,Spamassassin的中文关键词学习能力非常差,很难达到在我国实际应用的要求。

  需要指出的是,内容过滤是以上所有各种方法中耗费计算资源最多的,在邮件流量较大的场合,最好配合高性能服务器使用。

反垃圾邮件系统的建议配置

  正如前面一再提到的,进行了各种设置之后,虽然绝大多数垃圾邮件在劫难逃,但也给MTA系统带来了沉重的负担。由于以往多数MTA与用户的POP3/IMAP 4服务器甚至群件系统/协同工作平台安装在同一台机器上,在这种情况下,进行反垃圾邮件的设置势必会影响系统的整体性能,并有可能进而影响用户业务的实时性。因此,设置专门用来过滤垃圾邮件的前端MTA正在逐渐成为一种流行的选择。目前市场上已经出现了一些具有垃圾邮件过滤功能的产品,为了帮助用户更有效地采购和实施这类产品,《计算机世界》网络产品评测实验室将在近期组织相关的横向评测。

反垃圾邮件技术前景展望

电子邮件——仅存的端到端应用

  相对于Internet形成初期的完全对等的端到端网络环境,如今的Internet已经有了很大的不同,由于防火墙和代理服务器的限制,绝大多数应用都已经不再进行端到端环境的假设。但由于SMTP协议的灵活性、普遍性和特殊性,电子邮件应用仍然保持了端到端的特点。在用户看来,邮件收发双方是对等的,是没有中间限制的。电子邮件如今成为病毒和黑客的突破口是历史的必然。

SMTP的先天缺陷

  然而,SMTP本身不具有反垃圾邮件的特点,它的名字本身(简单邮件传输协议)也说明了这一点。在2001年4月发布的最新版本SMTP协议文档RFC2821(http://www.faqs.org/rfcs/rfc2821.html)中,在第七节“安全性的考虑”部分明确指出“SMTP(从先前的版本)继承的特性决定了它在有些场合是不安全的,它不能限制邮件发送者的某些欺骗行为……”,它进而指出“邮件的安全应该仅仅依赖于基于邮件正文的端到端方案,如通过PGP或S/MIME对邮件进行数字签名和加密”。我们必须承认,这种说法是完全符合Internet传统的,即在传输层无法解决的问题,交给应用层来解决。

  然而,IETF并没有表现出要尽快修改SMTP的意向,关于垃圾邮件控制的IETF官方RFC文本是RFC2505——“对于SMTP MTA的反垃圾邮件推荐设置”,仅仅进行了一些简单的外围技术的说明。只是最近由IRTF(互联网研究工程组)成立了一个“防垃圾邮件研究小组”,开始对相关的技术进行研究。

可能的解决方法

  与之形成鲜明对照的是,业界提出了各种解决方案。其中,试图替代SMTP的协议就有很多,例如AMTP(http://amtp.bw.org/)等提案都在设计上就考虑到了安全与垃圾邮件等问题。然而我们必须认识到,完全改变SMTP业已形成的庞大传输网络,试图另起炉灶是脱离实际的。最有效、最现实的解决办法必须与现有的SMTP协议兼容,并具备在SMTP网络中逐步推广,并在推广过程中对用户透明的能力。

  另有些方法是从提高垃圾邮件发送成本的角度来考虑,如收取费用或提高MTA的响应时间,但这些方法不可避免地要影响到正常的邮件通信。记者认为,现有的解决方法中,最有可能实施的是与DNS系统结合的解决方案,这是由电子邮件与DNS密不可分的先天联系所决定的,其中有些方法是通过在DNS的目录系统中加入与反垃圾邮件相关的条目来对邮件路由进行限制。另外,Bill Gates最近在RSA大会上所提的方案则是一方面强制对入站邮件进行DNS验证,另一方面是对MTA改造,加入类似“来电显示(Caller ID)”的限制机制。

  值得欣慰的是,垃圾邮件问题已经得到了整个社会的关注。我们相信,随着对抗垃圾邮件的技术和非技术措施不断出台,并在业界形成合力,垃圾邮件的问题终将得到有效的遏制。(反垃圾邮件解决方案可参见同期本报“应用与方案”版C8~C11。)

SMTP协议与E-mail的发送流程

  SMTP即简单邮件传输协议(Simple Mail Transfer Protocol)是一种TCP协议,其端口号为25,它用于电子邮件的传送。SMTP在收到用户发来的邮件后,根据本地定义的规则和DNS名字解析的结果(需要将收件人E-mail地址中的域名解析为IP地址,通常得到其域名的MX纪录)对邮件进行转发。在到达POP3或IMAP邮局之前,可能中间会经过一个或多个SMTP服务器转发,由于SMTP服务器负责邮件的路由与转发,也被称作邮件传输代理(MTA)。

  MTA通常都和特定的域名绑定,它以此来区分入站邮件是本域邮件还是远程邮件。如果是本域邮件,则转发给本域的POP3或IMAP4邮局供用户收取;如果是远程邮件,则需要经过收件人所属域的名字解析获得其对应的MTA IP地址,然后进行远程转发。如果MTA的默认设置是不加限制地允许来自任意IP地址的用户进行远程转发,则这个MTA是开放转发(Open Relay)的。

E-mail的工作流程原理如下图所示。


计算机世界网(www.ccw.com.cn)


相关链接:
从“指纹”中找出垃圾邮件 2004-03-12
邮件灾祸 2004-03-12
联通亚信启动基于CDMA1X电子邮件系统项目 2004-02-05
Good线电邮软件赶超BlackBerry 2004-02-05
电子邮件将成为国内未来通信类移动增值服务的主要方式 2004-01-31

分类信息:     文摘   技术_email_新闻   技术_email_文摘