EdgeOne 防盗刷实践教程

2024-08-27 17:34:22 浏览数 (1)

本篇文档学习预计需要 20 分钟,通过学习该文档,您可以了解到:

1. 什么是 CDN 盗刷及其常见类型和危害。

2. 如何在 EdgeOne 平台设置流量告警和用量封顶策略,开启实时日志推送,预防 CDN 盗刷。

3. 利用 EdgeOne 的流量分析和日志分析功能,识别和定位盗刷攻击。

4. 针对中小网站平台和企业级业务平台分别给出的 EdgeOne 防盗刷实践教程配置建议。

什么是 CDN 盗刷

CDN 盗刷是指未经授权的用户通过非法手段大量获取网站资源,消耗网站带宽和服务器资源的行为。相比于 DDoS 攻击直接影响网站可用性,CDN 盗刷更多的是消耗网站的带宽等计算资源,产生突发高带宽或者大流量,导致高于日常消费金额的账单,网站运营成本急剧升高。CDN 盗刷的常见手段包括:

  • 通过自动化工具、代理服务器或僵尸网络发送大量虚假请求;
  • 通过自动化工具不断下载大文件或进行大量数据传输;
  • 通过压力测试工具发送大量并发请求,对服务器进行超负荷测试。

说明:如果您当前使用的是腾讯云内容分发网络 CDN,建议升级至 EdgeOne,并在 EdgeOne 上配置相应的防护策略。通过合理配置防护措施,可以有效减少 CDN 盗刷带来的影响,保障业务正常运行,避免高额账单。CDN 服务迁移方式可参考内容分发网络 CDN 相关服务迁移至 EdgeOne 工具使用指南。

预防措施

设置用量封顶策略

对网站关键指标(如带宽、流量、请求数等)添加用量封顶策略进行控制,设置合理的用量上限和告警阈值,是防止因盗刷攻击产生高额账单消耗的有效策略。一旦出现告警,立刻根据 排查措施 排查实时请求是否正常,并按 应对措施 进行相应处理。

说明:

  • 用量封顶配置生效存在一定延迟(10分钟左右),期间产生的消耗会正常计费。
  • 封顶策略均根据子域名维度统计用量,生效范围选择站点或全部子域名时表示站点下的所有子域名共用一个封顶策略。
  • 同一个域名流量、带宽或请求数策略同时存在时,只要其中一项达到阈值,则会触发域名停用服务。
  • 当前仅支持 L7(应用层)流量/带宽和 HTTP/HTTPS 请求配置封顶策略,L4(传输层 TCP/UDP 应用)流量以及其他增值服务如 QUIC、BOT 等业务暂不支持。
配置示例

配置用量封顶策略,具体操作,请参见 用量封顶策略。在添加封顶策略窗口中,选择生效站点,并根据以下建议配置封顶策略:

配置维度

配置选项

相应建议

适用场景

统计周期

5 分钟(推荐选择)

设置较低的阈值,以便迅速发现并响应异常流量或请求。

能够及时发现短时间内的异常流量或请求峰值,快速采取防护措施,适用于实时监控和即时响应需求。

小时

设置中等阈值,结合日常正常业务高峰期数据,确保短时间内流量突增时不误触封顶。

能够捕捉到短时间内的流量波动趋势,提供一定的反应时间进行防护调整。

天(24 小时)

设置较高的阈值,基于正常业务日流量的2-3倍,确保在长时间内异常流量被识别。

能够提供全局视角,识别全天范围内的异常流量或请求模式,适用于制定长时间内的防护策略和资源规划。

封顶配置

七层流量(推荐选择)

根据正常业务流量的2-3倍设定流量阈值,以应对流量突增的情况,避免因短时间内的正常流量增长而误触封顶。

有效防止攻击者通过大量下载大文件等方式消耗带宽资源。

HTTP/HTTPS 请求数

基于正常请求数的2-3倍设定阈值,确保正常业务高峰期不会误触封顶。

有效防止刷请求型攻击,通过大量虚假请求消耗资源。

