|
Microsoft 安全公告 MS03-010
--------------------------------------------------------------------------------
RPC Endpoint Mapper 漏洞导致拒绝服务攻击 (331593)
概要
谁需要阅读此公报: 使用 Microsoft® Windows® NT 4.0, Windows 2000, 或 Windows XP 的用户
薄弱环节的影响: 拒绝服务
最大严重等级: 重要
推荐: 用户应当尽早安装补丁包
受影响的软件:
· Microsoft Windows NT 4
· Microsoft Windows 2000
· Microsoft Windows XP
技术细节
技术描述:
远程过程调用 (RPC) 是一个Windows操作系统使用的协议。RPC 提供这样一种交互过程的通信机制:它允许在一台计算机上运行一个程序,而在另一台远程系统上无缝地执行代码, 这个协议本身是从OSF (开放软件基础)获得的,微软做了一些的功能扩充。
RPC在使用TCP/IP协议处理消息交换时存在一个弱点。这是由于没有正确处理错误格式的消息而引起的错误。这一特殊的弱点影响到了RPC Endpoint Mapper进程,而此进程是用TCP/IP协议在135端口进行监听的。RPC Endpoint Mapper进程允许RPC客户端实时地来为RPC服务分配端口号。
为了利用这个弱点,攻击者需要在远程机器上与 Endpoint Mapper进程建立一个TCP/IP连接。一旦这个连接建立以后,攻击者在传输一个错误格式的消息前,会开始和RPC连接进行协商。这时,在远程机器上的程序会失败。RPC Endpoint Mapper 程序负责为在那个机器上所有使用RPC的进程维持连接信息。由于 Endpoint Mapper进程运行于RPC服务,利用这一弱点便可以使RPC服务产生失败,任何基于RPC服务的服务以及COM功能将有潜在丢失的可能性。
微软与此公告一起发布了Windows 2000和Windows XP的补丁包,以解决这一弱点。虽然 Windows NT 4.0 也受此弱点的影响,但微软无法为Windows NT 4.0提供相应的补丁。Windows NT 4.0的构架限制了为解决这一弱点而需要进行的任何改动。强烈建议 Windows NT 4.0 用户使用下面FAQ所讨论的解决方案,此方案能通过使用防火墙禁止135端口来保护NT 4.0系统。
缓解因素:
为了利用这个弱点,攻击者需要与运行在目标机器上的 Endpoint Mapper进程建立连接的能力。对于企业内部网环境来说, Endpoint Mapper进程很容易被访问到。但对于互联网相连的机器, Endpoint Mapper进程所使用的端口一般会被防火墙所屏蔽。如果端口没有被屏蔽,或者在企业内部网段中的情况下,攻击者并不需要额外的特权就能够访问到端口。
最佳实践推荐屏蔽所有实际中并不使用的TCP/IP端口。因此,大多数连接到互联网的机器都 将135端口屏蔽掉。使用基于TCP 协议的RPC并不是用在某些环境中—--例如互联网。许多健壮的协议—例如使用基于HTTP协议的RPC是被设计使用在这些环境中的。更多有关RPC客户端和服务端安全问题请参见:http://msdn.microsoft.com/librar ... ient_or_server.asp. 更多有关RPC使用的端口问题请参见:http://www.microsoft.com/technet ... p/part4/tcpappc.asp
这一弱点只是允许攻击者将服务停掉,但不会让攻击者有修改和检索远程机器数据的能力。
严重级别:
Windows NT 4.0 重要
Windows NT 4.0 终端服务器版本 重要
Windows 2000 重要
Windows XP 重要
上面的 评估基于由于此弱点引起的系统类型、它们典型的布置模式和此弱点被利用时的影响。
弱点标识号: CAN-2002-1561
已测试版本:
微软已经测试了Windows NT 4.0, Windows 2000 和Windows XP 来评估他们是否被此弱点所影响。前期版本不再被支持 ,可能会也可能不会被此弱点所影响。
常见问题
Windows NT 4.0 已被列为受影响的产品,为什么微软没有提供它的补丁?
在Windows 2000进行开发时,对RPC的基本结构有了重大的改变。在某些地方,包括了对RPC服务软件基本构造的改变。Windows NT 4.0 的构架比更新的 Windows 2000 构架健壮性差很多。由于Windows NT4.0和Windows 2000以及他们的后继产品之间根本性的差别,消除Windows NT 4.0版本中此弱点是不可行的。如果我们非要这样做的话,就会需要对Windows NT 4.0操作系统中非常大的功能进行重构架,而不仅仅是改变RPC组件。这样的一个重构架后的产品可能与原先的Windows NT 4.0完全不兼容,而且不能保证那些设计在Windows NT 4.0上运行的应用程序在打了补丁后的系统上是否能够继续运行。
微软强烈推荐仍然使用 Windows NT 4.0的用户,使用防火墙屏蔽来自135端口的通信来保护系统。防火墙将会屏蔽任何利用这一弱点带来的攻击,就像在下面的解决方案一部分所谈到的。
微软在将来还会为 Windows NT 4.0 提供补丁吗?
微软已经对NT 4.0从技术方面进行了广泛调查,发现Windows NT 4.0的构架决定了无法对此问题进行修补,无论是现在还是将来。
这一弱点的范围是什么?
这是一个 拒绝服务的弱点。一个成功利用此弱点进行的攻击会导致远程机器服务运行的失败。但是,攻击者并不能根据自己的意愿对远程机器进行修改或检索数据,也不能执行代码。
为了执行这样一个攻击,攻击者需要有这样的能力:与运行在目标机器上的RPC Endpoint Mapper进程建立TCP/IP连接。一旦TCP连接建立起来,攻击者就能够给RPC发送错误格式的消息,由此,导致目标机器上的服务进程失败。
最好的对付来自互联网远程RPC攻击的方法就是,配置防火墙来屏蔽135端口。使用基于TCP的RPC 并不是为了在不友好的环境中使用而设计的。
什么引起了这一弱点?
Windows RPC Endpoint Mapper 进程没有在特定情况下适当检查进入的消息,由此导致了这一弱点的产生。在RPC建立了连接后,如果攻击者发送一种特定的错误格式的消息就会导致远程机器的RPC Endpoint Mapper进程失败。RPC Endpoint Mapper 程序负责为在那个机器上所有使用RPC的进程维持连接信息。由于 Endpoint Mapper进程运行于RPC的服务内,利用这一弱点便可以使RPC服务产生失败,任何基于RPC服务的服务以及COM功能将有潜在丢失的可能性。
什么是远程过程调用 (Remote Procedure Call)?
远程过程调用(RPC) 是一种协议,它的作用是使一个程序能够向网络中另一台机器上正在运行的进程提交服务请求。RPC 帮助进行交互因为使用RPC的程序不需要知道支持这一通信的网络协议。在 RPC中, 提交请求的程序是客户端,而提供服务的程序是服务端。
什么是 RPC Endpoint mapper?
RPC Endpoint mapper 允许RPC的客户端实时地决定分配给特定RPC服务的端口号。 Endpoint 使一个协议端口或称为一个通道,通过它服务端的应用程序监听客户端远程的过程调用。客户端/服务端应用程序既可以使用众所周知的端口也可以使用动态的端口。
微软的RPC在执行过程中出了什么错?
RPC在使用TCP/IP协议处理消息交换时存在一个弱点. 这是由于没有正确处理错误格式的消息而引起的错误。这一特殊的弱点影响到了RPC Endpoint Mapper进程,而此进程是用TCP/IP协议在135端口进行监听的。RPC Endpoint Mapper进程允许RPC客户端实时地来为RPC服务分配端口号。通过发送错误格式的RPC消息,攻击者能够使一台机器上的RPC服务失败。
这一弱点允许攻击者做什么?
这一弱点,使攻击者能够通过发送RPC消息,来使服务端的RPC Endpoint Mapper进程受到拒绝服务的攻击。虽然攻击者能够使机器上的服务失败,但不可能修改或检索远程机器上的数据,也不能在远程机器上执行代码。
攻击者如何能利用这一弱点?
攻击者能够通过这样的方法利用这一弱点:通过编程与一台有此弱点的服务器在135端口建立TCP连接,然后发送一种特定的错误格式的消息。这一消息的接收者将会引起这个有此弱点的机器上RPC服务的失败。
补丁做什么?
补丁将会对通过TCP/IP协议传输的消息进行适当的检查,由此消除了上述的弱点。这一检验使得 RPC Endpoint Mapper 进程能拒绝接受错误格式的消息。
解决方案
我无法立即安装针对此弱点的补丁,还有没有其他可以防止此攻击的方法?
微软推荐以下的解决方案:
用防火墙屏蔽135端口。135端口被用来初始化与RPC Endpoint Mapper 服务之间的RPC连接。 用防火墙屏蔽135端口将保护防火墙后面的系统免受利用这一弱点进行的攻击。然而为了确保防火墙后的系统不受攻击,你还是应该考虑安装补丁。
互联网连接防火墙。如果你正在Windows XP中的互联网防火墙(Internet Connection Firewall)来保护你的互联网连接,它在默认情况下会屏蔽进入的RPC通信。
可用的补丁
补丁的下载位置
· 微软 Windows 2000
· 除了日文NEC 以外的所有其它
· 日文 NEC
· Windows XP
· 32-位版本
· 64-位版本
关于此补丁的其他信息
安装平台:
· Windows 2000 的补丁可以在装有 Service Pack 2 或 Service Pack 3 的Windows 2000系统上安装
· Windows XP 的补丁可以在Windows XP Gold版或装有 Service Pack 1的Windows XP系统上安装.
包含在将来的补丁包中:
修补这一问题的补丁将被包括在Windows 2000 的Service pack 4 中以及 Windows XP 的 Service Pack 2中。
需要重新启动计算机: 是的
补丁可以被卸载: 是的
替代补丁: 没有
检查补丁的安装:
· Windows 2000:
检查补丁是否成功安装,确认下面的注册键已在机器上被建立:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\ Q331593
检查其它个别文件,使用下面的注册键提供的日期/时间和版本信息:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\ Q331593\Filelist.
· Windows XP:
如果在Windows XP Gold上安装:
检查补丁是否成功安装,确认下面的注册键已在机器上被建立:HKLM\Software\Microsoft\Updates\Windows XP\SP1\Q331593.
检查其它个别文件,使用下面的注册键提供的日期/时间和版本信息:HKLM\Software\Microsoft\Updates\Windows XP\SP1\ Q331593\Filelist.
如果在 Windows XP Service Pack 1上安装:
检查补丁是否成功安装,确认下面的注册键已在机器上被建立:HKLM\Software\Microsoft\Updates\Windows XP\SP2\Q331953.
检查其它个别文件,使用下面的注册键提供的日期/时间和版本信息: HKLM\Software\Microsoft\Updates\Windows XP\SP2\Q331953\Filelist.
警告:
微软已测试了 Windows NT 4.0 和 Windows NT 4.0 终端服务器版本。这些平台易受拒绝服务的攻击,但是由于构架的限制,无法通过重建RPC软件来解决Windows NT 4.0的这一弱点。
本地化:
本地化的版本在上面“可用的补丁”中提到的都是可用的。
获取其他安全补丁:
下面的位置可以获取其他安全补丁:
· 从 微软下载中心 可以获取安全补丁,并且大多数能够通过关键字“security_patch”搜索得到。
· 用户平台的补丁可以从 Windows更新 站点获取。
其他信息:
感谢
微软衷心 感谢 jussi jaakonaho 向我们报告这个问题,并同我们一起努力来保护用户的安全。
支持:
微软知识库文章 331593 讨论了这个问题,并且将在这个公告发布后约24小时内可以看到。知识库文章可以在微软在线支持 站点找到。
技术支持可以从 微软产品支持服务 处获得。任何有关安全补丁的问题都是免费的。
安全资源: 微软 TechNet安全 站点提供了微软产品的其他安全信息。
否认声明:
微软知识库中提供的信息不是任何形式的保证。微软不承诺任何保证,包括商业性保证和为了特殊目的合适性保证,无论是直接表达的还是隐含表达的。微软公司和它的供应商不应该对任何这样的事件负责:无论是直接的、间接的、产生后果的或是附带发生的商业利益损失或特殊损害,即使微软公司和它的供应商被劝告这样的损害发生是可能的。某些州不允许拒绝或限制任何带有后果或附带发生的损失,因此上述的申明可以不使用。
修订:
V1.0 (2003年3月26日): 公告建立。 |
|