CDN 流量异常/遭受 DDOS、CC 攻击怎么办

2024-03-29 17:36:56 浏览数 (2)

导语:

首先CDN 并不清楚您的业务逻辑,所以默认是不会对访问作出限制的,需要自行按照业务情况去配置,如果您认为业务访问量并非可能达到这么大,可以下载日志根据您的业务访问情况,来做出相关访问限制。

详情请参见日志下载。

首先了解下DDoS攻击和CC攻击类型:

DDoS攻击

DDoS攻击是一种基于DoS特殊形式的拒绝服务攻击,是一种分布的、协同的大规模攻击方式,处于不同位置的多个攻击者同时向一个或多个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。攻击者进行一次DDoS攻击,需要经过了解攻击目标、攻占傀儡机、实际攻击三个主要步骤,如图1所示。

图1  DDoS攻击流程图1 DDoS攻击流程

CC攻击

CC攻击是攻击者使用代理服务器向受害服务器发送大量貌似合法的请求,攻击者控制某些主机不停地发大量协议正常的数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃,如图2所示。

图2  CC攻击示意图图2 CC攻击示意图

从上面说明可以看到,攻击其实也是用户发起的访问请求,恶意的访问从而导致正常业务无法访问。如果CDN不配置任何访问限制是无法进行主动识别,拦截异常请求。

流量异常分析

上述所讲攻击会造成流量异常升高,那我们如何从访问日志中进行分析查看呢?下面举例说明:

  • 下载访问日志

根据监控查看确定时间范围,下载对应时间日志

访问日志访问日志
  • 日志分析

首先了解下访问日志对应字段含义

日志字段说明日志字段说明

日志示例:

访问日志访问日志

准备工作已经做完,接下来开始分析日志

1、利用Excel进行日志分析参考另外一篇文章 https://cloud.tencent.com/developer/article/1438319

2、这里展示一个shell脚本分析的结果(文章结尾附脚本)

运行shell脚本 待分析日志,按照需求输入编号

如下分析结果可以看到4个小时的日志除200状态之外触发了1091条IP限频,响应514状态。

统计状态码数量分布统计状态码数量分布

根据上面分析结果进一步过滤514状态码对应的客户端IP信息,发现514状态都是同一个用户请求导致:

514状态对应用户IP514状态对应用户IP

查看514状态码对应UA信息:

514状态对应请求UA514状态对应请求UA

从上述分析结果可以得出结论

IP为81.69.7.x,UA头为python-requests/2.24.0的用户,在对应时间不断请求www域名,触发了IP限频。

访问限制设置:

1、IP 访问限频配置:上面日志中所描述的514状态码,就是因为配置了ip限频,否则是200状态,消耗的流量会更多。

2、IP 黑白名单配置:根据日志分析结果,把恶意访问IP加入到IP黑名单,拦截此部分IP的访问。

3、UA 黑白名单配置:根据访问日志把对应爬虫类或者异常UA头加入到黑名单,限制访问。

4、带宽封顶配置:对域名设置带宽封顶阈值,当域名在一个统计周期(5分钟)内产生的带宽超过指定阈值时,会根据您的配置将所有访问返回给源站,或直接关闭 CDN 服务,所有访问均返回 404。

5、防盗链配置:对业务资源的访问来源进行控制,通过对用户 HTTP Request Header 中 referer 字段的值设置访问控制策略,从而限制访问来源,避免恶意用户盗刷。


小结:

以上所举例的场景是比较简单的攻击场景,很容易去拦截到对方的访问。大部分场景下,用户IP和UA信息可能并不固定,那么CDN无法判断出此用户的访问是正常用户,还是恶意攻击。

并且上述所列举访问限制手段也是比较常规,只能按照访问规则进行拦截访问。如果网站经常遭到攻击,或者存在被攻击风险,建议使用Edge one(边缘安全加速平台)产品。

点击蓝色字体下载shell日志分析脚本

cdn

0 人点赞