七层带宽

根据正常带宽使用量的2-3倍设定带宽阈值,以应对带宽使用突增的情况。

有效防止带宽消耗过高,避免因大流量下载攻击导致的资源浪费。

超出阈值

停止服务,需前往域名列表中重新启用。

告警阈值

50%(推荐选择),当访问用量达到配置的告警阈值的 50% 时发出告警消息。

说明:若已开启告警阈值:由于扫描粒度为5分钟,短时间内用量剧增较大时,可能上一次扫描未触发告警阈值,下一次扫描直接达到访问阈值。在此情况下,会同时发送百分比告警和访问阈值告警通知。

开启实时日志推送

为了实现精细化的防护措施,建议开启 实时日志推送 功能。该功能能够以较低的时延将请求访问日志投递到您指定的目的地,支持通过控制台或 API 配置。从请求发起到目的地接收日志的延迟在 5 分钟以内,适合需要实时监控和快速排障的场景,如防范 CDN 盗刷。通过对访问行为进行实时分析,可以及时识别并分析盗刷攻击特征,从而配置相应的策略进行精准拦截。以下是各日志类型记录的请求范围:

  • 站点加速日志:记录域名访问日志,默认仅记录防护后的请求日志,不记录防护拦截请求日志。站点加速日志记录了域名访问日志,包括所有通过 CDN 的L7请求日志。这些日志能够提供全面的访问情况,帮助识别异常高频请求、异常流量和潜在的盗刷行为。

说明:实时日志-站点加速日志记录全量 L7 请求日志、包含 L7 防护拦截日志的功能在内测中,如有需求请 联系我们。

  • 速率限制和 CC 攻击防护日志:仅记录命中 L7 防护-速率限制、CC 攻击防护模块安全规则的请求日志,不论是否被拦截。可帮助识别试图通过高频请求刷流量的行为。
  • 托管规则日志:仅记录命中 L7 防护-托管规则模块安全规则的请求日志,不论是否被拦截。可帮助检测基于托管规则的防护情况,识别潜在的攻击和盗刷行为。
  • 自定义规则日志:仅记录命中 L7 防护-自定义规则模块安全规则的请求日志,不论是否被拦截。可帮助识别符合自定义规则的异常请求,防止特定类型的盗刷行为。
  • Bot 管理日志:仅记录命中 L7 防护- Bot 管理模块安全规则的请求日志,不论是否被拦截。可帮助识别由自动化脚本或恶意 Bot 引发的盗刷行为。

说明:Bot 管理日志仅当站点域名开启 Bot 管理能力后支持,开启后,Bot 管理的计费标准详见:增值服务用量单元费用(后付费)。

若您需要推送 HTTP 请求头、HTTP 响应头或 Cookie 中的某些字段值,您可以通过 自定义推送日志字段 功能将此类信息精确记录在日志中。

排查措施

在设置如前文所述的预防措施后,若收到告警并判断用量突增明显,下一步就需要考虑开展深入排查。本节重点介绍如何利用 EdgeOne 的流量分析和日志分析功能,对疑似盗刷流量进行多维度特征分析定位。

流量分析

指标分析 是 EdgeOne 提供的一项强大的数据分析服务,旨在帮助用户深入洞察业务运行和安全状况。通过实时监控和分析关键指标,用户可以快速识别问题、优化资源配置,并提升业务的稳定性和安全性。在盗刷攻击排查场景下,建议通过 数据筛选与过滤,结合 TOP 排行,重点关注以下数据:

  • Referer 分布:空 Referer 或非法 Referer 的集中出现,往往是撞库、爬虫等恶意请求的标志。
  • URLs 资源类型的访问量变化:若少数 URL 或资源类型的请求量突增,远超其他资源,提示可能正遭受针对性的盗刷。
  • 客户端 IP TOP:观察是否存在少量 IP 贡献了大部分请求,评估基于 IP 的请求频率控制的可行性。
操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击指标分析

2. 在指标分析页面,单击添加筛选,将出现用量告警的站点加入筛选。

3. 选择日期为疑似遭受盗刷攻击的时间段。

4. 在 L7 访问流量页面,下拉查看以下维度的排行:

  • Hosts:客户端请求的子域名。
  • URLs:客户端请求的具体资源路径。
  • 资源类型:客户端请求的资源类型,例如:“.png”“.json”等。
  • 客户端 IP 地址:客户端请求的具体来源 IP 地址。
  • Referers:客户端请求的 Referer 信息。
  • 客户端设备类型: 设备类型:客户端请求所使用的硬件设备类型,取值有: TV:电视。 Tablet:平板电脑。 Mobile:手机。 Desktop:电脑。 Other:其他。 浏览器:客户端请求使用的浏览器类型。 操作系统:客户端请求使用的操作系统类型。

5. 单击添加筛选,添加如下建议筛选条件,聚焦异常流量,单击确定

  • Referer:定位空 Referer 请求;
  • URL:包含 TOP 5 URLs,定位可疑的热点资源;
  • 资源类型:包含 TOP 5 资源类型,定位热点资源的类型分布;
  • 客户端设备/浏览器/操作系统:等于 Other; Empty,定位可疑的非常规客户端。

6. 观察筛选后的各项指标分布,识别明显偏离正常水平的数据,分析其与盗刷的关联性。

离线日志分析

为进一步发现盗刷请求的更多特征,需要对告警发生时段的 离线日志 进行深入分析。通过字段进行综合分析,可以从源 IP、URL 路径、请求参数、User-Agent、Referer 来源等多个维度描绘盗刷请求画像,为下一步制定精准的应对措施奠定数据基础。离线日志分析进行盗刷排查中可重点关注的日志字段及相应说明如下:

字段名称

数据类型

说明

离线日志是否支持该字段

实时日志是否支持该字段

RequestUrl

String

客户端请求的 URL 路径,不含查询参数。对于刷量攻击,该字段是关键分析维度。

RequestUrlQueryString

String

客户端请求 URL 中的查询参数。若被刷请求的查询参数固定或特征明显,可对请求的源 IP 或匹配该参数的请求设置黑名单。

RequestUA

String

客户端请求的 User-Agent 信息。简单的刷量工具常使用相同 User-Agent。若某个 User-Agent 的访问集中且为非常见类型,可考虑封禁。

RequestReferer

String

客户端请求的 Referer 信息。正常请求的 Referer 通常为该站点的其他页面 URL 或搜索引擎 URL,而 curl 等命令行工具可能伪造 Referer。若被刷页面实际不会被其他站点引用但出现 Referer,可判定为异常。可通过配置 Referer 防盗链 阻断。

ClientIP

String

与 EdgeOne 节点建连的客户端 IP,即请求的源 IP。若少量IP 的访问量远超其他 IP,可考虑封禁。

EdgeResponseBodyBytes

Integer

节点返回给客户端的响应体大小,单位:Byte。恶意刷量常反复下载大文件,从 EdgeResponseBodyBytes 的统计结果分析是刷量分析的关键一步。

更多字段及相应说明,请参见 七层访问日志字段说明。下载离线日志的详细操作请参见 离线日志。

应对措施

针对网站盗刷这一复杂多变的攻击场景,没有一招鲜吃遍天的招式。EdgeOne 提供了丰富的访问控制、速率限制等防护功能,可灵活组合应用,因此需要根据攻击特征、业务实际情况等因素,选择最优的防护配置组合。下面从个人站点运营者和线上业务站点的不同视角,给出具体的 EdgeOne 防盗刷实践教程。

中小网站平台

场景一:基于指标分析的异常来源 IP 快速拦截

场景示例

在疑似盗刷时间段内,通过分析 L7 访问流量资源类型排行指标,发现一个 5MB 大小的文件访问占比异常偏高。进一步排查该文件路径为 /test/installer.apk,且其请求主要来自1.1.1.0/24网段的客户端 IP。基于以上线索,可迅速创建 IP 黑名单策略,拦截该恶意网段,遏制潜在的盗刷行为。

配置推荐

推荐您使用 EdgeOne Web 防护功能的自定义规则,配置防护策略,具体操作,请参见自定义规则。

  • 对于个人版用户,可以在基础访问管控配置规则类型为客户端 IP 管控,匹配方式选择为客户端 IP 等于,匹配内容为1.1.1.0/24,处置方式为拦截。
  • 对于基础版及以上用户,可以在精准匹配规则中,配置匹配字段为客户端 IP 匹配1.1.1.0/24 且请求路径包含/test/installer.apk的请求,处置方式为 JavaScript 挑战

场景二:基于日志分析的异常 User-Agent 快速拦截

场景示例

实时日志显示,某时段内 RequestUA 分布异常集中,进一步分析发现访问次数最高的是python-requests/2.22.0,并同时有大量请求使用了含 python-requests/ 等 Python 脚本特有的 User-Agent 标识。由于这类请求明显偏离常规浏览器的 User-Agent 特征,可判定为自动化请求,甚至是恶意爬虫。据此可配置 User-Agent 黑名单规则,精准拦截含特定 User-Agent 标识的可疑请求。

配置推荐

推荐您使用 EdgeOne Wet 防护功能的自定义规则,配置防护策略,具体操作,请参见 自定义规则。

  • 对于个人版用户,可以在基础访问管控中,配置规则类型为 User-Agent 管控,匹配方式为 User-Agent 通配符匹配,匹配内容为*python-requests*,处置方式为拦截
  • 对于基础版及以上用户,可以在精准匹配规则中,配置判断条件为 User-Agent 包含python-requests/的请求,处置方式为 JavaScript 挑战

场景三:基于已知恶意 User-Agent 预防拦截

场景示例

对于已知的常见盗刷工具,可提前配置其特征 User-Agent 字符串到自定义规则中。在站点全局或重点路径下预防性开启该规则,可最大程度降低被此类工具盗刷的风险。常见盗刷 User-Agent 如:空 User-Agent; curl/xx.xx; Wget/xx.xx; ApacheBench/xx.xx; python-requests/xx.xx

配置推荐

