电子邮件是现代生活必不可少的通讯手段,但是也给我们带来很多困惑。每天早上我们打开邮箱,发现来自老 板、同事和朋友的消息寥寥可数,信箱被大量的商业广告、政治宣传所充斥,这些不请自来的信件就是Spam。Spam指 “unsolicitedcommercialemail”,凡是用户不希望收到的Email统称为垃圾邮件——Spam。最初,Spam只是给 Email用户带来一些不必要的麻烦,现在已经到了无法控制的地步。据Brightmail的统计,2004年的Email中将有一半以上是Spam。 Spam不仅包括产品兜售,还有很多色情、欺骗、恶意的内容,给用户和企业带来负面影响,如降低生产率、增加IT管理开销、增加法律义务和风险、降低安全 性和可控制性等等。随着Spam的泛滥,人们开始从社会角度和技术层面探讨遏制Spam洪水的方法,Anti-Spam成为一个热门的话题。
Spam特征
Spam邮件具有一些公共的特征:大批量群发的信件;很少有人回复;信头常常是伪造的Email地址和HELO域名,或者缺少DNS入口;内容 上多使用HTML格式;有附件、远端图片等,常附带URL、Email地址、电话或者实际地址,其目的是要求接收者响应某种行为(call-to- action)。
Spam常见的攻击手法有:
◆通过第三方或者采用黑客攻击方法获得Email地址。许多用户在web上登记的是自己的真实地址。新闻组是另一个获得Email地址的途径。 还有一种攻击叫字典攻击(dictionary
attack),利用已知的域名,采用穷举方法仿造Email地址,通过邮件服务器或者用户的反应,来获得有效的Email用户地址。
◆在Email内容上欺骗用户。比如:一些Email的描述和标题与其兜售产品的目的不符,当用户点击了它提供的链接才发现上当了。也可以通过 网络bug或者远端图片来达到访问目的。还有的在Email中称,“如果想从本Email列表中去除,请发信或者链接某某”等等。其实Spammer反而 因此确认了这是一个有效的Email地址,更换自己的地址继续发送Spam。
◆防止接收者获得Spam的真实来源。Spam信件头常常是不完整的,以此来防止用户追查。Spammer采用spoofing技术来欺骗 Email用户,如模拟合法的Email服务域名或者无辜的用户。很多Spam利用邮件传递代理MTA的中继功能来隐藏它们的真实来源。
◆通过多个服务器或者代理群发。
此外,Spam在与Anti-Spam技术的斗争中不断变换手段,针对各种Anti-Spam技术采取相应的策略:
◆对Spam对象进行分析,对同一类用户或者域名发送内容不同的Spam。
◆寻找免费Email服务器、代理或者僵死机器来转发Spam。甚至通过病毒或者黑客技术攻击Email服务器来发送Spam。
◆在群发Spam中使用随机生成的内容来隐藏Spam的真正信息。
◆使用附件、图片或者html格式来逃避针对单词或者词组分析的过滤器。
邮件控制点
控制Spam应该尽可能地接近源头,使Spam消耗的资源越少越好。IETF组织定义了五个邮件控制点:
UA.o->MTA.o->MTA.i->MTA.r->UA.r
UA.o:发信者用户代理,由用户直接控制。
MTA.o:与发信者相邻的Email转发代理服务,可能由发信者操作,也可能在其间接控制下。
MTA.i:由独立的第三方操作的邮件转发代理服务,如ISP。
MTA.r:邻近收信人的邮件转发代理服务。
UA.r:收信人用户代理。
理想的控制点是UA.o,可以在第一点防止Spam的发出。但事实上只有法律才能影响Spammer的动机,阻止发送Spam。大部分的 Anti-Spam软件安装在MTA和UA.r控制点上,例如Email服务器、路由器上防火墙、Email客户端和外包Email服务。
◆Email服务器Anti-Spam方案
采用集成的Email服务软件插件(Spamfire),如MicrosoftExchange、LotusNotes,或者 NovellGroupware。在Email服务器上阻止Spam可以节省大量的员工生产力,员工不需要浪费时间过滤Spam,也不用管理Anti- Spam软件。但是这种方法会增加网络资源开销,Spam会占用大量的网络带宽和服务器的存储计算能力。
◆基于路由器的Anti-Spam方案
这种方案位于企业网络边缘的路由器,在企业防火墙和Email服务器之间,在那里有邮件转发代理(MTA)或者邮件重放机制,为进出 Internet的Email进行路由。基于这种方案的产品Brightmail在Email重放和中继的机制中加入Anti-Spam功能。
◆外包的Anti-Spam方案
企业把进入的Email定向到第三方的服务器上,由外包者过滤Spam,把剩下的Email通过重放机制传回企业的服务器(SpamCop)。 主要的ISP如MSN和AOL采用外包Anti-Spam方案。这种方案最大的问题是安全问题,在第三方服务器上过滤时可能会泄漏Email的内容。
◆桌面Anti-Spam方案
当前已经有很多不错的客户端Anti-Spam解决方案。但它们主要面向个人消费者,终端用户需要花费时间去管理额外的桌面应用。因此大多数企 业不愿把Spam留给员工来处理(SpamNet),而采用更利于管理的集中控制的方案。
Anti-Spam
针对产生Spam的原因,最根本的措施应该是法律和经济上的约束,只有这样,Spammer才会有所顾忌。关于禁止Spam的法案正在商讨当 中。另外有人建议对邮件收费,这样Spam就会因收费而消失。但这个想法很难实施,需要修改现有的Email系统,增加收费机制。一旦收费,就需要增加 Email系统的安全性,但那些恶意的Spammer还会用黑客的方法来逃避责任和收费。有抵押地发信(BondedSender)要求用户用现金抵押, 如果在使用Email过程中出现违规行为,会被担保公司处罚。由于担保系统还没有建立起公平有效的评判记录和及时控诉、抗议的机制,这种方法还不成熟。
尽管法律和经济规律是制约垃圾邮件的最强有力的武器,但是鉴于目前还没有成熟的法令和机制,同时也由于技术上的缺欠才使Spammer有机可 乘,因此计算机界在积极寻求可行的技术解决方案。
◆黑名单(Blacklists)
用户把确认的Spam域名和地址报告给Email服务器,将其列入黑名单当中,邮件服务器对收到的Email用黑名单进行过滤。黑名单常常是在 网络中由各种Anti-Spam系统分析出来的,而且要经常更新。Spam可以采用欺骗(Spoofing)手段使黑名单的有效性大大降低。 Spoofing通过一连串不被怀疑的Email服务器转发邮件,隐藏邮件的真实原地址,使Spam看起来象是从一个无辜的域名发出的。黑名单是一种事后 的补救措施,当一个域名或者地址被禁止后,Spammer通常已经换到另一个地址了。
◆白名单(Whitelists)
白名单与黑名单相反,是合法用户的名单。白名单会随着时间不断增长,消耗越来越多的系统资源,还会有很多被废弃的用户地址。另 外,Spammer也可以利用白名单来发送Spam。
◆基于规则的过滤器(Rules-BasedFilters)
最流行的Anti-Spam技术是规则过滤,规则可以根据Spam的种种特征制定,如Spam的地址,Spam的兜售行为信息等。Spam一旦 改变,对应的规则就会失效。基于规则的Anti-Spam系统需要维护成千上万的规则,为阻止新的Spam,要收集和分析Spam标本,写出新规则投入使 用。繁重的日常管理不仅给IT部门造成巨大的压力,而且消耗网络资源。
◆启发式规则过滤器(Heuristics)
启发式方法通过分析大量的Spam来制定规则,用这些规则对Email进行测试,基于汇总的结果,每封Email被打上一个分数。如果分数超过 预定阀值,被认为是Spam,否则就是合法的Email。作为基于规则的过滤器的扩充,启发式规则也有同样的缺点:数据库内的规则会永不停止地增长。
◆贝叶斯规则过滤器(BayesianClassifcation)
采用贝叶斯规则的区分法代表了基于机器学习系统(Machine-Learning
System)的方法,它对尽可能多的邮件进行统计,对每个词赋予一个Spam可能性,表示这个词在Spam信中出现的概率。当处理一封新的 Email时,统计出15个或者20个最常和最不常出现在Spam中的词,以此来计算这封Email是Spam的可能性。由于统计学的内在限制,基于字符 的贝叶斯方法可能会因为找不到有效解而失败。另一个限制是学习模板必须通过统计来自尽可能多的个体,否则这种预测是有偏差的或者是错误的。
◆HTML或者URL的过滤
越来越多的Spam采用基于HTML格式的邮件来逃避现有的过滤技术。HTML过滤器首先排除那些随机的HTML代码,然后采用模糊分析方法来 揭露这些Spam的本质“DNA”(Popfile)。URL过滤器首先去掉那些额外的字符和Spam内故意加入的随机生成的URL地址,然后标识和过滤 出Spam的目标URL。
◆混合型方法(Cocktail)
实际产品中往往采用综合的方法,对每种技术赋予不同的权值,以更全面的处理和消除Spam。
◆预先阻断(ProactiveBlocking)
最有效的Anti-Spam防范技术之一是在已知的Spam引擎发动以前或者刚要发动,采取措施阻止其发送Spam。这类技术包括实时黑洞列表 (RBLs),反向DNS查找(reverse
DNSlookup),和黑名单或者白名单。实时黑洞列表是很多Anti-Spam软件采用的方法(Brightmail),它在网络中分布一 些无用的Email地址,专门接收Spam,以此来分析得到的Spam,做到第一手反击。人们也考虑用类似拒绝攻击DoS的技术来阻止和减缓 Spammer(Tarproxy),从而对Spam进行反击。
Anti-Spam的另一个思路是保护合法的邮件,除去合法的邮件,其它的就被当作垃圾丢掉。常用的技术有下面一些:
◆质询/应答(Challenge/Response)
质询、应答技术类似于,当收到一封邮件后,询问“谁寄来的?请证实自己”。当对方证实自己后才算通过测试。不管是合法的还是Spam,未经确认 的Email就被拒绝了。质询、应答的方法可以询问Email的DNS服务器这个域名地址是否可信;或者询问Email发送的服务器,这封Email是否 有效,等等。这种方法增加了网络存储需求和消息通讯量,更大的缺陷是让Spammer验证了Email地址的有效性。
◆邮件地址和黑客防护(AddressandHackerProtection)
Anti-Spam,对企业来讲防卫首先是要保护它的网络和邮件系统不被攻击,防止Email地址泄漏,比如隐藏保护用户的合法地址。用于防范 字典攻击的Email防火墙产品一般需要修改邮件重发机制,制定策略引擎。Email防火墙产品一般还需要防止拒绝服务攻击(DoS)。为保护用户的合法 地址,也有产品做到了Email地址代理服务,建立内部邮件地址到外部地址的随机映射转换。
◆认证(Authentication)
对Email系统采取认证技术来保证发信人的真实性和不可抵赖性。例如在Email的头中加入发信人的数字签名,确认发信人的地址是真实地址, 没有签名的Email将被当做Spam丢掉(ePrivacy)。与质询/应答不同,认证是在Email客户端就可以实现端到端认证的,不需要修改现有的 Email系统和协议。这种技术的缺点是需要采用PKI技术来管理密钥和公钥,增加Email系统的使用复杂度。因此是否会被用户采纳是个问题。
SMTP的宗旨就是简单、自由地在Internet上异步传递信息。要想彻底地解决Spam问题,除了法律的约束,技术上的终极方法是重写 SMTP协议。这点IETF已经有一个工作组在讨论(IETF-ASRG)。Spam问题涉及网络拓扑、传输协议、信息分析,以及安全和反制技术等。本文 列举的技术不乏可以研究的地方。也有可能存在其它技术能更有效地解决Spam问题。
除了IETF,还有许多Anti-Spam的民间组织,中国也成立了自己的Anti-Spam联盟CASA。在MIT,从2003年开始召开每 年一次的Spam会议SpamConference。