tcp ddos攻击_tcp协议ddos攻击

hacker|
217

cc攻击和ddos攻击有什么区别啊?

CC攻击和DDoS攻击的区别表现在:攻击对象、危害、门槛、流量大小等方面。

1、攻击对象不同

DDoS是针对IP的攻击。

CC攻击针对的是网页。

2、危害不同

DDoS攻击危害性较大,更难防御。

CC攻击的危害不是毁灭性的,但是持续时间长。

3、门槛不同

DDoS攻击门槛高,攻击者一般需要在攻击前搜集被攻击目标主机数目、地址情况、目标主机的配置性能等资料,盲目攻击可能导致效果不佳。

CC攻击门槛低,利用更换IP代理工具即可实施攻击,且目标比较明确,黑客水平比较低的用户也能进行。

4、流量大小不同

DDoS攻击比CC攻击所需要流量更大。

CC攻击有时不需要很大的流量。

基于 TCP/IP 协议的常见攻击方法

TCP/IP 中,对资源占杳和分配设计的一个基本原则是自觉原则。如参加 TCP通信的一方发现上次发送的数据报丢失,则主动将通信速率降至原来的一半。这样,也给恶意的网络破坏者提供了机会 c 如网络破坏者可以大量的发 IP 报,造成网络阻塞,也可以向一台主机发送大量的 SYN 包从而大量占有该主机的资源 (SYN Flood) 。这种基于资源占用造成的攻击被称为拒绝服务攻击( DOS)

IP 欺骗是指一个攻击者假冒一个主机或合法用户的 IP 地址,利用两个主机之间的信任关系来达到攻击的目的,而这种信任关系只是根据源 IP 地址来确定。所谓信任关系是指当主机 B 信任主机 A 上的 X用户时,只要 X 在 A 上登录, X 用户就可以直接登录到主机 B 上,而不需要任何口令。

IP 欺骗通常需要攻击者能构造各种形式 IP 数据包,用虚假的源 IP 地址替代自己的真实 IP 地址。如果主机之间存在基于 IP 地址的信任关系,目标主机无法检测出已经被欺骗。

防范措施

TCP 会话劫持跳过连接过程.对一个已经建立的连接进行攻击。攻击者与被假冒主机和目标主机之一在同一个子网中,攻击者通过一个嗅探程序可以看到被假冒主机和目标主机之间通信的数据包。

防范措施

最主要的方法是在传输层对数据进行加密。

拒绝服务坷的目的就是使受害的服务器不能提供正常的网络服务。

当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的Syn报文,一旦接收到Client发来的Syn报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYN ACK命令,立即转为SYN-RECEIVED即半开连接状态,而操作系统在SOCK的实现上最多可开启半开连接个数是一定的。

从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。

防范措施

从上图(左图)中可以看出,防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求,在右图中,所有的无效连接均无法到达内部的服务器。

采用这种方式进行防范需要注意的一点就是防火墙需要对整个有效连接的过程发生的数据包进行代理,如下图所示:

因为防火墙代替发出的SYN ACK包中使用的序列号为c,而服务器真正的回应包中序列号为c’,这其中有一个差值|c-c’|,在每个相关数据报文经过防火墙的时候进行序列号的修改。

TCP Safe Reset技术:

这也是防火墙Syn代理的一种方式,其工作过程如下图所示:

这种方法在验证了连接之后立即发出一个Safe Reset命令包,从而使得Client重新进行连接,这时出现的Syn报文防火墙就直接放行。在这种方式中,防火墙就不需要对通过防火墙的数据报文进行序列号的修改了。这需要客户端的TCP协议栈支持RFC 793中的相关约定,同时由于Client需要两次握手过程,连接建立的时间将有所延长。

死亡之 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

分段后的 IP 包要在接收端的 IP 层进行重组,这样"死亡之 Ping"就可以再发送一个回应请求数据包,使它的数据包中的数据超过 65 507 Byte ,使得某些系统的 IP 分段组装模块出现异常。因为在 IP 分段组装的过程中,它通过每一个 IP 分段中的偏移量来决定每一个分段在整个 IP 包中的位置,最后一个分段中,如果 IP 包的长度大于 65 507 Byte各个分段组装后就会超过 IP 包的最大长度。某些操作系统要等到将所有的分段组装完后才对 IP 包进行处理,所以就存在这样一种内部缓冲区或内部变量溢出的可能性,这样会导致系统崩愤或重启。

防范措施

