1.
什么是异常流量及首要判断要点
- 异常流量通常表现为短时间内请求量暴增、请求模式异常或回源请求激增。
- 先在阿里云CDN控制台查看边缘流量与回源流量曲线,判断是否为CDN层面放大。
- 判断是否为DDoS(流量层/连接层)还是爬虫/刷取(应用层),两者应对策略不同。
- 快速确认影响范围:单个域名、某些URL还是全站;若仅部分URI被命中,可能是爬虫或探针。
- 同时查看WAF告警和域名解析记录,排除域名被误解析或DNS放大类攻击。
2.
在阿里云控制台与日志中快速定位步骤
- 在CDN控制台查看“边缘监控/回源监控”,定位高请求时间段并导出边缘访问日志。
- 下载回源日志(Origin Logs),比较回源请求数与边缘请求数的比值以判定是否为回源放大。
- 使用关键词统计:按IP、UA、URI、Referer 分组统计TOP N。示例命令(概念说明):tail access.log | awk '{print $1}' | sort | uniq -c | sort -rn。
- 对异常IP进行ASN与Geo定位(whois或在线ASN查询),判断是否为同一ASN或同一国家段。
- 检查请求特征:是否带相同UA/随机UA,是否带大量空Referer或相同Cookie。
3.
示例数据表(边缘TOP来源IP与请求量)
- 下表为模拟导出的边缘日志汇总,用于快速判断可疑来源与请求速率。
| 来源IP |
请求数(10分钟) |
请求/秒(平均) |
ASN/国家 |
| 45.77.23.11 |
18,000 |
30 |
AS45678 / CN |
| 203.0.113.45 |
6,000 |
10 |
AS12345 / HK |
- 表中可以看到单IP在10分钟内的请求密度,结合ASN可判断是否为同一运营商或云服务商。
- 若多个来源同属于某ASN,考虑联系该云服务商或直接通过CDN做AS级别的短期屏蔽。
4.
利用网络抓包与服务器侧数据进一步确认
- 在回源服务器上使用tcpdump抓取异常时间段的流量,关注三次握手与SYN速率以区别连接攻击;示例抓包目标:端口80/443。
- 使用netstat/ss查看半连接数与每IP连接数:若大量TIME_WAIT或SYN_RECV,说明连接层攻击。
- 在应用层查看nginx access.log,按URI、参数、Cookie聚合统计,定位是否为单一URI被大量请求。
- 若能复现攻击请求,可以按UA或特征在CDN层设置防护策略(规则/ACL)屏蔽或限速。
- 必要时在服务器端启用连接限制与短时黑名单(iptables recent模块或fail2ban)以阻断高频IP。
5.
服务器与CDN的具体防护配置示例
- 示例服务器:VPS配置:8 vCPU、16GB 内存、带宽 200 Mbps,nginx worker_processes 4,worker_connections 65536。
- nginx限速样例:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_req zone=one burst=20 nodelay;(限制单IP到达速率)
- iptables示例:使用 connlimit 限制每IP最大并发连接数:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP。
- 在阿里云CDN侧开启WAF/自定义规则,针对高频URI或恶意UA做直接拒绝或验证码挑战。
- 对于明显的DDoS流量,启用阿里云DDoS高防或购买清洗带宽,临时提升回源带宽并启用全站切换到静态页。
6.
真实案例:某电商站点的CDN异常流量处置
- 案例背景:某电商促销期,阿里云CDN边缘流量在10分钟内从峰值1000 r/s升至18,000 r/s,回源请求同步上升。
- 快速定位:导出边缘日志并统计发现90%请求来自同一ASN的三个IP段,UA为自定义爬虫UA,且攻击集中在搜索接口。
- 处置步骤:1) 在CDN侧临时封禁该ASN/IP段;2) 对搜索接口启用验证码与限流规则;3) 在源站启用nginx limit_req并增加worker进程。
- 服务器配置调整:源站从4核升级到8核,nginx worker_processes 8,worker_rlimit_nofile 131072,带宽临时扩至500 Mbps。
- 结果与思考:流量在15分钟内回落至正常,后续追加WAF自定义规则并将异常IP加入自动化黑名单,建议建立流量告警与自动化阻断链路。