MS08-036漏洞解析:Windows中的PGM协议安全风险

本文深入分析了Windows系统中Pragmatic General Multicast(PGM)协议的两个拒绝服务漏洞(MS08-036),详细介绍了PGM协议的技术实现、检测方法及安全防护建议。

今天我们发布了MS08-036补丁,修复了Windows实现中Pragmatic General Multicast(PGM)协议(RFC 3208)的两个拒绝服务漏洞。您可能从未听说过PGM——我们团队中只有一位曾在核心网络组件测试组工作过的工程师了解它。

PGM是一种多播传输协议,可确保从多个源到多个接收者的可靠传输。作为第4层传输协议,它与TCP和UDP同级。您可以通过创建SOCK_RDM类型和IPPROTO_RM协议的套接字来收发PGM数据:

1
s = socket(AF_INET, SOCK_RDM, IPPROTO_RM);

关于PGM编程的更多信息,请参阅MSDN参考文档。

PGM协议自XP起存在于所有Windows版本中,但默认处于禁用状态。我们预计大多数网络不会有大量PGM流量。因此,如果您检测到网络中出现PGM协议使用情况且流量突然激增,很可能正在遭受攻击。您可以通过检查IP头中的"Protocol"字段来检测PGM流量,其协议ID为113(0x71)。Netmon 3.1和Wireshark都包含PGM解析器。下图是Netmon中的PGM数据包捕获示例:

[此处应有网络抓包图]

附:如果我们低估了PGM的使用范围,请告知我们常见的使用场景,我们将更新本文档。

  • 安全漏洞研究与防御团队 本文内容"按原样"提供,不提供任何明示或暗示的担保。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计