近日,据知名安全技术公司Cloudflare发布的2021年第三季度全球DDoS攻J的报告显示,该季度全球DDoS攻J数量增长幅度为44%,达到了创纪录的水平。 且与上一季度相比,计算机软件、游戏、IT 和互联网公司平均遭到攻J的次数增长了573%。而第三季度大多数攻J流量是来自中国、美国和印度的设备和服务器。 这一季度的DDos攻J数量增长为什么那么快速?说真的,DDOS攻J这么多年来一直能长盛不衰,跟它本身成本低,攻J手段相对容易是分不开的。黑K只要找到网络环节中的漏D,就可以通过发送大量请求发起DDOS攻J,像memcached这种反射型攻J,简直就是企业的噩梦,攻J放大倍数达到5万倍,成本低,但造成的危害大,防御住更不容易。 DDos攻J是什么? DDoS即分布式拒绝服务攻J,DDoS里面的 DoS是denial of service(停止服务)的缩写,表示这种攻J的目的,就是使得服务中断。最前面的那个D是 distributed(分布式),表示攻J不是来自一个地方,而是来自四面八方。 它属于一种协同攻J,旨在使受害者的资源无法使用。它可以由一个黑K组织协同行动,也可以借助连接到互联网的多个受破坏设备来执行。这些在攻J者控制下的设备通常称为僵尸网络。 想象一下有人使用不同的电话号码一遍又一遍地打电话给你,而你也无法将他们列入黑名单。最终你可能会选择关闭手机,从而避免骚扰。这个场景就是常见的分布式拒绝服务(DDoS)攻J的样子。 有多种执行DDoS攻J的工具:例如Trinoo,Stacheldraht,Shaft,Knight,Mstream等。这些工具的可用性是DDoS攻J如此广泛和流行的原因之一。 DDoS攻J可能持续几分钟、几小时、甚至是几天。卡巴斯基实验室的一份报告显示,近年来时间最长的DDoS攻J之一发生在2018年1月,它持续了将近300个小时。 DDOS攻J的类型有哪些? 1、TCP洪水攻J(SYN Flood) TCP洪水攻J是当前最流行的DoS(拒绝服务攻J)与DDoS(分布式拒绝服务攻J)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻J服务器回应第二个握手包(SYN+ACK包),因为对方是假冒IP,对方永远收不到包且不会回应第三个握手包。导致被攻J服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来。 2、反射性攻J(DrDoS) 反射型的 DDoS 攻J是一种新的变种,与DoS、DDoS不同,该方式靠的是发送大量带有被害者IP地址的数据包给攻J主机,然后攻J主机对IP地址源做出大量回应,形成拒绝服务攻J。黑K往往会选择那些响应包远大于请求包的服务来利用,这样才可以以较小的流量换取更大的流量,获得几倍甚至几十倍的放大效果,从而四两拨千斤。一般来说,可以被利用来做放大反射攻J的服务包括DNS服务、NTP服务、SSDP服务、Chargen服务、Memcached等。 3、CC攻J(HTTP Flood) HTTP Flood又称CC攻J,是针对Web服务在第七层协议发起的攻J.通过向Web服务器发送大量HTTP请求来模仿网站访问者以耗尽其资源。虽然其中一些攻J具有可用于识别和阻止它们的模式,但是无法轻易识别的HTTP洪水。它的巨大危害性主要表现在三个方面:发起方便、过滤困难、影响深远。 4、直接僵尸网络攻J 僵尸网络就是我们俗称的“肉鸡”,现在“肉鸡”不再局限于传统PC,越来越多的智能物联网设备进入市场,且安全性远低于PC,这让攻J者更容易获得大量“肉鸡”,也更容易直接发起僵尸网络攻J。根据僵尸网络的不同类型,攻J者可以使用它来执行各种不同的攻J,不仅仅是网站,还包括游戏服务器和任何其他服务。 如何发起DDos攻J? 举例来说,基本分为以下三步: 第一、搜集目标,刺探军情。比如:搜集目标家有多少人,都使用哪些设备,家庭情况怎么样,值不值得攻J,然后找个机会顺便潜入目标家拿到开门的最高权限。 第二、确定攻J时间段。当目标一家人都在家或者有很多客人上门的时候是发动攻J的最佳时间段; 第三、发动肉鸡攻J。经过前2步的精心准备后,“鸡主”把这些肉鸡全引向盯梢已久的目标家门口,打开门,让肉鸡如洪水般涌入目标家里。 经过以上三步,便完成了一次完整的DDoS攻J过程。 发起DDoS攻J有两种常见方法: 利用软件漏D。黑K可以针对已知和未知软件漏D,并发送格式错误的数据包,以试图破坏受害者的系统。 消耗计算或通信资源。黑K可以发送大量合法的数据包,从而消耗受害者的网络带宽、CPU或内存,直到目标系统无法再处理来自合法用户的任何请求。 其实在乔布斯(Steve Jobs)推出第一款iPhone之前,DDoS攻J就已经存在了。它们非常受黑K欢迎,因为它们非常有效,易于启动,并且几乎不会留下痕迹。但对我们来说,完全杜绝DDoS在目前是不可能的,但我们可以通过适当的措施抵御90%的DDoS攻J。基于攻J和防御都有成本开销的缘故,若通过适当的办法增强了抵御DDoS的能力,也就意味着加大了攻J者的攻J成本,那么绝大多数攻J者将无法继续下去而放弃,也就相当于成功的抵御了DDoS攻J。 历史上著名的DDos攻J事件也不在少数:
- 2016年11月,俄罗斯五家主流银行遭遇长达两天的DDoS攻J。来自30个国家2.4万台计算机构成的僵尸网络持续不断发动强大的DDOS攻J。
2、2017年4月初,江苏省某网络公司服务器频繁遭到DDoS流量攻J,导致挂载在服务器上的多个网站无法正常运营,损失严重。 3、2018年3月,Github遭受了迄今为止记录的最大的DDoS攻J。攻J者通过公共互联网发送小字节的基于UDP的数据包请求到配置错误的memcached服务器,作为回应,memcached服务器通过向Github发送大量不成比例的响应,形成巨大规模的DDoS攻J。 上述案例只是近年来DDoS攻J的一小部分,由此可见,DDoS攻J对全球网络安全构成了极大威胁。 那么我们该如何才能防御DDoS攻J呢?防御方式如下。 1 .采用高性能的网络设备 抗DDoS攻J首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻J发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻J是非常有效的。
- 尽量避免NAT的使用
无论是路由器还是硬件防护墙设备都要尽量避免采用网络地址转换NAT的使用,除了必须使用NAT,因为采用此技术会较大降低网络通信能力,原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间。 3 .充足的网络带宽保证 网络带宽直接决定了能抗受攻J的能力,假若仅有10M带宽,无论采取何种措施都很难对抗现在的 SYNFlood攻J,当前至少要选择100M的共享带宽,1000M的带宽会更好,但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M。
- 升级主机服务器硬件
在有网络带宽保证的前提下,尽量提升硬件配置,要有效对抗每秒10万个SYN攻J包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,要保障硬件性能高并且稳定,否则会付出高昂的性能代价。
- 把网站做成静态页面
大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻J能力,而且还给黑K入侵带来不少麻烦,到现在为止还没有出现关于HTML的溢出的情况,很多的门户网站主要都是静态页面。
- CDN流量清洗
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,因此CDN加速也用到了负载均衡技术。相比高防硬件防火墙不可能扛下无限流量的限制,CDN则更加理智。像蓝队云的高防CDN,是在原有网络基础上的一种豪华防护,即DDoS高防服务。它在网站的内容流量传输上与普通CDN没有区别,但其防御能力是普通CDN的16倍,可以说是能应付目绝大多数的DDoS攻J了。 7、定期检查 企业网骨干需要定期检查主要的网络节点,清查可能会出现的问题,对于新出现的漏D及时处理。主要因为是骨干节点本身就具有很高的带宽,这是黑K们可以利用的好位置,所以说要加强这些主机是十分必要的。