本文介绍了搭建基于多云CDN的流量盗刷防护体系的实践,帮助您从“预防、分析、处置”这三个方面制定全面的防范策略,还介绍了借助多云CDN“流量检测”功能快速应对盗刷攻击的方法。
流量盗刷是指攻击者用不正常的手段,在没有得到授权的情况下,大量获取并消耗 CDN 资源的恶意行为。攻击者常常通过伪造请求特征来绕过常规的访问限制,从而盗取资源。
流量盗刷会给 CDN 用户带来多方面的不良影响:
直接经济损失:攻击产生的高额带宽流量费用会让账单金额大幅增加,在一些例子里,用户一天的损失能达到数万元。
服务稳定性风险:异常流量可能会占用正常的带宽,导致网站访问不流畅或者服务中断。
数据安全威胁:盗刷过程中可能会顺带窃取敏感数据,造成额外的危害。
常见盗刷手段如下表:
攻击类型 | 实施特征 |
---|---|
UA 伪装攻击 | 使用非常规 User-Agent(如非常见浏览器标识)发起海量请求 |
虚假来源伪造 | 通过 curl 等工具伪造合法 Referer,伪装成正常页面跳转 |
集中 IP 爆破 | 单个/少量 IP 在短时间内发起超出正常量级数万倍的请求 |
参数嗅探攻击 | 针对特定 URL 路径(如大文件下载地址)或固定查询参数发起定向攻击 |
要有效防止盗刷攻击,建议从预防、分析、处置三个方面制定策略:
预防:流量盗刷会让流量成本变高,还会影响服务的稳定。主动查看资产使用情况,能早点发现异常并做好应对;通过限制访问速度和频率,可减少异常请求占用资源,降低盗刷造成的资产损失。
分析:盗刷的手段多样但往往有迹可循。分析盗刷期间的请求统计数据和日志,能找出盗刷请求的特征,为精准封禁恶意请求提供依据。
处置:仅仅识别出盗刷还不够,要处理恶意请求。设置访问黑白名单可以直接封禁恶意请求,开启访问鉴权能从根本上提高安全性,防止盗刷发生。
多云CDN提供了多种工具,帮助用户防范盗刷攻击。
维度 | 能力 | 说明 | 效果 |
---|---|---|---|
预防 | 启用火山引擎账户余额预警,当账户可用余额达到预警值时发出提醒 | 及时了解账户资金情况,避免因盗刷导致账户欠费过高 | |
域名监控告警策略 | 配置域名监控告警策略,实时监控域名的流量、请求数、带宽等指标。当指标超过设定阈值时触发告警 | 及时发现流量异常波动,在盗刷初期察觉问题,为后续防范争取时间 | |
支持的功能有:
| 减少客户端请求对带宽、请求数资源的占用,降低盗刷造成的影响 | ||
分析 | 实时统计 - 热点分析 | 关注热点 URL、热点 Referer、热点 UA、热点 IP 等,识别常见模式的盗刷行为 | 快速发现常见的盗刷迹象,及时采取措施应对较为明显的盗刷攻击 |
支持丰富指标及多指标组合分析,可从源 IP、URL 路径、请求参数、User-Agent、Referer 来源等多个维度描绘盗刷请求画像 | 识别隐蔽的盗刷攻击,为制定精准的应对措施提供依据 | ||
处置 - 访问控制 | 地域访问控制 | 根据地域限制访问 | 根据盗刷特征制定相应规则,拦截恶意请求 |
IP 黑白名单 | 封禁特定 IP 的访问 | ||
Referer 黑白名单 | 封禁特定 Referer 的请求 | ||
UA 黑白名单 | 封禁特定 User-Agent 的请求 | ||
Origin 黑白名单 | 封禁特定 Origin 的请求 | ||
自定义拦截规则 | 对请求路径、查询参数和客户端 IP 地址等设置过滤条件,拦截特定的请求 | ||
处置 - 访问鉴权 | URL 鉴权 | 使用时间戳防盗链技术对源站内容的 URL 进行签名,同时对请求进行鉴权,只有通过鉴权的请求才能访问源站内容 | 确保请求的合法性,防止攻击者使用非法的或过期的 URL 进行盗刷 |
远程鉴权 | 若站点有独立的鉴权服务器对用户请求进行鉴权,可以配置远程鉴权,只有通过鉴权的请求才能访问源站内容 |
多云CDN流量检测服务具备“预防 - 分析 - 处置”的一体化能力,能高效、精准且快速地识别盗刷情况。它会汇总全网刷量行为的分析结果,再结合单域名的非正常请求行为分析,自动实时识别和处理盗刷问题。最快能在刷量行为发生后的 10 分钟内完成识别与处置。
开启流量检测后,多云CDN会自动实时分析域名访问行为,找出行为可疑的 IP 地址或 IP 地址段,然后根据你的需求对可疑 IP 采取以下处理措施:
观察模式:只记录可疑 IP 的访问行为,不进行任何处理。
自动封禁:在一段时间内禁止可疑 IP 发出的新请求。
自动限速:在一段时间内对可疑 IP 发出的新请求进行限速。
下面的波形对比图展示了流量检测功能帮真实客户防御盗刷的效果。
防护效果示例 - 自动限速模式
防护效果示例 - 自动拦截模式
本章节介绍如何使用多云CDN - 内置CDN加速的相关功能来防范盗刷。
注意
部分功能默认不开放。使用前必须先提交工单进行申请。
提交工单,申请使用“流量检测”功能。
前往多云CDN控制台,在“CDN 加速” > “流量检测”页面点击“添加策略”,然后完成策略配置。
可以为单个加速域名设定预警带宽;在检测时间段内,当带宽达到预警值时,系统会自动进行限速或封禁操作。
注意
限速和封禁只针对系统识别出的异常访问者 IP,而且只对这些 IP 发出的新请求起作用,正常访问者的 IP 不受影响。
功能说明:
“策略配置”标签页展示了所有防护策略。
“检测记录”标签页展示了防护结果,如识别的异常 IP、当前生效的处置动作等。
前往火山引擎费用中心,在“账户总览”页面打开可用余额预警开关。
设置余额阈值。
账户余额达到指定阈值时,火山引擎账号联系人将收到通知。
说明
余额预警通知每天最多发送一次。
前往多云CDN控制台,在“监控告警”页面创建告警策略。
配置告警策略:
监控类型:加速域名
资源范围:选择域名
触发条件:指标阈值。添加以下三个指标条件,任一条件满足触发告警:
说明
相邻数据点的时间间隔是一分钟。
告警通知:开启并设置通知方式。支持的方式有:短信、站内信、电话以及 Webhook(飞书、钉钉、企业微信、金山)。
其他:按需配置。
更多配置说明可参见创建告警策略。
功能 | 配置说明 | 操作截图 |
---|---|---|
下载限速 | 打开“状态”开关,新增限速规则,限制特定文件在特定时间段的下载速度。 | |
带宽限制 | 打开“状态”开关,针对加速域名设置下行数据传输的带宽阈值,并选择控制策略。 | |
IP 访问限速 | 打开“状态”开关,针对加速域名设置单 IP 的下行数据传输速率阈值。 | |
用量封顶 | 用量封顶允许您指定带宽和流量的上限。当统计周期(如每 5 分钟)内的用量达到上限时,域名将下线一段时间,以减少盗刷带来的资产损失。 |
收到监控数据异常告警时,通过以下方法分析是否遭受盗刷攻击。
前往多云CDN控制台,在“数据中心 > 实时统计”页面查询热点统计数据。
配置查询条件:
根据返回结果,判断热点 URL、Referer、UA、IP 有无异常。
异常情形示例:
为进一步发现盗刷请求特征,需对告警发生时段的离线日志深入分析,从源 IP、URL 路径、请求参数、User-Agent、Referer 来源等多维度描绘盗刷请求画像,为制定精准应对措施提供依据。
在通过离线日志分析盗刷迹象时,可以重点关注下面这些日志字段:
字段 | 说明 |
---|---|
客户端请求的 URL 路径 | 在分析刷量攻击时,这个字段很关键。 |
客户端请求 URL 中的查询参数 | 如果被刷请求的查询参数是固定的,或者有明显特征,就可以把请求的源 IP 或者匹配该参数的请求列入黑名单。 |
客户端请求的 User-Agent 信息 | 简单的刷量工具一般会使用相同的 User-Agent。要是某个 User-Agent 的访问很集中,而且不是常见类型,就可以考虑封禁。 |
客户端请求的 Referer 信息 | 正常请求的 Referer 一般是该站点的其他页面 URL 或者搜索引擎 URL,而 curl 等命令行工具可能会伪造 Referer。 |
请求的源 IP | 如果少量 IP 的访问量比其他 IP 多很多,就可以考虑封禁。 |
响应体大小 | 恶意刷量常常会反复下载大文件,分析响应体大小的统计结果是分析刷量的关键一步。 |
功能 | 配置说明 | 操作截图 |
---|---|---|
地域访问控制 | 打开“状态”开关,选择黑名单规则,设置要封禁的地域(恶意 IP 集中的非业务服务区域)。 | ![]() |
IP 黑白名单 | 打开“状态”开关,选择黑名单规则,将分析出的恶意 IP 或 IP 段添加到黑名单。 | ![]() |
Referer 黑白名单 | 打开“状态”开关,选择黑名单规则,在规则内容中添加可疑 Referer 的值(常规名单)或者模式(正则名单),同时勾选 “空 Referer”(阻止 Referer 为空的请求)。 | ![]() |
UA 黑白名单 | 打开“状态”开关,选择黑名单规则,在规则内容中添加可疑 User-Agent 的值或者模式。
| |
Origin 黑白名单 | 打开“状态”开关,选择黑名单规则,在规则内容中添加可疑 Origin 的值或者模式。 | |
自定义拦截规则 | 打开“状态”开关,添加拦截规则,拦截满足指定条件组合的请求。 |
对下载/点播类型的域名进行访问鉴权配置,能增加盗刷者的破解难度,在一定程度上拦截盗刷行为。
CDN 加速支持以下访问鉴权功能: