出口带宽有限,意味着企业的网络闸门天生就比别人窄。当小流量DDoS攻击来袭时,攻击者不需要发动海啸般的流量,只需用几兆或几十兆的垃圾数据持续堵塞这条狭窄的出口,就能耗尽所有带宽资源,让合法用户完全无法访问业务。这种攻击的狡猾之处在于,它精准地踩在企业带宽的临界点上,流量不大,但足以致命。应对的核心逻辑必须从“硬抗”转变为“巧卸”,既然物理带宽无法瞬间扩容,就必须在流量进入出口前的上游环节,或者通过精巧的流量调度,把清洗过的干净流量送回来。

利用云清洗进行上游牵引

最直接有效的思路,是把防御阵地前移,不要等到攻击流量抵达企业出口路由器再处理。云清洗服务商拥有T级别的带宽储备,通过将业务域名解析到清洗服务商提供的IP地址,或者通过BGP协议将企业公网IP段宣告给清洗服务商,所有进出流量先经过清洗中心。在这里,攻击流量被识别并丢弃,只有清洗后的正常业务流量通过GRE隧道或专线回注到企业出口。对于带宽只有几十兆的企业,回注的干净流量可能只有几兆,完全在出口承受范围内。这种方式的本质是让大带宽方替企业承受攻击,企业只为干净流量买单。部署时要注意回注链路的稳定性,如果回注链路本身质量差,正常访问也会受影响。

精确限速与流量整形

当无法使用外部清洗,只能依靠现有设备自救时,必须放弃“全盘接收”的幻想。在出口路由器或防火墙上,针对非核心业务端口的UDP、ICMP等易被利用的协议,直接设置硬性限速。例如,如果正常业务主要走TCP 443端口,可以将UDP总带宽限制在出口总带宽的10%以内,超出部分直接丢弃。同时,启用流量整形策略,为关键业务流量设置最小保证带宽。即便攻击流量塞满了其他通道,核心业务的带宽依然有保障。这种策略虽然不能完全阻止攻击,但能保证核心业务在攻击期间依然可访问,实现带病运行。配置时需要非常清楚自身业务的流量模型,否则容易误伤正常用户。

利用Nginx反向代理进行应用层过滤

对于针对HTTP/HTTPS协议的小流量攻击,比如慢速连接耗尽、CC攻击或针对特定URL的刷量,可以在出口内部署Nginx反向代理层。Nginx的连接数限制模块和请求频率限制模块非常有效。通过limit_conn_zone指令限制单个IP的并发连接数,通过limit_req_zone指令限制单个IP的请求速率。例如,设置单个IP每秒只能请求10次同一个URL,超过则直接返回503或444状态码,不消耗后端服务器资源和出口带宽去返回大量页面内容。更进一步,可以结合map模块和geo模块,对来源IP进行地域或特征匹配,直接拒绝明显异常的请求。这些操作在应用层完成,消耗的计算资源远小于带宽资源,能在攻击流量挤满出口前就将其拦截在内部。

# Nginx 配置示例
http {
    # 定义请求频率限制区域,单个IP每秒10个请求
    limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
    # 定义并发连接数限制区域
    limit_conn_zone $binary_remote_addr zone=perconn:10m;

    server {
        listen 80;
        server_name example.com;

        # 应用并发连接数限制,单个IP最多5个并发连接
        limit_conn perconn 5;
        
        location / {
            # 应用请求频率限制,突发允许20个请求
            limit_req zone=perip burst=20 nodelay;
            proxy_pass http://backend;
        }
    }
}
利用SYN Cookie和连接老化加速

小流量DDoS中,SYN Flood攻击占比很高。攻击者发送大量伪造源IP的SYN包,服务器回复SYN-ACK后一直等待ACK,半连接队列被占满,正常用户无法建立连接。在出口防火墙或负载均衡设备上,必须开启SYN Cookie保护机制。当半连接队列超过阈值时,设备不再将半连接状态存入内存,而是将连接信息加密编码到SYN-ACK包的序列号中发回。如果收到合法客户端的ACK回应,再还原连接信息完成握手。这个过程不消耗服务器内存去维护半连接状态。同时,要主动缩短半连接的超时时间,从默认的几十秒缩短到5秒以内,让伪造的半连接快速老化,腾出资源给正常连接。

丢弃非必要入站流量与关闭无用端口

企业出口带宽有限时,必须对入站流量采取极致的零信任策略。在出口路由器ACL中,只放行明确需要提供服务的端口,比如80、443、22等,其他所有端口一律在入口处丢弃。对于ICMP协议,如果业务不需要ping,直接禁止入站ICMP Echo Request。DNS查询如果企业没有自建对外DNS服务器,就禁止入站UDP 53端口的请求。很多小流量攻击利用的是反射放大原理,比如NTP、SSDP、Memcached反射,这些攻击流量通常发往特定端口。如果这些端口在出口就被丢弃,攻击流量连企业内网都进不去,更谈不上消耗带宽。这相当于把门缝都堵死,只留必要的通道。

