边缘安全
  • 概述
  • DDoS 防护
    • DDoS 防护概述
    • 使用独立 DDoS 防护
    • 配置独立 DDoS 防护策略
      • 调整 DDoS 防护等级
      • 独立 DDoS 攻击流量告警
      • 配置 IP 黑白名单
      • 配置区域封禁
      • 配置端口过滤
      • 配置特征过滤
      • 配置协议封禁
      • 配置连接类攻击防护
      • 相关参考
        • 处置方式
        • 相关概念介绍
  • Web 防护
    • 概述
    • 托管规则
    • CC 攻击防护
    • 自定义规则
    • 自定义速率限制规则
    • 防护例外规则
    • 托管定制规则
    • Web 安全监控告警
    • 相关参考
      • Web 防护请求处理顺序
      • 处置方式
      • 匹配条件
  • Bot 管理
    • 概述
    • Bot 智能分析
    • Bot 基础特征管理
    • 客户端画像分析
    • 主动特征识别
    • 自定义 Bot 规则
    • Bot 管理例外规则
    • 相关参考
      • 处置方式
  • 策略模板
  • IP 和网段分组
  • 源站防护
  • 自定义响应页面
  • 告警通知推送
  • SSL/TLS
    • 概述
    • 部署/更新 SSL 托管证书至 EdgeOne 域名
    • 使用免费证书部署至 EdgeOne 域名
    • HTTPS 配置
      • 强制 HTTPS 访问
      • 启用 HSTS
      • SSL/TLS 安全配置
        • 配置 SSL/TLS 安全等级
        • TLS 版本及密码套件说明
      • 开启 OCSP 装订

主动特征识别

概述

除了对收到的客户端请求进行分析,识别头部和客户端 IP 中的特征,EdgeOne 也提供了主动特征识别的 Bot 识别方式。主动特征识别可以对客户端进行 Cookie 校验和会话跟踪,以及客户端行为校验来进行交互,进一步通过客户端的交互反馈来识别当前访问者是否为工具。主动特征识别具有以下优势:
对于能够模拟浏览器行为的工具(如:Headless Chrome 等)具有较强的识别效果。
相比其它前端校验方式(如:CAPTCHA 人机校验),主动特征识别的集成的方式对业务侵入性较小,用户几乎不会感知,可以为您带来更好的 Bot 识别效果和集成体验。

如果您当前站点服务中提供了登录/注册/支付服务,并且具有较高业务价值(例如:获取账号后可以获得账号内价值、通过支付可以获得稀缺商品或服务等),建议您针对关键业务接口启用主动特征识别。
说明:
1. 由于主动特征识别的机制特点,在开启前,请确认您的业务为 Web 浏览器客户端,或通过匹配条件将主动特征识别规则限制在仅允许 Web 浏览器访问的资源,避免因兼容性问题影响移动端 App 访问。
2. 该功能当前仍在内测中,如需开启请联系我们

支持的能力

主动特征识别支持如下两种能力配置:
Cookie 校验和会话跟踪:通过 HTTP 会话状态( Cookie 机制)为每一个访客下发动态会话令牌,并要求访客请求必须携带合法会话令牌。从而跟踪并区分来自不同访客的请求并识别其行为特征。除了验证请求中的 Cookie 的合法性之外,Cookie 校验也会识别被篡改的会话信息以及高频采集 Cookie 信息的行为,降低劫持会话造成的安全风险。
客户端行为校验:高级自动化工具(如:Headless Chrome)已经可以模拟浏览器行为。客户端行为校验将通过在 HTML 响应页面中注入 JavaScript 代码,采集客户端的 JavaScript 运行环境、设备环境和客户端交互行为,从而识别工具环境和正常请求的访客。

客户端交互流程



场景一:拦截普通 Web 工具爬虫对媒体站点的访问

示例场景

媒体站点 media.example.com 仅允许 H5 客户端和浏览器获取站点内容,且合法客户端均支持 Cookie。因此需要拦截不支持 Cookie 的客户端,包括劫持了其他访客会话的爬虫。对于恶意篡改 Cookie 的客户端使用静默方式进行对抗,保持连接但不再响应请求。

操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点
2. 单击安全防护 > Web 防护。默认为站点级防护策略,单击域名级防护策略 Tab,在域名级防护策略中,单击目标域名进入目标域名防护策略配置界面,例如:media.example.com
3. 定位到 Bot 管理卡片,单击主动特征识别下方的添加规则,进入配置页面。
4. 配置判断条件及执行处置。以当前场景为例,可配置匹配字段为请求路径(Path)正则匹配 /*,且请求方式(Method)等于GET的请求。配置执行处置操作为 Cookie 校验和会话跟踪,校验方式为更新 Cookie 并校验
对于未携带 Cookie 或 Cookie 已过期的请求,配置触发阈值为 10 秒内 300 次,执行处置为拦截
对于携带不合法 Cookie 的请求,执行处置为静默


Bot 管理模块的处置方式说明详情请见处置方式。其余相关配置说明如下:
配置项
说明
校验方式
更新 Cookie 并校验:对于未携带合法会话信息或者会话信息过期的请求,EdgeOne 将在响应中携带 Set-Cookie 头部创建会话,并持续更新会话信息。建议使用 GET 方式访问的路径选用此校验方式。
仅校验:EdgeOne 仅校验请求中携带的会话信息是否合法。当请求中的会话信息过期或请求未携带合法会话信息时,不会通过更新 Cookie 创建新的会话。建议使用 POST 方式访问的接口(如:注册、登录、加购等)使用仅校验方式。
校验结果
未通过 Cookie 校验的请求,根据校验结果,可按照如下方式处理:
未携带 Cookie 或 Cookie 已过期:Cookie 头部中携带的会话信息具有时效性,仅在一段时间内有效。若请求中未携带合法会话信息,或者会话信息过期时,需要更新会话信息才能通过 Cookie 校验。当客户端高频使用未携带会话信息的请求访问时,可能存在收割 Cookie 并劫持会话的风险。您可以选择未携带会话信息的请求到达指定速率时,处置来自该请求来源(客户端 IP),且未携带合法会话信息的请求。
触发阈值:您可以配置一段时间内允许的未携带 Cookie 或 Cookie 已过期可创建的会话数量上限,限制新会话的发起速率。当超过触发阈值时,将按照配置的处置方式处理。
不合法 Cookie:EdgeOne 下发的会话信息具备加密校验能力,随意篡改会话信息往往意味着恶意请求。您可以选项处置会话信息被篡改的请求。
会话速率和周期特征校验
通过 Cookie 校验的请求,根据预设速率特征,分为高风险、中风险和低风险三类。您可以为每个风险等级配置不同的处置方式,以便更有效地识别和防御恶意行为:
高风险:单个会话(对应 Cookie 头部中,相同的 EO-Bot-SessionId 值)中,每 5 分钟统计窗口超过 1000 个请求。当开启客户端行为校验后,同时校验同一客户端校验票据(对应 Cookie 头部中,相同的 EO-Bot-Token 值)在 1 分钟内重复使用超过 200 次。
中风险:单个会话(对应 Cookie 头部中,相同的 EO-Bot-SessionId 值)中,每 5 分钟统计窗口超过 500 个请求。当开启客户端行为校验后,同时校验同一客户端校验票据(对应 Cookie 头部中,相同的 EO-Bot-Token 值)在 1 分钟内重复使用超过 100 次。
低风险:单个会话(对应 Cookie 头部中,相同的 EO-Bot-SessionId 值)中,每 5 分钟统计窗口超过 100 个请求。当开启客户端行为校验后,同时校验同一客户端校验票据(对应 Cookie 头部中,相同的 EO-Bot-Token 值)在 1 分钟内重复使用超过 20 次。
5. 单击保存并发布后,规则将部署生效。

场景二:使用客户端行为校验加固电商站点密码重置页面和 API ,对抗批量重置密码的账号接管(ATO,Account Take Over)攻击

示例场景

电商站点 shop.example.com 的密码重置接口 /api/password_reset 发现有大量失败的重置请求,来自大量 IP ,频率不高,且无明显 User-Agent 或者头部聚集性。因此使用主动特征识别功能,对密码重置接口 /api/password_reset 和密码重置页面 /account/forgot_password.html 加固 Bot 对抗策略,使用静默方式对抗自动化批量尝试重置密码工具。

操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点
2. 单击安全防护 > Web 防护。默认为站点级防护策略,单击域名级防护策略 Tab,在域名级防护策略中,单击目标域名进入目标域名防护策略配置界面,例如:shop.example.com
3. 定位到 Bot 管理卡片,单击主动特征识别下方的添加规则,进入配置页面。
4. 配置判断条件及执行处置。以当前场景为例,可配置匹配字段为请求路径(Path)等于/account/forgot_password.html。配置执行处置操作为客户端行为校验,工作量证明校验强度为,执行方式为延迟 100ms 执行
对于客户端未启用 JS(未完成检测)10 秒内超过 10 次的请求执行处置为(长时间)等待后响应
对于客户端检测超时的请求,执行处置为静默;
对于 Bot 客户端,执行处置为静默
说明:
客户端行为校验仅会在响应的Content-Typetext/html时注入 JavaScript 进行校验,其余请求会根据当前校验结果进行处置。




Bot 管理模块的处置方式说明详情请见处置方式。其余相关配置说明如下:
配置项
说明
工作量证明校验
客户端行为校验支持工作量证明校验的强度调整。通过调整强度,可以平衡客户端的计算负载和对 Bot 的识别效果。
执行方式
用于探测的 JavaScript 代码会在整个页面加载完成后运行,同时支持延迟一定时间执行 JavaScript 探测代码。这有助于避免影响正常页面渲染,确保浏览器先加载完成页面再进行校验,从而避免影响用户访问体验。
校验结果
客户端未启用 JS(未完成检测):对于不支持 JavaScript 的客户端,或者校验未完成时发起的请求,归入此类。由于 JavaScript 校验通常需要一定时间进行,客户端在完成校验前,您可以允许一定速率的请求通过,并处置未通过校验且高频发起请求的客户端。
客户端检测超时:客户端支持 JavaScript 并已经开始校验,但是未能在 60 秒内完成校验。60 秒对于正常浏览器客户端而已足够完成客户端行为校验,而来自算力较少的 IoT 代理,则有较大概率验证超时,使用该选项可以区分处置算力较低的分布式 Bot 网络请求。
Bot 客户端:客户端成功完成了 JavaScript 校验,探测模块发现客户端运行环境异常,非正常人类通过浏览器访问。
5. 单击保存并发布后,规则将部署生效。