在 TCP 包中有 6 个标志位来指示分段的状态。其中 RST 用来复位一个连接, FIN 表示没有数据要发送了攻击者经常利用这两个标志位进行拒绝服务攻击。他们先分析通过目标主机和受骗主机之间的 IP 数据包,计算出从受骗主机发往目标主机的下一个 TCP 段的序列号,然后产生一个带有 RST 位设置的 TCP 段,将其放在假冒源 IP 地址的数据包中发往目标主机,目标主机收到后就关闭与受骗主机的连接。

利用 FIN 位的攻击与 RST 位的攻击很相似。攻击者预测到正确的序列号后,使用它创建一个带 FIN 位的 TCP 分段,然后发送给目标主机,好像受骗主机没有数据要发送了,这样,由受骗主机随后发出的 TCP 段都会目标主机认为是网络错误而忽略。

通过地址欺骗,并使用回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行。最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞

用一个特别打造的SYN包,其原地址和目标地址都被设置成某一个服务器地址。此举将导致服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时

防御方法:

这类攻击的检测方法相对来说比较容易,因为可以直接通过判断网络数据包的源地址和目标地址是否相同确认是否属于攻击行为。反攻击的方法当然是适当地配置防火墙设备或制定包过滤路由器的包过滤规则,并对这种攻击进行审计,记录事件发生的时间、源主机和目标主机的MAC地址和IP地址,从而可以有效地分析并跟踪攻击者的来源。

UDP不需要像TCP那样进行三次握手,运行开销低,不需要确认数据包是否成功到达目的地。这就造成UDP泛洪攻击不但效率高,而且还可以在资源相对较少的情况下执行。UDP FLOOD可以使用小数据包(64字节)进行攻击,也可以使用大数据包(大于1500字节,以太网MTU为1500字节)进行攻击。大量小数据包会增大网络设备处理数据包的压力;而对于大数据包,网络设备需要进行分片、重组,最终达到的效果就是占用网络传输接口的带宽、网络堵塞、服务器响应慢等等。

防御方案: 限制每秒钟接受到的流量(可能产生误判);通过动态指纹学习(需要攻击发生一定时间),将非法用户加入黑名单。

“teardrop”,又称“泪滴”:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动,达到攻击者需要的拒绝服务的目的。

“DoS”是Denial of Service,拒绝服务的缩写。所谓的拒绝服务是当前网络攻击手段中最常见的一种。它故意攻击网络协议的缺陷或直接通过某种手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃,而最值得注意的是,攻击者在此攻击中并不入侵目标服务器或目标网络设备,单纯利用网络缺陷或者暴力消耗即可达到目的。

从原理上来说 ,无论攻击者的攻击目标(服务器、计算机或网络服务)的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。任何资源都有一个极限,所以攻击者总能找到一个方法使请求的值大于该极限值,导致所提供的服务资源耗尽。

从技术分类的角度上来说 ,最常见的DoS攻击有对计算机网络的带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法用户的请求无法通过。连通性攻击指用大量的连接请求冲击服务器或计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

在网络还不发达的时候,单一的DoS攻击一般是采用一对一的方式,也就是攻击者直接利用自己的计算机或者设备,对攻击目标发起DoS攻击。当攻击目标处在硬件性能低下、网络连接情况不好等情况的时候,一对一的DoS攻击效果是非常明显的,很有可能直接一个攻击者就搞定一个网站或者一个服务器,让它拒绝服务。

随着计算机和网络技术的发展,硬件设备的处理性能加速度增长,成本也变得非常低廉,网络的快速发展更是让带宽、出入口节点宽度等大大的提升,这让传统的DoS攻击很难凑效。

随着这样情况的出现,攻击者研究出了新的攻击手段,也就是DDoS。

DDoS是在传统的DoS攻击基础之上产生的一种新的攻击方式,即Distributed Denial Of Service,分布式拒绝服务攻击。

如果说计算机与网络的处理能力比以往加大了10倍的话(示例数据,没有实质意义),那攻击者使用10台计算机同时进行攻击呢?也就达到了可以让目标拒绝服务的目的。简单来说,DDoS就是利用更多的计算机来发起攻击。

就技术实现方式来分析,分布式拒绝服务攻击就是攻击者利用入侵手段,控制几百台,或者成千上万台计算机(一般被控制的计算机叫做傀儡主机,或者口头被网络安全相关人员称为“肉鸡”),然后在这些计算机上安装大量的DDoS程序。这些程序接受来自攻击者的控制命令,攻击者同时启动全部傀儡主机向目标服务器发起拒绝服务攻击,形成一个DoS攻击群,猛烈的攻击目标,这样能极为暴力的将原本处理能力很强的目标服务器攻陷。

