TCP Flood 防御:对抗连接耗尽
针对SYN Flood等传输层攻击,防御的核心在于区分合法连接与恶意连接,并在建立连接前进行验证。
1. SYN Cookie 与 SYN Proxy
这是防御SYN Flood最经典的技术。
- SYN Proxy (代理):防御设备代替服务器与客户端完成三次握手。只有当客户端发送了合法的ACK包(完成握手)后,防御设备才与后端服务器建立连接。这有效屏蔽了伪造源IP的半连接请求。
- SYN Cookie:当SYN队列满时,服务器不分配资源,而是根据源IP、端口等信息计算出一个Cookie值作为ISN(初始序列号)回复给客户端。如果客户端回复了包含正确确认号的ACK,服务器才认为连接有效并分配资源。
2. 首包丢弃 (First Packet Drop)
由于大多数DDoS攻击工具为了追求发包速度,通常不会处理重传逻辑。防御设备可以策略性地丢弃该IP的第一个SYN包。正常客户端的TCP协议栈会超时重传,而攻击工具可能不会重传。通过这种方式可以过滤掉大量简单的攻击流量。
UDP Flood 防御:对抗宽带拥塞
UDP无连接的特性使得防御较为困难,通常依赖限流和特征匹配。
1. 指纹识别 (Fingerprinting)
攻击工具生成的UDP包往往具有特定的Payload特征(如固定的字符串、全0填充等)。防御设备通过深度包检测(DPI)提取这些特征生成指纹,并配置过滤规则丢弃匹配的流量。对于随机填充的UDP包,可以统计其长度分布、TTL分布等异常特征。
2. 限速与白名单
对于类似游戏服务器等必须使用UDP的业务,可以实施精细化的限速策略。例如,限制单个源IP的UDP包速率。更安全的做法是采用白名单机制(如果客户端IP有限)或在应用层实现私有协议的认证。
网络层防御:ACL 与 BGP Flowspec
1. ACL (访问控制列表)
在骨干网路由器或防火墙上配置ACL,是最基础的防御手段。
- 封禁协议:如果业务不需要ICMP,直接阻断所有ICMP流量。
- 封禁端口:仅开放业务必需的端口(如80/443),封禁其余所有高危端口(如1900, 11211等易被反射利用的端口)。
2. BGP Flowspec
当攻击流量极大,传统ACL配置繁琐且性能受限时,BGP Flowspec 技术就派上用场了。它允许管理员向网络中的所有路由器分发细粒度的流量过滤规则(如源IP、目的IP、包长度、协议类型等)。路由器收到Flowspec路由后,可以直接在硬件转发层面执行丢弃或限速操作,实现全网级的快速防御。
3. RTBH (Remote Triggered Black Hole)
RTBH是一种利用BGP协议实现远程触发黑洞路由的技术。当检测到针对某个IP的攻击时,管理员在触发路由器上注入一条指向该IP的黑洞路由,通过iBGP扩散到所有边缘路由器。攻击流量在到达目标之前就被边缘丢弃。相比手动ACL,RTBH可以在数秒内全网生效。虽然牺牲了受攻击IP的可用性,但有效保护了其他业务。
飞盾云定制级有状态防火墙的连接跟踪
飞盾云定制级有状态防火墙通过维护连接状态表(Connection Tracking Table)来判别流量合法性。每个经过防火墙的TCP连接都会被记录其状态(NEW/ESTABLISHED/RELATED),只有属于已建立会话的数据包才被放行。这对防御ACK Flood非常有效,因为没有对应SYN记录的ACK包会被直接丢弃。
但需注意,连接表本身也是攻击目标。SYN Flood可以填满连接表,导致防火墙拒绝新连接。因此,合理设置连接表大小和超时时间,并部署SYN Proxy在防火墙前端,是必要的配套措施。
总结
网络层与传输层的防御侧重于"硬碰硬"的流量对抗和协议栈层面的验证。通过SYN Cookie、ACL、BGP Flowspec和RTBH等技术的组合,可以有效过滤大规模的洪水攻击,保障网络基础设施的存活。选择合适的技术组合取决于网络规模和业务可用性要求。