一、DOS攻击和DDOS攻击的区别
第一、我们可以从他们两个的英文全称上来看初步的区别
拒绝服务(Denial of Service)黑客使用DoS的攻击行为被称为Dos攻击,
其目的是使计算机或网络无法提供正常的服务。
拒绝服务是指故意攻击网络协议实现的缺陷,或直接通过野蛮手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统、服务系统停止响应甚至崩溃。
这些服务资源包括网络带宽、文件系统空间容量、开放的进程或者允许的连接。这种攻击会导致资源匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。
常见的DoS攻击有计算机网络宽带攻击和连通性攻击。
DDoS是Distributed Denial of Service的缩写,即分布式阻断服务,黑客利用DDOS攻击器控制多台机器同时攻击来达到妨碍正常使用者使用服务器的目的,这样就形成了DDOS攻击。
第二、攻击方法不同
DOS具有代表性的攻击手段包括:PingofDeath、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等。
被攻击主机在DDOS攻击下,特征是大量的不明数据报文流向被攻击主机,被攻击主机的网络接入带宽被耗尽,或者被攻击主机的系统资源被大量占用,甚至发生死机。前者可称为带宽消耗攻击,后者称为系统资源消耗攻击。两者可能单独发生,也可能同时发生。
二、DOS和DDOS攻击的实现方式
dos和ddos的攻击方式有很多相同的攻击方式
1.DOS攻击
dos攻击最简单的就是通过ping命令,利用ICMP缺陷,ICMP数据包的尺寸超过64KB上限,导致TCP/IP堆栈崩溃,致使主机死机。
1、SYN Flood(是DOS和DDOS攻击方式之一)
SYN 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的重试。实际上,如果服务器的TC P/IP栈不够强大,那么最后的结果往往是堆栈溢出崩溃——即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时,从正常客户的角度看来,服务器失去响应,这种情况就称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应的第一步的SYN包,所以我们就击退了这次SYN洪水攻击 。
2、UDP洪水攻击
攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间存在很多的无用数据流,这些无用数据流就会导致带宽的服务攻击 。
3、Ping洪流攻击
由于在早期的阶段,路由器对包的最大尺寸都有限制。许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机 。
4、teardrop攻击
泪滴攻击是利用在TCP/IP堆栈中实现信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃 。
5、Land攻击
Land攻击原理是:用一个特别打造的SYN包,它的原地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续5分钟) 。
6、Smurf攻击
一个简单的Smurf攻击原理就是:通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行。最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。它比ping of death洪水的流量高出1或2个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃 。
7、Fraggle攻击
原理:Fraggle攻击实际上就是对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP 。
8、IP欺骗性攻击
这种攻击利用RST位来实现。假设有一个合法用户(61.61.61.61)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从61.61.61.61发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户61.61.61.61再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,攻击者会伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务,从而实现了对受害服务器的拒绝服务攻击 。
2.DDOS攻击
1、流量攻击
就像快递服务站 (服务器) 一样,服务站的门通道 (带宽) 是有限的,大量的垃圾包裹 (攻击包) 会突然来到快递服务站进行快递。服务站的门通道 (带宽) 立即被占用,导致正常的包裹 (正常的包) 无法发送到快递服务站,服务站也无法为正常的包裹提供相应的服务。
2、资源耗尽攻击
就像快递服务站 (服务器) 一样,服务站的包处理能力是有限的 (CPU、内存等处理能力)。大量的包 (攻击包) 导致快速服务站满负荷运行 (CPU、内存和其他满负荷)。结果是正常的包 (正常包) 到达服务站后,服务站由于工作负荷满,无法为正常的包提供相应的服务。
3、TCP 洪水攻击
我们知道 TCP 需要三次握手来建立连接,而这种攻击利用 TCP 协议的这个特性来发送大量伪造的 TCP 连接请求,第一个握手包 (SYN 包) 使用假冒的 IP 或 IP 段作为源地址发送大量的请求进行连接,被攻击的服务器响应第二个握手包 (SYN+ACK 包),因为另一方是假 IP,所以另一方永远不会收到来自服务器的第二个握手包,也不会响应来自服务器的第三个握手包。导致被攻击的服务器保持大量 SYN_RECV 状态为 “半连接”,并在默认情况下重试响应第二个握手包 5 次,TCP 连接队列满、资源耗尽 (CPU 满或内存不足),最终让正常的业务请求无法连接。
4、TCP 全连接攻击
攻击模式是指许多僵尸主机不断地与被攻击的服务器建立大量真实的 TCP 连接,直到服务器的内存等资源被消耗殆尽,导致拒绝服务。这种攻击的特点是连接是真实的,所以这种攻击可以绕过一般防火墙的保护来达到攻击的目的,随着 5 g 时代,物联网的发展,物联网的安全设备远低于个人电脑,和攻击者更有可能获得大量的 “肉鸡”, 相信僵尸主机的数量会更大。
5、反射性攻击
黑客的攻击模式依赖于发送被针对服务器攻击主机的大量的数据包,然后攻击主机被攻击服务器时会产生大量的反应,导致攻击服务器服务瘫痪,无法提供服务。黑客往往选择那些比请求包大得多的响应包来利用服务,从而能够以较小的流量换取较大的流量,获得几倍甚至几十倍的放大效果,从而达到四两拨千斤的目的。
三、DOS和DDOS攻击的防御办法(正在完善笔记)
防御方法:
针对DOS攻击,需要管理员积极谨慎地维护系统,确保无安全隐患和漏洞;而针对第三点的恶意攻击方式则需要安装防火墙等安全设备过滤DOS攻击,同时强烈建议网络管理员应当定定期查看安全设备的日志,及时发现对系统的安全威胁行为。
当然世界上没有安全的系统,所以就需要网络安全工程师来去完善防御系统,离不开这些工程师的辛苦。
现在人工智能发展的非常迅速,现在也已经有了一部分同学在学习人工智能防御攻击的知识,希望在以后能看到使用人工智能去防御这些攻击。
- 1、使用品牌服务器设备
- 2、使用高带宽
- 3、升级源站配置
- 4、网页伪静态
- 5、安装防火墙
- 6、定期备份网站数据
- 7、套用高防cdn
- 8、其他防御手段
- 9、使用特定的程序代码去针对这些攻击进行防御
版权归原作者 sky wide 所有, 如有侵权,请联系我们删除。