通过上面的分析,可以看出DDoS与DoS的最大区别是数量级的关系,DoS相对于DDoS来说就像是一个个体,而DDoS是无数DoS的集合。另一方面,DDoS攻击方式较为自动化,攻击者可以把他的程序安装到网络中的多台机器上,所采用的这种攻击方式很难被攻击对象察觉,直到攻击者发下统一的攻击命令,这些机器才同时发起进攻。可以说DDoS攻击是由黑客集中控制发动的一组DoS攻击的集合,现在这种方式被认为是最有效的攻击形式,并且非常难以抵挡。

网络安全技术 常见的DDoS攻击方法有哪些

常见的DDoS攻击方法有:

1、SYN/ACK Flood攻击

这种攻击方法是经典最有效的DDOS攻击方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。

2、TCP全连接攻击

这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOS攻击方式容易被追踪。

3、刷Script脚本攻击

这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露DDOS攻击者的IP地址。

DDoS 攻击与防御

分布式拒绝服务攻击(Distributed Denial of Service),是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。

DDoS 是一种基于 DoS 的特殊形式的拒绝服务攻击。单一的 DoS 攻击一般是采用一对一方式,利用网络协议和操作系统的缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与 DoS 相比,DDos 借助数百上千台攻击机形成集群,发起的规模更大,更难防御的一种进攻行为。

ICMP 用于在 IP 主机,路由器之间传递控制消息(网络是否连通,主机是否可达,路由是否可用等)。ICMP 虽然不传递用户数据,但是对于用户数据的传递起着重要的作用。ICMP Flood 通过对目标系统发送海量的数据报,就可以令目标主机瘫痪,形成洪泛攻击。

UDP 协议是一种无连接的协议,在 UDP Flood 中,攻击者通常发送大量伪造 IP 地址的 UDP 报去冲击 DNS 服务器,Radius 认证服务器,流媒体视频服务器等,造成服务不可用。 上述的两种是比较传统的流量型攻击,技术含量较低,以占满网络带宽使得正常用户无法得到服务为攻击方式,攻击效果通常依赖于攻击者本身的网络性能,而且容易被查找攻击源头。

NTP 是标准的基于 UDP 协议的网络时间同步协议。由于 UDP 无连接的特性,NTP 服务器并不能保证收到报文的源 IP 的正确性。所以,攻击者通过将 IP 报文的源 IP 地址换为靶机的 IP 地址,并向 NTP 服务器发送大量的时间同步报文,这样,NTP 服务器的响应报文就会达到靶机上,沾满靶机网络段的带宽资源,同时也很难去追溯攻击源头。

SYN Flood 是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使目标服务器资源耗尽的攻击方式。如果客户端只发起第一次握手,而不响应服务端的第二次握手,那么这条连接就处于半连接状态,服务端会维持这条连接一段时间(SYN Timeout)并不断地重试。但攻击者大量的模拟这种情况,就会沾满整个服务端的连接符号表,并消耗大量的 CPU 资源进行重试操作。而对于 SNY Flood 的防御目前有两种常见的方式,一种是算短 SYN Timeout,另一种是设置 SYN Cookie,并开辟一个数组存放 Cookie,单连接没有真正建立时,不去占用连接符号表。

DNS Query Flood 通过操纵大量的傀儡机,向本网段的域名服务器发送大量域名解析请求,通常这些请求解析的域名是随机生成或网络上根本不存在的域名,由于本地域名服务器无法找到对应的结果,就会通过层层上次给更高级的域名服务器,引起连锁反应,导致本网段内的域名解析服务瘫痪,但一般最多只会瘫痪一小段网络。

HashDos 是一种新型的,基于 Hash 碰撞形成的攻击。随着现在 RESTful 风格的不断普及,json 格式作为数据传输的格式愈发成为主流。但是 json 反序列化为对象时,底层是通过 hash 算法来将字段与属性,属性值进行一一匹配。所以,一旦攻击者知道了我们序列化方式,构造出一段具有严重哈希碰撞的 json 数据,就会使我们服务端序列化的复杂度从 O(1) 暴增到 O(n)。

DDos 的防御主要有两种,一种是针对流量带宽,一种是针对服务端资源。流量带宽一般需要通过运营商采用 ISP 黑洞,近源清洗等策略,在源头(即攻击者所在的网段)进行拦截,而不是等到所有的细流汇聚成猛水时才进行拦截。

而对于服务端的资源,则是当下 DDos 的重灾区,本文以攻防对抗的方式讲述 DDos 的发展历程。

参考文献:

0条大神的评论

发表评论