近年来,因DDos攻击具有实施方便、见效迅速、成本低廉、难以定位溯源、攻击回报高等特点,使得攻击产业迅猛发展且趋向完善,从攻击工具的开发、攻击源的挖掘、攻击业务的开拓、攻击目标的实施都有一整套完善的组织和流程,整个产业达到了百亿级别,而攻击服务的形式也由最初的提供攻击工具到现在的攻击即服务(AAAS),费用也越来越低,黑市流传50元可打垮一个网站目标。攻击重灾区分布在游戏、电商、金融、医疗、视频等跟人们的社会生活息息相关且高度依赖互联网的行业。
DDoS分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
举一个简单的例子,小王开了一家商店,店面不大,加上小王一共有三个服务员。由于他们这里物美价廉,工作人员的态度又比较友善,所以慢慢的生意越来越好。
但是,这家店所在的小镇上有一个恶霸,恶霸看到小王的店很赚钱,想要通过一些下作的手段谋取私利。于是他装扮成普通的顾客,在小王的店里有一搭无一搭的总和店员攀谈,问问这个多少钱,问问那个怎么卖,还时不时的给店员提供一些虚假信息,比如哪里缺货了之类的信息,使得店员们都被搞的团团转。
由于恶霸是装作普通顾客的,小王和店员们又不能彻底不理他,所以就要分出一些精力来服务他,但是由于店内的服务员有限。这样一来,很多其他真实的顾客就可能受到了冷落。
对于网站来说,其实也是一样的,网站就像是小王的商店一样。对于一个网站来说,他是要搭建在服务器上面的,而由于硬件资源有限,所以服务能力也是有限的。如果有人频繁访问或者长时间占用资源,就会导致其他用户的体验有所下降。
这种,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应的行为,就是DDoS攻击,其DDoS攻击流量的主要来源分为两大类,一类是庞大的僵尸网络,一类是互联网公有服务器,如NTP、DNS、WEB、Memcached、代理服务器等。
那DDoS攻击能完全根除吗?
答案是不能。因为DDoS攻击利用的是互联网底层协议的固有漏洞,且这种漏洞是无法通过协议修改打补丁的方式解决的,只要存在服务等待和资源差的地方,就存在DDoS攻击。但是可以通过一定的措施来缓解DDoS攻击,使其不足以威胁在线业务的正常运行。
以上对DDos攻击有了一定的了解,那当我们面对不同类型的DDos攻击应当采取何种防御措施呢?
一、按攻击流量规模分类
1、较小流量
小于1000Mbps攻击流量的DDoS攻击,一般只会造成小幅度延迟和卡顿,并不是很不影响线上业务的正常运行,可以利用DDoS防护应用实现软件层的DDoS防护。
2、大型流量
大于1000Mbps攻击流量的DDoS攻击,可以利用DDoS防护应用实现软件层防护,或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务IP修改为高负载Proxy集群外网IP,或者CDN高仿IP,或者公有云DDoS网关IP,由其代理到RealServer。
3、超大规模流量
超大规模的DDoS攻击流量通过上述方法也起不到多大作用,只能通过专业的网络安全公司接入DDoS高防服务,隐藏服务器源IP,将攻击流量引流到高防IP,对恶意攻击流量进行智能清洗,阻拦漏洞攻击、网页篡改、恶意扫描等黑客行为,保障网站的安全与可用性。
二、按攻击流量协议分类
1、syn/fin/ack等tcp协议包
设置预警阀值和响应阀值,前者开始报警,后者开始处理,根据流量大小和影响程度调整防护策略和防护手段,逐步升级。
2、UDP/DNS query等UDP协议包
对于大部分游戏业务来说,都是TCP协议的,所以可以根据业务协议制定一份TCP协议白名单,如果遇到大量UDP请求,可以不经产品确认或者延迟跟产品确认,直接在系统层面/HPPS或者清洗设备上丢弃UDP包。
3、http flood/CC等需要跟数据库交互的攻击
这种一般会导致数据库或者webserver负载很高或者连接数过高,在限流或者清洗流量后可能需要重启服务才能释放连接数,因此更倾向在系统资源能够支撑的情况下调大支持的连接数。相对来说,这种攻击防护难度较大,对防护设备性能消耗很大。
4、其他
icmp包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。