全部产品
Search
文档中心

DDoS 防护:设置CC安全防护

更新时间:May 06, 2024

网站业务接入DDoS防护后,如果遭受了CC攻击,可以通过对HTTP字段进行针对性的特征分析及规则配置,增强CC攻击的识别拦截效力,用于盗链防护、网站管理后台保护等场景。本文介绍如何设置CC安全防护。

背景信息

CC攻击也称为DDoS攻击中的HTTP CC攻击,是常见的网络攻击手段,通过大量请求使服务器负载过高,导致服务器无法响应合法用户的正常请求。CC攻击的核心是发送大量请求,因此设置访问控制规则或限制请求频率可以有效防御CC攻击。

推荐的使用场景

当您遭受CC攻击时,如果通过日志分析查看HTTP请求头中存在明显特征(例如来源IP一样,URI中包含相同字段等),建议通过本功能加强防御,放行或者过滤指定特征的流量。日常防护不推荐您使用本功能。

防护规则介绍

根据设置规则时是否开启频率设置,分为精准访问控制规则频率控制规则。匹配原则是先匹配精准访问控制规则,再匹配频率控制规则,只要匹配某一个规则,则不再向后匹配。

规则名称

精准访问控制规则

频率控制规则

说明

满足相关匹配条件即执行动作。

在统计时长内,当统计对象满足匹配条件并达到阈值,才执行动作。

规则生效时长

由您设置,可以设置为永久或自定义时长(5~120分钟)。

说明

自定义时长时,到期后该规则会自动删除。

永久生效。

匹配原则

匹配所有规则,当访问请求命中多条规则时,执行列表中排名靠前的规则的动作。

例如,如果访问请求同时命中①和②,则执行①对应的动作。

image.png

匹配所有规则,当访问请求命中多条规则时,随机执行某一条规则的动作。

限制条件

每个域名最多设置20个精准访问控制规则。

每个域名最多设置20个频率控制规则。

Cookie植入说明

使用DDoS高防七层接入的业务会在以下两种情况下被植入Cookie。

  • 场景1:域名防护策略开启CC安全防护功能。

    启用CC安全防护策略后,DDoS高防产品将会在客户端(如浏览器)植入Cookie用于区分统计不同客户端,用户在访问网站时会在HTTP报文中带上植入的Cookie信息,DDoS高防将结合统计结果判断业务流量中是否存在CC攻击行为,并启动CC攻击清洗策略。通过防护设置 > 通用防护策略 > 网站业务DDoS防护可以关闭DDoS高防上的CC安全防护策略并禁止Cookie植入动作,但同时DDoS高防也将无法通过CC安全防护策略模块对CC攻击进行主动判断和防护。

  • 场景2:CC防护策略规则动作开启“挑战”模式。

    CC防护策略启用“挑战”规则动作后,将会在HTTP报文的Header中植入Cookie用于获取客户端浏览器的指纹信息,收集的指纹信息包括HTTP报文的host字段、浏览器高度和宽度。当访问流量命中规则后,DDoS高防将对客户端发起挑战探测,并结合浏览器的指纹统计信息判断客户端是否有异常,识别异常客户端的CC攻击行为。如需停止DDoS高防向业务植入Cookie的行为,可以在防护设置 > 通用防护策略 > 网站业务DDoS防护关闭高防的CC安全防护策略实现,但同时DDoS高防也将无法通过CC安全防护策略模块对CC攻击进行主动判断和防护。

前提条件

已将网站业务接入DDoS高防。具体操作,请参见添加网站配置

操作步骤

  1. 登录DDoS高防控制台

  2. 在顶部菜单栏左上角处,选择地域。

    • DDoS高防(中国内地):选择中国内地地域。

    • DDoS高防(非中国内地):选择非中国内地地域。

  3. 在左侧导航栏,选择防护设置 > 通用防护策略

  4. 通用防护策略页面,单击网站业务DDoS防护页签,并从左侧域名列表中选择要设置的域名。

  5. 定位到CC安全防护配置区域,单击设置后,在右上角单击新增规则,配置完成后单击确定

    参数

    描述

    规则名称

    规则的名称。由英文字母、数字和下划线(_)组成,不超过128个字符。

    匹配条件

    规则的匹配条件。字段详细介绍,请参见支持设置的HTTP请求头字段

    说明
    • 匹配内容不允许设置为空值。精准访问控制规则的匹配内容区分大小写,频率控制规则的匹配内容不区分大小写。

    • 最多可以设置5个匹配条件。若添加多个匹配条件,只有当访问请求满足所有条件时才算命中。

    频率设置

    设置是否启动频率设置校验。

    • 开关关闭:表示该规则为精准访问控制规则。

    • 开关打开:表示该规则为频率控制规则。开启后您需要配置统计对象(只支持IP、自定义Header)、统计时长(秒)阈值(次)

    规则动作

    当访问请求命中匹配条件时,对请求执行的操作。取值 :

    • 放行:放行该访问请求。

    • 拦截:阻断该访问请求。

    • 挑战:通过挑战算法对访问请求的源IP地址发起校验。

    处置时长

    • 频率设置开关关闭时:表示精准访问规则的生效时长,支持永久生效、自定义时长(5~120分钟)。

      说明

      自定义时长时,到期后该规则会自动删除。

    • 频率设置开关打开时:表示满足频率控制规则时,执行多长时间的规则动作,只支持自定义时长(1~1440分钟)。

    高级设置

    开启频率设置时,支持配置统计时去重。统计对象可以设置为IP、Header、URI。

    • 场景一:开启去重模式

      以下图为例,满足匹配条件的场景下,当同一源IP地址在30秒内访问不同的URI大于等于200种时,执行规定动作,拦截来自该IP的请求。由于开启了去重模式,当同一源IP使用相同的URI访问多次时,访问次数统计为1次。image

    • 场景二:未开启去重模式

      以下图为例,满足匹配条件的场景下,当同一源IP地址在30秒内访问次数大于等于200次时,执行规定动作,拦截来自该IP的请求。未开启去重模式,假如同一源IP使用相同的URI访问10次时,访问次数统计为10次。image

  6. 返回CC安全防护区域,开启状态开关。

