慢速拒绝和解决方案.md
HTTP慢速拒绝服务防御方案
一、背景与问题描述
慢速拒绝服务攻击(LDOS)区别于传统的DDOS或CC攻击。它通过以极低的速度发送数据,旨在耗尽服务器资源。现有的安全插件(如WAF、Anti-CC、流量限速等)主要针对高频次攻击,但对于低频次的慢速拒绝服务攻击防御能力不足。这些插件工作在应用层(L7),处理由envoy解析后的HTTP消息,因此缺少一些关键的“元数据”,如连接时间、请求发起时间等,这使得它们难以有效防御慢速拒绝服务攻击。
二、HTTP慢速拒绝服务攻击方式
攻击者在与HTTP服务器建立连接后,尽可能长时间保持该连接,以占用服务器的socket资源和内存资源。例如,对于一个696字节的HTTP请求,攻击者可能每秒只发送一个字符,导致服务器需要696秒才能接收完整个请求,从而耗尽服务器资源。
三、防御手段
针对HTTP慢速拒绝服务攻击,防御措施包括:
- 限制HTTP请求头超时
- HTTP请求超时
- 流空闲超时
- 连接超时
四、envoy字段介绍
stream_idle_timeout
: 流空闲超时,收到HTTP起始行后开始计时,无数据时发送408回复并关闭连接。默认30秒,范围1-3600秒。request_timeout
: 请求超时,收到HTTP起始行后开始计时,整个请求(请求头、请求体)未在设定时间内接收完毕时发送408回复并关闭连接。默认60秒,范围1-300秒。request_headers_timeout
: 请求头超时,收到HTTP起始行后开始计时,请求头未在设定时间内接收完毕时发送408回复并关闭连接。默认5秒,范围1-60秒。common_http_protocol_options.idle_timeout
: 连接空闲超时,建立TCP连接后无数据时断开连接。默认30秒,范围1-3600秒。common_http_protocol_options.max_connection_duration
: 连接超时,建立TCP连接后的最大持续时间,超时则断开连接。默认值不受限,范围1秒-365天。
总结
本文档提供了对HTTP慢速拒绝服务攻击的基本理解以及使用envoy配置来防御这类攻击的方法。然而,需要注意的是,实施这些防御措施时应考虑到攻击检测、误报处理、多层防御策略、性能考量、环境适应性以及定期更新和维护策略,以确保既有效地防御攻击,又不影响正常用户的体验。
HTTP慢速拒绝攻击抵御 石犀方案
1 |
|
多层防御策略
针对“缺少多层防御策略”的缺陷,可以通过以下几个方面来补充和完善设计:
1. 网络层(L3/L4)防御
流量监控与异常检测:
- 实施持续的流量监控,使用机器学习或基于规则的系统来识别异常流量模式。
- 部署入侵检测系统(IDS)和入侵防御系统(IPS)来识别和阻止可疑流量。
速率限制和流量整形:
- 在网络边界实施速率限制,以减少到达应用层的恶意流量。
- 使用流量整形技术来控制流量的速率和量,确保关键服务的可用性。
黑名单/白名单:
- 基于IP地址或地理位置实施黑名单或白名单策略,阻止已知的恶意来源。
分布式防御:
- 使用内容分发网络(CDN)或其他分布式解决方案来分散流量,减轻单点压力。
2. 应用层(L7)防御
会话管理:
- 实施严格的会话管理,例如会话超时和限制并发连接数,以防止资源被过度占用。
自定义规则:
- 根据应用的特定需求和行为模式,定制WAF(Web应用防火墙)规则。
行为分析:
- 对用户行为进行分析,识别出与正常用户行为显著不同的模式。
3. 系统级防御
资源分配和限制:
- 在操作系统层面限制进程资源使用,例如CPU和内存使用限制,防止单个进程耗尽系统资源。
高可用性和冗余:
- 设计高可用性架构,包括负载均衡和故障转移机制,以确保服务的连续性。
4. 响应和恢复计划
紧急响应计划:
- 制定并测试紧急响应计划,以便在攻击发生时迅速采取行动。
备份和恢复:
- 定期备份关键数据和配置,确保在攻击后能够快速恢复服务。
5. 持续监控和评估
安全审计和日志分析:
- 定期进行安全审计,分析日志以识别潜在的安全漏洞或攻击迹象。
性能和安全测试:
- 定期进行性能和安全测试,以评估防御措施的有效性。
慢速拒绝和解决方案.md
https://abrance.github.io/2023/11/30/domain/network/慢速拒绝和解决方案/