最近更新时间:2026-07-15 19:48:01
若您的加速域名带宽突增,怀疑遭遇恶意攻击,可依托 CDN 离线日志分析攻击时段访问特征,针对性配置 Referer 防盗链、IP 和UA黑白名单等安全防护策略,完成域名安全加固。
CDN 离线日志完整记录终端用户全量访问行为,标准日志字段样例如下:
x.x.x.x [07/May/2025:15:06:16 +0800] 2 82 858 www.test.top GET http://www.test.top/111.txt HTTP/1.1 TCP_HIT/200 text/plain "-" "curl/7.29.0"各字段从左到右含义如下所示。
字段顺序 | 字段 | 描述 |
1 | remote_addr | 请求者的显式 Internet 地址。中间代理和防火墙可能会隐藏发送请求的计算机的实际地址。如果不支持端口,则直接写IP |
2 | time_local | 打印日志时的时间。使用strftime(),术语的格式为 [%d/%b/%Y:%H:%M:%S %z] |
3 | request_time | 从服务器传输请求的毫秒数。该值计算从收到请求到发出响应的最后一个字节的时间。由于网络延迟,从客户端计算出的时间可能会更长(单位毫秒) |
4 | request_length | 截止本次日志打印时,接受的字节数,包含http协议头。GET为请求头大小;POST为请求头大小+内容大小 |
5 | bytes_sent | 截止本次日志打印时,发送的相应字节数,包括http协议头的支持 |
6 | HOST | 计费的频道名 |
7 | request_method | 请求方法 |
8 | scheme://$host$request_uri | 请求URL(含协议、域名、端口、路径、问号后面的参数) |
9 | server_protocol | 协议/版本 |
10 | cache_status/$upstream_status | TCP_HIT为cache状态200位响应给客户端的HTTP状态码 |
11 | sent_http_content_type | MIME content type,既Content-Type的值 |
12 | Referer | HTTP 引用站点标头的值(如果存在)发送请求时,HTTP 用户代理(例如,浏览器)通常会将此标头设置为链接的 URL 或嵌入页面 |
13 | User-Agent | HTTP用户代理标头的值 |
在 CDN控制台【日志管理】页面查看域名日志离线日志。
选择需要查询的加速域名和日期,在需要下载的日志行单击下载,即可将日志下载到本地。
将下载完成的压缩包进行解压,获取纯文本格式的原始日志文件,每条日志严格按照标准字段顺序记录。
若需批量分析多个分片日志文件,推荐两种标准化处理方式:
将本地解压后的所有日志文件,统一上传至 Linux 服务器指定目录,便于集中解析、统计与检索;
无需本地下载中转,直接在 Linux 服务器上通过wget命令,拉取对象存储中存放的 CDN 离线日志文件链接,完成在线解压与分析。
注意:定制的离线日志需要根据定制字段顺序进行过滤。
当流量突增表现特征为URL 集中时,从URL 维度、IP 维度、地域维度三层联动分析,区分新增正常资源访问与恶意刷量行为。
先在CDN控制台【访问数据统计】功能模块中定位被高频访问的目标 URL,再通过离线日志统计高频URL对应的客户端IP,确认客户端请求次数及地域特征。
筛选指定URL,提取IP并统计每个IP访问次数:
grep 'http://www.test.top/111.txt' 2025-05-07.log | awk -F "\t" '{print $1}' | sort | uniq -c | sort -nr正常场景:如果绝大多数 IP 单次或少量请求、IP 归属地分散在多省市,和业务投放推广地域匹配,则属于用户自然访问或新增业务资源。
异常场景:如果整体 IP 总量少、个别 IP 请求量级远超普通用户,IP 归属地集中在单一区域或与业务推广地域不匹配,如用户国内业务但IP集中在海外,则判断为恶意刷量,可在CDN控制台【自助配置】将IP加入黑名单。
命令说明:
grep 'URL' 日志文件:从日志中只保留包含该 URL 的访问记录,过滤无关请求。
awk -F "\t" '{print $1}':指定制表符 \t 作为日志字段分隔符,提取日志第一列内容,该字段为客户端访问 IP
sort:对 IP 进行排序,方便后续统计。
sort -nr:按照访问次数从大到小倒序排列。
uniq -c:统计每个IP地址出现的次数。
当流量突增表现为 URL 和 IP 都不集中,以 UA 和 Referer 为核心区分正常客户端与恶意扫描攻击。
先在CDN控制台【访问数据统计】功能模块中定位访问量偏高的目标 URL,再通过离线日志统计高频 URL 对应的客户端的 UA 和 Referer 情况,确认 UA 和 Referer 请求次数及特征。
提取日志中的访问量排名前10位的 User-Agent 和 Referer 信息:
grep 'http://www.test.top/111.txt' 2025-05-07.log | awk -F"\t" '{print $13}' | sort | uniq -c | sort -nr | head -n 10grep 'http://www.test.top/111.txt' 2025-05-07.log | awk -F"\t" '{print $12}' | sort | uniq -c | sort -nr | head -n 10排除常见的User-Agent和Referer 信息,根据自己业务情况进行过滤:
awk -F"\t" '{print $13}' 2025-05-07.log | grep -vE "Mozilla|Chrome|Safari|Edge|iPhone|Android|Windows" | sort | uniq -c | sort -nrawk -F"\t" '{print $12}' 2025-05-07.log | grep -vE "\"-\"|yourdomain.com|baidu|google|360|bing|weibo|zhihu|douyin|test|scan|bot|spider|hack" | sort | uniq -c | sort -nr统计空User-Agent的行数,即访问次数:
grep 'http://www.test.top/111.txt' 2025-05-07.log | awk -F '\t' '$13 == "\"-\"" {print}' | wc -l正常场景:请求头包含格式规范的 User-Agent 与 Referer,访问主体为通用浏览器、官方客户端、正规搜索引擎爬虫、自有及合作合法业务站点等为正常请求。
异常场景:如果请求出现大量空 UA、伪造 UA、恶意爬虫标识、自动化测试 / 攻击脚本类 UA,或 Referer 缺失、伪造,叠加高频刷量行为,判定为恶意扫描、入侵攻击,可在CDN控制台【自助配置】将UA和Referer 加入黑名单,拦截非法请求。
1命令说明:
head -10:只保留排名前 10的结果。
grep -vE "关键词1|关键词2:
-v:排除、过滤掉后面写的内容。
E:支持多个关键词一起过滤。
wc -l:统计数量。
当流量突增同时4xx或5xx状态码也有增长,需通过上述方法分析流量是正常请求还是异常攻击,如果是异常攻击可通过CDN控制台【自助配置】设置状态码缓存,设置状态码缓存后CDN 节点直接返回缓存状态码,不再回源,降低源站负载与攻击穿透风险。
纯净模式