支持设置的HTTP请求头字段

匹配字段

字段描述

逻辑符

字段示例

IP

访问请求的来源IP。

取值为单个IP或IP/掩码。

属于、不属于

10.10.10.10

URI

访问请求的URI地址。例如:/action/member/id.php?id=1&td=2

包含、不包含、 等于、不等于、长度小于、长度等于、长度大于

说明

逻辑符为等于、不等于时,输入的字符应以/开头。

/action/member/id.php?id=1&td=2

User-Agent

发起访问请求的客户端的浏览器标识、渲染引擎标识和版本信息等浏览器相关信息。

包含、不包含、等于、不等于、长度小于、长度等于、长度大于

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.XX.XX Safari/537.36

Cookie

访问请求中携带的Cookie信息。

包含、不包含 、等于、不等于、长度小于、长度等于、长度大于、不存在

cna=Z87DHXX/jXIBASQBsYAimToU; sca=234ea940; yunpk=177699790****

Referer

访问请求的来源网址,即该访问请求是从哪个页面跳转产生的。

包含、不包含 、等于、不等于、长度小于、长度等于、长度大于、不存在

https://example.aliyundoc.com/

Content-Type

访问请求指定的响应HTTP内容类型,即MIME类型信息。

包含、不包含 、等于、不等于、长度小于、长度等于、长度大于

text/plain;charset=UTF-8

X-Forwarded-For

访问请求的客户端真实IP。格式为:<client>, <proxy1>, <proxy2>

包含、不包含 、等于、不等于、长度小于、长度等于、长度大于、不存在

36.18.XX.XX,192.18.XX.XX

Content-Length

访问请求包含的字节数。

值小于、值等于、值大于

806

Post-Body

访问请求的内容信息。

包含、不包含、等于、不等于

Content-Type: application/x-www-form-urlencoded

name=John&age=25&email=****

Http-Method

访问请求的方法。取值为:GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE。

等于、不等于

POST

Header

访问请求的头部信息,用于自定义HTTP头部字段及匹配内容。

包含、不包含、等于、不等于 、长度小于、长度等于、长度大于、不存在

*text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/****

Params

访问请求的URL地址中的参数部分,通常指URL中?后面的部分。例如,example.aliyundoc.com/index.html?action=login中的action=login就是参数部分。

包含、不包含 、等于、不等于、长度小于、长度等于、长度大于

action=login

Raw-URI

未经过编码的URI,即保留了原始的字符序列。Raw-URI可以包含特殊字符和空格,但在使用时需要进行编码处理,以确保在网络传输和解析过程中不会引起歧义或错误。

包含、不包含、等于、不等于、长度小于、长度等于、长度大于、正则匹配、字节包含、字节等于

GET /images/logo.png HTTP/1.1

Tls-Fingerprint

基于发起访问请求的客户端TLS指纹,通过阿里云自研算法识别和计算得出的客户端指纹值,用于访问请求的匹配和防护。客户端指纹查看方式:

  • 安全总览页面,单击域名页签,在页面最下方查看客户端指纹

  • 全量日志分析页面,使用ssl_client_tls_fingerprinting_md5字段搜索查看。您需要开通日志服务,具体请参见快速使用全量日志分析

等于、不等于

74dcbf6b790160370bb6b7bea98d5978

配置示例

  • 拦截特定攻击请求

    一般情况下,正常业务不存在POST根目录的请求信息。如果网站业务上发生CC攻击,且您发现客户端的请求中存在大量的POST根目录请求,则可以评估请求的合法性。如果确认其为非正常业务请求,可以配置如下规则。image.png

  • 拦截爬虫

    如果在某段时间内,您发现网站的访问流量中有大量爬虫请求,若不排除是攻击傀儡机模拟爬虫进行CC攻击,则可以对爬虫的请求执行拦截操作。规则配置示例如下。

    image.png

  • 防盗链

    当浏览器访问某个网页时,会带上Referer字段,告诉服务器该请求是从哪个页面链接过来的。通过配置Referer字段的访问控制规则,可以阻断特定网站的盗链。例如,您发现“https://example.aliyundoc.com”大量盗用本站的图片,您可以配置如下。image.png

  • 设置登录频率限制

    例如,为了预防登录接口受到恶意高频撞库攻击,可以配置登录接口的地址,设置60秒内超过20次请求则进行拦截。image.png

  • 拦截非法的客户端指纹

    攻击者通过伪造客户端指纹,模拟真实的客户端以尝试建立大量的连接或HTTP请求,从而导致服务器崩溃或者拒绝服务。您可以通过检查并识别客户端指纹拒绝连接。

    例如:遭受大流量CC攻击时,如果攻击者使用相同的脚本或工具,包含相同指纹值的请求数或请求数占比会突增。您可以在安全总览页面的域名页签,查看客户端指纹Top数据,并结合全量日志分析日志中的ssl_client_tls_fingerprinting_md5字段查看Top客户端指纹的占比,分析请求的行为,及时发现可疑的指纹值并设置策略。image