网站业务接入DDoS防护后,如果遭受了CC攻击,可以通过对HTTP字段进行针对性的特征分析及规则配置,增强CC攻击的识别拦截效力,用于盗链防护、网站管理后台保护等场景。本文介绍如何设置CC安全防护。
背景信息
CC攻击也称为DDoS攻击中的HTTP CC攻击,是常见的网络攻击手段,通过大量请求使服务器负载过高,导致服务器无法响应合法用户的正常请求。CC攻击的核心是发送大量请求,因此设置访问控制规则或限制请求频率可以有效防御CC攻击。
推荐的使用场景
当您遭受CC攻击时,如果通过日志分析查看HTTP请求头中存在明显特征(例如来源IP一样,URI中包含相同字段等),建议通过本功能加强防御,放行或者过滤指定特征的流量。日常防护不推荐您使用本功能。
防护规则介绍
根据设置规则时是否开启频率设置,分为精准访问控制规则和频率控制规则。匹配原则是先匹配精准访问控制规则,再匹配频率控制规则,只要匹配某一个规则,则不再向后匹配。
规则名称 | 精准访问控制规则 | 频率控制规则 |
说明 | 满足相关匹配条件即执行动作。 | 在统计时长内,当统计对象满足匹配条件并达到阈值,才执行动作。 |
规则生效时长 | 由您设置,可以设置为永久或自定义时长(5~120分钟)。 说明 自定义时长时,到期后该规则会自动删除。 | 永久生效。 |
匹配原则 | 匹配所有规则,当访问请求命中多条规则时,执行列表中排名靠前的规则的动作。 例如,如果访问请求同时命中①和②,则执行①对应的动作。 | 匹配所有规则,当访问请求命中多条规则时,随机执行某一条规则的动作。 |
限制条件 | 每个域名最多设置20个精准访问控制规则。 | 每个域名最多设置20个频率控制规则。 |
Cookie植入说明
使用DDoS高防七层接入的业务会在以下两种情况下被植入Cookie。
场景1:域名防护策略开启CC安全防护功能。
启用CC安全防护策略后,DDoS高防产品将会在客户端(如浏览器)植入Cookie用于区分统计不同客户端,用户在访问网站时会在HTTP报文中带上植入的Cookie信息,DDoS高防将结合统计结果判断业务流量中是否存在CC攻击行为,并启动CC攻击清洗策略。通过
可以关闭DDoS高防上的CC安全防护策略并禁止Cookie植入动作,但同时DDoS高防也将无法通过CC安全防护策略模块对CC攻击进行主动判断和防护。场景2:CC防护策略规则动作开启“挑战”模式。
CC防护策略启用“挑战”规则动作后,将会在HTTP报文的Header中植入Cookie用于获取客户端浏览器的指纹信息,收集的指纹信息包括HTTP报文的host字段、浏览器高度和宽度。当访问流量命中规则后,DDoS高防将对客户端发起挑战探测,并结合浏览器的指纹统计信息判断客户端是否有异常,识别异常客户端的CC攻击行为。如需停止DDoS高防向业务植入Cookie的行为,可以在
关闭高防的CC安全防护策略实现,但同时DDoS高防也将无法通过CC安全防护策略模块对CC攻击进行主动判断和防护。
前提条件
已将网站业务接入DDoS高防。具体操作,请参见添加网站配置。
操作步骤
登录DDoS高防控制台。
在顶部菜单栏左上角处,选择地域。
DDoS高防(中国内地):选择中国内地地域。
DDoS高防(非中国内地):选择非中国内地地域。
在左侧导航栏,选择
。在通用防护策略页面,单击网站业务DDoS防护页签,并从左侧域名列表中选择要设置的域名。
定位到CC安全防护配置区域,单击设置后,在右上角单击新增规则,配置完成后单击确定。
参数
描述
规则名称
规则的名称。由英文字母、数字和下划线(_)组成,不超过128个字符。
匹配条件
规则的匹配条件。字段详细介绍,请参见支持设置的HTTP请求头字段。
说明匹配内容不允许设置为空值。精准访问控制规则的匹配内容区分大小写,频率控制规则的匹配内容不区分大小写。
最多可以设置5个匹配条件。若添加多个匹配条件,只有当访问请求满足所有条件时才算命中。
频率设置
设置是否启动频率设置校验。
开关关闭:表示该规则为精准访问控制规则。
开关打开:表示该规则为频率控制规则。开启后您需要配置统计对象(只支持IP、自定义Header)、统计时长(秒)、阈值(次)。
规则动作
当访问请求命中匹配条件时,对请求执行的操作。取值 :
放行:放行该访问请求。
拦截:阻断该访问请求。
挑战:通过挑战算法对访问请求的源IP地址发起校验。
处置时长
频率设置开关关闭时:表示精准访问规则的生效时长,支持永久生效、自定义时长(5~120分钟)。
说明自定义时长时,到期后该规则会自动删除。
频率设置开关打开时:表示满足频率控制规则时,执行多长时间的规则动作,只支持自定义时长(1~1440分钟)。
高级设置
开启频率设置时,支持配置统计时去重。统计对象可以设置为IP、Header、URI。
开启去重模式:以下图为例,满足匹配条件的场景下,当同一源IP地址在30秒内访问不同的URI大于等于200种时,执行规定动作,拦截来自该IP的请求。由于开启了去重模式,当同一源IP使用相同的URI访问多次时,访问次数统计为1次。
未开启去重模式:以下图为例,满足匹配条件的场景下,当同一源IP地址在30秒内访问次数大于等于200次时,执行规定动作,拦截来自该IP的请求。未开启去重模式,假如同一源IP使用相同的URI访问10次时,访问次数统计为10次。
返回CC安全防护区域,开启状态开关。
支持设置的HTTP请求头字段
匹配字段 | 字段描述 | 逻辑符 | 字段示例 |
IP | 访问请求的来源IP。 取值为单个IP或IP/掩码。 | 属于、不属于 | 10.10.10.10 |
URI | 访问请求的URI地址。例如: | 包含、不包含、 等于、不等于、长度小于、长度等于、长度大于 说明 逻辑符为等于、不等于时,输入的字符应以 | /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。格式为: | 包含、不包含 、等于、不等于、长度小于、长度等于、长度大于、不存在 | 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中 | 包含、不包含 、等于、不等于、长度小于、长度等于、长度大于 | action=login |
Raw-URI | 未经过编码的URI,即保留了原始的字符序列。Raw-URI可以包含特殊字符和空格,但在使用时需要进行编码处理,以确保在网络传输和解析过程中不会引起歧义或错误。 | 包含、不包含、等于、不等于、长度小于、长度等于、长度大于、正则匹配、字节包含、字节等于 | GET /images/logo.png HTTP/1.1 |
Tls-Fingerprint | 基于发起访问请求的客户端TLS指纹,通过阿里云自研算法识别和计算得出的客户端指纹值,用于访问请求的匹配和防护。客户端指纹查看方式:
| 等于、不等于 | 74dcbf6b790160370bb6b7bea98d5978 |
配置示例
拦截特定攻击请求
一般情况下,正常业务不存在POST根目录的请求信息。如果网站业务上发生CC攻击,且您发现客户端的请求中存在大量的POST根目录请求,则可以评估请求的合法性。如果确认其为非正常业务请求,可以配置如下规则。
拦截爬虫
如果在某段时间内,您发现网站的访问流量中有大量爬虫请求,若不排除是攻击傀儡机模拟爬虫进行CC攻击,则可以对爬虫的请求执行拦截操作。规则配置示例如下。
防盗链
当浏览器访问某个网页时,会带上Referer字段,告诉服务器该请求是从哪个页面链接过来的。通过配置Referer字段的访问控制规则,可以阻断特定网站的盗链。例如,您发现“https://example.aliyundoc.com”大量盗用本站的图片,您可以配置如下。
设置登录频率限制
例如,为了预防登录接口受到恶意高频撞库攻击,可以配置登录接口的地址,设置60秒内超过20次请求则进行拦截。
拦截非法的客户端指纹
攻击者通过伪造客户端指纹,模拟真实的客户端以尝试建立大量的连接或HTTP请求,从而导致服务器崩溃或者拒绝服务。您可以通过检查并识别客户端指纹拒绝连接。
例如:遭受大流量CC攻击时,如果攻击者使用相同的脚本或工具,包含相同指纹值的请求数或请求数占比会突增。您可以在安全总览页面的域名页签,查看客户端指纹Top数据,并结合全量日志分析日志中的ssl_client_tls_fingerprinting_md5字段查看Top客户端指纹的占比,分析请求的行为,及时发现可疑的指纹值并设置策略。
- 本页导读 (1)