拒绝服务攻击即攻击者想办法让目标机器停止提供服务或资源访问,是黑客常用的攻击手段之一快速备案网站快速备案。这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果dos攻击:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。dos攻击,拒绝服务攻击是如何展开的拒绝服务攻击的原理1.SYN FooldSYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。(1) 攻击者向被攻击服务器发送一个包含SYN标志的TCP报文,SYN(Synchronize)即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号。这时同被攻击服务器建立了第一次握手。(2) 受害服务器在收到攻击者的SYN报文后,将返回一个SYN ACK的报文,表示攻击者的请求被接受,同时TCP序号被加一,ACK(Acknowledgment)即确认,这样就同被攻击服务器建立了第二次握手。(3) 攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。具体原理是:TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。2.IP欺骗DOS攻击这种攻击利用RST位来实现。假设现在有一个合法用户(61.61.61.61)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从61.61.61.61发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户61.61.61.61再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,攻击者会伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务,从而实现了对受害服务器的拒绝服务攻击。这里简单介绍一下吧,主要从5个方面来判断服务器是否被入侵,感兴趣的朋友可以尝试一下:01查看当前登录用户这种方式最简单也最基本,查看当前登录服务器的用户,如果有异常用户或IP地址正在登录,则说明服务器很可能被入侵,命令的话,使用w,who,users等都可以:02查看历史登录记录服务器会记录曾经登录过的用户和IP,以及登录时间和使用时长,如果有异常用户或IP地址曾经登录过,就要注意了,服务器很可能被入侵,当然,对方为了掩盖登录,会清空/var/log/wtmp日志文件,要是你运行了last命令,只有你一个人登录,而你又从来没清空过记录,说明被入侵了:03查看特别消耗CPU进程一般情况下,服务器被入侵后,对方通常会执行一些非常消耗CPU任务或程序,这时你就可以运行top命令,查看进程使用CPU的情况,如果有异常进程非常消耗CPU,而你又从来没有执行过这个任务,说明服务器很可能被入侵了:04检查所有系统进程消耗CPU不严重或者未经授权的进程,一般不会在top命令中显示出来,这时你就需要运行“ps auxf”命令检查所有系统进程,如果有异常进程在后台悄悄运行,而你又从来没有执行过,这时就要注意了,服务器很可能被入侵了:05查看端口进程网络连接通常攻击者会安装一个后门程序(进程)专门用于监听网络端口收取指令,该进程在等待期间不会消耗CPU和带宽,top命令也难以发现,这时你就可以运行“netstat -plunt”命令,查看当前系统端口、进程的网络连接情况,如果有异常端口开放,就需要注意了,服务器很可能被入侵:目前,就分享这5个方面来判断服务器是否被入侵,当然,服务器如果已经被入侵,你就需要赶在对方发现你之前夺回服务器的控制权,然后修改密码、设定权限、限定IP登录等,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
本文出自快速备案,转载时请注明出处及相应链接。