大家好,又见面了,我是你们的朋友全栈君。
常见的DoS攻击防御方式 ## 攻击防御
DoS攻击(Denial of Service attack)
DoS是Denial of Service的简称,即 拒绝服务 ,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
作个形象的比喻来理解DoS。街头的餐馆是为大众提供餐饮服务,如果一群地痞流氓要DoS餐馆的话,手段会很多,比如霸占着餐桌不结账,堵住餐馆的大门不让路,骚扰餐馆的服务员或厨子不能干活,甚至更恶劣……相应的计算机和网络系统则是为Internet用户提供互联网资源的,如果有黑客要进行DoS攻击的话,可以想象同样有好多手段!今天最常见的DoS攻击有对计算机网络的带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
传统上,攻击者所面临的主要问题是网络带宽,由于较小的网络规模和较慢的网络速度的限制,攻击者无法发出过多的请求。虽然类似“the ping of death”的攻击类型只需要较少量的包就可以摧毁一个没有打过补丁的UNIX系统,但大多数的DoS攻击还是需要相当大的带宽的,而以个人为单位的黑客们很难使用高带宽的资源。为了克服这个缺点,DoS攻击者开发了分布式的攻击。攻击者简单利用工具集合许多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是 DDoS(Distributed Denial of Service) 攻击。
DDOS攻击主要分为三类:流量型攻击;连接型攻击;特殊协议缺陷。
拒绝服务攻击是一种对网络危害巨大的恶意攻击。DoS具有代表性的攻击手段包括Ping of Death(死亡之ping)、TearDrop(泪滴)、UDP Flood(UDP泛洪)、SYN Flood(SYN泛洪)、Land Attack(Land攻击)、IP Spoofing DoS(IP欺骗)等。
死亡之ping 死亡之ping,又称ICMP Flood,属于DOS攻击,俗称拒绝服务攻击,通过发送大量的无用请求数据包给服务器,耗尽服务器资源,从而无法通过正常的访问服务器资源,导致服务器崩溃。如果多个ip通过发起对一个服务器的攻击,如果无防御措施,不管服务器内存多大,宽带多宽,CPU多快,都无法抵御这种攻击。 死亡之ping代码: 打开系统的命令窗口,windows电脑按win R ,输入cmd命令后进入命令界面: 输入: ping -l 65500 目标ip -t (-l所指为IP结尾断点,65500 表示数据长度上限,-t 表示不停地ping目标地址) 这就是简单的拒绝服务攻击
代码语言:javascript复制ping -l 65500 192.169.1.1 -t
死亡之ping是如何工作和防御的呢? 首先是因为以太网长度有限,IP包片段被分片。当一个IP包的长度超过以太网帧的最大尺寸(以太网头部和尾部除外)时,包就会被分片,作为多个帧来发送。接收端的机器提取各个分片,并重组为一个完整的IP包。在正常情况下,IP头包含整个IP包的长度。当一个IP包被分片以后,头只包含各个分片的长度。分片并不包含整个IP包的长度信息,因此IP包一旦被分片,重组后的整个IP包的总长度只有在所在分片都接受完毕之后才能确定。 在IP协议规范中规定了一个IP包的最大尺寸,而大多数的包处理程序又假设包的长度超过这个最大尺寸这种情况是不会出现的。因此,包的重组代码所分配的内存区域也最大不超过这个最大尺寸。这样,超大的包一旦出现,包当中的额外数据就会被写入其他正常区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出(Buffer Overflow)攻击。在防火墙一级对这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。 由于使用ping工具很容易完成这种攻击,以至于它也成了这种攻击的首选武器,这也是这种攻击名字的由来。当然,还有很多程序都可以做到这一点,因此仅仅阻塞ping的使用并不能完全解决这个漏洞。预防死亡之ping的最好方法是对操作系统打补丁,使内核将不再对超过规定长度的包进行重组。
泪滴攻击(TearDrop) 泪滴攻击也被称为分片攻击或碎片攻击,是一种拒绝服务(DoS)攻击,由于首次实现这种攻击的软件名称是Teardrop,因此这种攻击就被称为泪滴攻击。TCP/IP协议在数据传输过程中,对过大的数据会进行分包处理,传输到目的主机后再到堆栈中进行重组,为实现重组,一个分片数据包的偏移量和大小之和要同于下一个分片数据包的偏移量和大小之和,如果不同,则数据包重叠,当发送伪造的含有重叠偏移信息的分段包到目标主机时,被攻击主机试图将分段包重组时,由于分段数据的错误,接收这些数据包的机器因为TCP / IP碎片重组错误而无法重新组装,因此数据包相互重叠,导致目标网络设备崩溃。这通常发生在较早的操作系统上,例如Windows 3.1x,Windows 95,Windows NT和2.1.63之前版本的Linux内核。
脚本下载地址:——>点击下载<——提取码: 7nfi 脚本教程讲解:——>点击下载<——
防御方法: 1.收到分割封包是进行分析,计算offset是否有误 2.server应用最新的patch或尽可能使用最新得到操作系统 3.设置防火墙时对分段进行重组,而不是转发它们
UDP泛洪 (UDP Flood) 短时间内向特定目标不断发送 UDP 报文,致使目标系统负担过重而不能处理合法的传输任务,就发生了 UDP Flood。启用 UDP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机响应的 UDP 连接速率超过该值,防火墙会输出发生 UDP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。
工具下载地址:——>点击下载<——提取码: 1q6b
防御方法: 判断攻击包大小,如果是大包攻击就采用防止UDP碎片方法:可以根据攻击包大小设定包碎片重组大小,一般不小于1500。特殊极端情况下,可以丢弃所有UDP碎片。 如果攻击端口为业务端口,根据该业务UDP最大包长设置UDP最大包大小以过滤异常流量;如果攻击端口为非业务端口,可以丢弃所有UDP包,也可以建立UDP连接规则,要求所有去往该端口的UDP包,必须首先与TCP端口建立TCP连接。不过这种方法需要很专业的防火墙或其他防护设备支持。
SYN泛洪 (SYNP Flood) 由于资源的限制,TCP/IP 栈只能允许有限个 TCP 连接。攻击者首先伪造地址对服务器发起SYN请求(我可以建立连接吗?),服务器就会回应一个ACK SYN(可以 请确认)。而真实的IP会认为,我没有发送请求,不作回应。服务器没有收到回应,会重试3-5次并且等待一个SYN Time(一般30秒-2分钟)后,丢弃这个连接。在此期间服务器与伪造的地址会造成一个半连接。若攻击者发送大量这样的报文,会在服务器主机上出现大量的半连接,耗尽其资源,使正常的用户无法访问,直到半连接超时。在一些创建连接不受限制的实现里,SYN Flood 具有类似的影响,它会消耗掉系统的内存等资源。
防御方法: 启用 SYN Flood 攻击检测功能时,要求设置一个连接速率阈值和半开连接数量阈值,一旦发现保护主机响应的 TCP 新建连接速率超过连接速度阈值或者半开连接数量超过半开连接数量阈值,防火墙会输出发生 SYN Flood 攻击的告警日志,并且可以根据用户的配置采取以下三种措施: 阻止发往该保护主机的后续连接请求; 切断保护主机上的最老半连接会话; 向 TCP Proxy 添加受保护 IP 地址。
Land攻击(Land Attack) Land攻击是一种拒绝服务攻击。用于Land攻击的数据包中的源地址和目标地址是相同的,因为当操作系统接收到这类数据包时,不知道该如何处理堆栈中通信源地址和目的地址相同的这种情况,或者循环发送和接收该数据包,消耗大量的系统资源,从而有可能造成系统崩溃或死机等现象。
防御方法: 判断网络数据包的源地址和目标地址是否相同。适当配置防火墙设备或过滤路由器的过滤规则就可以防止这种攻击行为(一般是丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC地址和IP地址)
IP欺骗(IP Spoofing DoS) 指行动产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。这是一种骇客的攻击形式,骇客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道。防火墙可以识别这种ip欺骗。 按照Internet Protocol(IP)网络互联协议,数据包头包含来源地和目的地信息。 而IP地址欺骗,就是通过伪造数据包包头,使显示的信息源不是实际的来源,就像这个数据包是从另一台计算机上发送的。
防御方法: 可在设备上开启单播逆向路径转发(URPF)功能 可在设备上开启IP源防护(IPSG)功能
Smurf攻击 Smurf分布式攻击也是一种DDoS,这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。 Smurf攻击方法是发送ICMP应答请求,该请求包的目的地址设置为受害网络的广播地址,这样改网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。高级的Smurf攻击,主要用来攻击目标主机。方法是将上述ICMP应答请求包的源地址改为受害主机的地址,最终导致受害主机雪崩。攻击报文的发送需要一定的流量和持续时间,才能真正构成攻击。理论上讲,网络的主机越多,攻击的效果越明显。
防御方法: 针对Smurf攻击。在路由设备上配置检查ICMP应答请求包的目的地址是否为子网广播地址或子网的网络地址,如果是,则直接拒绝。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186949.html原文链接:https://javaforall.cn