IT技(ji)術(shu)互動交流(liu)平台

吉林体彩网官网

作(zuo)者︰whl  發(fa)布日期︰2020-02-20 03:38:00
  說(shuo)到(dao)SYN Flood可能(neng)很(hen)多(duo)人都不是很(hen)清楚,對(dui)于它會造成(cheng)什(shi)麼樣(yang)的危(wei)害也(ye)一(yi)知半解,今天小編(bian)就(jiu)給大家詳細介紹一(yi)下(xia)關(guan)于SYN Flood的攻擊以及防御的具體操作(zuo)方法,感興趣(qu)的朋友(you)不妨跟著小編(bian)一(yi)起繼續往下(xia)看。

  一(yi)、為(wei)什(shi)麼Syn Flood會造成(cheng)危(wei)害

  這要(yao)從操作(zuo)系統的TCP/IP協議(yi)棧的實現說(shuo)起。當開放了一(yi)個TCP端口後(hou),該(gai)端口就(jiu)處(chu)于Listening狀態(tai),不停(ting)地監(jian)視(shi)發(fa)到(dao)該(gai)端口的Syn報文,一(yi)旦接收到(dao)Client發(fa)來的Syn報文,就(jiu)需要(yao)為(wei)該(gai)請(qing)求分配一(yi)個TCB(Transmission Control Block),通常一(yi)個TCB至少需要(yao)280個字節(jie),在某些操作(zuo)系統中TCB甚至需要(yao)1300個字節(jie),並返回(hui)一(yi)個SYN ACK命令,立即轉(zhuan)為(wei)SYN-RECEIVED即半開連接狀態(tai),而某些操作(zuo)系統在SOCK的實現上最多(duo)可開啟512個半開連接(如Linux2.4.20內核)。這種過程如下(xia)圖所示︰

過程如下(xia)圖所示

  從以上過程可以看到(dao),如果惡意的向某個服務(wu)器(qi)端口發(fa)送大量的SYN包,則可以使服務(wu)器(qi)打開大量的半開連接,分配TCB,從而消耗大量的服務(wu)器(qi)資源,同時也(ye)使得正常的連接請(qing)求無法被(bei)相應。而攻擊發(fa)起方的資源消耗相比較可忽略不計。

  二、如何防御Syn Flood攻擊

  我們先來看一(yi)下(xia)Syn Flood有哪(na)些種類,如下(xia)圖所示︰

