• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于IP緩存的SYN Flooding防御技術

      2019-09-10 07:22:44韓立明
      河南科技 2019年32期

      韓立明

      摘?要:DDOS攻擊是當今互聯(lián)網(wǎng)一種比較重要的安全威脅,而SYN?Flooding是DDOS攻擊中最常使用的幾種網(wǎng)絡攻擊方式之一。本文先分析了兩種主流的防SYN?Flooding技術的優(yōu)點和不足之處,然后引入IP地址緩沖技術,克服了這些方法的不足,從而提高防御SYN?Flooding的效率。

      關鍵詞:同步洪攻擊;SYN?Cache;SYN?Cookie;IP緩存

      中圖分類號:TP393.08 文獻標識碼:A 文章編號:1003-5168(2019)32-0015-03

      IP?Cache?based?Syn?Flooding?Defense?Technology

      HAN?Liming

      (Tongliao?Vocational?College,Tongliao?Inner?Mongolia?028000)

      Abstract:?DDOS?attack?is?one?of?the?most?important?security?threats?in?the?Internet?nowadays,?and?SYN?Flooding?is?one?of?the?most?common?network?attacks?in?the?DDOS.?This?paper?first?analyzed?the?advantages?and?disadvantages?of?two?main?anti-SYN?Flooding?technologies,?and?then?introduced?IP?address?buffer?technology?to?overcome?the?shortcomings?of?these?methods,?so?as?to?improve?the?efficiency?of?anti-SYN?Flooding.

      Keywords:?sync?flood?attack;SYN?Cache;SYN?Cookie;IP?Cache

      當今時代,幾乎所有的Internet服務都建立在TCP/IP協(xié)議族之上,包括http、ftp、e-mail等。這些服務的可用性依賴于下層傳輸層協(xié)議(TCP)的性能[1]。但是,目前存在一種嚴重威脅TCP性能的攻擊,即SYN?Flooding。正常情況下,服務器收到一個SYN段,其認為遠程主機要建立一個TCP連接,操作系統(tǒng)分配一定的資源來記錄這種狀態(tài)。通過快速持續(xù)的發(fā)送SYN段,攻擊者很快耗盡主機資源,甚至使其死機。

      服務器可以通過改變自身資源分配策略來緩解SYN?Flooding帶來的沖擊。一種辦法是先分配盡量少的資源,待到連接完全建立后再分配全部的資源(SYN?Cache);另一種辦法是不在服務器保留任何狀態(tài)信息,而返回的SYN/ACK包的ISN中包含一個用密碼加密的信息(SYN?Cookies)[2-4]。這兩種方法都有其優(yōu)點和不足。為了克服兩種方法的不足,本文引進IP緩存技術,該技術充分發(fā)揮了兩種方法的長處,有效避免了其缺點,同時還能有效找到部分攻擊源。

      1 SYN?Flooding、SYN?Cookies和SYN?Cache

      SYN?Flooding攻擊是利用TCP協(xié)議三次握手(見圖1)連接建立過程沒有對連接請求進行合法性驗證的缺陷而設計的攻擊方式。當收到一個SYN時,服務器就分配一定的內(nèi)存、計時器等資源來記錄這種半打開狀態(tài)。SYN?Flooding攻擊的目標是用大量無用的SYN段占用服務的資源,使其不能向合法的連接提供服務。

      為了抵抗這樣的攻擊,必須設法減少分配給每個不完全連接的資源數(shù)量(SYN?Cache),甚至不分配資源(SYN?Cookie),而是等到連接完全建立時才分配。

      SYN?Cache機制用了一個全局Hash表代替每個端口的線性表來存儲半連接的狀態(tài),每個Hash值對應一個線性表。SYN?Cache的設計思想就是盡量減少每個部分連接占用的資源數(shù)量,使服務器可以容納更多的半連接。另外,采用連接池循環(huán)使用技術使攻擊者的難度加大。SYN?Cache的一個缺點是在SYN?Flooding強度很大的情況下,Cache有可能溢出。

      SYN?Cookies實際上是返回給遠程計算機的初始化序列號(Initial?Sequence?Number,ISN),合法的連接將在三次握手的最后一步將其返回服務器。服務器通過連接的初始SYN包的源IP、端口號、時間戳及服務器定期變化的密碼來計算ISN,服務器收到第三步的ACK,取出ISN,解密后與ACK包中的信息進行驗證。有較好的算法可以保證ISN難以偽造和重用,這樣在服務器端不用維護每個未完成連接的狀態(tài)信息。只要第三步ACK驗證通過,便可以通過ACK中的信息建立完整的連接。但是,SYN?Cookies丟失了一些TCP選項,對TCP性能有一些影響,另外與T/TCP也存在一些兼容性問題。

      2 IP緩存機制

      總的來說,SYN?Cookies在判斷一個連接是否合法方面非常有效,而SYN?Cache在保持TCP各項性能方面非常有效。在此基礎上,本文提出一種IP緩存機制,該方法融合了上述兩種方法的優(yōu)點,并有效克服其不足。

      據(jù)估計,當今Internet環(huán)境中,絕大多數(shù)是Web數(shù)據(jù)流(約80%)。Web數(shù)據(jù)流有以下特點:從一個連接請求一個頁面,先建立一個TCP連接得到主頁面,隨后緊跟著若干嵌入頁面的元素,將各自與服務器建立一個TCP連接??梢灶A期,在同一個IP地址到服務器的兩個相鄰連接的時間間隔大部分分布在一個較短的時間范圍內(nèi)。而且,現(xiàn)在Internet中大部分接入是通過代理服務器,通過代理服務器到服務器的連接都是代理的IP地址,相鄰連接的間隔時間更集中于1h的時間范圍內(nèi)。

      IP緩存正是基于上述假設。IP緩存的設計思想是:每一個連接,先用SYN?Cookies技術判斷其合法性,如果合法,便在服務器上記錄有關的源IP地址等信息(稱為goodlist表),對以后的連接,如果起始IP地址和服務器記錄的地址一致,便允許直接建立連接(為了進一步節(jié)省資源,連接采用SYN?Cache方式來建立)。為了防止服務器記錄的信息占用過多內(nèi)存,必須定期清理goodlist。上述假設保證了在一定命中率下,goodlist的容量不用太大。IP緩存再設置badlist來存放明顯是偽裝的SYN連接的IP地址名單。

      IP緩存的工作原理如下。第一,初始化goodlist,badlist為空。第二,對任何TCP連接請求(新到SYN段),查詢badlist,如果源IP地址在其中,拒絕該連接請求;再檢查其是否在goodlist中,如果在,該連接按SYN?Cache方式處理,同時更新白名單中相應條目的時間戳;如果也不在goodlist中,該連接按SYN?Cookies方式處理。第三,對于每個成功建立的連接,如果goodlist中沒有記錄,則將相應的條目添加到goodlist;如果已經(jīng)在goodlist中,更新其goodconnect計數(shù),同時更新RTT估計值和時間戳。第四,每次連接關閉,如果IP還在goodlist中,則更新其時間戳和RTT估計。

      可以把SYN?Flooding中的源IP地址分成兩種特征:第一,是偽造的隨機IP地址;第二,偽造IP,但通過代理服務器產(chǎn)生IP,到達服務器的IP是代理服務器的IP地址,這種IP地址是真實的IP地址。

      SYN?Flooding攻擊時可能混雜了兩種類型的SYN段。對于第一種特點的SYN?Flooding,SYN?Cookies機制可以有效識別,從而不可能進入goodlist,也不會占用Cache資源,即使偶爾會有某個IP地址恰好在goodlist中而進入Cache,由于這種可能性非常?。ü粽唠S機產(chǎn)生源IP地址),對Cache不會造成不良影響。對于第二種SYN?Flooding,由于從同一代理服務器出來的還可能有其他合法連接,所以這種連接很可能進入Cache和goodlist,但是這時Cache中將表現(xiàn)出大量的連接超時,相應的badconnet將很快增加,在時間[T1]內(nèi)被檢測到,而被加入badlist。這將有效阻隔這種類型的SYN攻擊,同時,這時badlist記錄的都是真實的IP,所以源追蹤要容易很多。

      3 IP緩存的性能分析

      為了保證IP緩存機制能起到良好的作用,其必須滿足以下幾個條件:合法連接到來時在goodlist中的命中率要高,否則便退化到SYN?Cookies(命中率和[T1]值正相關);goodlist的大小體現(xiàn)值[N]應足夠小,否則goodlist的查詢和修改將成為瓶頸,[N]與[T1]負相關;在選擇將IP記錄放入badlist時應采用恰當?shù)乃惴?,盡量避免合法連接被錯誤放入badlist,并避免具有攻擊流的IP長期占用Cache;[T2]的值應根據(jù)實際情況合理配置,避免從相同代理服務器產(chǎn)生的合法連接不能建立,同時還要避免badlist太大造成查詢或修改瓶頸。

      前兩個條件是相互矛盾的,必須折中選擇一個合適的值。

      令從同一IP地址到服務器的兩個相鄰TCP連接之間的時間間隔分布為[P(T)]([T]>0),即小于[T]時間的個數(shù)占總數(shù)的比例為[P(T)],則:

      [0+∞P(T)dT=1]???????????????????????????????????????(1)

      令[δ=0TP(T)dT]。同時,令每個連接平均消耗處理器時間為[t],則在[T]時間內(nèi)到達的連接數(shù)為:Total=[T]/[t],每個這樣的連接來自與goodlist中的IP不同的IP的概率為[1-δ],所以goodlist的大小為:

      [Sg=(1-δ)T/t]???????????????????????????????(2)

      一般[t]在毫秒數(shù)量級,不妨設為1ms。

      假設在一般Web訪問中,同一個頁面有20個連接,這些連接將在10s以內(nèi)到達服務器,取[T]=10s,則[δ]>(20-1)/20=0.95,代入式(2)可得:[Sg]=(1-0.95)×10/0.001=500。

      可見,在保證goodlist命中率在95%的情況下,goodlist的大小在103的數(shù)量級,對查詢和插入刪除都不會造成瓶頸。

      為了防止從代理服務器出來的SYN?Flooding占用Cache資源,一般情況下,如果沒有SYN?Flooding攻擊,各個IP對應的badconnect計數(shù)將會很小,相反,如果存在SYN?Flooding,相應IP的badconnect計數(shù)將會急劇增加,另外goodconnect也可以作為參考。所以,通過badconnect計數(shù)器來判斷具有很高的可信度。

      關于badconnect計數(shù),可以參考RTT來設置,如果Cache中的條目被清除出,在Cache中的時間[t]小于累計的平均RTT(記錄在goodlist),則badconnect加一個較小的值[a],如果[t]>>RT,則badconnect加一個較大的值[b]。選取的值要使得在有無SYN?Flooding的情況下badconnect計數(shù)差異盡量大。

      關于badlist的容量問題,發(fā)動一次SYN?Flooding攻擊的計算機通過的代理服務器個數(shù)一般不會超過幾百的數(shù)量級,所以badlist的容量不是問題。至于時間[T2]的選擇,主要考慮攻擊源的追查和影響的正常用戶兩方面,由于每個badlist條目只影響從該代理出來的用戶,可以根據(jù)攻擊的強度適當選擇屏蔽時間,同時可以進行實時的源追蹤。

      4 結語

      本文結合兩種比較有效的SYN?Flooding抵御方法,以此為基礎,引入IP緩存機制,融合兩種方法的優(yōu)點,有效克服各自的缺點,提高了防御SYN?Flooding的性能。IP緩存機制還有兩個特點,一是涉及的參數(shù)很多,和服務器提供的服務等網(wǎng)站自身特點相關,攻擊者要攻破這樣的防御體制需要更多動態(tài)數(shù)據(jù),這在實踐中是很難的;二是IP緩存機制可以有效分辨出自真實代理服務器的攻擊,可以快速進行源追查,一般發(fā)動一次攻擊都是有組織的行為,找到部分的攻擊源有利于找到始作俑者。

      參考文獻:

      [1]史蒂文斯.TCP/IP協(xié)議詳解卷一:協(xié)議[M].北京:機械工業(yè)出版社,2016.

      [2]特南鮑姆.計算機網(wǎng)絡[M].北京:清華大學出版社,2014.

      [3]陳平平,張永超,李長森.SYN?Flooding攻擊問題的分析[J].計算機工程與設計,2015(1):114-117.

      [4]汪曉平.SYN?flooding網(wǎng)絡開發(fā)技術[M].北京:人民郵電出版社,2013.

      馆陶县| 泽普县| 中超| 衢州市| 徐汇区| 新野县| 松溪县| 成都市| 韶关市| 博罗县| 凭祥市| 岑巩县| 德钦县| 综艺| 朝阳区| 板桥市| 丰宁| 小金县| 合川市| 乐都县| 丹寨县| 芜湖县| 正蓝旗| 青海省| 扎囊县| 涟源市| 来安县| 哈尔滨市| 苏尼特右旗| 静乐县| 边坝县| 大足县| 平阴县| 什邡市| 京山县| 康马县| 平定县| 峨山| 都江堰市| 阳江市| 扶风县|