启用出口方向的反欺骗与黑名单过滤

小流量攻击有时会伴随着被控主机对外发起请求,消耗上行带宽。虽然上行带宽通常比下行宽裕,但被占满同样会导致业务中断。在出口设备上配置uRPF严格模式,检查每个数据包的源地址是否来自其声称的接口,如果不是则直接丢弃。这能防止内网主机伪造源地址参与攻击。同时,订阅公共威胁情报库,将已知的C2服务器IP、恶意扫描IP等列入动态黑名单,在出口处直接拒绝来自这些IP的入站流量,以及发往这些IP的出站流量。这种过滤消耗的是设备查找规则库的性能,而不是带宽,对于小带宽出口来说性价比很高。

利用CDN进行内容分发与隐藏源站

如果业务以静态内容或可缓存内容为主,将网站接入CDN网络是一种非常取巧的办法。CDN节点遍布各地,拥有海量带宽,用户访问的是CDN节点,而不是企业源站。攻击者发起DDoS时,攻击目标实际上是CDN的边缘节点,这些节点有足够能力吸收攻击。企业需要做的是将源站IP隐藏好,只允许CDN的回源IP访问源站的特定端口,其他所有IP的请求一律拒绝。这样,攻击者找不到源站的真实IP,就无法直接攻击企业出口。即使攻击者通过某种手段获得了源站IP,由于出口只允许CDN节点回源,攻击流量依然被挡在门外。这相当于企业只开了一条只对CDN开放的专用通道,其他所有流量在门口就被丢弃了。

利用Anycast架构分散攻击流量

如果企业拥有多个出口,或者有能力申请多个不同网段的IP地址,可以部署Anycast网络。将同一个业务IP宣告到多个物理位置的出口上,当攻击者向这个IP发起攻击时,攻击流量会根据路由协议被分散到最近的节点上。每个节点只承受一部分攻击流量,单点的带宽压力就降低了。对于小流量攻击,这种分散效应非常明显。原本20M的攻击流量全部涌向一个出口,这个出口可能就瘫痪了。如果分散到4个节点,每个节点只承受5M攻击流量,可能就都在承受范围内。Anycast的部署需要一定的网络架构调整,但对于有多个分支机构或数据中心的企业来说,是值得投入的方向。

实时监控与自动化响应

小流量DDoS攻击的隐蔽性在于,它可能混在正常流量中,不容易被人工发现。等到运维人员察觉时,业务可能已经中断了一段时间。必须建立基于NetFlow、sFlow或IPFIX的流量分析系统,持续监控出口流量的协议占比、包速率、连接数等指标。当检测到UDP流量占比突然飙升、SYN包速率异常增高、或者来自某个国家的流量异常增多时,自动触发预设的防御策略。例如,自动将可疑IP段加入BGP黑洞路由,自动调整QoS策略,或者自动向云清洗服务发送牵引请求。这套自动化闭环的核心是缩短从发现到处置的时间窗口,尽量在攻击对业务造成明显影响前就完成压制。

准备应急备用链路

当所有技术手段都用上,攻击流量依然精准地填满了出口带宽时,最后一道防线是备用链路。这条链路不需要带宽很大,可能只是一条4G/5G专线,或者另一家运营商的低带宽线路。在攻击期间,将核心管理流量、运维访问流量切换到备用链路上,保证至少能远程管理设备、查看状态、进行应急操作。如果业务允许,也可以将最核心的业务IP通过备用链路宣告出去,维持最低限度的服务能力。这条备用链路平时不承载主要业务流量,只在主链路被完全拥塞时启用,是最后的逃生通道。

从源头遏制反射放大攻击

如果企业自身网络内存在开放的DNS解析器、NTP服务、Memcached服务等,很可能被攻击者利用作为反射放大器,对外发起攻击。这不仅危害他人,也会消耗企业宝贵的上行带宽。必须严格检查内网所有对外开放的服务,关闭不必要的UDP服务,对必须开放的DNS服务限制递归查询范围,只允许授权用户使用。通过定期扫描自身公网IP段的开放端口,及时发现并关闭潜在的反射源。这样做既是保护互联网生态,也是保护企业自身有限的出口带宽不被内部问题消耗。

深入理解攻击特征并定制过滤规则

小流量攻击往往有鲜明的特征,比如攻击载荷固定、包长度一致、源端口固定、TTL值异常等。通过抓包分析攻击样本,可以提取出这些特征,然后在出口设备上编写针对性的过滤规则。例如,如果发现攻击包的UDP载荷中固定包含某个字符串,就可以通过深度包检测直接丢弃包含该特征的数据包。如果攻击包的IP头部TTL值全部是某个固定值,而正常用户流量的TTL值分布更广泛,就可以对TTL异常的包进行限速或丢弃。这种定制化过滤非常精准,几乎不会误伤正常用户,而且消耗的设备性能很小,非常适合在带宽有限的出口上实施。前提是企业需要有具备抓包分析能力的运维人员,能够从攻击流量中提炼出独特的指纹特征。