介绍
DDoS 和 DoS 攻击是我们最常见的网络攻击之一,而且历史相当悠久,算是很经典的两种攻击方式,但它们实际上是如何运作的呢? 虽然两者基本上都能够让工作停摆,但其中有很大的差异,接下来我们将逐一说明,看看两者之间有何不同,以及如何保护自己免受DoS与DDoS的伤害。
DoS攻击(拒绝服务攻击)
DoS (阻断服务攻击)是 Denial -- of -- Service Attack 的缩写,由攻击方大量产生封包或请求,使目标系统资源耗尽,最终让服务中断或停止,导致其他正常用户无法存取。 这通常会用来攻击网站,最终导致网页无法回应并且关闭,原本可以提供的任何服务都会被阻断,因而得名。
与 DDoS 攻击不同,DoS 攻击的来源单一,具体来说就是由一台与网络连接的电脑发送大量请求,目的是使目标系统崩溃。 由于 DoS 攻击往往规模较小,因此它们通常针对小型的网站和个人,因为他们的资源比 Amazon 或 Google 等大型企业网站更有限。 好消息是,由于它的来源单一,只要识别出 DoS 来源,即可阻止它的攻击(通常通过 IP 阻挡),比起 DDoS 攻击容易处理。
DDoS攻击(分布式拒绝服务攻击)
DDoS (分布式阻断服务攻击)全名是Distributed Denial -- of -- Service Attack,虽然与DoS攻击的目的相同,但它利用连网的计算机网络从多点进行来针对目标服务器,其流量比典型的DoS攻击能做的事情要多得更多。 DDoS 攻击通常通过僵尸网络执行,通过恶意软件或病毒感染使别人的电脑主机为攻击者所用。 随着时间推移,攻击者会攻击多台电脑,建立一个僵尸网络,然后在有足够的运算能力后从该网络发起 DDoS 攻击。
攻击实现方式
dos攻击最简单的就是通过ping命令,利用ICMP缺陷,ICMP数据包的尺寸超过64KB上限,导致TCP/IP堆栈崩溃,致使主机死机
SYN Flood(是DOS和DDOS攻击方式之一)
攻击就是通过三次握手而实现的 。
(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洪水攻击)。
UDP洪水攻击
攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间存在很多的无用数据流,这些无用数据流就会导致带宽的服务攻击 。
Ping洪流攻击
由于在早期的阶段,路由器对包的最大尺寸都有限制。许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机
teardrop攻击
泪滴攻击是利用在TCP/IP堆栈中实现信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃 。
Land攻击
Land攻击原理是:用一个特别打造的SYN包,它的原地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续5分钟) 。
攻击防范
第一,使用防火墙和入侵检测系统。防火墙是网络安全的第一道防线,它可以帮助过滤掉大量的恶意请求,并限制对系统的访问。入侵检测系统可以实时监控流量和异常活动,并及时发出警报,帮助管理员及时采取应对措施。
第二,合理配置网络设备。确保网络设备的配置和升级是及时和完整的,特别是路由器和交换机等核心设备。同时,禁止或限制未授权的网络流量和访问请求,只允许经过认证和授权的用户访问系统。
第三,使用反向代理和负载均衡技术。反向代理可以隐藏真实服务器的地址,将用户请求分发到多个服务器上,有效分散了流量和请求压力,提高了系统的稳定性和安全性
第四,使用流量清洗和封堵技术。流量清洗技术可以从网络流量中过滤掉恶意请求,并将合法流量转发到目标服务器上。封堵技术可以识别和封锁来源于攻击者的流量,防止攻击继续进行。
第五,加强系统监控和日志记录。及时发现并记录系统异常和攻击迹象,有助于及时采取补救措施和调整防护策略。对网络流量、用户行为和系统资源的监视和分析,有助于提前预警和防范潜在的攻击。
最后,定期进行安全审计和漏洞扫描。定期检查和评估系统的安全性,发现和修复系统中的漏洞和弱点。漏洞扫描可以帮助管理员找出系统中的安全隐患,并及时进行修复和加固,提高系统的抵御能力。
综上所述,防护Dos和DDos攻击需要综合运用多种防护策略和技术,包括使用防火墙和入侵检测系统、合理配置网络设备、使用反向代理和负载均衡技术、流量清洗和封堵技术、加强系统监控和日志记录,以及定期进行安全审计和漏洞扫描等。只有综合起来,才能有效地提高系统的安全性和稳定性,保护个人和企业的数据和信息,确保互联网的正常运行。