在数字化时代,域名业务就像企业的 “线上门面”,一旦遭遇异常盗刷或网络攻击,轻则服务器瘫痪、带宽成本飙升,重则客户流失、声誉扫地。某游戏公司曾在上线首日因 DDoS 攻击瞬间瘫痪,不仅损失百万营收,更让数万玩家直接卸载;某视频平台因盗链问题,单月带宽费用暴涨 300%…… 这些案例都在提醒我们:域名安全防护,不是选择题,而是生存题。
域名遭遇异常盗刷或攻击,背后往往藏着明确的动机。搞懂这些原因,才能针对性设防:
DDoS攻击是一种基于DoS特殊形式的拒绝服务攻击,是一种分布的、协同的大规模攻击方式,处于不同位置的多个攻击者同时向一个或多个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。攻击者进行一次DDoS攻击,需要经过了解攻击目标、攻占傀儡机、实际攻击三个主要步骤,如下图所示:

CC攻击是攻击者使用代理服务器向受害服务器发送大量貌似合法的请求,攻击者控制某些主机不停地发大量协议正常的数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃,如下图所示:

通过如下的通知,可以清晰看到TOP客户端IP、TOP URL、TOP UA、TOP Referer等信息。 可以直接针对异常来源进行常规封禁屏蔽处理即可。


可以按固定周期维度进行报告推送,关注是否存在异常,无需人工二次分析,即可发现同比数据是否有异常,TOP访问信息等内容:

https://console.cloud.tencent.com/cls/alarm/list
执行语句参考:
1、统计对应时间段PV数:
*| select histogram( cast(TIMESTAMP as timestamp),interval 1 day) as time,count(*) as PV group by time order by time desc limit 1
2、统计同比昨天同时间段涨幅:
*| SELECT compare[1] AS today, compare[2] AS yesterday, compare[3] AS ratio FROM ( SELECT compare(PV, 86400) AS compare FROM ( SELECT COUNT(*) AS PV ) ) limit 100触发条件:PV大于指定值或同比增长200%

创建多维分析,推送需要的内容:

语句参考:
正常状态码,TOP 5 客户端IP:
"EdgeResponseStatusCode" < 400 | select "ClientIP","ClientRegion","ClientState","ClientISP", count(*) as pv group by "ClientIP","ClientRegion","ClientState","ClientISP" ORDER by pv desc limit 5
正常状态码,TOP 5 URL:
"EdgeResponseStatusCode" < 400 | select "RequestUrl" as "URL",count("RequestUrl") as "count_RequestUrl" group by "RequestUrl" order by "count_RequestUrl" desc limit 5
正常状态码,TOP 5 UA:
"EdgeResponseStatusCode" < 400 |select "RequestUA" as "UA",count("RequestUA") as "count_RequestUA" group by "RequestUA" order by "count_RequestUA" desc limit 5
正常状态码,TOP 5 Referer:
"EdgeResponseStatusCode" < 400 |select "RequestReferer" as "referer",count("RequestReferer") as "count_RequestReferer" group by "RequestReferer" order by "count_RequestReferer" desc limit 5设置告警频率和通知渠道即可。
直接导入json文件创建:

https://console.cloud.tencent.com/cls/dashboard
自行创建
选择Nginx访问模版:

修改缺失字段:

对应字段:
ClientIP | 客户端 IP |
|---|---|
RequestHost | 请求的 Host |
RequestUA | 请求的 User-Agent |
RequestUrl | 请求的 URL Path |
EdgeResponseStatusCode | 状态码 |
可以再根据个人需求添加图表、修改过滤条件、修改图表信息等。
在配置监控之前,首先要明确监控的目标,这里主要是以流量异常、攻击、盗刷发现为目标。
需要考虑如下几个因素,按业务场景进行配置,并持续进行优化调整,避免告警失真。

策略类型按域名维度(CDN产品)选择,并勾选对应域名实例ID;EO产品选择站点/域名方式。
触发条件--参考:
说明:
1、从请求数、流量、带宽角度在同比和环比不同角度分别配置告警阈值策略,例如:条件1/2/3,条件5/6/7;
2、增加基础阈值,带宽或者请求数或者流量设置基线,防止小流量或请求导致的波动,例如条件4;
3、复合条件组成,多条件绑定,同时满足同比上涨、环比上涨,达到基线以上,例如:(1 AND 4 AND 5)OR(2 AND 4 AND 6)OR(3 AND 4 AND 7)

说明:
1、从请求数、流量、带宽角度在同比和环比不同角度分别配置告警阈值策略;
2、增加基础阈值,带宽或者请求数或者流量设置基线,防止小流量或请求导致的波动;
3、复合条件组成,多条件绑定,同时满足同比上涨、环比上涨,达到基线以上触发告警。
可以直接导入模版调整阈值即可:

地址:https://console.cloud.tencent.com/monitor/alarm/template
导入告警模版
编辑修改阈值:

新建告警策略,选择导入的模版即可:

通过实际的告警信息及业务情况,调整合理的阈值,避免告警失真。
https://cloud.tencent.com/document/product/228/6316
shell脚本:
下载对应时间CDN离线日志,执行脚本获取TOP信息:

使用参考:https://cloud.tencent.com/developer/article/1751515
下载地址:https://kk-1253792666.file.myqcloud.com/cdn/cdn.sh
离线日志分析参考示例:
1、查看TOP 客户端IP:zcat *.gz|awk '{print $2}' | sort | uniq -c | sort -rn |head -10
2、统计TOP 省份:zcat *.gz|awk '{print $6}' | sort | uniq -c | sort -rn |head -10
3、统计TOP URL分布:zcat *.gz|awk '{print $4}' | sort | uniq -c | sort -rn |head -10
4、统计TOP UA分布:zcat *.gz|awk -F '"' '{print $2}'| sort | uniq -c | sort -rn |head -10
5、统计TOP Referer分布:zcat *.gz|awk '{print $9}' | sort | uniq -c | sort -rn |head -10https://cloud.tencent.com/document/product/1552/96007
SQL版本(开通实时日志):
1、查看TOP 客户端IP:select "ClientIP" as "ClientIP",count("ClientIP") as "count_ClientIP" group by "ClientIP" order by "count_ClientIP" desc limit 50
2、统计TOP 省份:select "ClientState" as "省份",count("ClientState") as "count_ClientState" group by "ClientState" order by "count_ClientState" desc limit 50
3、统计TOP URL分布:select "RequestUrl" as "URL",count("RequestUrl") as "count_RequestUrl" group by "RequestUrl" order by "count_RequestUrl" desc limit 50
4、统计TOP UA分布:select "RequestUA" as "UA",count("RequestUA") as "count_RequestUA" group by "RequestUA" order by "count_RequestUA" desc limit 50
5、统计TOP Referer分布:select "RequestReferer" as "referer",count("RequestReferer") as "count_RequestReferer" group by "RequestReferer" order by "count_RequestReferer" desc limit 50
6、统计TOP 节点IP分布:select "EdgeServerIP" as "节点IP",count("EdgeServerIP") as "count_EdgeServerIP" group by "EdgeServerIP" order by "count_EdgeServerIP" desc limit 50通过对单 IP 单节点在每一秒钟的访问次数进行限制,进行高频 CC 攻击抵御、防恶意用户盗刷等。
注意:
一个WEB页面的访问,可能同时加载同一个域名下多个资源,这样就会出现qps比较高情况。
配置合理QPS阈值,可以有效防止CC攻击,但是如果阈值不合理会影响正常客户的访问。
根据日志分析结果,把恶意访问的IP加入到IP黑名单,拦截此部分IP的访问,也可以配置IP段。
根据访问日志把对应爬虫类或者异常UA头加入到黑名单,限制访问。
对域名设置带宽封顶阈值,当域名在一个统计周期(5分钟)内产生的带宽超过指定阈值时,会根据您的配置直接关闭 CDN 服务,所有访问均返回 404。
注意:如果重点关心费用问题可以选择,否则不建议配置。不然关闭CDN服务会影响到业务的正常访问。
对业务资源的访问来源进行控制,通过对用户 HTTP Request Header 中 referer 字段的值设置访问控制策略,从而限制访问来源,避免恶意用户盗刷,防止盗链请求。
根据大数据统计结果确认异常客户端 IP 或 UA 信息,将自动进行拦截,避免恶意用户的盗刷,产生非正常请求。
除了 IP、UA、Referer,还能按地域、URL 拦截。比如 “拦截来自某国家的所有请求”“禁止访问 /test.zip”,灵活应对不同场景。

配置方法例如:

开启独立 DDoS 防护后,系统会自动识别异常流量并 “清洗”,只让正常请求到达服务器。

优势:访问频率限制基于最近 7 天请求速率基线,每 24 小时自动更新频次限制,无需自行设置。
注意:前期处置方式配置为观察,业务稳定后,频次限制阈值得到合理数据改为拦截或js挑战;
如果业务存在高频访问地址,可以配置例外规则,防止误拦截。
速率基线学习、头部特征统计分析和客户端 IP 情报,实时动态生成防护规则。
针对来自高危客户端、或者携带高危头部特征的请求进行人机识别。
注意:业务重大变更(接入、切量、新增业务、活动上新)时,业务基线可能造成误拦截,可将处置方式暂时修改为观察,待业务平稳后开启。
比如 “1 分钟内请求超 300 次的 IP,封禁 30 分钟”“10 秒内请求 404 页面超 100 次的 IP,拦截 1 小时”,精准打击高频恶意行为。
通过限制最小请求速率和设置超时,缓解慢速传输等攻击场景对站点资源的消耗,避免服务可用性下降。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。