Bot防护最佳实践
什么是Bot攻击
Bot攻击指的是利用自动化程序(机器人)对网站、应用、API或网络发起的大规模恶意行为。这些机器人程序(通常称为bots或恶意bots)被设计用来执行重复性、高频率的任务,目的是消耗资源、窃取数据、干扰服务或进行欺诈。
以下是Bot攻击的关键特征和常见类型:
关键特征:
1. 自动化:攻击的核心是使用软件程序自动执行任务,速度远超人类手动操作。
2. 大规模:攻击通常由成千上万甚至数百万个被控制的僵尸设备(组成的僵尸网络)同时发起,形成巨大流量或请求量。
3. 恶意目的:攻击者的意图是损害目标或从中非法获利。
常见的Bot攻击类型:
1.分布式拒绝服务攻击:攻击者指挥庞大的僵尸网络向目标服务器(网站、在线服务、网络设备)发送海量请求(如HTTP请求、TCP连接、UDP数据包),意图耗尽目标的带宽、计算资源(CPU、内存)或连接资源,导致合法用户无法访问服务。
2.凭证填充:攻击者利用从其他数据泄露事件中获取的大量用户名/密码组合,使用bots自动尝试登录目标网站或应用(如银行、电商、社交媒体)。目的是接管用户账户。
3.撞库攻击:与凭证填充类似,但更针对性地使用一组凭证尝试登录与该用户可能相关的其他多个平台。
4.网络爬虫滥用/数据抓取:
内容窃取:未经授权地大规模抓取网站内容(如产品信息、价格、文章、用户评论),用于竞争对手分析或构建剽窃网站。
价格爬取:竞争对手频繁抓取定价信息以实现动态定价或破坏市场。
库存囤积/抢购:在限量商品发售(如球鞋、演唱会门票、显卡)或秒杀活动时,用bots快速下单抢购,然后转售牟利,导致真实用户买不到。
5.垃圾信息/欺诈注册:
在论坛、评论区、联系表单自动发送垃圾广告或钓鱼链接。自动创建大量虚假用户账户(用于刷单、刷评、发送垃圾信息、进行欺诈活动)。
6.点击欺诈: 在在线广告中,使用bots模拟用户点击广告,消耗广告主的预算,为发布者或流量中介带来不义之财。
判断是否遭受Bot攻击
观察自己的业务是否有如下现象:
-
流量突变
- 突发性流量峰值:非促销时段流量激增(尤其是夜间)
- 超高请求频率:单一IP每秒请求>50次(正常用户<5次)
- 非常规地理位置:集中来自数据中心IP(如AWS/GCP)或特定国家
-
用户行为异常
- 重复操作模式:完全相同的浏览路径(如A→B→C页面循环)
- 超人类速度:页面停留时间<1秒 + 连续点击
- 低转化率:高PV但零注册/下单等转化行为
-
技术特征
- 无头浏览器指纹:检测到Puppeteer/Playwright/Selenium特征
- 缺失人类交互:无鼠标移动轨迹/随机滚动行为
- 非常规HTTP头:User-Agent异常(如包含"Headless")或缺失常见头(Accept-Language)
通过分析以下方式辅助判断
Bot攻击通常表现出,例如服务器QPS升高、GPU被占满、带宽占用增加以及系统资源耗尽等现象。 您可以通过如下方式判断是否遭受了Bot攻击:
BCC实例查看CPU使用率
当遭受Bot攻击时,BCC实例的公网带宽和同时连接数将高于正常业务阶段,Web进程和数据库相关进程所占用的CPU使用率也会上升。您可以根据这些监控指标进行判断。具体操作,请参见查看实例监控信息。
WAF日志分析
如果您已经将云资源接入了WAF,您可以先通过WAF的防护数据总览,查看是否存在高频的攻击源IP以及它们的地域来源,查看某特定URI/目录的频繁攻击。具体操作,请参见[查看安全总览分析]
如果开启了WAF日志投递BLS服务,还可以对日志进行分析。您可以使用下列查询语句进行查询,您需要将语句中的防护站点替换为您实际的防护名称,具体操作,请参见日志查询。查询日志语句
综合上述查询,如果发现某时段出现了异于正常业务时段的流量,说明可能遭受了Bot攻击。
开启Bot防护
防御方式 | 适用场景及特点 |
---|---|
业务安全 | 针对 BOT 中常见的秒杀、爬价格/爬内容和登录、垃圾信息、欺诈注册等场景 |
AI智能分析 | 防爬规则会通过AI智能防护引擎对访问流量进行分析和自动学习,自动对常见典型的异常爬虫流量做检出 ,其特点包括动态规则生成、低误报率及对未知爬虫的自适应能力,可有效防护数据爬取、恶意扫描等行为,但无法防御针对业务逻辑的高级人机交互或低频爬取。 |
自定义Bot | 支持自定义多种复杂BOT高级防护策略配置,包括 IP地域情报库、IP动态情报库、IDC设备情报库、Referer、Cookie、User Agent、IP等多种复杂条件Bot策略配置,多个用户有多次恶意爬取行为的攻击源IP进行处置。 |
简单脚本过滤 | 判断客户端是否可以执行 JS,可以执行的可以正常访问,无法执行JS的会被阻断 - 可以解决的BOT场景:简单 curl 脚本攻击, 因为无法执行 js 被阻断 - 无法解决的BOT场景:通过无头浏览器工具爬取,可以执行 js,简单脚本过滤无法防护 |
动态令牌挑战 | 动态生成加密的令牌,令牌合法的放行,令牌不合法(格式不合法、未携带、过期)会一直返回动态令牌页面。 - 解决场景,针对被恶意滥用的接口进行防护 - 无浏览器环境,直接调用接口,会被阻断 - webdriver 会被识别,会一直返回动态接口签名页面 - 无法解决场景:高级BOT,伪装性强,无法识别 |
场景一:开启业务安全(防御自动创建大量虚假用户账户-用于刷单、刷评、发送垃圾信息、进行欺诈活动)
在Bot管理防护规则推荐指引中,开启风险识别,针对不同风险标签,开启拦截、观察、滑块验证、回源标记等处置动作。
详细配置说明见Bot防护配置
场景二:开启AI智能分析(防御大量机器自动化脚本请求服务)
在Bot管理防护规则推荐指引中,开启AI智能分析,对有大量机器自动化脚本请求服务,禁止类似 CURL,SOAPUI、JMETER、POSTMAN 访问请求进行自动化分析,并执行拦截、观察、滑块验证、回源标记等处置动作。
场景三:开启IP/会话限速(防御单IP突发性超高频率访问)
您可以通过配置自定义限速(IP限速/会话限速)的方式实现频率控制,通过对比正常时段的访问频率,判断出一个合适的访问频率基线,并使用白名单防护模块加白信任的IP或URI。
场景四:开启IP/会话限速(防御单IP突发性超高频率访问)
如果您分析日志发现存在较多的Bot流量,如以下特征:
IP轮换/代理池: 使用大量不同的IP地址(通过代理服务器、Tor网络、被入侵设备)来伪装来源,绕过基于IP的简单封禁。
User-Agent伪装:修改HTTP请求头中的User-Agent信息,模仿合法浏览器(如Chrome, Firefox)。
可以配置自定义Bot策略,将匹配字段设置为User-Agent,匹配并拦截带有bot的UA,具体的匹配内容需要根据实际的日志进行分析。
特定IP地域情报库进行拦截,支持海外IP、IDCIP、基站IP,进行加黑判断,并开启处置动作拦截、滑块验证码等。
或者特定IP动态情报库,支持NAT IP、搜索引擎爬虫、高危IP进行判断,并开启处置动作拦截、滑块验证码等。
特定IP动态情报库通过实时更新的全球IP信誉数据,自动识别NAT出口IP(避免误封)、放行主流搜索引擎爬虫、并拦截已知高危IP(如僵尸网络、代理池)。 加黑/加白逻辑:
- 加黑:支持手动将高危 IP加入黑名单,处置动作可配置为滑块验证、严格滑块验证,以及拦截。
- 加白:支持手动将搜索引擎爬虫、NAT IP加入白名单。白名单IP会跳过所有防护策略。
特点:黑白名单优先级最高,白名单 > 黑名单。此功能极大减少了针对源IP策略的误判,并与AI引擎形成协同防护。
详细配置说明见Bot防护配置
场景五:Web SDK集成/简单脚本过滤/动态令牌
如果通过日志分析,发现大量僵尸网络或者高级Bot行为模拟,如:
* 僵尸网络: 攻击者控制大量被感染的计算机、服务器、IoT设备(摄像头、路由器等)组成的网络来发动攻击。
* 行为模拟: 高级bots能模拟人类鼠标移动、点击、滚动等行为,更难被基于行为的检测系统识别。
可以开启 简单脚本过滤和动态令牌挑战。
关于Web SDK集成详细说明 这里查看。