HTTP2.0 协议被曝 4 个高危漏洞,可致服务器崩溃

简介:

image
如果你认为HTTP2.0协议比标准HTTP(超文本传输协议)更安全,那你就错了。有研究人员花费4个月的时间在HTTP2.0协议中发现4个漏洞!

去年2月,谷歌把自家的SPDY项目捆绑进HTTP2.0,意在加强网页加载速度和用户的在线浏览体验。三个月后HTTP2.0正式发布,HTTP2.0如今已成为大部分网站最主要的HTTP协议版本。

来自Imperva(一家全球领先的新型数据应用安全的技术领导者和知名公司)的几位安全专家在Black Hat大会上公布了至少4个高危漏洞的详细说明。漏洞允许攻击者通过传输千兆级别的数据有效载荷到目标服务器,导致服务器无限循环,使Web服务器的处理速度变慢,甚至瘫痪。

HTTP2.0协议可以分为以下三层
image

·传输层(包括数据流、帧及流控制)

·HPACK二进制编码和压缩协议

·语义层——HTTP 1.1推送功能的拓展版本。

研究人员分别在Apache,微软,NGINX,Jetty和nghttp2上深入分析使用Http2协议的服务器的表现。他们发现:在所有使用HTTP2的服务器都存在可以利用的漏洞,其中两个漏洞是HTTP1.1版本中常客。

四个主要漏洞

1、 慢速连接攻击 (CVE-2016-1546)

image

这种攻击方式类似于Slowloris DDoS攻击,Slowloris是在2009年由著名Web安全专家RSnake提出的一种攻击方法,其原理是以极低的速度向服务器发送HTTP请求。由于Web Server对于并发的连接数都有一定的上限,因此若是恶意地占用住这些连接不释放,那么Web Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服务。

慢速连接攻击在HTTP1.1版本被人们所熟知,其特点到了HTTP2依然没有改变。客户端的浏览速度会变得很慢。

2.HPACK BOMB (CVE-2016-1544, CVE-2016-2525)

image

HPACK Bomb 是一种压缩层攻击,类似于压缩炸弹攻击和“解压缩炸弹”。

HPACK主要被用来减小数据包头部的长度。减小数据包头部长度后,发送者会告知接收方,这个数据包的头部需要解压。一个专业的黑客能利用这个漏洞可以将一个数Gb大小的数据包压缩成一条很短的消息,发送到目标服务器导致该服务器疲于处理,甚至瘫痪。

Imperva的研究人员解释说:

我们把一个数据包头部压缩成4KB,然后发送向服务端服务器14个同样的数据流,连接完成后,显示服务端接收到了896MB的数据,最终导致该服务器崩溃。

3.依赖循环攻击 (CVE-2015-8659)
image

这种攻击利用了HTTP/ 2使用网络流量优化的控制机制。

恶意客户端可以制造特殊的请求,向服务器寻求依赖循环服务,从而迫使服务器进入一个无限循环。该漏洞允许攻击者构成拒绝服务(DoS)攻击,甚至在存在漏洞的系统上运行任意代码。

4.数据流多路复用(CVE-2016-0150)

image

这种攻击允许攻击者利用服务器多路复用的功能,从而导致服务器崩溃实现流量反复功能。这种攻击最终导致服务器拒绝服务(DoS)的效果。

以上四个HTTP2.0漏洞都已被修复。

Imperva的首席技术官Amichai Shulman说

对于大多数互联网用户来说,HTTP2.0的出现提高了网站性能、增强了移动端应用的可能性,但是短期内大量出现的新代码也给伺机而动的攻击者带来了一些绝佳的机会。

虽说HTTP2.0协议继承了HTTP1.x版本的缺陷,这很正常。但是,企业或是厂商是否有进行尽职的调查和实施保障措施是解决问题的关键,毕竟关系到企业能否在飞速发展的网络威胁中延长防御体系,保护重要的客户数据。

可以看出这些漏洞都是利用了HTTP2.0宽带使用少、加载时间短的特点来实现攻击。Imperva的研究员给出一个建议,企业或用户通过建立Web应用防火墙(WAF)和打虚拟补丁,就可以在引入HTTP2.0的同时,保护他们的关键数据和应用。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
9月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
9月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
609 0
|
10月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
555 18
|
10月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
483 14
|
11月前
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
1327 9
|
11月前
|
存储 数据库 Python
使用HTTP POST协议将本地压缩数据发送到服务器
总的来说,使用HTTP POST协议将本地压缩数据发送到服务器是一个涉及多个步骤的过程,包括创建压缩文件,设置HTTP客户端,发送POST请求,以及服务器端的处理。虽然这个过程可能看起来复杂,但一旦你理解了每个步骤,就会变得相对简单。
389 19
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
887 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Datanode的日志中看到: 10/12/14 20:10:31 INFO hdfs.DFSClient: Could not obtain block blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.
823 0
|
Web App开发 大数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
                                                                               1.
1919 0
|
Web App开发 Apache
下一篇
开通oss服务