严重的拒绝服务漏洞影响多数网络服务器

  • Jonathan Allen
  • 姚九强

2012 年 1 月 15 日

话题:Java.NETRubyPHPDevOps

安全研究员 Alexander Klink 和 Julian Walde 发现了一个严重的漏洞,这个漏洞影响到大多数网络服务器。针对这个漏洞的攻击只需要一个 HTTP 请求,这个特殊设定的请求在提交表单数据时造成哈希碰撞。当发现时,这个攻击影响到 Python、Ruby、PHP、Java 和 ASP.NET,目前厂商正在和研究人员合作发布补丁。

Tomcat发布了 7.0.23 和 6.0.35 两个版本,通过限制 POST 表单字段数量最大值不超过 10000,来解决这个问题。变更记录说明这个最大值是可配置的,但没提供细节。

ASP.NET的补丁于 12 月 29 日发布。使用默认服务策略的 Windows Azure 客户会自动更新该补丁。该补丁同样限制了单个请求中的 POST 表单字段数量,为每个请求 1000 字段,比需要发动拒绝服务攻击所需的数量小很多。通过 appSetting 键值“aspnet:MaxHttpCollectionKeys”可以配置表单字段数量。目前,这个配置只能应用于全网站范围,但也有针对页面覆写这个配置的需求。还修复了一个针对 JSON 输入和反序列化逻辑的相关缺陷。

PHP候选发布版 5.4.0 也提供了 max_input_vars 指令。发布说明没有提到默认值。

截止目前,我们提到的所有厂商都在网络服务器端,通过限制单请求的字段数量,解决了这个问题。另一个选择是采用随机的字符串哈希公式。Ruby就是这样的语言。.NET 也实现同样的功能,但只限于内部版本。产品发布目前有一个集合公式,但考虑到这个问题的严重性,可能会在下一次 CLR 升级的时候有所改变。对于 Java 来说这不是很容易,JVM 规定了字符串的哈希公式,以保证开发人员在所有版本上都可以信赖它。

Oracle Glassfish的更新据信也已完成,但还没有发布。也没有公布解决这个问题方式的任何信息。

更多关于这个问题的信息可以在Ars TechnicaChaos Communication Congress网站上找到。

查看英文原文:Major Denial of Service Vulnerability Affects Most Web Servers

Java.NETRubyPHPDevOps