中文站

应用层DDoS防御功能浅析

互联网时代,网络攻击事件司空见惯。随着IOT和移动端数量激增,僵尸网络不断壮大,反射源数量倍增。网络层流量型DDoS量级持续创下新高,例如2018年“码农天堂”GitHub遭受了1.35Tbps的流量访问,是有史以来最大规模分布式拒绝服务(DDoS)攻击。暴力程度让人印象深刻。企业为了防止网络层流量攻击导致入口带宽拥塞,投入高额成本堆砌边界流量清洗设备或者选择T级超大防护带宽的云防厂商。这是一场成本的对抗。

这场对抗中,随着防御带宽和清洗技术提升,防御时不时动辄上百G的网路层流量型DDoS显得游刃有余。攻击者思路转变,转而选择成本低,穿透力强,攻击效果不错的应用层DDoS。被攻击的业务通常表现为,入口流量小,QPS高,网站反应慢,服务器性能消耗大,正常用户访问慢甚至无法访问等。

本文我们简单阐述如下内容:

1.CC攻击概念和攻击源

2.CC攻击趋势

3.通用防CC功能

一、CC攻击概念和攻击源

CC(ChallengeCollapsar,挑战黑洞)攻击是应用层DDoS攻击的一种类型。CC攻击的原理是攻击者控制海量肉鸡不停地发请求包给对方服务器,造成服务器资源耗尽,直到宕机崩溃。

CC攻击源有很多,下面列举近些年流行三种方式:

1.海量移动设备成为新一代肉鸡

移动应用商店充斥大量伪装成正常应用的恶意app,如裸聊,借贷,网文等app。该app动态接收攻击指令后便对目标网站发动攻击。

2.网站嵌入恶意代码

攻击者通过网站漏洞,修改源代码,嵌入恶意js代码。当正常用户访问该网站时,悄无声息也会对恶意js代码中目标站点发起请求。

3.IOT僵尸网络

物联网(IOT)崛起,其安全没有得到相应保障,成为攻击者众矢之的。例如智能家居普及千家万户,一个小小的只能摄像头可能黑客手中的肉鸡。


上图为攻击源分布地图。总结这三类攻击源发起DDoS特征: 真实源(基站出口,4G),数量庞大,源ip不固定,源IP分布分散,攻击时长无规律。

二、CC攻击趋势

每年各大网络安全厂商会发布当年DDoS攻击趋势,下图摘自互联网某报告,借此图反映应用层DDoS攻击呈增长趋势。


三、通用防CC功能

下面开始我们的重点讲解部分,功能实现基于代理服务器或域名服务器日志。功能适用于攻击情况也不相同。

3.1浏览器验证

浏览器验证用于验证来自互联网的访问是否来自真实浏览器。原理是302重定向,适用于客户端为浏览器的场景,因为浏览器支持完整HTTP协议栈,可以正常回应防御系统的刺探数据报文。

3.1.1Cookie认证

Cookie认证原理,防御系统代替源站响应客户端请求,响应码为302并且响应报文中带有向客户端浏览器设置Cookie的信息,正常客户端浏览器再次发起请求时,会在请求报文中带有此cookie信息。此时认证通过。

3.1.2javascript认证

Javascript认证原理与cookie认证如出一辙,不同之处在于响应报文嵌入了一段javascript代码,正常客户端浏览器再次发起请求时会加载这段js代码并计算其结果返回给防御系统。防御系统校验通过后,认证通过。下面贴出一段js认证伪代码。


3.1.3captcha认证

验证码认证原理与前两种认证过程类似,响应报文嵌入验证码校验代码,用户需要完成验证码校验通过认证。由于僵尸主机无法自动完成人机交互,验证码认证防御效果更好。数据包交互如下:


3.2频率限制

频率限制是指 对所有请求或者某一接口,IP或URL维度,单位时间内请求数统计,超过设置频率阈值,用户再次请求的数据包会被丢弃并返回特定状态码。

例如,针对所有请求的IP+URL维度进行设置,源ip一秒访问任意URL超过2QPS,就丢弃请求包。一秒后会再次统计是否超过阈值。


3.3过滤器

过滤器是指针对用户请求包中明显特征定义规则,规则选择放行或者拦截,如下图攻击数据包中含有明显恶意特征(UA,Proxy),可以定义过滤器匹配恶意UA (Baiduspider)的规则,数据包含有此特征都会被拦截。


3.4自动封禁

自动封禁是指 IP维度封禁,有三种形式,IP绝对阈值封禁,IP相对阈值封禁,URL+IP绝对阈值封禁。

IP绝对阈值封禁:源IP QPS超过阈值就会封禁指定时间

IP相对阈值封禁:源IP 在M秒内N次超过阈值就会封禁指定时间,M为最大统计窗口,N为超过阈值次数。

URL+IP绝对封禁阈值:当URL访问量达到阈值并且访问该URL的源IP达到URL+IP 阈值就会封禁指定时间。

以上是目前防CC攻击用到的防御手段。在以往攻击持续对抗中,每种防御手段应对不同方式的攻击展现出来的效果是不同的。如果攻击者不具备协议栈的工具发起CC攻击,那么cookie认证或者js认证就可以解决。 如果攻击者操纵大量肉鸡或者具备协议栈的工具对请求接口发起cc攻击,那么定义此接口开启验证码校验或者频率限制就可以解决。如果攻击操作海量肉鸡发起低QPS的CC攻击,那么尝试提出数据包中恶意特征,用过滤器拦截。

网易易盾DDoS高防服务,网易自用DDoS高防技术,2T超大防护带宽,优质海外BGP节点。内嵌Web应用防火墙,多重防护保障业务稳定运行,点击免费试用

作者:马建宁