/ 中存储网

Exchange Server阻止账户搜索攻击的解决方法

2014-08-28 23:10:56 来源:中存储网

垃圾制造者使用许多种技术让你的Exchange Server充斥垃圾。其中对于收件人特别成问题的一个技术是账户搜索攻击(directory harvest attack,DHA)。在这些攻击中,垃圾制造者向可能存在或不存在的邮箱发送消息,以便发现合法地址。对于这种攻击是有防护技术的,但是你首先需要了解DHA如何运转。

DHA剖析
DHA的一个基本思路是存在许多常见姓名。如果你的公司拥有许多雇员,那么很可能会有名字为John、Bob、Mary等更多的雇员。因此垃圾制造者可以编译一个很长的常见姓名列表。一个邮件制造程序会将列表中每一个姓名附加到一个已知的域名。例如,如果一个垃圾制造者的目标是contoso.com域,在他的列表上有姓名John、Bob和Mary,垃圾邮件将被发送给john@contoso.com、bob@contoso.com和mary@contoso.com。
记住也许在Contoso并没有John、Bob或Mary。垃圾制造者仍然会向这些地址发送消息,使用常见姓名可以试探出哪些邮件地址是有效的。除了姓名,垃圾制造者还会使用在邮件地址中常见的词汇。例如,垃圾制造者可能会尝试sales@contoso.com、service@contoso.com或info@contoso.com。
当垃圾制造者启动DHA时,他们知道自己所尝试的大多数地址都是无效的。但是,他们也知道如果尝试足够多的姓名,其中一些消息就可以通过。垃圾制造者的列表上通常都有数千个姓名。
在向John、Bob和Mary发送垃圾的例子中,我介绍了列表中的姓名如何被附加到一个目标域名。在现实世界中,公司很少使用雇员的first name作为邮件地址的唯一组成,更多的情况是,邮件地址由雇员的first和last名组合而成。垃圾制造者了解这一点,因此他们将消息发送给列表上姓名的许多不同组合。例如,如果一个垃圾制造者的目标是姓名John Smith,可能的组合也许包括JSMITH、John.Smith或JohnS。
如果垃圾制造者的列表包含几千个姓名,你可以想象垃圾制造者尝试所有的可能组合将要发送多少消息。典型地,first和last名字将被分开罗列,这将极大地增加要尝试的组合的整体数量。一个DHA有时导致的症状类似于拒绝服务(DoS)攻击。垃圾制造者发送的大量消息也许会冲垮邮件服务器,导致合法邮件无法通过。
当然,这个技术有许多变化。一些垃圾制造者不使用姓名列表,而是使用暴力攻击,即将一个预定义长度的用户名与一个已知域名联合,其中用户名尝试所有数字和字符的可能组合。由于其暴力特性,这个技术对于垃圾制造者来说很费资源和时间。一些垃圾制造者使用不太费资源的方法。
其他垃圾制造者使用垃圾数据库来寻找少量域关联的知名地址,因此他们可以判定公司所使用的邮件地址格式。如果垃圾制造者知道了地址格式,他们就可以启用更有效的DHA。但是由于存在数百万的域,垃圾制造者越来越少地使用优化调整攻击独立的域,而是更多地向不同的地址格式发送几百万条消息,以便找到很少的有效地址。
向数不胜数的邮件地址发送消息只是这场战争的一半。记住DHA的目的是判定那一个邮件地址有效,进而向这些地址会发送更多的垃圾。垃圾制造者可以用两种不同方式找到有效邮件地址。
垃圾制造者寻找有效邮件地址最常见的技术是查看未送达报告(NDRs)。正如你可能知道的,大多数服务器都被配置为在收到一个发送给不存在的邮件地址的消息时,会向发件人返回一个NDR。垃圾制造者将NDR与地址列表进行对比。返回NDR的地址被视为无效,因此会从列表中删除。
起初,垃圾制造者将没有NDR的地址视为有效。但是现今垃圾制造者不能仅仅因为没有收到NDR就完全确定一个邮件地址有效。如果一个垃圾制造者对一个域进行账户搜索攻击而没有返回NDR,他们会知道该公司禁用了NDR。
如果启用NDR,垃圾制造者仍然可以找出合法地址,尽管并不是很多。要做到这一点,垃圾制造者查看诸如外出消息这样的线索。垃圾制造者也可能在账户搜索消息中包含一个递交收条。
由于DHA的工作方式,一个未被使用的新邮件地址可能从创建后的几小时就开始收到垃圾消息。幸运的是,你有几种方法来抵御此类攻击。我介绍的技术针对Exchange Server 2003,但是大多数也适用于Exchange 2000 Server。

禁用递交收条
一个对抗DHA的方法是禁用Exchange组织的递交收条。这样做的主要优点是使DHA更缺乏效力。禁用递交收条也会节约带宽和其它系统资源。思考一下,如果你的邮件服务器为每一个垃圾消息生成一个递交收条,你将浪费大量的系统资源。一个递交收条花费的带宽、CPU时间、内存、以及其它资源可以忽略不计,但是大量累计起来将会影响可用的系统资源。这个技术的缺点是,如果一个合法用户请求递交收条,而你禁用了递交收条,则用户可能会认为自己的邮件没有被传递。

禁用NDR
正如生成和发送大量递交收条一样,生成过多的NDR也会影响可用系统资源。DHA向成千上万的不存在邮箱发送消息。这些消息对你的带宽以及其它系统资源造成的影响已经足够糟糕了,如果再为每一个无效消息生成NDR就更严重了。
在一些组织中,为了节约带宽和系统资源,也许认为应该禁用NDR。但是在这样做之前,你需要考虑一些负面的方面。
一个问题涉及向你的组织发送合法邮件的人。如果一个客户键入了错误的邮件地址,则消息不会送达收件人。没有NDR,发件人不会知道消息未被送达,因此会认为他们被忽视了。
禁用NDR的另一个问题是可能会引火烧身。记住DHA如何工作:在攻击最简单的形式中,姓名列表与NDR列表进行对比以判定那些邮件地址有效。一些不熟练的垃圾制造者会假设没有返回NDR的地址是有效的。一旦垃圾制造者拥有一个有效地址,他们会向其发送更多的垃圾。

发送欺骗NDR
一些反垃圾应用程序可以生成欺骗NDR,从而使组织可以抵御垃圾侵犯。反垃圾软件包含所有典型过滤器(例如关键词、黑名单、贝叶斯等)。当一个过滤器检测到一个垃圾消息时,反垃圾软件向垃圾制造者返回一个假冒NDR。这个方法使垃圾制造者认为该地址不再有效,从而停止向其发送垃圾。
发送欺骗NDR消耗大量资源。并且,由于DHA使用的消息通常为空白或者只包含一个单词,某些反垃圾软件很难识别此类垃圾消息。另外,除非给发件人的消息包含一个有效邮件地址,否则应答是没有意义的。

非典型地址格式
对抗DHA的另一个方法是使用非典型邮件地址格式。例如,我曾见过一些公司将雇员的出生年份作为邮件地址的一部分:如果John Smith生于1973年,则他的邮件地址可能是jsmith73@contoso.com。
这个技术背后的逻辑是如果垃圾制造者使用姓名列表发起攻击,则该列表的组合不会产生一个有效邮件地址。但是,包含数字的邮件地址更难记忆,这对于与公司雇员通讯的合法发件人有些严格,除非他们将收件人邮件地址存入地址簿。同时,这个技术也只能对付那些使用基于列表攻击的垃圾制造者;暴力攻击可以获取有效邮件地址,而不管采用什么格式。

收件人过滤
我将讨论的最后一个技术是收件人过滤。收件人过滤作用于SMTP会话的早期阶段,这意味着一个消息可以在消息主体送达服务器之前被拒绝。其优点是你可以保留资源,因为服务器不会下载被拒绝消息的消息主体。
收件人过滤的问题是当其被自身使用时可能使DHA更有效和更成功。记住DHA成功的关键是垃圾制造者必须能够将NDR与发出的消息匹配。Exchange server花时间处理一个消息,然后生成并传输一个NDR。
由于收件人过滤工作在SMTP级别,接收一个消息并生成一个NDR的整个过程被消除。服务器只是简单地拒绝收件人不存在的消息。垃圾制造者将收到一个SMTP级别消息,它指示消息被拒绝,因此垃圾制造者可以更快速地判定一个邮件地址是否有效。幸运的是,有一个叫做tar pitting的对策,它使反弹消息对于垃圾制造者没有使用价值。在下一节中我将详细讨论这个技术。
使用收件人过滤还激励垃圾制造者使用域名欺骗。如果垃圾制造者依赖于接收NDR,在大多数情况下,垃圾制造者将使用合法域名,从而保证NDR能够返回到垃圾制造者。尽管收件人过滤的拒绝过程发生在SMTP级别。垃圾制造者可以隐藏在一个被欺骗的域名后面,仍然能够获取他们需要的信息。

Tar Pitting
由于收件人过滤工作在SMTP级别,实际上是Windows而不是Exchange Server指挥接受或拒绝消息的过程。Tar pitting是微软在 Windows Server 2003 Service Pack 1 (SP1)中包含的技术。Tar pitting可以减缓收件人过滤,从而使DHA变得没有意义。记住垃圾制造者有成千上万个邮件地址要在你的邮件服务器测试,这需要花费大量时间。想象一下如果你能够将每一个消息的批准处理过程插入10秒延迟将会使这个过程延长多长时间。这就是tar pitting所做的:它允许你在响应无效邮件地址之前插入一个延迟。
在介绍如何启用tar pitting之前,我需要警告你两件事情。第一,启用tar pitting最后可能也会延缓合法邮件。因此在启用tar pitting之后监视服务器的响应很重要。第二,启用tar pitting需要编辑注册表,这可能导致危险。错误的更改可能损坏Windows和你的应用软件。因此建议在继续之前先进行完整的系统备份。
要启用tar pitting,打开注册表编辑器(regedit.exe),导航到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSMTPSVCParameters子键。接着,右键点击Parameters容器并选择New, DWORD Value。输入新注册表项的名称TarpitTime。双击创建的项,将值设置为SMTP地址校验过程需要延迟的秒数。一般5到10秒就足够了。然后点击OK,关闭注册表编辑器,重新启动SMTP服务。

对抗垃圾制造者
正如你看到的,DHA是一个特别令人头疼的垃圾制造技术。但是现在你已了解了几种缓解此类攻击的方法。为了降低DHA的效力和影响,我建议你利用收件人过滤和tar pitting。使用黑名单也是一个好办法,因为它可以彻底拒绝一个连接。禁用递交收条和NDR也是有效的对策,但是在执行之前你需要考虑其影响。