文挡标识: Q167629 [winnt] 标题: 可预知的查询标识使 DNS 服务器承受风险 产品: Microsoft Windows NT 版本: 4.00 操作系统: WINDOWS 关键字: kbbug4.00 kbnetwork NTSrv nttcp -------------------------------------------------------------------------- 此文挡适用于: - Microsoft Windows NT Server versions 4.0 -------------------------------------------------------------------------- 现象 ==== 攻击者可以提交一项查询到 DNS 服务器,要求 IP 地址(例如要求 www.microsoft.com 的 IP 地址)。 此 DNS 服务器会替客户提交一个递归查询,这时攻击者用具有 IP 地址的返回数据充填 DNS 服务器(例如,对于 www.microsoft.com 它可能返回 127.0.0.1),或者用攻击者期望的不正确的 IP 地址来充填 DNS 服务器。 DNS 服务器把此结果存入高速缓存中,后续对此节点的查询都返回错误的 IP 地址。高速缓存中的数据会存留相对长的时间,DNS 复位后才会被清除。 原因 ==== Domain Name System (DNS) 用于识别 IP 地址的名字,DNS 查询可提交到任何 DNS 服务器。如果服务器没有查询的官方结果,它可询问 DNS 树状结构中的其他 DNS 服务器,这叫作递归查询。递归查询的结果会放在原始产生查询的 DNS 服务器的高速缓存中来提高性能。DNS 服务器在任何时刻都会有很多未完成的查询,每一未完成的查询都用一查询标识来指明。 Microsoft Windows NT (及许多其他的)DNS 服务器在处理递归查询时使用一个可预知的查询标识序列。如果攻击者能确定当前的序列号,它就可确定将来的序列号。知道了将来的序列号,攻击者就可以对递归查询返回虚假的数据到 DNS 服器。这很容易造成“高速缓存污染”。 解决方法 ======== Microsoft DNS Server 已改为使用随机查询标识。随机查询查询标识降低了高速缓存污染的可能性。 要解决此问题,请取得以下修补程序,或者等到下一版 service pack。 此修补程序放在以下 Internet 位置: ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/chs/NT40/ hotfixes-postSP3/dns-fix 当前状态 ======== Microsoft 已证实这是 Windows NT 4.0 版的问题。修改已完成但未经过完全的回归测试。 请只把此修补程应用到碰到该特定问题的系统中。Microsoft 建议你等到下一版含有此修改的 Service Pack,如果你遇到的该问题非常严重,则另当别论。 欲知详情,请和 Microsoft 技术支持联系。 查询关键字: prodnt 4.00 ============================================================================ MICROSOFT 知识库所提供的信息不带任何种类的质量保证。MICROSOFT 不承诺任何明确的或隐含的质量保证,包括商品买卖及特殊情况适合性的质量保证。不论在任何情况下,即使 MICROSOFT 公司或其代理商已被告知可能的损坏, MICROSOFT 或其代理商对任何直接、间接、偶然性或导致性的商业利润损失,或特殊的损坏都没有任何义务。某些州不允许排除或限制这种导致性或偶然性损坏的义务,在这种情况下前述的限制可能不适用。