首页 > 编程知识 正文

抗ddos工作原理(ddos网页端原理)

时间:2023-05-04 08:23:56 阅读:102940 作者:557

DoS攻击、DDoS攻击和DRDoS攻击,相信大家都已经听说过了!DoS是拒绝服务的缩写,意思是拒绝服务;DDoS是分布式拒绝服务的缩写,意思是分布式拒绝服务;而DRDoS是分布式反射拒绝服务的缩写,意思是分布式反射拒绝服务。

然而,DDoS是三者中最强大的攻击方法。DRDoS攻击虽然是一种新的攻击方式,但它只是DDoS攻击的变种,唯一的区别在于它没有占用大量的“肉鸡”。这三种方法都利用了TCP三次握手的漏洞,所以它们的防御方法是相似的。

DoS攻击是最早的,它的攻击方式是单挑,比任何人的机器都好,都快。但随着科技的飞速发展,一般网站的主机都有十几台,每台主机的处理能力、内存大小、网速都在飞速发展,有的网络带宽甚至超过了千兆级别。我们一对一的一对一攻击不会有效果,可能我们自己的机器也会死。比如你的机器每秒可以发送10个攻击包,而你攻击的机器(拥有顶级性能和网络带宽)每秒可以接收和处理100个攻击包,那么你的攻击就没用了,很有可能崩溃。你要知道,如果你发这个1Vs1攻击,你的机器的CPU利用率是90%以上,如果你的机器配置的不够高,那么你就会死。

图-01 DoS攻击

然而,技术在发展,黑客的技术也在发展。俗话说,一只脚比另一只脚高。经过无数次的崩溃,黑客终于找到了一种新的DoS攻击方法,那就是DDoS攻击。说白了,它的原理就是群殴,利用多台机器一起对目标机器发起DoS攻击,但这种攻击只是一个黑客操作,而不是多个黑客。这个黑客没有很多机器。他用自己的机器占领了网络上大量的“肉鸡”,并控制这些“肉鸡”发起DDoS攻击。不然怎么叫分布式呢?刚才同样的例子,你的机器每秒可以发送10个攻击包,而被攻击的机器每秒可以接收100个包,这样你的攻击肯定不会奏效,如果你用10个或者更多的机器攻击目标机器,呵呵!结果我就不说了。

图-02 DDOS攻击

分布式反射拒绝服务攻击这是DDoS攻击的变种。DrDoS和DDoS的区别在于,DRDOS在攻击前不需要占用大量“肉鸡”。其攻击原理与Smurf攻击类似,但DRDoS可以在WAN上进行,而Smurf攻击在LAN上进行。其工作原理是基于广播地址和响应请求。当一台计算机向另一台计算机发送一些特殊的数据包(如ping请求)时,它会收到响应。如果请求包被发送到这个网络的广播地址,它实际上会到达网络上的所有计算机,然后所有计算机都会响应。这些响应需要由接收计算机处理,每个响应将占用一部分系统资源。如果同时收到网络上所有计算机的响应,接收系统可能会不堪重负,就像受到DDoS攻击一样。但是,没有人傻到去攻击自己,但是这种方法如果被黑客改进的话,威力是很大的。黑客向广播地址发送请求包。所有的计算机收到请求后,不会将响应发送给黑客,而是发送给被攻击的主机。这是因为黑客冒充被攻击主机。黑客用来发送请求包的软件可以伪造源地址,收到伪造包的主机会根据源地址发送响应,当然源地址就是被攻击主机的地址。同时,黑客还会减少发送请求包的时间间隔,这样短时间内就可以发送大量的请求包,被攻击的主机会收到被欺骗的计算机的泛滥响应,就像DDoS攻击导致的系统崩溃一样。黑客利用网络中的所有计算机攻击受害者,而不提前占领这些被欺骗的主机,这就是所谓的蓝精灵攻击。DRDoS攻击就是这个原理。黑客还使用特殊的合同工具,首先向那些被欺骗的计算机发送带有伪造源地址的SYN连接请求包。根据TCP三次握手的规则,这些计算机将向源IP发送SYN ACK或RST数据包来响应此请求。和Smurf攻击一样,黑客发送的请求包的源IP地址就是被攻击主机的地址,这样被欺骗的主机就会向被攻击主机发送响应,这会导致被攻击主机忙于处理这些响应而瘫痪。