推荐您使用 EdgeOne Web 防护功能的自定义规则,配置防护策略,具体操作,请参见 自定义规则。

  • 对于个人版用户,可以在基础访问管控中配置两条规则; 规则 1:配置规则类型为 User-Agent 管控,匹配方式为请求 User-Agent 为空,处置方式为拦截。 规则 2: 在基础访问管控中,配置规则类型为 User-Agent 管控,匹配方式为请求 User-Agent 通配符匹配,匹配内容为*curl/*; *Wget/*; *ApacheBench/*; *python-requests/*,处置方式为拦截
  • 对于基础版及以上用户,可以在精准匹配规则中配置如下两条规则:

规则 1:在精准匹配规则中,配置匹配字段为 User-Agent 包含curl/; Wget/; ApacheBench/; python-requests/ 的请求,执行动作为 JavaScript 挑战

规则 2:在精准匹配规则中,配置匹配字段为 User-Agent 内容为空的请求,执行动作为 JavaScript 挑战

场景四:仅放行常见 User-Agent(临时高防)

在遭受大规模 User-Agent 分散式盗刷时,若难以逐一梳理恶意 User-Agent 的特征,可利用反向逻辑,仅允许常见正常浏览器、App 的合法 User-Agent 访问。该方式可一次性过滤大量可疑请求,但因规则力度大,存在一定误判风险,应结合其他维度特征谨慎使用。

配置推荐

推荐您使用 EdgeOne Web 防护功能的自定义规则,配置防护策略,具体操作,请参见 自定义规则。

  • 对于个人版用户,可以在基础访问管控中,配置规则类型为 User-Agent 管控,匹配方式为请求 User-Agent 通配符不匹配,匹配内容为*Linux*; *Macintosh*; *Android*; *iPhone*; *iPad*; *Windows*,处置方式为拦截
  • 对于基础版及以上用户,可以在精准匹配规则中,配置匹配字段为 User-Agent 通配符不匹配 *Linux*; *Macintosh*; *Android*; *iPhone*; *iPad*; *Windows*的请求,执行动作为 JavaScript 挑战

说明: 针对 App 场景,正常业务为空 User-Agent,则无需使用该策略。 如果 User-Agent 取值是 App 名称,需要将 User-Agent 中正常业务的 App 名称加入匹配内容。 强度较高,谨慎配置,为避免误拦截,请结合其他维度特征进行联合判断。

场景五:设置 CC 攻击单 IP 高频访问限制(临时高防)

平台托管的速率限制规则 通过速率基线学习、头部特征统计分析和客户端 IP 情报等方式识别 CC 攻击,并进行处置。EdgeOne 提供了三种预设 CC 攻击防护策略:

  • 自适应频控:用于应对通过高频和大量并发的连接请求占用服务器资源的 CC 攻击行为,可基于单 IP 源限制访问频次限制。
  • 慢速攻击防护:用于应对通过大量慢速连接请求占用服务器资源的 CC 攻击行为,可基于单会话限制访问连接最低速率,淘汰慢速连接客户端。
  • 智能客户端过滤:融合了速率基线学习、头部特征统计分析和客户端 IP 情报,实时动态生成防护规则。针对来自高危客户端、或者携带高危头部特征的请求进行人机验证。智能客户端过滤默认开启且对符合规则的客户端执行 JavaScript 挑战。

在发生网站疑似遭受盗刷攻击或出现异常用量告警时,建议临时将自适应频控设置为自适应 - 紧急级别,处置方式为 JavaScript 挑战。此举可高效阻止恶意 IP 的大量请求,有效防范盗刷和其他攻击行为。具体操作,请参见 CC 攻击防护。

说明: 请在应对完盗刷攻击后及时恢复高频访问请求限制等级为推荐配置:自适应 - 宽松,以确保正常业务流量的顺畅访问。详细了解各限制等级的说明,请参考 平台托管的速率限制规则。

场景六:基于业务水位进行个性化频次控制

在与 DDoS 强攻击的区别是,盗刷往往更加隐蔽,需要结合特定业务场景来进行判断,制定个性化的频次限制策略,以避免误拦截合法用户。无论是针对 IP 还是 User-Agent 的拦截策略都属于精准拦截。然而,在实际攻击中,攻击特征可能不会明显,特别是源 IP 的请求量可能高达数十万。

结合业务场景的防御策略首先需要网站管理者评估业务的正常访问模式,确定业务流量基线。例如在 App 的下载或升级场景下,大多数 IP 通常只会进行一两次下载,少数情况下可能因失败而多次尝试,但通常在合理的频次范围内。如果出现异常的高频率访问,很可能是攻击或恶意刷量的迹象。

在网站遭受盗刷攻击时,域名的带宽将显著增加。为了应对这种情况,推荐您使用 EdgeOne Web 防护功能的速率限制,根据正常业务水位设定阈值,配置限速策略,或通过 实时日志 监控和调整策略。具体操作,请参见 速率限制。

注意: 配置频次控制规则时应根据实际防御效果动态调整。初期可以基于经验值设定频次阈值以快速实现防御,如果发现效果不佳,则可以逐步收紧;反之,如果规则影响了正常业务,就需要适当放宽。

基于业务基线的游戏包下载限频
场景示例

某游戏平台提供多款游戏的安装包和更新包下载服务,通过 EdgeOne 加速分发。游戏包的下载 URL 具有固定的模式,例如:

  • 游戏 A 安装包: https://cdn.example.com/games/A/installer_v1.0.zip
  • 游戏 A 更新包: https://cdn.example.com/games/A/patch_v1.1.zip
  • 游戏 B 安装包: https://cdn.example.com/games/B/installer_v2.0.exe
  • 游戏 B 更新包: https://cdn.example.com/games/B/patch_v2.1.exe

游戏版本发布当天,单 IP 下载次数通常为 1 次,个别网络问题导致的重试下载不超过 3 次。但某些 IP 在版本发布后频繁下载安装包和更新包,远超正常用户的行为,触发用量告警。推测可能是盗版网站或分享社区在抓取游戏包,或攻击者意图消耗带宽,可通过配置 速率限制 规则及时阻断这些恶意请求。

配置推荐

精准速率限制中,配置匹配对象为自定义防护对象,匹配字段为请求 URL 包含games/; installer/; patch/AND 请求方式(Method)等于 GET。统计方式为单个客户端 IP 请求到 EdgeOne 节点时触发,触发方式为计数周期 10 分钟内,超过 3 次时触发,触发后,保持该触发状态 1 小时,执行动作为 JavaScript 挑战。详细操作步骤,请参见 速率限制。

基于日志分析的异常 User-Agent 限频
场景示例

某站点被攻击者大量访问导致用量告警,通过查看实时日志发现访问 IP 分散,可能是分布式攻击,但 User-Agent 非常集中,如:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0),与正常业务不符。对比平常未被攻击的时间段,发现正常 User-Agent 多样化,覆盖不同浏览器和设备。该可疑 User-Agent 平时访问量极低,此次激增占据大部分流量,基本可判定为 CDN 盗刷攻击,可通过配置 速率限制 规则及时阻断这些恶意请求。

配置推荐

精准速率限制规则中,配置匹配对象为自定义防护对象,匹配字段为 User-Agent 等于Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0),触发方式为计数周期 1 分钟内,计数超过 400 次时触发,统计方式为单个客户端 IP 请求到 EdgeOne 节点时触发,触发后,保持该触发状态 30 分钟,执行动作为 JavaScript 挑战。详细操作步骤,请参见 速率限制。

说明: 您需要根据自身业务正常水位和实时日志中攻击者特征和频次评估,调整触发防护的阈值和处置时长。

EdgeOne 防盗链实践教程

除了针对盗刷本身的直接防护措施外,网站还应重视对资源本身的保护,采取主动防御。防盗链是避免网站资源被未授权使用的重要手段。

盗链是指未经网站所有者许可,在其他网站上非法引用、使用原站点的资源(如图片、视频、软件包等),消耗原站点的带宽和资源的行为。它不仅侵犯了原站点的合法权益,也可能对其产生不利的 SEO 影响。因此积极采取防盗链措施十分必要。

EdgeOne 提供了完善的防盗链解决方案,可从 Referer 防盗链、Token 防盗链、远程鉴权等多个角度对盗链行为进行管控,保护您的内容免受未经授权的盗链访问,提升加速服务的安全性。更多详情,可参考 EdgeOne 防盗链实践教程。

企业级业务平台

对于面临盗刷威胁的线上业务站点,除了采用个人站点常用的通用防护手段外,建议选择 EdgeOne 标准版或企业版,并开通 Bot 管理 功能,利用其内置的人工智能引擎和丰富的行为特征分析,您将获得更智能、更省心的 Bot 管理体验,从容应对各类盗刷攻击。

Bot 智能分析 模块采用先进的机器学习算法,通过海量数据训练形成威胁识别模型。该模型从请求速率、IP 情报、URL 序列、SSL/TLS 指纹等多维度提取请求的关键行为特征,通过聚类分析、相似度比对等技术,准确判断请求来源是否为自动化程序,以及是否具有恶意目的,以全方位、立体化的分析方法降低了对合法请求的误伤。

此外,EdgeOne 企业版还支持 JA3 指纹特征,网站管理员可针对自身业务场景,预设高危 Bot 的指纹条件,实现对特定攻击工具的精准拦截。例如,将恶意爬虫常用的 Python 库、无头浏览器等指纹纳入盗刷防御规则,即可自动拦截相关流量,让防护更加主动和高效。

说明:Bot 管理功能仅当站点域名开启 Bot 管理能力后支持,开启后,Bot 管理的计费标准详见:增值服务用量单元费用(后付费)。

0 人点赞