Microsoft 已向 IT 专业人员发布针对此问题的 Microsoft 安全通报。该安全通报包含有关此问题的其他与安全相关的信息。要查看该安全建议,请访问下面的 Microsoft 网站:
本文讨论了简单邮件传输协议 (SMTP)“Tar Pitting”。Tar Pit 功能是一种可供在运行 Microsoft Windows Server 2003 Service Pack 1 (SP1) 的计算机中使用的 SMTP 功能。默认情况下禁用 Tar Pit 功能。要使用 Tar Pit 功能,管理员必须通过配置 TarpitTime 注册表项来启用此功能。
什么是 SMTP Tar Pitting?
Tar Pitting 是这样一种行为:故意向与垃圾邮件或其他不需要的通信相关的某些 SMTP 通信中插入一定的延迟。为了提高效率,这类通信通常依赖于生成大量通信。通过减慢 SMTP 会话的速度,可以显著降低发送自动垃圾邮件或进行字典攻击的速度。Tar Pitting 也可能会减慢合法通信的速度。
Microsoft Windows Server 2003 和一些第三方 SMTP 服务器中提供有 Tar Pit 功能。Windows Server 2003 中的 Tar Pit 功能通过减慢所有包含 SMTP 协议 5.x.x 错误代码的响应的速度进行工作。管理员可以配置由 Tar Pit 功能引入的延迟。有关如何配置 Tar Pit 功能引入的延迟的信息,请参见“如何启用 Tar Pit 功能?”一节。
如何确定是否应启用 Tar Pitting 功能?
如果已经启用了 Microsoft Exchange Server 2003 收件人筛选,则应考虑使用 Tar Pitting。如果未启用收件人筛选,Tar Pitting 功能可能不会为 Exchange Server 带来很多好处。
如果启用 Tar Pit 功能,则应该认真监视 SMTP 服务器的性能。此外,还应分析服务器上的通信模式,以确保 Tar Pitting 没有中断或延迟一般的通信。
Tar Pitting 只影响匿名 SMTP 连接。已通过验证的会话不受影响。因此,如果您经常与其他组织交换大量 SMTP 邮件,并且发现 Tar Pitting 正在影响此通信,则可以通过验证 SMTP 通信来使该组织避开 Tar Pitting。
什么是收件人筛选?
收件人筛选是 Exchange 2003 中的一项新功能。使用收件人筛选,您可以针对专门定义的收件人以及在您组织的 Active Directory 目录服务中未列出的任何传入收件人,来筛选或拒绝传入邮件。
有关如何启用和配置收件人筛选的更多信息,请参阅 Microsoft Exchange Server 2003 联机帮助。
启用收件人筛选功能后,发件人将无法向您发送发往无效收件人或已筛选收件人的邮件。在传输邮件正文之前,SMTP 会话中会提前拒绝此类邮件。
该行为通常可以减少在 Exchange 服务器上处理无效邮件的处理需求。您不但不必接受并存储邮件,而且也无需发送无效邮件的未送达报告 (NDR),因为该邮件从未被接受。
如果不使用收件人筛选,则发送到 Exchange 组织中无效电子邮件地址的邮件将被接受并由 Exchange 服务器处理。Exchange 服务器处理该邮件后,它必须为所有无效邮件生成并发送 NDR。
注意:在 Microsoft Exchange 2000 Server 和 Exchange 2003 中可以取消 NDR。但是,RFC 2821 指出,如果您接受电子邮件,则必须向无效收件人返回 NDR。有关如何配置以取消 NDR 的更多信息,请参见 Exchange Server 2003 联机帮助。
Tar Pitting 和收件人筛选如何共同工作?
收件人筛选的缺点是:它提高了针对用户执行的电子邮件地址搜集攻击的效率。在典型的搜集攻击中,使用“字典”或类似的电子邮件名称列表来自动生成大量的电子邮件以发送到您的域中。目的是让您指明各个电子邮件地址是有效还是无效。然后,攻击者使用已发现的电子邮件地址列表来发送垃圾邮件或实现其他非法目的。
如果启用了收件人筛选功能,服务器将在 SMTP 会话期间显示电子邮件名称是有效还是无效。如果禁用收件人筛选功能,攻击者将必须等待每个猜测的名称返回 NDR。
如果同时启用收件人筛选功能和 Tar Pit 功能,则对无效电子邮件名称的响应可能会大大延迟。这种行为可以阻碍攻击。
注意:因为大多数攻击者都使用伪造域登录,所以实际上,垃圾邮件发件人或其他攻击者几乎不可能收到您的服务器生成的 NDR。如果 NDR 可以找到攻击者,那您就可以找到攻击者。因此,通过 NDR 进行字典攻击的风险要低于在 SMTP 会话期间泄露信息的风险。
为什么不能只阻止 Exchange 发送任何可能帮助攻击者的响应?
可以将 Exchange 配置为不发送任何响应。为此,必须禁用收件人筛选并取消 NDR。
正如前面所讨论的,取消 NDR 是不符合 RFC 规范的行为。因此,通常不建议取消 NDR。对于在发送电子邮件时在收件人地址中出现键入错误的一般用户来说,取消 NDR 也会给他们带来不便。电子邮件发件人通常会认为,只要不返回 NDR,就说明电子邮件已到达其目的地。
如果启用了收件人筛选功能,则您可能更容易面临搜集攻击的风险。不过,您也不太容易成为 NDR Flood 攻击的媒介。NDR Flood 攻击是指:发件人故意将返回的地址伪装成有效域,然后向您发送无效电子邮件并声称是来自该域。随后,您的服务器会很尽责地用许多 NDR 报告充满该受害域。
电子邮件搜集攻击、NDR Flood 攻击甚至垃圾邮件自身的问题都依赖于 SMTP 协议中合法电子邮件传输所用或所需的功能。在您一边要防御这类威胁,一边又要允许合法通信继续时,必须权衡一下利弊。
Tar Pitting 是一种既可以防御 SMTP 的误用所带来的危害,又可以最大限度地减小对合法用户的影响的选项。
如何启用 Tar Pit 功能?
警告:注册表编辑器或其他方法使用不当可能导致严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。
Tar Pit 功能可通过设置注册表项来启用和配置。为此,请按照下列步骤操作。
注意:如果 TarpitTime 注册表项不存在,则 Exchange 的行为如同此注册表项的值设置为 0。当注册表项的值为 0 时,在发送 SMTP 地址验证响应时将没有延迟。
1. | 单击“开始”,单击“运行”,在“打开”框中键入 regedit,然后单击“确定”。 |
2. | 找到下面的注册表子项,然后单击将其选中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMTPSVC\Parameters |
3. | 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。 |
4. | 键入 TarpitTime 作为注册表项名称,然后按 Enter 键。 |
5. | 在“编辑”菜单上,单击“修改”。 |
6. | 单击“十进制”。 |
7. | 在“数值数据”框中,键入要对每个不存在的地址延迟 SMTP 地址验证响应的秒数。然后,单击“确定”。例如,键入 5,然后单击“确定”。这会将 SMTP 地址验证响应延迟 5 秒。 |
8. | 退出注册表编辑器。 |
9. | 重新启动简单邮件传输协议 (SMTP) 服务。 |
如果没有使用 Exchange 2003,是否可以在 Windows Server 2003 上使用 Tar Pitting?
可以。Tar Pitting 是 Windows Server 2003 SMTP 服务的一种通用功能。该 SMTP 服务由 Exchange 使用,同时也可供其他应用程序使用。
Tar Pit 功能向 5.x.x 错误响应中插入延迟。如果应用程序能够很好地利用这些延迟,则可以考虑启用 Tar Pit 功能。
可以在下面的文章中找到本文的早期版本:
899492 (http://support.microsoft.com/kb/899492/) 有助于阻止 Exchange Server 2003 电子邮件地址枚举的软件更新现已推出
该文章的当前版本已使用其他说明性材料和新的下载信息进行了更新。 有关收件人筛选功能的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
823866 (http://support.microsoft.com/kb/823866/) 如何配置连接筛选以使用实时阻止列表 (RBL) 以及如何在 Exchange 2003 中配置收件人筛选
有关在 Exchange 5.5 中取消未送达报告的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
837794 (http://support.microsoft.com/kb/837794/) Exchange Server 5.5 的更新已推出,以控制 Internet 邮件服务是取消 NDR 还是传送 NDR
有关 SMTP 中继(攻击者经常利用的另一种功能)的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
304897 (http://support.microsoft.com/kb/304897/) Windows 2000、Windows XP 和 Exchange Server 中的 SMTP 中继行为
有关 Microsoft 软件更新的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 (http://support.microsoft.com/kb/824684/) 有关用于描述 Microsoft 软件更新标准术语的介绍