久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3854|回復: 0
打印 上一主題 下一主題
收起左側

基于TCP半連接SYN Flooding攻擊原理及防范

[復制鏈接]
跳轉到指定樓層
樓主
ID:127496 發表于 2016-6-21 01:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      說起安全,不得不說一下當前最為流行的一種 D.o.S 的攻擊方式,從目前看來,這種攻擊仍然是危害性相當大,并且沒有辦法徹底防范的一種攻擊方式。而且,凡是基于 TCP 的高層應用,都有可能受到這種致命的攻擊。
  
      在“可靠的”傳輸層,在這里打上引號,是因為傳輸層并不是真正的可靠的,而只是相對的。為什么這么說呢,因為在 2 端的通信中,如果由于通信鏈路的故障,或者是某一端的故障,造成了通信的異常,那么另一端是不能主動地了解到的。打個比方說,這就好比是我匯錢給張三,用的是中國郵政的普通匯款,由于種種的原因,他們把錢在路上搞丟了,但是這個時候我并不知道錢丟了,我還在一直等張三給我打電話,告訴我錢是否到了,如果 2 個月之后,張三還是沒有來電話,說錢已經收到了,按照常理來說,一個半月之前就應該收到了,那沒辦法,我只得再給張三匯錢,如果這次又搞丟了,我還得再匯,直到張三打電話告訴我,錢已經到了,那么可能對于張三來說,這個傳輸是可靠的,因為不管丟了多少次,終究他是收到了他想要的東西,但是對于我來說,我不能把丟的錢找回來,也不能自己去監視中國郵政到底是把我的錢搞丟了,還是被他們塞進自己的腰包了,我所知道的僅僅是“張三沒有收到錢”,我需要再給他寄一次。

      由此可以看出,TCP 的傳輸并不是可靠的,它存在一個等待和重傳的機制,一旦數據在網絡上發生丟失,它會依賴于 ACK / SYN 這些東西來進行一個重傳,而且,TCP 處理程序中存在一個計時器,如果計時器發生超時,那么它就認為數據已經丟了(當然不會像上邊的例子中說的是 2 個月),再去重傳,那么既然要去重傳,就要保證將來一旦發生超時,TCP 處理程序還能把丟失的東西找回來,那么,TCP 處理程序在收到連接請求的時候,就會要在內存中開辟一片區域來,保存 SYN 以及數據著一系列的東西。

      好,現在了解到了 TCP 的可靠與不可靠的方面,現在來說一下 TCP 的 3 次握手,這個在以前的文章中已經寫過了,在這里就不再多說了,在正常情況下,3 次握手的步驟如下:
         
            ISN
A -------------------> B
      SYN/ACK
A <------------------- B
          ACK
