启用 HTTP2 可能存在哪些安全问题?

信息安全 网络服务器 华夫 http2
2021-08-26 04:32:25

我想为几个 Web 服务器启用 HTTP2,但我担心可能的安全隐患。我想这样的事情:

  • HTTP2 实现可能比成熟的 HTTP1 实现更容易出错,因此例如更可能出现零日
  • WAF 可能不适用于 HTTP2,因为它不支持该协议

这些问题真的相关吗?还有什么可能是额外的问题?

2个回答

HTTP/2 是一种比 HTTP/1.x 更复杂和新的协议,因此至少最初更有可能出现错误。事实上,一个简单的搜索显示了几个实现问题,以及由于 HTTP/2 设计的改变而导致的一些新的或更新的攻击向量。

WAF 可能不适用于 HTTP2,因为它不支持该协议

这可能问题不大。WAF 通常要么集成到服务器的 HTTP 堆栈中,要么是具有自己的 HTTP 堆栈的活动组件。由于 HTTP/2 的设计方式,如果服务器或 WAF 不支持 HTTP/2,则会隐式降级到 HTTP/1.x。对于代理和其他活动组件也是如此。

这对于在某些入侵检测系统或防火墙中所做的纯粹被动检查将是一个问题。但无论如何,纯粹的被动检查在检查 TLS 流量方面存在问题,并且 HTTP/2 仅与 TLS 一起使用。如果相反,被动检查通过 SSL 拦截来增强,那么通常会再次降级到 HTTP/1.x,除非 SSL 拦截在 SSL 拦截期间明确或不知情地将 ALPN TLS 扩展转发到 HTTP/2 服务器。

这取决于你的观点。

如果您从网站维护者和管理员的角度来看,您的两个担忧是正确的:HTTP/2 的发布时间少于 HTTP/1.1,因此使用该协议的软件成熟的时间更短。就这一点而言,我预计 HTTP/2 和 WAF 的结合目前是一条崎岖不平的道路。此外,为 HTTP/2 获取信息和外包安全加固将比 HTTP/1.1 更困难。不过,从运行 HTTP/2 的大型站点(例如这个站点)的数量来看,这应该不是不可能的。

另一方面,如果您是 Web 平台创建者,非常熟悉 HTTP/2 并且恰好是您的 HTTP/2 边缘实现的维护者,那么在涉及到 HTTP/2 比 HTTP/1.1更支持安全。首先,许多恶意软件和恼人的机器人仍在 HTTP/1.1 上运行,这对安全堆栈来说是一个强烈的信号。此外,多路复用使跟踪和归因用户代理行为变得更加容易。HTTP/2 的二进制框架消除了由 HTTP/1.1 分块编码和流水线的不兼容实现引起的安全问题。