图-03分布式反射拒绝服务攻击

解释:

Syn3:(同步序列号)用于

建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。 即,SYN和ACK来区分Connection Request和Connection Accepted。

  RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。

  ACK:(Acknowledgment field significant)置1时表示确认号(Acknowledgment Number)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

  TCP三次握手:

  

  图-04 TCP三次握手

  假设我们要准备建立连接,服务器正处于正常的接听状态。

  第一步:我们也就是客户端发送一个带SYN位的请求,向服务器表示需要连接,假设请求包的序列号为10,那么则为:SYN=10,ACK=0,然后等待服务器的回应。

  第二步:服务器接收到这样的请求包后,查看是否在接听的是指定的端口,如果不是就发送RST=1回应,拒绝建立连接。如果接收请求包,那么服务器发送确认回应, SYN为服务器的一个内码,假设为100,ACK位则是客户端的请求序号加1,本例中发送的数据是:SYN=100,ACK=11,用这样的数据回应给我们。向我们表示,服务器连接已经准备好了, 等待我们的确认。这时我们接收到回应后,分析得到的信息,准备发送确认连接信号到服务器。

  第三步:我们发送确认建立连接的信息给服务器。确认信息的SYN位是服务器发送的ACK位,ACK位是服务器发送的SYN位加1。即:SYN=11,ACK=101。

  这样我们的连接就建立起来了。

  DDoS究竟如何攻击?目前最流行也是最好用的攻击方法就是使用SYN-Flood进行攻击,SYN-Flood也就是SYN洪水攻击。SYN-Flood不会完成TCP三次握手的第三步, 也就是不发送确认连接的信息给服务器。这样,服务器无法完成第三次握手,但服务器不会立即放弃,服务器会不停的重试并等待一定的时间后放弃这个未完成的连接,这段时间叫做SYN timeout, 这段时间大约30秒-2分钟左右。若是一个用户在连接时出现问题导致服务器的一个线程等待1分钟并不是什么大不了的问题,但是若有人用特殊的软件大量模拟这种情况,那后果就可想而知了。 一个服务器若是处理这些大量的半连接信息而消耗大量的系统资源和网络带宽,这样服务器就不会再有空余去处理ssdmf的正常请求(因为客户的正常请求比率很小)。这样这个服务器就无法工作了, 这种攻击就叫做:SYN-Flood攻击。

  到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻击。 不过这不等于我们就没有办法阻挡DDoS攻击,我们可以尽力来减少DDoS的攻击。下面就是一些防御方法:

  1.确保服务器的系统文件是最新的版本,并及时更新系统补丁。

  2.关闭不必要的服务。

  3.限制同时打开的SYN半连接数目。

  4.缩短SYN半连接的time out 时间。

  5.正确设置防火墙

  禁止对主机的非开放服务的访问

  限制特定IP地址的访问

  启用防火墙的防DDoS的属性

  严格限制对外开放的服务器的向外访问

  运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。

  6.认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击。

  7.限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会。

  8.路由器

  以Cisco路由器为例

  Cisco Express Forwarding(CEF)

  使用 unicast reverse-path

  访问控制列表(ACL)过滤

  设置SYN数据包流量速率

  升级版本过低的ISO

  为路由器建立log server

  能够了解DDoS攻击的原理,对我们防御的措施在加以改进,我们就可以挡住一部分的DDoS攻击,知己知彼,百战不殆嘛。

  深圳市锐速云计算有限公司你身边的网络安全专家,主要为客户提供全球范围内抗DDoS攻击、ddos防御、漏洞扫描、渗透测试、定制cdn加速、WEB应用防火墙、服务器租用、云计算、私有云、互联网疑难杂症解决方案综合服务!

  官网:https://www.ruisuyun.com/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。