A -------------------> B

      在 A 向 B 發出 TCP 請求的時候,它發出一個隨機的 ISN (Initial Sequence Number),B 收到后給 A 回復一個 ACK = ISN + 1,同時再回復一個自己的 SYN 號,接著會保存 A 發來的這些信息,同時再內存中開辟緩沖區進行保存,然后 A 再給 B 回復一個 ACK。經歷過這三次之后,一個端到端的 TCP 連接已經建立起來了,這是正常的情況。但是,考慮這種情況,如果在 A 向 B 發出請求,B 給 A 回復并且開辟了資源之后,A 不再進行第三次的回復,會怎么辦?這就好比說,張三收到錢了,也不給我打電話,我一等 2 個月,按照常理的話張三早該收到錢了,但是他還沒來電話,沒辦法,我只有再去匯錢了,那么如果每一次都這樣,我這里的錢是不是很快就匯完了?TCP 中也是這樣,如果 A 一直在向B 發起 TCP 請求,B 也按照正常情況進行響應了,但是 A 不進行第三次的握手,造成半連接,那么 B 分配出去的內存資源就一直這么耗著,直到資源耗盡。

      對于這種攻擊,似乎是沒有辦法防范的,因為 TCP 的三次握手是協議規定死的,所有使用 TCP 協議的軟件都必須遵循其規定,否則無法通信。但是,有一種辦法,似乎可以防范,那就是限制通信源的 TCP 并發連接數,例如:如果 A 在 1 秒鐘之內連續產生 100 個 TCP 半連接,那么 B 就丟棄 A 所有的 TCP 信息,并且在一定時間內不再響應攻擊者的釋放內存資源。這看起來似乎似乎一種行之有效的辦法,可是實際并非這么簡單,因為在第三層的 IP 協議是一個不可靠的協議,它的源地址可以被偽造,如果一個攻擊者制造大量的偽造源地址來對受害者進行攻擊,而每一個 IP 地址的 TCP 半連接只建立 3~5 次,這個時候如何防范?

      基于此,一種新型的防御方式產生了—— TCP Cookie,TCP Cookie 技術針對 TCP 協議的軟肋,做出了一些改進。仍以上面的通信過程為例,在 A 向 B 發出一個 TCP 請求之后,B 并不立即為 A 的 TCP 請求分配資源,而是利用 A 發來的連接信息計算出一個 Cookie 值——取 Client 端的 IP、端口,以及 Server 端的 IP、端口,再進行一種散列算法,得到一個 Cookie,取該 Cookie 的前 24 位作為 SYN 值對對方進行回復。當對方對這個 SYN/ACK 再次進行 ACK (ACK=SYN+1)回復的時候,利用某種算法和這個 ACK 來倒推回原來的 Cookie,如果在一定范圍內符合,即認為是合法的 TCP 請求,對它進行響應,如果不符合,則認為其是非法的 TCP 請求,丟棄。為什么說是一定范圍內呢,因為 Cookie 的變化和時間有關,那么在 TCP 超時之內的所有的 ACK 都應該是合法的,那么在倒推回去的時候,只要得到的 Cookie 和原來的 Cookie 在一個合法的時間段內相符,就認為是合法的。

      這種 TCP Cookie 技術并不是無懈可擊的,首先,如果攻擊者大量地偽造 IP 地址進行半連接攻擊,受害者會忙于計算原來的 Cookie 值而造成資源耗盡,另外,由于并發連接數太多,會造成受害者的帶寬耗盡,同樣也會造成拒絕服務攻擊(D.o.S 可不管是耗盡資源還是耗盡帶寬,它只要讓受害者的服務不能正常提供即可),帶寬總是有限的,所以不管怎么防范,只要 D.o.S 攻擊威力足夠大,任何的防范方法都不能奏效。所以想要防范 D.o.S,還是厚道些做人,不要惹火黑客,否則在遭到攻擊的時候,除了拔網線,恐怕再沒有別的辦法了:-)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国 | 国产精品精品久久久 | 久久久久久亚洲精品 | 毛片网站在线观看 | 亚洲综合大片69999 | 国产三级在线观看播放 | 在线一级片 | av手机在线免费观看 | 中文字幕国产一区 | 日韩aⅴ在线观看 | 精品国产一区二区 | 在线观看亚洲 | 日韩在线看片 | 国产精品178页 | 成人久久网 | 男女精品久久 | 久久久精品网站 | 亚洲精品无 | 中文字幕免费在线 | 2019天天干天天操 | 韩国av电影网 | .国产精品成人自产拍在线观看6 | 亚洲大片在线观看 | 久久伊人一区二区 | 天天久久 | 久久久精品国产 | 日本a视频| 欧美国产一区二区 | 亚洲iv一区二区三区 | 神马久久香蕉 | 九九热在线观看 | 欧美性jizz18性欧美 | 欧美人妖网站 | 亚洲欧美在线一区 | 国产午夜精品久久久久免费视高清 | 欧美中文字幕一区 | 伦理片97 | 日韩欧美精品在线 | 一级日批片 | 羞羞视频在线观看 | 日韩在线不卡视频 |