Syn Flood有哪(na)些種類

  1. Direct Attack 攻擊方使用固定的源地址發(fa)起攻擊,這種方法對(dui)攻擊方的消耗最小

  2. Spoofing Attack 攻擊方使用變化的源地址發(fa)起攻擊,這種方法需要(yao)攻擊方jiang)煌ting)地修改源地址,實際上消耗也(ye)不大

  3. Distributed Direct Attack 這種攻擊主要(yao)是使用僵尸網絡進行固定源地址的攻擊

  對(dui)于第一(yi)種攻擊的防範可以使用比較簡單的方法,即對(dui)SYN包進行監(jian)視(shi),如果發(fa)現某個IP發(fa)起了較多(duo)的攻擊報文,直接將這個IP列入黑名(ming)單即可。當然下(xia)述的方法也(ye)可以yuan)dui)其進行防範。

  對(dui)于源地址不停(ting)變化的攻擊使用上述方法則不行,首先從某一(yi)個被(bei)偽bi)暗P過來的Syn報文可能(neng)不會太(tai)多(duo),達不到(dao)被(bei)拒絕(jue)的閾值,其次從這個被(bei)偽bi)暗P(真實的)的請(qing)求會被(bei)拒絕(jue)掉。因此必須使用其他的方法進行處(chu)理。

  1.無效連接監(jian)視(shi)釋(shi)放

  2. 這種方法不停(ting)監(jian)視(shi)系統的半開連接和不活動連接,當達到(dao)一(yi)定閾值時拆除這些連接,從而釋(shi)放系統資源。這種方法對(dui)于所有的連接一(yi)視(shi)同仁,而且(qie)由于SYN Flood造成(cheng)的半開連接數量很(hen)大,正常連接請(qing)求也(ye)被(bei)淹沒(mei)在其中被(bei)這種方式誤釋(shi)放掉,因此這種方法屬于入門(men)級的SYN Flood方法。

  3.延緩TCB分配方法

  4. 從前面SYN Flood原理可以看到(dao),消耗服務(wu)器(qi)資源主要(yao)是qie)蛭wei)當SYN數據報文一(yi)到(dao)達,系統立即分配TCB,從而佔用了資源。而SYN Flood由于很(hen)難建(jian)立起正常連接,因此,當正常連接建(jian)立起來後(hou)再分配TCB則可以有效地減輕服務(wu)器(qi)資源的消耗。常見的方法是使用Syn Cache和Syn Cookie技(ji)術(shu)。

  Syn Cache技(ji)術(shu)︰

  這種技(ji)術(shu)是在收到(dao)SYN數據報文時不急于去分配TCB,而是先回(hui)應一(yi)個SYN ACK報文,並在一(yi)個專(zhuan)用HASH表(Cache)中保存(cun)這種半開連接信息(xi),直到(dao)收到(dao)正確(que)的回(hui)應ACK報文再分配TCB。在FreeBSD系統中這種Cache每(mei)個半開連接只(zhi)需使用160字節(jie),遠(yuan)小于TCB所需的736個字節(jie)。在發(fa)送的SYN ACK中需要(yao)使用一(yi)個己方的Sequence Number,這個數字不能(neng)被(bei)對(dui)方jiang)碌dao),否則對(dui)于某些稍(shao)微智能(neng)一(yi)點的Syn Flood攻擊軟件來說(shuo),它們在發(fa)送Syn報文後(hou)會發(fa)送一(yi)個ACK報文,如果己方的Sequence Number被(bei)對(dui)方jiang)虜獾dao),則會被(bei)其建(jian)立起真正的連接。因此一(yi)hua)悴cai)用一(yi)些加密算法生(sheng)成(cheng)難于預(yu)測的Sequence Number。

  Syn Cookie技(ji)術(shu)︰

  對(dui)于SYN攻擊,Syn Cache雖然不分配TCB,但是為(wei)了判斷後(hou)續對(dui)方發(fa)來的ACK報文中的Sequence Number的正確(que)性,還是需要(yao)使用一(yi)些空間去保存(cun)己方生(sheng)成(cheng)的Sequence Number等信息(xi),也(ye)造成(cheng)了一(yi)些資源的浪費。

  Syn Cookie技(ji)術(shu)則完全不使用任何存(cun)儲資源,這種方法比較巧(qiao)妙(miao),它使用一(yi)種特(te)殊的算法生(sheng)成(cheng)Sequence Number,這種算法考慮到(dao)了對(dui)方的IP、端口、己方IP、端口的固定信息(xi),以及對(dui)方無法知道而己方比較固定的一(yi)些信息(xi),如MSS、時間等,在收到(dao)對(dui)方的ACK報文後(hou),重新計算一(yi)遍,看其是否與(yu)對(dui)方回(hui)應報文中的(Sequence Number-1)相同,從而決定是否分配TCB資源。

  3. 使用SYN Proxy防火(huo)牆

  Syn Cache技(ji)術(shu)和Syn Cookie技(ji)術(shu)總的來說(shuo)是qie)恢種骰;hu)技(ji)術(shu),需要(yao)系統的TCP/IP協議(yi)棧的支持,而目前並非所有的操作(zuo)系統支持這些技(ji)術(shu)。因此很(hen)多(duo)防火(huo)牆中都提供一(yi)種SYN代理的功(gong)能(neng),其主要(yao)原理是對(dui)試圖穿越的SYN請(qing)求進行驗(yan)證(zheng)後(hou)才(cai)放行,下(xia)圖描述了這種過程︰

 使用SYN Proxy防火(huo)牆

  從上圖(左圖)中可以看出,防火(huo)牆在確(que)認了連接的有效性後(hou),才(cai)向內部的服務(wu)器(qi)(Listener)發(fa)起SYN請(qing)求,在右圖中,所有的無效連接均(jun)無法到(dao)達內部的服務(wu)器(qi)。而防火(huo)牆jiang)捎玫難yan)證(zheng)連接有效性的方法則可以是Syn Cookie或Syn Flood等其他技(ji)術(shu)。

  采(cai)用這種方式進行防範需要(yao)注意的一(yi)點就(jiu)是防火(huo)牆需要(yao)對(dui)整個有效連接的過程發(fa)生(sheng)的數據包進行代理,如下(xia)圖所示︰

數據包進行代理

  因為(wei)防火(huo)牆代替發(fa)出的SYN ACK包中使用的序列號為(wei)c,而服務(wu)器(qi)真正的回(hui)應包中序列號為(wei)c‘,這其中有一(yi)個差值c-c’,在每(mei)個相關(guan)數據報文經過防火(huo)牆的時候進行序列號的修改。

  TCP Safe Reset技(ji)術(shu)︰

  這也(ye)是防火(huo)牆Syn代理的一(yi)種方式,其工(gong)作(zuo)過程如下(xia)圖所示︰

工(gong)作(zuo)過程如下(xia)圖所示

  這種方法在驗(yan)證(zheng)了連接之(zhi)後(hou)立即發(fa)出一(yi)個Safe Reset命令包,從而使得Client重新進行連接,這時出現的Syn報文防火(huo)牆就(jiu)直接放行。在這種方式中,防火(huo)牆就(jiu)不需要(yao)對(dui)通過防火(huo)牆的數據報文進行序列號的修改了。這需要(yao)客戶端shuo)CP協議(yi)棧支持RFC 793中的相關(guan)約定,同時由于Client需要(yao)兩次握手過程,連接建(jian)立的時間將有所延長。

  上面這些內容就(jiu)是今天小編(bian)給大家分享的關(guan)于SYN Flood會導致(zhi)的危(wei)害以及如何對(dui)其進行防御的具體操作(zuo)方法了。如果大家對(dui)于SYN Flood還想了解更(geng)多(duo)的話(hua)歡迎查看本(ben)站其他發(fa)文,小編(bian)這里就(jiu)不再一(yi)一(yi)進行講(jiang)解了。

  • 吉林体彩网官网

About IT165 - 廣告服務(wu) - BG视讯官网隱私聲明(ming) - 版(ban)權(quan)申明(ming) - 免責條(tiao)款(kuan) - 網站地圖 - 網友(you)投稿 - 聯(lian)系方式
本(ben)站內容來自于互聯(lian)網,僅供用于網絡技(ji)術(shu)學習,學習中請(qing)遵(zun)循(xun)相關(guan)法律法規
吉林体彩网官网 | 下一页