运维收到 MS15-034 漏洞通报时,最关心两件事:我的服务器在不在受影响范围里,以及暂时打不了补丁怎么办。这篇按”确认影响范围 → 处置(补丁为主、缓解为辅)→ 验证修复”的顺序,把 CVE-2015-1635 的处置路子走完。

漏洞现象与影响范围

CVE-2015-1635 对应微软安全公告 MS15-034:Windows 的 HTTP 协议栈组件 HTTP.sys 在解析特制 HTTP 请求时处理不当,攻击者构造恶意请求发送给受影响系统,就能以 System 权限执行任意代码——这是内核级 HTTP 栈漏洞,IIS 网站服务恰好架在它上面,所以所有跑 IIS 的服务器都直接暴露在风险面里。

受影响的环境是固定的几代 Windows(微软公告原文列表):

  • Windows 7 SP1(32 位 / x64)
  • Windows Server 2008 R2 SP1(x64 / Itanium,含 Server Core)
  • Windows 8、Windows 8.1(32 位 / x64)
  • Windows Server 2012、Windows Server 2012 R2(含 Server Core)

以上均为严重级(Critical)。在此之后发布的 Windows 10 / Server 2016 及更高版本不受影响。核对自家服务器版本是第一步:只要系统版本落在上面的清单里且对外提供 HTTP 服务,就按下面的处置走。

漏洞成因一句话

HTTP.sys 在解析 HTTP 请求的 Range 头(断点续传用的字节区间声明)时,对超大数值做整数溢出处理不当,攻击者把区间上边界成接近 64 位上限的值发过来,就能造成内核内存破坏,进而以内核权限执行代码。理解了这一点,后面的缓解措施为什么”关内核缓存”就顺理成章——内核缓存正是 Range 请求走到漏洞代码路径的前置开关。

检测:不动系统先探一下

通报和处置之间往往隔着审批流程,这段时间可以先用一条无害的请求探测目标是否受影响。公开的检测方法是向目标站点的任一静态资源发送带超大 Range 头的请求:

1
curl -i -H "Range: bytes=0-18446744073709551615" http://目标服务器/任意静态页面

依据公开漏洞分析(本环境无 Windows,未实跑):返回 416 Requested Range Not Satisfiable 说明该 Range 头被漏洞路径处理,系统受影响;已打补丁的系统会拒绝这个畸形头(400 Bad Request,提示非法头名)。这是只读探测,不发攻击载荷,但生产环境执行前仍建议走变更流程。

处置措施

1. 打补丁(根本解法)

微软已发布修复补丁(KB3042553),通过 Windows Update 或从安全公告页面手动下载安装:

https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2015/ms15-034

公告页面里有补丁下载入口和受影响的系统版本对照表,安装前先核对系统版本。补丁安装后按提示重启,HTTP.sys 属于内核组件,重启后新版本才生效。

2. 临时禁用 IIS 内核缓存(缓解措施)

不能立即打补丁的服务器,官方 workaround 是禁用 IIS 内核缓存:在 IIS 管理器中选中服务器节点,打开”输出缓存”(Output Caching)设置,将内核缓存(kernel caching)关闭,然后重启 IIS 使其生效。

注:未实跑(Windows/IIS 环境无法容器验证),操作依据微软安全公告 MS15-034 的 workaround 说明。公告明确提示:该措施仅针对 IIS 且会引起性能问题,只作为打补丁前的临时过渡,补丁打完后应恢复内核缓存配置。

两个措施的主次关系要清楚:打补丁是根本解法,禁用内核缓存只是缓解——它关闭了漏洞触发的路径,但漏洞代码仍在系统里,补丁完成后务必把缓存改回来,否则长期承受性能损失。

验证修复

补丁是否装上,在服务器上查已安装的更新列表:

1
wmic qfe get HotFixID | findstr 3042553

输出中出现 KB3042553 即表示补丁已安装。

注:命令未实跑(Windows 环境),wmic qfe 列已安装更新为 Windows 标准操作;部分新系统已弃用 wmic,可改用”设置 → 更新和历史记录”查看。

事后预防

  • 漏洞通报出现的第一反应是核对影响范围,而不是急着上网找缓解脚本——影响范围决定处置优先级。
  • 内核级组件漏洞(HTTP.sys、Winsock 等)通常伴随重启要求,打补丁要预留维护窗口。
  • 临时缓解措施必须登记回退计划:这次禁用的内核缓存,补丁完成后要恢复,漏掉这一步性能问题会拖很久才被发现。
  • 对外暴露面按服务收敛:IIS 只在需要时对外开放,内核级漏洞的爆炸半径和暴露面成正比,通报来临时暴露面小的机器处置优先级自然靠后。

本文由作者 2020-2024 年间的 CSDN 博客文章重构而来,原发布于 CSDN。