FreeBuf|HTTP/3协议的安全优势与挑战( 三 )


当大规模执行时 , 相同的攻击可能会对服务器造成拒绝服务攻击 , 并保留多个连接 , 直到连接状态过期 。 保持连接有效的另一种攻击方法是更改其他参数 , 例如源地址令牌 , 从而防止客户端建立任何连接 。
2.UDP放大攻击
为了成功进行放大攻击 , 攻击者必须欺骗受害者的IP地址 , 并将UDP请求发送到服务器 。 如果服务器发回更重要的UDP响应 , 则攻击者可以大规模利用此服务器行为并创建DDOS攻击情形 。
具体来说 , 在QUIC中 , 当对手从目标接受地址验证令牌并释放最初用于生成令牌的IP地址时 , 就会发生UDP放大攻击 。 攻击者可以使用相同的IP地址将0-RTT连接发送回服务器 , 该IP地址可能已被改为指向不同的端点 。 通过执行此设置 , 攻击者可以潜在地指示服务器向受害服务器发送大量流量 。 为了防止这种攻击 , HTTP/3具有速率限制功能和短暂的验证令牌 , 可以充当DDOS攻击的补偿控制 , 同时部分缓解攻击情形 。
3.流量耗尽型攻击
当对手有意启动多个连接流时 , 就会发生流耗尽攻击 , 这可能导致端点耗尽 。 攻击者可以通过反复提交大量请求来利用穷尽序列 。 尽管特定的传输参数可能会限制并发活动流的数量 , 但是在某些情况下 , 可能会故意将服务器配置设置为更高数值 。 由于服务器的协议配置增加了协议性能 , 因此受害服务器可能成为此类攻击的目标 。
4.连接重置攻击
连接重置攻击主要是向受害者发送无状态重置 , 从而可能产生类似于TCP重置注入攻击的拒绝服务攻击 。 如果攻击者可以获得具有特定连接ID的连接生成的重置令牌 , 则可能存在潜在的攻击媒介 。 最后 , 攻击者可以使用生成的令牌重置具有相同连接ID的活动连接 , 从而使服务器等待连接 , 直到发生超时为止 。 如果大规模进行此攻击 , 则服务器必须大量消耗其资源 , 以等待连接完成 。
5.QUIC版本降级攻击
QUIC数据包保护为通信中的所有数据包(版本协商数据包除外)提供身份验证和加密 。 版本协商数据包旨在协商用户代理和服务器之间QUIC的版本 。 该功能可能允许攻击者将版本降级到QUIC的不安全版本 。 该攻击目前暂时不会发生 , 因为只有QUIC的一个版本 , 但是将来需要注意 。
6.缺少监视支持
尽管一些用户代理 , 服务器和信誉良好的网站支持HTTP3/QUIC , 但是许多网络设备(例如反向/正向代理 , 负载均衡器 , Web应用程序防火墙和安全事件监视工具)并不完全支持HTTP/3 。 与TCP不同 , QUIC连接中不需要套接字 , 这使得检测主机和恶意连接变得更加困难 。 恶意攻击者可能能够通过QUIC中继恶意有效载荷并执行数据泄露攻击 , 并且保持隐身状态 , 因为大多数检测工具无法检测到QUIC流量 。
QUIC的历史
2016年 , 互联网工程任务组(IETF)开始标准化Google的QUIC , 并宣布IETFQUIC成为新HTTP/3版本的基础 。 但是 , 出于性能和安全方面的考虑 , IETFQUIC与原始QUIC设计大相径庭 。
TCP上的传统Web流量需要三向握手 。 QUIC使用UDP , 由于往返次数减少和发送的数据包减少 , 因此延迟减少 , 从而加快了网络流量传输 。 UDP除了速度更快之外 , 还具有其他优点 , 包括连接迁移、改进延迟、拥塞控制和内置加密 。 根据Google的说法 , “与TCP+TLS的1-3次往返相比 , QUIC握手通常需要零往返来发送有效负载 。 ”第一个连接需要一个往返 , 而随后的连接则不需要任何往返 。 同样 , 由于QUIC用于多路复用操作 , 因此与TCP相比 , 它在数据包丢失方面做得更好 , 并且握手速度更快 。
Google的QUIC版本现在是gQUIC 。 从gQUIC进化的HTTP/3 , 具备了重大的改进 , 并得到IETF工作组的贡献和增强 。 尽管从技术上讲HTTP/3是完整的应用程序协议 , 但QUIC指的是基础传输协议 , 它不限于服务Web流量 。 UDP是无连接的 , 不是很可靠 。 QUIC通过在UDP上添加类似于TCP的堆栈 , 来添加可靠的连接 , 并在其之上重新发送具有流控制功能的方式来克服这些限制 , 同时解决了TCP的行头阻塞问题 。