识别并处理Bots流量

Bots 防护的本质其实就是识别流量和处理流程的过程。ESABots防护基于多维度数据收集、先进检测引擎、动态风险评分、验证挑战和持续学习,实现对流量的分类和处理。

识别Bots流量

精准快速地识别出Bots流量,关乎着自身服务的安全,为此,ESABots防护提供了多种不同的策略供用户选择。在简易模式下,使用AI决策识别Bots流量策略;在高级模式下,提供了多种可配置的识别策略,例如黑白名单策略、请求行为分析策略、请求特征分析策略等,您可以根据自身业务需要进行个性化配置。

AI决策识别Bots流量

Bots防护的简易模式采用该方式为不同的Bots分类,结合AI大模型和海量情报数据对请求进行危险等级评分和分级,根据不同的分级和评分,将Bots请求分为已通过验证的Bot绝对是Bot可能是Bot

您可以对不同的分类执行不同的Bots处理方式。

  • 已通过验证的Bot通常是各类搜索引擎的爬虫,这些爬虫有利于网站的SEO优化,提高网站曝光率,因此,对于这部分的流量,可以选择配置放行

  • 绝对是Bot的流量通常含有大量的恶意爬虫请求,这种流量对网站有很大的威胁,对于这部分流量,可以选择配置拦截

  • 可能是Bot的流量是威胁程度介于以上两种之间的,这部分流量有些是正常善意的请求,有些是恶意的爬虫请求。 对于这部分,可以选择配置滑块挑战,过滤掉来自机器人的流量。

白名单机制

对于有益的网络爬虫或者确定是无害的请求,防护系统提供了白名单机制,确保它们能顺利访问被允许的内容,避免被误伤。

策略

使用场景

合法的搜索引擎白名单

对于大型搜索引擎(Google、Bing、百度等),他们爬虫的索引是网站在搜索引擎中排名的前提,能够给网站带来可持续的免费自然流量,对内容型、商业型网站至关重要。ESABots防护中可以选择指定的搜索引擎爬虫直接放行,不再经过Bots管理模块的防护检测。

IP白名单

对于确定需要放行的请求,可以将其IP加入IP白名单,这样就可以使这些请求跳过Bots的防护机制

黑名单机制

对于全球范围内已经明确是恶意的Bots,防护系统提供了黑名单机制,直接将命中黑名单的请求标记为恶意Bots。另外,也可以利用黑名单机制,主动屏蔽不安全或恶意基础设施的流量。

策略

使用场景

IDC黑名单

如果您的用户客户端不会来自公有云或IDC的机房,可直接设置阻断IDC的请求,主动屏蔽可能产生的风险。(注意加白已知的合法调用,如支付宝或微信的支付回调、监控程序等)

爬虫威胁情报库

使用由阿里云收录的一段时间内在阿里云上对多个用户有多次恶意爬取行为的攻击源IP地址库,通过请求的IP来拦截威胁Bots。

通过请求特征来识别Bots

流量特征识别通过分析HTTP请求的静态属性(如请求头、协议完整性、SSL/TLS指纹等),快速识别不符合标准的行为模式。

策略

使用场景

JavaScript 挑战

检测客户端是否具备执行JavaScript的能力,不能执行JS的非浏览器类工具的请求将会被视为恶意请求,并且被阻止。

动态令牌挑战

当用户或客户端发起请求时,ESA会动态生成一个一次性加密令牌,该令牌基于当前请求的上下文(如时间戳、用户行为特征、IP地址等)生成,并通过加密算法签名以确保不可篡改。开启后对每一次请求数据进行签名验证,不能通过验签的请求将被拦截。

通过请求行为来识别Bots

流量行为识别核心逻辑是通过分析客户端(用户或Bots)向服务器发起的请求行为特征,判断请求是否由人类用户正常操作产生,或是由自动化脚本/程序发起的可疑请求。通过对用户访问模式的动态分析,发现异常行为特征。例如,高频访问、固定节奏请求、遍历式扫描等都是典型的Bots行为。

处理Bots流量

基础防护策略

策略

使用场景

放行

对已知合法的Bots流量(如搜索引擎爬虫、合作方API调用)开放访问权限,确保业务正常运转。对于合法搜索引擎的流量,可以选择放行策略。

拦截

对明确恶意的Bots(如DDoS攻击、漏洞扫描工具)直接阻断访问。例如对于AI决策识别出来绝对是Bots的流量,可以选择拦截策略。

观察

对可疑但未确认风险的Bots流量进行监控和日志记录,暂不阻断。

滑块挑战

通过人机验证(如滑块、点选)区分人类与自动化脚本。

自定义限速

当您想要放行一些 Bots 请求但是又不想它们访问太过频繁,您可以对来自同一IP或同一特定的会话请求进行频次控制——对访问频次超过指定阈值的请求执行防护动作。您可以在自定义限速规则中进行配置。

说明

自定义限速仅在高级模式中启用。

配置示例 1

  • 限制需求:针对同一IP的请求,在 1 分钟内最多访问 10 次,否则会被拦截 1 小时;或者在半小时内最多访问 100 次,否则需要在接下来 10 分钟都要接受滑块挑战。

  • 配置结果:添加如下 2 个条件(每个条件默认为逻辑或的关系,单项中最多存在 3 个条件):

    • 条件 1 :统计时长填入60,阈值填入10限速动作选择拦截限速时间填入3600

    • 条件2 :统计时长填入1800,阈值填入100限速动作选择滑块限速时间填入600

    image

配置示例 2

  • 限制需求:针对header中带有api的请求,在 10 分钟内最多访问 100 次,否则会被拦截 1 分钟。

  • 配置结果统计时长填入600,阈值填入100限速动作选择拦截限速时间填入60image

参数限制

针对自定义限速中的配置参数的可用范围可参考下表。

参数类型

范围

统计时长

5 ~ 1800(秒)

阈值

2 ~ 50000(次)

限速动作

可选项:

  • 拦截

  • 观察

  • 滑块

限速时间

60 ~ 86400(秒)