隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。 收藏本站
登陆 / 注册 搜索

阅读: 8.5K   回复: 7

[# 网络基础] 拒绝服务式攻击是什么

[复制链接]
小执念 古黑浩劫论坛大牛 2015-11-23 07:19 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员 五周年纪念
 拒绝服务攻击即攻击者想办法让目标机器停止提供服务或资源访问,是黑客常用的攻击手段之一。这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。. o8 b7 I9 V( }7 l
9 `/ O3 C9 F1 {; Q6 u
拒绝服务式攻击是什么 ddos_897973322.jpg
2 P* L2 \4 X, j2 _: [
  拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:9 i) N8 Y& ^9 \/ q! Y% I( d  _
1 t3 Z. [9 ~' R0 R( ^5 N  `

. w/ P! N$ T+ y0 O
  一是迫使服务器的缓冲区满,不接收新的请求;% f; x9 Q$ j  b: `. d
/ x% G- a/ B1 ]2 C( f
  二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。

8 K0 R9 w+ H6 A  拒绝服务攻击的原理
! A: q: Q, e& G# A, w3 P
# B/ l: u5 F- b3 \0 E3 s- G. a
  1.SYN Flood

! O- Q% ?( E$ T" P& {" c. H3 I7 P  SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
0 S; j% W0 K1 t) Y1 `7 {
# q) d1 s# n! ]& V3 K" ?2 P  SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。# O2 U& v2 V% O/ T
! I8 X" Y: u  y9 C& c
  (1) 攻击者向被攻击服务器发送一个包含SYN标志的TCP报文,SYN(Synchronize)即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号。这时同被攻击服务器建立了第一次握手。
$ y1 q0 B2 V* B  (2) 受害服务器在收到攻击者的SYN报文后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时TCP序号被加一,ACK(Acknowledgment)即确认,这样就同被攻击服务器建立了第二次握手。
2 P- x1 \: @. `% ~) V# P; q  (3) 攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。

5 R" ^! @$ L  a  s; T# @
9 S2 a$ \3 D% B. t  具体原理是:TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。

; S9 D+ D6 L) N. o. M2 ~
/ F- I  ]; i) B! y! ~

  m$ L/ j- U- T* I* F( x  这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
) m" @- p/ `+ n' S
! X+ D) C+ V6 Y) x  E   SYN COOKIE 防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux操作系统提供保护。SYN cookie防火墙是linux的 一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。6 G( l! @9 f4 W; E/ j

# l0 M' c) Y: |7 x4 g  下面是SYN cookie防火墙的原理 " p9 o& t% {3 j( z* i1 \) Y

$ x, A# L. ]% @. z8 p0 q2 E) ]client firewall server 8 L, l( h, F) w0 A* {
------ ---------- ------ 8 C$ t6 m0 p: J3 E& f( Y
1. SYN----------- - - - - - - - - - ->
  Q, v) ?4 ?1 B, L( z: ?8 G2 `2. <------------SYN-ACK(cookie)
8 X7 U7 e  o) I0 [3. ACK----------- - - - - - - - - - -> + q; y1 C# j3 |1 \8 @, f' y
4. - - - - - - -SYN---------------> 2 y3 M/ N5 \; a0 F# d
5. <- - - - - - - - - ------------SYN-ACK
6 ]0 M1 s6 S( {6. - - - - - - -ACK--------------->
$ L6 L+ I( u% T( ?- F& b' y7. -----------> relay the ------->! H: b* W) S0 U- p# o
<----------- connection <-------
+ f) M5 [8 p1 w3 g) {9 b
5 r0 \& k  @( b3 t
1:一个SYN包从C发送到S ; a9 ^6 e+ [( ]. O1 t: t; Z
2:防火墙在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C 9 g% x% Z% c& z" b1 S
3:C发送ACK包,接着防火墙和C的连接就建立了。 & E: N+ H& z" W2 s6 Y% m/ ?
4:防火墙这个时候扮演C的角色发送一个SYN给S
! f. q8 l+ ]; P8 d) z" {5:S返回一个SYN给C " f1 m6 Y! S9 j- k
6:防火墙扮演C发送一个ACK确认包给S,这个时候防火墙和S的连接也就建立了
0 Y( r- _! n% Y6 _; {& C( U' e4 _* u7:防火墙转发C和S间的数据

0 n# P# j* i) u& S$ `3 G* M" M  如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的SYN包,所以我们就击退了这次SYN洪水攻击。( c4 Z) O( z- r3 `2 _7 E# h" G
* Y; D$ y. K6 p
  2.IP欺骗DOS攻击
" Y* G: F: ?4 e3 L5 f
3 J7 M! B( D' f! N- B. d& q
  这种攻击利用RST位来实现。假设现在有一个合法用户(61.61.61.61)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为61.61.61.61,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从61.61.61.61发送的连接有错误,就会清空缓冲区中建立好的连接。

5 F4 a% s: v+ a1 F5 O& f$ H" r# T% {

: c0 {" V( t( v; ~      这时,如果合法用户61.61.61.61再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,攻击者会伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务,从而实现了对受害服务器的拒绝服务攻击。
% h+ e! ^# A" l2 p' x
/ T- e& c# U* X  3. UDP洪水攻击
% j3 x# j( m$ p0 q  V# j6 A9 D% Q& O7 v! r

' W. ?5 H) M' J. X3 l( F9 l  攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间存在很多的无用数据流,这些无用数据流就会导致带宽的服务攻击。 6 P$ B% M, _& g
( [# }6 ^5 Y8 z. k% Z
  4. Ping洪流攻击

, E& @4 `* ^8 x9 V- \; p( @1 V8 `! P7 M7 X0 w/ R
  由于在早期的阶段,路由器对包的最大尺寸都有限制。许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机。
& j/ h2 `# `9 h% ?1 R) C: j% f0 l4 p2 X; P: z' \# M$ P
  5. 泪滴(teardrop)攻击

. {( j9 V$ ?" j0 l7 t" _3 f' s& Q& R! C. m. y2 ]
  泪滴攻击是利用在TCP/IP堆栈中实现信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。
( M3 y  k( ]' l6 z- ^5 H 
: l9 a( D* ^2 N" d% t  6. Land攻击
& u* x8 e% q7 o$ ?

% Q0 Y2 r: b3 g* H5 U8 H  Land攻击原理是:用一个特别打造的SYN包,它的原地址和目标地址都被设置成某一个服务器地址。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时,对Land攻击反应不同,许多UNIX实现将崩溃,NT变的极其缓慢(大约持续5分钟)。
$ _1 i5 t, @9 X 8 |/ Q6 j4 ^4 L5 r; N$ m- L+ u
  7. Smurf攻击

5 _+ ~" |: P0 b6 J- b/ V( m. u& R' W$ G
  一个简单的Smurf攻击原理就是:通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行。最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。它比ping of death洪水的流量高出1或2个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。
5 s( t/ v4 A- d- @( W9 a* @5 ]
  8.Fraggle攻击
4 S  x2 G' I# v3 [7 K' I5 e$ O

6 U6 p2 ^$ I0 B% m, U+ `( A- n  原理:Fraggle攻击实际上就是对Smurf攻击作了简单的修改,使用的是UDP应答消息而非ICMP。
  T' d( @+ r" a9 O$ Q
上一篇
下一篇
帖子热度 8606 ℃

弓长张 「出类拔萃」 2016-8-31 12:09 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

有些是专业术语我都看不懂,只能等翻译,才似懂非懂
雾月 「出类拔萃」 2017-9-12 18:18 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

不错 支持一个了
著墨染雨君画夕 「出类拔萃」 2018-5-8 07:14 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

小朋友,我看你骨骼清奇,并非凡人,将来必成大业!不如这样,你看一下我头像下方,下面有个收听,你点一下它,然后我们一起拯救世界如何?#378:
清川带长薄 「出类拔萃」 2018-5-12 12:09 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

对于这种刚发的帖子,
9 e. C- J  @5 W% ?  Q6 _我总是毫不犹豫的回了。5 ]2 x* k/ X- p7 W/ V9 \
如果火了就是个前排,
8 X( [3 P  b" J4 p可以混个脸熟,! ]) D& x1 h1 z
说不定谁好心就给粉了…稳赚不赔;* n, ^; b8 c* U
如果沉了就感觉是我弄沉的,4 |1 M2 N  f! Q- C
很有成就感,
6 Y" i0 g6 c  p7 Y/ B9 {- b4 v还能捞经验。#y431:
% ]3 y6 L( h% W6 l4 {3 i
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表