微软安全公告MS02
SQL Server 2000 存在严重的拒绝服务和缓冲溢出缺陷
涉及程序:
SQL Server 2000
描述:
SQL Server 2000 存在严重的拒绝服务和缓冲溢出缺陷
详细:
SQL Server 2000 有一种功能,即可以在同一个单独的物理设备上管理多个 instance ,并且对每一个 instance 进行操作时,可以把它们看作是一个单独的服务器。然而这多个 instance 却不能都使用 SQL Server 的标准会话端口TCP1433 。当默认 instance 在TCP端口1433监听的时候,另外的 instance 就只能在系统分配给它们的其它端口监听。另外 SQL Server 运行在 UDP 1434 端口上的解析服务(Resolution Service)提供了这样一种功能,即为一个专门的 instance 申请一个合适的网络端点(network endpoint).
但这个过程当中却存在三个缺陷。其中两个是缓冲溢出缺陷,即攻击者通过给解析服务发送一个精心构建的数据包,将能覆盖一部分系统内存(这里一种情况是 heap 溢出,一种是 stack 溢出)。如果用任意数据去覆盖内存,将可能导致拒绝服务;如果使用精心构建的数据去覆盖,就可以在 SQL Server 服务的 security context 中运行攻击者选择的任意指令。
第三个是一个拒绝服务缺陷。SQL 为区别主动 instances 和被动 instances 使用了一个 keep-alive 机制。而且在发送给解析服务一个 keep-alive 数据报时,SQL Server 2000 将会信任并根据这个信息进行回复。这样的话,攻击者就可以构建一个含有假IP源地址(这个假IP源地址是目标SQL服务器临近的一台SQL服务器地址)的 keep-alive 数据包,再发送给目标SQL Server服务器,从而导致两台SQL服务器进入一个永无休止的 keep-alive 数据报循环回复状态,将系统的资源完全耗尽。
用户如果注意以下几点将能控制这个缺陷产生的影响:
====================
在 SQL Server 解析服务中的缓冲溢出缺陷:
- SQL Server 2000 在安装时就被管理员选择在 security context 中运行代码和指令,但是缺省是以一个域用户权限来运行的,所以要想成功利用此缺陷,首先必须有域用户权限;
- 使用防火墙将 1434 端口阻塞将是一个切实可行的降低风险的方法。
-------------------------------------------------------------
利用 SQL Server 的解析服务进行的拒绝服务攻击:
- 每一个受到影响的系统只要将SQL Server服务重启即可,因为拒绝服务攻击只要一停止,系统的每一个进程就都会恢复正常。
- 因为这仅仅只是一个拒绝服务缺陷,所以攻击者利用这个缺陷不可能获得系统的任何权限。
风险等级:
============
- Internet systems: 严重
- Intranet systems: 严重
- Client systems: 没有
攻击方法:
暂无有效攻击代码
解决方案:
立即下载补丁:
Microsoft SQL Server 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602
附加信息:
无
相关站点:
http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
阅读关于 微软安全公告 MS02 SQL Server 数据库 的全部文章
- 本文关键词:

