伴随着互联网技术的发展,越来越多的运营商和企业遭受ddos网络攻击。大量攻击者通过占用带宽和抢占资源方式造成目标服务器发生拒绝服务,影响企业业务的正常运营。流量清洗可以一定程度防御ddos网络攻击。
1.流量清洗原理简介:
流量清洗是通过业务流量进行实时监测,精准识别其中的异常攻击流量,在不影响正常业务的前提下,清洗掉异常流量,实现服务器的流量限流,减轻攻击流量对服务器造成的损害,保证服务正常可用。
2.网易分布式ddos防护实践
网易分布式ddos防护体系简称为nds,经过多年的不断积累和改进,nds在防护配置和防护效果方面日臻完善。
nds组成原理
当部署在企业内部时,nds的组成及原理如下图所示。nds产品主要由异常流量检测、异常流量清洗两个系统组成。工作流程有4步:流量检测、流量牵引、流量清洗、流量回注。
当部署在第三方idc机房时,nds产品的组成及原理如下图所示。
nds防护算法
网络层防护
网络层防护的主要流程是:每50毫秒分析一次业务流程的成分、新建连接并发连接、业务请求,发现攻击成分发生变化时,依据客户的配置情况调用相应的清洗模块。网络层清洗模块主要有:tcp syn认证模块、畸形包模块、acl模块、tcp/udp状态机模块、黑名单模块、大数据分析过滤模块、限速模块。nds产品对udp业务的防护流程如下图所示:
nds产品对tcp业务的防护流程比较复杂,这里仅仅介绍syn flood的防护,如下图所示。
应用层防护
应用层ddos攻击之所以难以防范,就在于攻击流和正常流混合在一起,很难有效地分辨出攻击流,想要取得良好的防护效果,要求nds必须对业务进行深入的分析。
nds产品业务层防护由js认证、浏览器指纹、cc工具识别、高级acl、ip名单库等防护模块组成。这些模块可以单独或者组合使用,以保护客户的业务。
1、js验证:用于验证来自互联网的访问是否来自于真实浏览器,会区分http api调用和浏览器。其防护流程如下图所示:
2、浏览器指纹:用于验证来自于互联网的访问是否伪造浏览器的请求;
3、cc工具识别:一款cc工具识别模块,能识别出互联网的90%以上的cc工具。包括且不限于空连接、长连接、慢速连接、故意拆分成小包、故意重传、回放攻击、无负载连接等行为;4、高级acl:支持客户根据业务特征书写acl,直接过滤非法流量,支持与黑名单联动;5、ip名单库:根据大数据的分析结果,形成各种特征的ip名单。
除上述方法之外,nds产品应用防护层还提供了深度定制防护方式:清洗插件,允许在nds软件运行客户的清洗逻辑。
防护算法
nds内置了多种防护算法,目前各种算法单独工作时的可用性指标如下:
1、畸形包丢弃:对特定格式的ip/tcp/icmp报文进行丢弃,成功率接近100%;
2、syn reset认证:用于过滤syn flood,成功率95%,源ip首次建tcp连接会延迟1-3秒;
3、syn cookie认证:用于过滤syn flood,成功率接近100%,通用高防的syn flood的默认防护策略;
4、tcp状态机过滤:用于过滤ack/fin/reset flood,防护阈值配置正确时,成功率100%;
5、udp状态机过滤:用于过滤udp flood,对于双向udp业务,成功率95,单向成功率50%;
6、http js反射验证:用于过滤http flood,改进模型的成功率96%,可能对验证码uri会有误杀;
7、浏览器指纹:用于http flood,成功率90%;
8、地域开关过滤:用于过滤cc,和其他开关清洗不掉的ddos流量,成功率75%;
9、大数据分析结果校验:用于过滤cc,和其他开关清洗不掉的ddos流量,成功率70%;
10、黑/白名单过滤:用于过滤cc,防护阈值配置正确时,成功率80%;
11、限速:有很多种类型的限速,一般用于其他开关清洗不掉的ddos流量。
静态开关
静态开关是由用户(或易盾安全专家)配置的,nds软件会依据配置值预设清洗策略。
动态开关
动态开关是由nds软件按照ddos攻击特征和客户指定的阈值,动态打开关闭的,用户只能看不能改,但可以通过修改与之关联的防护阈值来间接改变它。
由于复合型ddos攻击非常常见,因此发生ddos时开启多个动态开关是常态。当前时刻和历史任意时刻的动态开关可以通过“清洗效果分析系统”的app_sw成员来查看,如下图所示。
动态开关通常会因ddos流量的成分的变化而变化,且反应速度很快。其中syn认证开关的反应时间为≤50毫秒,其他动态开关的反应时间为≤1秒。
动态开关依据成功率以及开销的不同,划分为若干个级别。nds软件会参考客户的配置值,优先选择成功率高、开销小的算法。当无法满足需求(例如检测到有严重误杀)时,会自动叠加成功率低的算法。
网易nds产品通过对异常流量检测、异常流量清洗可以高效实现ddos防护的目的。
相关阅读: