一、什么是DDOS攻击
DDOS(Distributed Denial of Service),即分布式拒绝服务攻击,这是当今流行的网络攻击方式之一。利用合法的服务请求来占用过多的资源或带宽,从而使服务器不能对正常、合法的用户提供服务。更通俗的说,只要导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。这也就说明拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达到其攻击目的。
DDOS的攻击通过众多的“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致不能提供正常的服务(拒绝服务)。在分布式拒绝服务攻击的实施中,大量攻击主机发送的网络数据包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务攻击又被称之为“洪水攻击”,常见的DDOS攻击手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、、Script Flood、Proxy Flood等多种方式。下面我们将介绍如何通过网络分析技术手段来检测DDOS攻击。
二、遭遇攻击的症状DDOS的目的非常明确,表现形式主要有两种,一种主要是针对网络带宽的攻击,即大量攻击包占用网络带宽,导致网络被阻塞,从而无法完成正常、合法响应;另一种则为资源耗尽攻击,主要是针对服务器的攻击,即通过大量攻击包导致服务器的内存或CPU资源被耗尽,从而造成服务器当机或无法提供正常的网络服务。
三、如何检测DDOS攻击由于对DDOS攻击的防御较为困难,目前没有任何一种产品或方法能够防御DDOS攻击入侵,因此,对于如何检测DDOS攻击就显得至关重要。本文,我们将介绍通过网络分析的手段来检测DDOS攻击(此处用到的产品为科来网络分析系统技术交流版6.9)。
利用网络分析技术的检测手段通过对网络通讯数据包进行实时的捕获,能够快速的分析和检测到网络中是否发生了DDOS攻击。如果网络中已经发生了此类攻击,那么,我们借助网络分析技术就可以快速的查找和解决问题。下面我们通过一个实例来讲解用科来网络分析系统查找DDOS攻击的方法。
首先,打开概要统计视图,查看网络中的TCP的连接信息
网络中存在大量的TCP同步数据包(2,249,352个),而成功建立TCP连接数太少,根据TCP三次握手的原理我们知道,这是一种不正常的现象,网络肯定存在问题。我们再通过矩阵视图来查看具体的网络通信情况
在矩阵连接视图中,大量的主机同时与125.91.13.124连接通讯,并且向其发送大量的数据包,我们怎样来确定这些数据包的类型呢?为了进一步确定发送了怎样的数据包,我们再查看数据包解码就能够看到
当前的通讯全是使用了TCP进行通讯,查看TCP的标志,发送所有的数据包均为SYN置1,即TCP同步请求数据包,这些数据包全都向125.91.13.124请求同步,至此我们可以判断125.91.13.124这台主机进行遭受DDOS攻击,而攻击的方式为SYN Flood攻击。
SYN Flood攻击,这是一种经典和常用的DDOS方法,主要是通过向受害主机发送大量的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,对各种系统的网络服务、网络资源等都会造成巨大的影响。
四、小结
检测DDOS攻击还可以用到一些常规方法,如Ping命令、NETSTAT命令等,但是,这些方法相对简单并且较为繁琐,通过网络分析技术进行分析,能起到事半功倍的效果。
B. 使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这种攻击称为
拒绝服务攻击
拒绝服务攻击英文名称是Denial of Service简称DOS。即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安全缺陷,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。
C. dos攻击属于网络的物理攻击吗
DoS是Denial
of
Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。如:
*
试图FLOOD服务器,阻止合法的网络通讯
*
破坏两个机器间的连接,阻止访问服务
*
阻止特殊用户访问服务
*
破坏服务器的服务或者导致服务器死机
所以说,可以被理解为网络的物理攻击.
D. DDOS攻击是什么
DDoS攻击就是Distributed Denial of Service,分布式拒绝服务攻击,是指攻击者利用大量“肉鸡”对攻击目标发动大量的正常或非正常请求、耗尽目标主机资源或网络资源,从而使被攻击的主机不能为正常用户提供服务。
用一则奶茶店的故事解释:
假设A、B两家奶茶店互为竞争对手,A奶茶店羡慕嫉妒B奶茶店生意太兴隆了,雇佣了一群社会闲散人士逗留在B奶茶店门前的马路,消费者无法通过B奶茶店前马路到店消费。
这里的社会闲散人士就是非法流量,B奶茶店门前的马路是带宽,消费者是正常流量,B奶茶店是服务器,非法流量堵塞了带宽,正常流量就无法访问了。
在网络攻击中,这种使用非法流量占用带宽的攻击叫做DDoS攻击,DDoS是使用大量的肉鸡,在同一时间发送大量的数据到目标服务器上的一种攻击方式。
这种攻击使服务器神志不清,服务器神志不清的状态叫做黑洞。服务器进入黑洞之后,无论是攻击流量还是正常流量都无法再继续访问。
E. DDOS攻击指的是什么
通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
1.通过使网络过载来干扰甚至阻断正常的网络通讯;
2.通过向服务器提交大量请求,使服务器超负荷;
3.阻断某一用户访问服务器;
4.阻断某服务与特定系统或个人的通讯。
(以下原创,以上复制)
你可以通俗的理解为一大堆人在ping一个ip,按照http规则,你发一个包我要回一个相同大的包作为交换,等ping的人多到能把对方网络带宽占满时,就成功进行了DDOS攻击,让对方网络变得缓慢甚至无法上网。
F. 网络攻击的主要类型有哪些
大体的分的话,是外网攻击,和内网攻击
外网攻击就是公网的一些木马、病毒、垃圾邮件等攻击,直接打到的是防火墙上
内网攻击的话是局域网中的一些本身是正常的协议的东西,然后你故意的多发、滥发这些协议,利用这些本身是合法的协议来做网络攻击,外网攻击的话其实并不可怕,真正令人头疼的是内网的108种攻击,因为它本身就是合法的!!!
外网攻击的话,联系防火墙就可以了
但是据计算现在百分之80的问题出现在内网,
应对内网攻击的话,只有选用免疫墙了
免疫墙是专门针对局域网安全和管理的,我们可以把免疫墙看做
1、是一套内网底层防火墙:彻底解决病毒木马的网络攻击,掉线、卡滞问题(尤其对2、3层的处理)
。解决ARP(先天免疫、ARP探寻)问题无人能及
2、是一套真实身份准入系统:对网络内终端电脑的身份严格有效的管理(真实IP、MAC,CPU硬盘主板
,基因式)。彻底解决IP欺骗(私拉线、克隆、IP冲突)
3、是一套网络带宽管理设备:精细的内网带宽管理、负载均衡、流量统计(内外网、服务器、应用交
付)
4、是一套全面网管软件:观察网络内部协议过程,远程调试管理(监控中心、审计)
4、是一套全面网管软件:观察网络内部协议过程,远程调试管理(监控中心、审计)
G. 什么是DDoS网络流量攻击
DdoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项指标不高的性能,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。DDoS就是利用更多的傀儡机(肉鸡)来发起进攻,以比从前更大的规模来进攻受害者.
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
(望楼主采纳哦)
H. 网络攻击是怎么回事啊
由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。
防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows98之后的windows,NT(service pack 3之后),linux、Solaris、和Mac OS都具有抵抗一般ping of death攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。
泪滴(teardrop)
概览:泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
防御:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。
UDP洪水(UDP flood)
概览:各种各样的假冒攻击利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽的服务攻击。
防御:关掉不必要的TCP/IP服务,或者对防火墙进行配置阻断来自Internet的请求这些服务的UDP请求。
SYN洪水(SYN flood)
概览:一些TCP/IP栈的实现只能等待从有限数量的计算机发来的ACK消息,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直到缓冲区里的连接企图超时。在一些创建连接不受限制的实现里,SYN洪水具有类似的影响。
防御:在防火墙上过滤来自同一主机的后续连接。
未来的SYN洪水令人担忧,由于释放洪水的并不寻求响应,所以无法从一个简单高容量的传输中鉴别出来。
Land攻击
概览:在Land攻击中,一个特别打造的SYN包它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续五分钟)。
防御:打最新的补丁,或者在防火墙进行配置,将那些在外部接口上入站的含有内部源地址滤掉。(包括 10域、127域、192.168域、172.16到172.31域)
Smurf攻击
概览:一个简单的smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。
防御:为了防止黑客利用你的网络攻击他人,关闭外部路由器或防火墙的广播地址特性。为防止被攻击,在防火墙上设置规则,丢弃掉ICMP包。
Fraggle攻击
概览:Fraggle攻击对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP
防御:在防火墙上过滤掉UDP应答消息
电子邮件炸弹
概览:电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的带宽。
防御:对邮件地址进行配置,自动删除来自同一主机的过量或重复的消息。
畸形消息攻击
概览:各类操作系统上的许多服务都存在此类问题,由于这些服务在处理信息之前没有进行适当正确的错误校验,在收到畸形的信息可能会崩溃。
防御:打最新的服务补丁。
利用型攻击是一类试图直接对你的机器进行控制的攻击,最常见的有三种:
口令猜测
概览:一旦黑客识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户帐号,成功的口令猜测能提供对机器的控制。
防御:要选用难以猜测的口令,比如词和标点符号的组合。确保像NFS、NetBIOS和Telnet这样可利用的服务不暴露在公共范围。如果该服务支持锁定策略,就进行锁定。
特洛伊木马
概览:特洛伊木马是一种或是直接由一个黑客,或是通过一个不令人起疑的用户秘密安装到目标系统的程序。一旦安装成功并取得管理员权限,安装此程序的人就可以直接远程控制目标系统。最有效的一种叫做后门程序,恶意程序包括:NetBus、BackOrifice和BO2k,用于控制系统的良性程序如:netcat、VNC、pcAnywhere。理想的后门程序透明运行。
防御:避免下载可疑程序并拒绝执行,运用网络扫描软件定期监视内部主机上的监听TCP服务。
缓冲区溢出
概览:由于在很多的服务程序中大意的程序员使用象strcpy(),strcat()类似的不进行有效位检查的函数,最终可能导致恶意用户编写一小段利用程序来进一步打开安全豁口然后将该代码缀在缓冲区有效载荷末尾,这样当发生缓冲区溢出时,返回指针指向恶意代码,这样系统的控制权就会被夺取。
防御:利用SafeLib、tripwire这样的程序保护系统,或者浏览最新的安全公告不断更新操作系统。
信息收集型攻击并不对目标本身造成危害,如名所示这类攻击被用来为进一步入侵提供有用的信息。主要包括:扫描技术、体系结构刺探、利用信息服务
扫描技术
地址扫描
概览:运用ping这样的程序探测目标地址,对此作出响应的表示其存在。
防御:在防火墙上过滤掉ICMP应答消息。
端口扫描
概览:通常使用一些软件,向大范围的主机连接一系列的TCP端口,扫描软件报告它成功的建立了连接的主机所开的端口。
防御:许多防火墙能检测到是否被扫描,并自动阻断扫描企图。
反响映射
概览:黑客向主机发送虚假消息,然后根据返回“host unreachable”这一消息特征判断出哪些主机是存在的。目前由于正常的扫描活动容易被防火墙侦测到,黑客转而使用不会触发防火墙规则的常见消息类型,这些类型包括:RESET消息、SYN-ACK消息、DNS响应包。
防御:NAT和非路由代理服务器能够自动抵御此类攻击,也可以在防火墙上过滤“host unreachable”ICMP应答。
I. 什么叫网络攻击网络攻击是怎么攻击电脑的
DoS攻击 ��
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。如:
��* 试图FLOOD服务器,阻止合法的网络通讯
��* 破坏两个机器间的连接,阻止访问服务
��* 阻止特殊用户访问服务
��* 破坏服务器的服务或者导致服务器死机
��不过,只有那些比较阴险的攻击者才单独使用DOS攻击,破坏服务器。通常,DOS攻击会被作为一次入侵的一部分,比如,绕过入侵检测系统的时候,通常从用大量的攻击出发,导致入侵检测系统日志过多或者反应迟钝,这样,入侵者就可以在潮水般的攻击中混骗过入侵检测系统。
DoS 攻 击 (Denial of Service,简称DOS)即拒绝服务攻击,是指攻击者通过消耗受害网络的带宽,消耗受害主机的系统资源,发掘编程缺陷,提供虚假路由或DNS信息,使被攻击目标不能正常工作。实施DoS攻击的工具易得易用,而且效果明显。仅在美国,每周的DoS攻击就超过4 000次,攻击每年造成的损失达上千万美元{irl。一般的DoS攻击是指一台主机向目的主机发送攻击分组(1:1),它的威力对于带宽较宽的站点几乎没有影响;而分布式拒绝服务攻击(Distributed Denial of Service,简称DDoS)同时发动分布于全球的几千台主机对目的主机攻击(m:n ),即使对于带宽较宽的站点也会产生致命的效果。随着电子商业在电子经济中扮演越来越重要的角色,随着信息战在军事领域应用的日益广泛,持续的DoS攻击既可能使某些机构破产,也可能使我们在信息战中不战而败。可以毫不夸张地说,电子恐怖活动的时代已经来临。
DoS 攻 击 中,由于攻击者不需要接收来自受害主机或网络的回应,它的IP包的源地址就常常是伪造的。特别是对DDoS攻击,最后实施攻击的若干攻击器本身就是受害者。若在防火墙中对这些攻击器地址进行IP包过滤,则事实上造成了新的DDS攻击。为有效地打击攻击者,必须设法追踪到攻击者的真实地址和身份。
J. 属于网络协议的攻击有哪几种
1. TCP/IP 协议的脆弱性
1.1 不能提供可靠的身份验证
TCP/IP 协议以 32 bit 的 IP 地址来作为网络节点的唯一标识,而 IP 地址只是用户软件设置中的一个参数,因而是可以随意修改的。
对 UDP 来说,是根据这个 IP 地址来唯一标识通信对方。 TCP 则通过三次握手,使情况稍有改善。 TCP 中的每个报文都含有一个标识本报文在整个通信流中位置的 32 bit 序列号,通信双方通过序列号来确认数据的有效性。
由于 TCP 设计三次握手过程本身并不是为了身份验证,只是提供同步确认和可靠通信,虽然这也能够提供一定的身份验证的支持,但这种支持很薄弱。
由于 TCP/IP 不能对节点上的用户进行有效的身份认证,服务器无法鉴别登录用户的身份有效性,攻击者可以冒充某个可信节点的 IP 地址,进行 IP 欺骗攻击.
其次,由于某些系统的 TCP 序列号是可以预测的,攻击者可以构造一个TCP'数据包,对网络中的某个可信节点进行攻击。
1.2 不能有效防止信息泄漏
IPv4 中没有考虑防止信息泄漏,在 IP 、 TCP 、 UDP 中都没有对数据进行加密。 IP 协议是无连接的协议,一个 IP 包在传输过程中很可能会经过很多路由器和网段,在其中的任何一个环节都很容易进行窃昕 。攻击者只需简单地安装一个网络嗅探器,就可以看到通过本节点的所有网络数据包。
1.3 没有提供可靠的信息完整性验证手段
在 IP 协议中,仅对 IP 头实现校验和保护
在UDP 协议中,对整个报文的校验和检查是一个可选项,并且对 UDP 报文的丢失不做检查。
在 TCP 协议中,虽然每个报文都经过校验和检查,并且通过连续的序列号来对包的顺序和完整进行检查,保证数据的可靠传输。但是,校验算法中没有涉及加密和密码验证,很容易对报文内容进行修改,再重新计算校验和
1.4 协议没有手段控制资源占杳和分配
TCP/IP 中,对资源占杳和分配设计的一个基本原则是自觉原则。如参加 TCP通信的一方发现上次发送的数据报丢失,则主动将通信速率降至原来的一半。这样,也给恶意的网络破坏者提供了机会 c 如网络破坏者可以大量的发 IP 报,造成网络阻塞,也可以向一台主机发送大量的 SYN 包从而大量占有该主机的资源 (SYN Flood) 。这种基于资源占用造成的攻击被称为拒绝服务攻击( DOS)
2.常见 TCP/IP 协议攻击方法分析
2.1 IP 欺骗( IP Spoofing)
IP 欺骗是指一个攻击者假冒一个主机或合法用户的 IP 地址,利用两个主机之间的信任关系来达到攻击的目的,而这种信任关系只是根据源 IP 地址来确定。所谓信任关系是指当主机 B 信任主机 A 上的 X用户时,只要 X 在 A 上登录, X 用户就可以直接登录到主机 B 上,而不需要任何口令。
IP 欺骗通常需要攻击者能构造各种形式 IP 数据包,用虚假的源 IP 地址替代自己的真实 IP 地址。如果主机之间存在基于 IP 地址的信任关系,目标主机无法检测出已经被欺骗。
防范措施
各个网络 ISP 应该限制源地址为外部地址的 IP 数据包进入互联网
合理的配置防火墙,限制数据包的源地址为内部网络的数据包进入网络。
2.2 TCP 会话劫持 (TCP sessJOn hijacking)
image.png
TCP 会话劫持跳过连接过程.对一个已经建立的连接进行攻击。攻击者与被假冒主机和目标主机之一在同一个子网中,攻击者通过一个嗅探程序可以看到被假冒主机和目标主机之间通信的数据包。
攻击者看到被假冒主机和目标主机建立一个连接并进行身份认证后,通过对数据包捕获和进行分析,就可以得到连接的序列号。
一旦得到正确的序列号就可以发送一个假冒的 TCP 分段,接管已经建立的连接。这样,被假冒主机发送的数据包都会被目标主机忽略,因为它们的序列号会被目标主机认为不正确。
防范措施
最主要的方法是在传输层对数据进行加密。
2.3 拒绝服务( Denial Of Service )
拒绝服务坷的目的就是使受害的服务器不能提供正常的网络服务。
2.3.1 SYN 淹没 (SYN Flooding)
当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的Syn报文,一旦接收到Client发来的Syn报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYN ACK命令,立即转为SYN-RECEIVED即半开连接状态,而操作系统在SOCK的实现上最多可开启半开连接个数是一定的。
image.png
从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。
防范措施
无效连接监视释放
这种方法不停监视系统的半开连接和不活动连接,当达到一定阈值时拆除这些连接,从而释放系统资源。这种方法对于所有的连接一视同仁,而且由于SYN Flood造成的半开连接数量很大,正常连接请求也被淹没在其中被这种方式误释放掉,因此这种方法属于入门级的SYN Flood方法。
延缓TCB分配方法
从前面SYN Flood原理可以看到,消耗服务器资源主要是因为当SYN数据报文一到达,系统立即分配TCB,从而占用了资源。而SYN Flood由于很难建立起正常连接,因此,当正常连接建立起来后再分配TCB则可以有效地减轻服务器资源的消耗。常见的方法是使用Syn Cache和Syn Cookie技术。
Syn Cache技术:
这种技术是在收到SYN数据报文时不急于去分配TCB,而是先回应一个SYN ACK报文,并在一个专用HASH表(Cache)中保存这种半开连接信息,直到收到正确的回应ACK报文再分配TCB。在FreeBSD系统中这种Cache每个半开连接只需使用160字节,远小于TCB所需的736个字节。在发送的SYN ACK中需要使用一个己方的Sequence Number,这个数字不能被对方猜到,否则对于某些稍微智能一点的Syn Flood攻击软件来说,它们在发送Syn报文后会发送一个ACK报文,如果己方的Sequence Number被对方猜测到,则会被其建立起真正的连接。因此一般采用一些加密算法生成难于预测的Sequence Number。
Syn Cookie技术:
对于SYN攻击,Syn Cache虽然不分配TCB,但是为了判断后续对方发来的ACK报文中的Sequence Number的正确性,还是需要使用一些空间去保存己方生成的Sequence Number等信息,也造成了一些资源的浪费。
Syn Cookie技术则完全不使用任何存储资源,这种方法比较巧妙,它使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息,以及对方无法知道而己方比较固定的一些信息,如MSS、时间等,在收到对方的ACK报文后,重新计算一遍,看其是否与对方回应报文中的(Sequence Number-1)相同,从而决定是否分配TCB资源。
使用SYN Proxy防火墙
Syn Cache技术和Syn Cookie技术总的来说是一种主机保护技术,需要系统的TCP/IP协议栈的支持,而目前并非所有的操作系统支持这些技术。因此很多防火墙中都提供一种SYN代理的功能,其主要原理是对试图穿越的SYN请求进行验证后才放行,下图描述了这种过程:
image.png
从上图(左图)中可以看出,防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求,在右图中,所有的无效连接均无法到达内部的服务器。
采用这种方式进行防范需要注意的一点就是防火墙需要对整个有效连接的过程发生的数据包进行代理,如下图所示:
image.png
因为防火墙代替发出的SYN ACK包中使用的序列号为c,而服务器真正的回应包中序列号为c’,这其中有一个差值|c-c’|,在每个相关数据报文经过防火墙的时候进行序列号的修改。
TCP Safe Reset技术:
这也是防火墙Syn代理的一种方式,其工作过程如下图所示:
image.png
这种方法在验证了连接之后立即发出一个Safe Reset命令包,从而使得Client重新进行连接,这时出现的Syn报文防火墙就直接放行。在这种方式中,防火墙就不需要对通过防火墙的数据报文进行序列号的修改了。这需要客户端的TCP协议栈支持RFC 793中的相关约定,同时由于Client需要两次握手过程,连接建立的时间将有所延长。
2.3.2 死亡之 Ping(Ping O' Death )
死亡之 Ping 是利用 ICMP 协议的一种碎片攻击 。攻击者发送一个长度超过 65 535Byte 的 Echo Request 数据包,目标主机在重组分片的时候会造成事先分配的 65 535 Byt 字节缓冲区溢出,系统通常会崩愤或挂起
IP 数据包的最大长度是 65 535 (2 16 - 1) Byte,其中包括包头长度(如果 IP 选项末指定,一般为 20 B)超过 MTU( Maximum Transmission Unit) 的数据包被分割成小的数据包,在接受端重新组装。一般以太网的MTU 为 11500 Byte ,互联网上的 MTU 通常是 576 Byte ICMP 回应请求放在 IP 数据包中,其中有 8 Byt 的 ICMP头信息,接下来是 "Ping" 请求的数据宇节的数目。因此数据区所允许的最大尺寸为 65 535 - 20 - 8 = 65 507Byte
image.png
分段后的 IP 包要在接收端的 IP 层进行重组,这样"死亡之 Ping"就可以再发送一个回应请求数据包,使它的数据包中的数据超过 65 507 Byte ,使得某些系统的 IP 分段组装模块出现异常。因为在 IP 分段组装的过程中,它通过每一个 IP 分段中的偏移量来决定每一个分段在整个 IP 包中的位置,最后一个分段中,如果 IP 包的长度大于 65 507 Byte各个分段组装后就会超过 IP 包的最大长度。某些操作系统要等到将所有的分段组装完后才对 IP 包进行处理,所以就存在这样一种内部缓冲区或内部变量溢出的可能性,这样会导致系统崩愤或重启。
防范措施
可以利用防火墙来阻止 Ping ,然而这样也会阻挡一些合法应用。所以只要阻止被分段的 Ping ,这样在大多数系统上允许一般合法的 64 Byt 的 Ping 通过,挡住了那些长度大于 MTU 的 ICMP 数据包.
这种攻击能使系统崩溃的原因因系统不同而异.有的可能因为内核中固定大小的缓冲区因 IP 数据包过大而越界,损坏了其它数据或编码;有的则可能因为用一个无符号的 16 bit 变量来保存数据包的长度和相关变量,当这些变量的值超过 65 535 Byte 时,变量不再与其数值一致,从而引发异常。因此可以为相应的系统打上补丁。
2.3.3 RST 和 FIN 攻击( RST and FIN attack)
在 TCP 包中有 6 个标志位来指示分段的状态。其中 RST 用来复位一个连接, FIN 表示没有数据要发送了攻击者经常利用这两个标志位进行拒绝服务攻击。他们先分析通过目标主机和受骗主机之间的 IP 数据包,计算出从受骗主机发往目标主机的下一个 TCP 段的序列号,然后产生一个带有 RST 位设置的 TCP 段,将其放在假冒源 IP 地址的数据包中发往目标主机,目标主机收到后就关闭与受骗主机的连接。
利用 FIN 位的攻击与 RST 位的攻击很相似。攻击者预测到正确的序列号后,使用它创建一个带 FIN 位的 TCP 分段,然后发送给目标主机,好像受骗主机没有数据要发送了,这样,由受骗主机随后发出的 TCP 段都会目标主机认为是网络错误而忽略。
2.3.6 Smurf攻击
通过地址欺骗,并使用回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行。最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞
黑客锁定一个被攻击的主机(通常是一些Web服务器);
黑客寻找可做为中间代理的站点,用来对攻击实施放大(通常会选择多个,以便更好地隐藏自己,伪装攻击);
黑客给中间代理站点的广播地址发送大量的ICMP包(主要是指Ping命令的回应包)。这些数据包全都以被攻击的主机的IP地址做为IP包的源地址;
中间代理向其所在的子网上的所有主机发送源IP地址欺骗的数据包;
中间代理主机对被攻击的网络进行响应。
2.3.7 Land 攻击
用一个特别打造的SYN包,其原地址和目标地址都被设置成某一个服务器地址。此举将导致服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时
防御方法:
这类攻击的检测方法相对来说比较容易,因为可以直接通过判断网络数据包的源地址和目标地址是否相同确认是否属于攻击行为。反攻击的方法当然是适当地配置防火墙设备或制定包过滤路由器的包过滤规则,并对这种攻击进行审计,记录事件发生的时间、源主机和目标主机的MAC地址和IP地址,从而可以有效地分析并跟踪攻击者的来源。
2.3.8 UDP FLOOD攻击
UDP不需要像TCP那样进行三次握手,运行开销低,不需要确认数据包是否成功到达目的地。这就造成UDP泛洪攻击不但效率高,而且还可以在资源相对较少的情况下执行。UDP FLOOD可以使用小数据包(64字节)进行攻击,也可以使用大数据包(大于1500字节,以太网MTU为1500字节)进行攻击。大量小数据包会增大网络设备处理数据包的压力;而对于大数据包,网络设备需要进行分片、重组,最终达到的效果就是占用网络传输接口的带宽、网络堵塞、服务器响应慢等等。
防御方案: 限制每秒钟接受到的流量(可能产生误判);通过动态指纹学习(需要攻击发生一定时间),将非法用户加入黑名单。
2.3.9 泪滴攻击
“teardrop”,又称“泪滴”:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动,达到攻击者需要的拒绝服务的目的。
3. DOS与DDOS区别
3.1 DOS
“DoS”是Denial of Service,拒绝服务的缩写。所谓的拒绝服务是当前网络攻击手段中最常见的一种。它故意攻击网络协议的缺陷或直接通过某种手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃,而最值得注意的是,攻击者在此攻击中并不入侵目标服务器或目标网络设备,单纯利用网络缺陷或者暴力消耗即可达到目的。
从原理上来说,无论攻击者的攻击目标(服务器、计算机或网络服务)的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。任何资源都有一个极限,所以攻击者总能找到一个方法使请求的值大于该极限值,导致所提供的服务资源耗尽。
从技术分类的角度上来说,最常见的DoS攻击有对计算机网络的带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法用户的请求无法通过。连通性攻击指用大量的连接请求冲击服务器或计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
在网络还不发达的时候,单一的DoS攻击一般是采用一对一的方式,也就是攻击者直接利用自己的计算机或者设备,对攻击目标发起DoS攻击。当攻击目标处在硬件性能低下、网络连接情况不好等情况的时候,一对一的DoS攻击效果是非常明显的,很有可能直接一个攻击者就搞定一个网站或者一个服务器,让它拒绝服务。
3.2 DDOS
随着计算机和网络技术的发展,硬件设备的处理性能加速度增长,成本也变得非常低廉,网络的快速发展更是让带宽、出入口节点宽度等大大的提升,这让传统的DoS攻击很难凑效。
随着这样情况的出现,攻击者研究出了新的攻击手段,也就是DDoS。
DDoS是在传统的DoS攻击基础之上产生的一种新的攻击方式,即Distributed Denial Of Service,分布式拒绝服务攻击。
如果说计算机与网络的处理能力比以往加大了10倍的话(示例数据,没有实质意义),那攻击者使用10台计算机同时进行攻击呢?也就达到了可以让目标拒绝服务的目的。简单来说,DDoS就是利用更多的计算机来发起攻击。
就技术实现方式来分析,分布式拒绝服务攻击就是攻击者利用入侵手段,控制几百台,或者成千上万台计算机(一般被控制的计算机叫做傀儡主机,或者口头被网络安全相关人员称为“肉鸡”),然后在这些计算机上安装大量的DDoS程序。这些程序接受来自攻击者的控制命令,攻击者同时启动全部傀儡主机向目标服务器发起拒绝服务攻击,形成一个DoS攻击群,猛烈的攻击目标,这样能极为暴力的将原本处理能力很强的目标服务器攻陷。
3.3 区别
通过上面的分析,可以看出DDoS与DoS的最大区别是数量级的关系,DoS相对于DDoS来说就像是一个个体,而DDoS是无数DoS的集合。另一方面,DDoS攻击方式较为自动化,攻击者可以把他的程序安装到网络中的多台机器上,所采用的这种攻击方式很难被攻击对象察觉,直到攻击者发下统一的攻击命令,这些机器才同时发起进攻。可以说DDoS攻击是由黑客集中控制发动的一组DoS攻击的集合,现在这种方式被认为是最有效的攻击形式,并且非常难以抵挡。