HTTP/HTTPS 异常会话攻击(CC攻击)

1. HTTP Flood(Challenge Collapsar)

这是应用层最常见的攻击形式。攻击者利用大量代理服务器或僵尸主机向目标Web服务器发送大量的HTTP GET或POST请求。这些请求可以是正常的请求(如访问首页),也可以是针对特定重负载资源的请求(如搜索、数据库查询)。

  • Request Flood:直接发送大量请求,使Web服务器忙于处理连接请求而资源耗尽(如线程池耗尽)。
  • Download Flood:反复下载大文件。
  • Database Attack:发送复杂的查询请求,大量消耗数据库CPU和IO资源。

2. HTTPS 攻击

随着HTTPS的普及,利用SSL/TLS协议进行的CC攻击也日益增多。由于HTTPS握手过程涉及复杂的非对称加密计算,服务器的CPU消耗远大于客户端。攻击者可以通过频繁发起SSL握手请求或发送畸形的TLS报文,迅速耗尽服务器的计算资源(CPU)。这类攻击不仅难以清洗(流量加密),而且对服务器的打击更为精准。

DNS Query Flood

1. 域名解析攻击

DDoS攻击不仅可以针对Web服务器,还可以针对DNS服务器。DNS Query Flood是指攻击者向目标域名的DNS服务器发送大量的解析请求(Query)。如果DNS服务器无法处理海量的请求,正常用户的域名解析将被延迟或失败,导致无法访问网站。

2. 随机子域名攻击(Random Subdomain Attack)

攻击者不断生成不存在的随机子域名(如`abcd.example.com`, `1234.example.com`)向DNS服务器发起查询。由于这些子域名在缓存中不存在,DNS服务器必须向上级(权威DNS或根DNS)进行递归查询。大量递归请求不仅耗尽本地DNS资源,还会对整个DNS层级架构造成压力。

API 攻击

1. API Abuse(API滥用)

随着微服务架构的流行,API成为了攻击者的新目标。API攻击不同于传统的流量型DDoS,它更像是一种“逻辑层”的CC攻击。攻击者利用API接口的设计缺陷或缺乏认证保护,高频调用某些敏感接口(如发送短信验证码、注册、查询用户信息等)。

  • 资源消耗:大量合法但恶意的调用耗尽后端计算资源。
  • 费用消耗:恶意调用第三方付费API(如短信网关),导致受害者产生巨额账单。

防御策略

针对应用层攻击,防御策略需要更加精细化:

  • 人机验证(Captcha):在关键页面(如登录、注册、搜索)启用验证码,区分人机。
  • 频率限制(Rate Limiting):对单个IP或用户ID的请求频率进行严格限制。
  • 行为分析:通过机器学习分析正常用户的访问模式,识别异常的访问行为(如请求间隔过于规律、User-Agent单一等)。
  • WAF(Web应用防火墙):部署WAF可以有效拦截常见的应用层攻击特征。

慢速攻击(Slow Attack)

1. Slow Read Attack

攻击者与目标建立正常的HTTP连接,但在读取服务器响应时故意设置极小的TCP接收窗口(如1字节),迫使服务器长时间保持连接状态并缓存响应数据。每个连接消耗少量服务器资源,但当成千上万的慢速连接同时建立时,服务器的并发连接数和内存会被迅速耗尽。

2. R.U.D.Y (Are You Dead Yet)

R.U.D.Y攻击针对HTTP POST请求。攻击者声明将提交一个非常大的POST Body(通过Content-Length头部设置极大值),然后以极慢的速度逐字节发送数据。服务器必须保持连接,等待完整数据到达。这种攻击流量极低(可能仅需数KB/s),却能有效瘫痪目标Web应用。

WebSocket Flood

随着实时通信应用(如在线聊天、游戏、协同编辑)的普及,WebSocket协议成为新的攻击面。攻击者可以:

  • 连接耗尽:建立大量WebSocket长连接但不发送数据,耗尽服务器的连接池。
  • 消息洪水:通过已建立的WebSocket连接高频发送大量消息,消耗服务器CPU和内存。
  • 大帧攻击:发送超大的WebSocket帧,触发服务器的内存分配和处理开销。

总结

应用层攻击(CC攻击)更具隐蔽性和针对性,往往不需要巨大的带宽,就能利用服务器端的逻辑缺陷或资源瓶颈造成拒绝服务。从HTTP Flood到Slow Attack再到WebSocket Flood,攻击手段不断演进。防御CC攻击需要结合多种手段,构建多层次的防御体系。