亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 網(wǎng)絡(luò)安全知識(shí) > 詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題

      詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題

      時(shí)間: 林澤1002 分享

      詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題

        TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題,也介紹到企業(yè)網(wǎng)絡(luò)安全管理人員在面臨問題時(shí)所能采取的應(yīng)對措施。下面是學(xué)習(xí)啦小編收集整理的詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題,希望對大家有幫助~~

        詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題

        1. IP欺騙

        IP Spoof即IP 電子欺騙,可以理解為一臺(tái)主機(jī)設(shè)備冒充另外一臺(tái)主機(jī)的IP地址與其他設(shè)備通信,從而達(dá)到某種目的技術(shù)。早在1985年,貝爾實(shí)驗(yàn)室的一名工程師Robbert Morris在他的一篇文章“A weakness in the 4.2bsd UNIX TCP/IP software”中提出了IP Spoof的概念,有興趣的讀者可參見原文:http://www.coast.net/~emv/tubed/archives/Morris_weakness_in_ TCPIP.txt 。

        但要注意:單純憑借IP Spoof技術(shù)不可能很好地完成一次完整的攻擊,因?yàn)楝F(xiàn)有IP Spoof技術(shù)是屬于一種“盲人”式的入侵手段。

        一般來說,IP欺騙攻擊有6個(gè)步驟:

        (1)首先使被信任主機(jī)的網(wǎng)絡(luò)暫時(shí)癱瘓,以免對攻擊造成干擾;

        (2)然后連接到目標(biāo)機(jī)的某個(gè)端口來猜測ISN基值和增加規(guī)律;

        (3)接下來把源地址偽裝成被信任主機(jī),發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)段請求連接;

        (4)然后等待目標(biāo)機(jī)發(fā)送SYN+ACK包給已經(jīng)癱瘓的主機(jī);

        (5)最后再次偽裝成被信任主機(jī)向目標(biāo)機(jī)發(fā)送的ACK,此時(shí)發(fā)送的數(shù)據(jù)段帶有預(yù)測的目標(biāo)機(jī)的ISN+1;

        (6)連接建立,發(fā)送命令請求。

        下面是它的兩個(gè)關(guān)鍵步驟:

        (1)使被信任主機(jī)失去工作能力

        為了偽裝成被信任主機(jī)而不露餡,需要使其完全失去工作能力。由于攻擊者將要代替真正的被信任主機(jī),他必須確保真正的被信任主機(jī)不能收到任何有效的網(wǎng)絡(luò)數(shù)據(jù),否則將會(huì)被揭穿。有許多方法可以達(dá)到這個(gè)目的(如SYN洪水攻擊、Land等攻擊)。

        (2)序列號(hào)取樣和猜測

        對目標(biāo)主機(jī)進(jìn)行攻擊,必須知道目標(biāo)主機(jī)的數(shù)據(jù)包序列號(hào)。通常如何進(jìn)行預(yù)測呢?往往先與被攻擊主機(jī)的一個(gè)端口(如25端口)建立起正常連接。通常,這個(gè)過程被重復(fù)N次,并將目標(biāo)主機(jī)最后所發(fā)送的ISN存儲(chǔ)起來。然后還需要估計(jì)他的主機(jī)與被信任主機(jī)之間的往返時(shí)間,這個(gè)時(shí)間是通過多次統(tǒng)計(jì)平均計(jì)算出來的。如果往返連接增加64,000,則現(xiàn)就可以估計(jì)出ISN的大小是128,000乘以往返時(shí)間的一半,如果此時(shí)目標(biāo)主機(jī)剛剛建立過一個(gè)連接,那么再加上64,00。一旦估計(jì)出ISN的大小,就開始著手進(jìn)行攻擊,當(dāng)然你的虛假TCP數(shù)據(jù)包進(jìn)入目標(biāo)主機(jī)時(shí),如果剛才估計(jì)的序列號(hào)是準(zhǔn)確的,進(jìn)入的數(shù)據(jù)將被放置在目標(biāo)機(jī)的緩沖區(qū)中。

        但是在實(shí)際攻擊過程中往往沒這么幸運(yùn),如果估計(jì)的序列號(hào)小于正確值,那么將被放棄。而如果估計(jì)的序列號(hào)大于正確值,并且在緩沖區(qū)的大小之內(nèi),那么該數(shù)據(jù)被認(rèn)為是一個(gè)未來的數(shù)據(jù),TCP模塊將等待其他缺少的數(shù)據(jù)。如果估計(jì)序列號(hào)大于期待的數(shù)字且不在緩沖區(qū)之內(nèi),TCP將會(huì)放棄它并返回一個(gè)期望獲得的數(shù)據(jù)序列號(hào)。偽裝成被信任的主機(jī)IP后,此時(shí)該主機(jī)仍然處在癱瘓狀態(tài),然后向目標(biāo)主機(jī)的被攻擊端口(如25)發(fā)送連接請求。目標(biāo)主機(jī)立刻對連接請求作出反應(yīng),發(fā)更新SYN+ACK確認(rèn)包給被信任主機(jī),因?yàn)榇藭r(shí)被信任主機(jī)仍然處于癱瘓狀態(tài),它當(dāng)然無法收到這個(gè)包,緊接著攻擊者向目標(biāo)主機(jī)發(fā)送ACK數(shù)據(jù)包,該數(shù)據(jù)包使用前面估計(jì)的序列號(hào)加1。如果攻擊者估計(jì)正確的話,目標(biāo)主機(jī)將會(huì)接收該ACK。連接就正式建立起了,可以開始數(shù)據(jù)傳輸了。

        對于來自網(wǎng)絡(luò)外部的欺騙,防范的方法很簡單,只需要在局域網(wǎng)的對外路由器上加一個(gè)限制設(shè)置就可以實(shí)現(xiàn)了,在路由器的設(shè)置里面禁止運(yùn)行聲稱來自于網(wǎng)絡(luò)內(nèi)部的信息包。

        對于來自局域網(wǎng)外部的IP欺騙攻擊的防范則可以使用防火墻進(jìn)行防范,但是對于來自內(nèi)部的攻擊通過設(shè)置防火墻則起不到什么作用,這個(gè)時(shí)候應(yīng)該注意內(nèi)部網(wǎng)的路由器是否支持內(nèi)部接口。如果路由器支持內(nèi)部網(wǎng)絡(luò)子網(wǎng)的兩個(gè)接口,則必須提高警惕,因?yàn)樗苋菀资艿絀P欺騙。

        通過對信息包的監(jiān)控來檢查IP欺騙攻擊將是非常有效的方法,使用netlog等信息包檢查工具對信息的源地址和目的地址進(jìn)行驗(yàn)證,如果發(fā)現(xiàn)了信息包來自兩個(gè)以上的不同地址,則說明系統(tǒng)有可能受到了IP欺騙攻擊,防火墻外面正有黑客試圖入侵系統(tǒng)。

        2. SYN Flooding

        SYN Flooding是最為有效和流行的一種DoS攻擊形式。它利用TCP三次握手協(xié)議的缺陷,向目標(biāo)主機(jī)發(fā)送大量的偽造源地址的SYN連接請求,消耗目標(biāo)主機(jī)的資源,從而不能夠?yàn)檎S脩籼峁┓?wù)。

        在TCP會(huì)話初期,有所謂的“三次握手”過程:對每次發(fā)送的數(shù)據(jù)量是怎樣跟蹤進(jìn)行協(xié)商使數(shù)據(jù)段的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確定的數(shù)據(jù)確認(rèn)數(shù)及數(shù)據(jù)發(fā)送、接收完畢后何時(shí)撤消聯(lián)系,并建立虛連接。為了提供可靠的傳送,TCP在發(fā)送新的數(shù)據(jù)之前,以特定的順序?qū)?shù)據(jù)包進(jìn)行編號(hào),并需要等待這些包傳送給目標(biāo)機(jī)之后的確認(rèn)消息。TCP總是用來發(fā)送大批量的數(shù)據(jù)。當(dāng)應(yīng)用程序在收到數(shù)據(jù)后要做出確認(rèn)時(shí)也要用到TCP。由于TCP要時(shí)刻跟蹤,這需要額外開銷,使得TCP的格式有些顯得復(fù)雜。

        TCP三次握手的步驟如下:

        (1)設(shè)主機(jī)A要與主機(jī)B通信,要建立一個(gè)TCP連接。首先,主機(jī)B(在這兒是服務(wù)器),必須先運(yùn)行一個(gè)服務(wù)器進(jìn)程,發(fā)出一個(gè)“被動(dòng)找開”命令給TCP。之后服務(wù)器進(jìn)程便不斷探測端口,看是否有客戶進(jìn)程有連接請求。并處于“聽”狀態(tài)??蛻舳酥鳈C(jī)A的應(yīng)用進(jìn)程,向其TCP發(fā)“主動(dòng)打開”命令,指明要與某個(gè)IP地址的某個(gè)端口建立TCP連接。第一次主機(jī)A的TCP便向主機(jī)B的TCP發(fā)出連接請求報(bào)文。TCP報(bào)文中指明了要連接的IP地址(隱含TP數(shù)據(jù)報(bào)指明)和端口號(hào),設(shè)置能夠接受的TCP數(shù)據(jù)段最大值,以及一些用戶數(shù)據(jù),SYN=1,ACK=0。這稱為“第一次握手”。

        (2)主機(jī)A的連接請求到達(dá)主機(jī)B后,主機(jī)B的TCP查看是否有進(jìn)程在偵聽該端口,如沒有,就發(fā)送一個(gè)RST=1的應(yīng)答,拒絕連接,否則將到達(dá)TCP數(shù)據(jù)段留給“偵聽”進(jìn)程。“偵聽”進(jìn)程將發(fā)回一個(gè)應(yīng)答TCP報(bào)文段,其中SYN=1,ACK=1,確認(rèn)序號(hào)ACKSEQ=X+1,同時(shí)自己選一個(gè)發(fā)送序號(hào)SEQ=Y。這是“第二次握手”。

        (3)主機(jī)A收到主機(jī)B的確認(rèn)報(bào)文后,再向主機(jī)B發(fā)出一個(gè)確認(rèn)TCP報(bào)文段,其中SYN=1,ACK=1,SEQ=X+1,ACKSEQ=Y+1,這就完成了“第三次握手”。

        在SYN Flooding攻擊中,黑客機(jī)器向受害主機(jī)發(fā)送大量偽造源地址的TCP SYN報(bào)文,受害主機(jī)分配必要的資源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包,如圖1所示。由于源地址是偽造的,所以源端永遠(yuǎn)都不會(huì)返回ACK報(bào)文,受害主機(jī)繼續(xù)發(fā)送SYN+ACK包,并將半連接放入端口的積壓隊(duì)列中,雖然一般的主機(jī)都有超時(shí)機(jī)制和默認(rèn)的重傳次數(shù),但是由于端口的半連接隊(duì)列的長度是有限的,如果不斷地向受害主機(jī)發(fā)送大量的TCP SYN報(bào)文,半連接隊(duì)列就會(huì)很快填滿,服務(wù)器拒絕新的連接,將導(dǎo)致該端口無法響應(yīng)其他機(jī)器進(jìn)行的連接請求,最終使受害主機(jī)的資源耗盡。

        圖1 SYN Flooding攻擊示意圖

        目前在防御SYN Flooding攻擊方面有2種比較有效的技術(shù)。

        (1)SYN-cookie技術(shù)

        一般情況下,當(dāng)服務(wù)器收到一個(gè)TCP SYN報(bào)文后,馬上為該連接請求分配緩沖區(qū),然后返回一個(gè)SYN+ACK報(bào)文,這時(shí)形成一個(gè)半連接。SYN Flooding正是利用了這一點(diǎn),發(fā)送大量的偽造源地址的SYN連接請求,而不完成連接。這樣就大量地消耗服務(wù)器的資源。

        SYN-cookie技術(shù)針對標(biāo)準(zhǔn)TCP連接建立過程資源分配上的這一缺陷,改變了資源分配的策略。當(dāng)服務(wù)器收到一個(gè)SYN報(bào)文后,不立即分配緩沖區(qū),而是利用連接的信息生成一個(gè)cookie,并將這個(gè)cookie作為將要返回的SYN+ACK報(bào)文的初始序列號(hào)。當(dāng)客戶端返回一個(gè)ACK報(bào)文時(shí),根據(jù)包頭信息計(jì)算cookie,與返回的確認(rèn)序列號(hào)(初始的序列號(hào)+1)的前24位進(jìn)行對比,如果相同,則是一個(gè)正常連接,然后,分配資源,建立連接。

        該技術(shù)的巧妙之點(diǎn)在于避免了在連接信息未完全到達(dá)前進(jìn)行資源分配,使SYN Flooding攻擊的資源消耗失效。實(shí)現(xiàn)的關(guān)鍵之處在于cookie的計(jì)算。cookie的計(jì)算應(yīng)該做到包含本次連接的狀態(tài)信息,使攻擊者不能偽造cookie。cookie的計(jì)算過程如下。

       ?、?服務(wù)器收到一個(gè)SYN包后,計(jì)算一個(gè)消息摘要mac:

        mac = MAC(A,k)

        MAC是密碼學(xué)中的一個(gè)消息認(rèn)證碼函數(shù),也就是滿足某種安全性質(zhì)的帶密鑰的hash函數(shù),它能夠提供cookie計(jì)算中需要的安全性。A為客戶和服務(wù)器雙方的IP地址和端口號(hào)以及參數(shù)t的串聯(lián)組合:A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t;K為服務(wù)器獨(dú)有的密鑰;時(shí)間參數(shù)t為32比特長的時(shí)間計(jì)數(shù)器,每64秒加1;

       ?、?生成cookie:

        cookie = mac(0:24):表示取mac值的第0到24比特位;

       ?、?設(shè)置將要返回的SYN+ACK報(bào)文的初始序列號(hào),設(shè)置過程如下:

        · 高24位用cookie代替;

        · 接下來的3比特位用客戶要求的最大報(bào)文長度MMS代替;

        · 最后5比特位為t mod 32。

        客戶端收到來自服務(wù)器SYN+ACK報(bào)文后,返回一個(gè)ACK報(bào)文,這個(gè)ACK報(bào)文將帶一個(gè)cookie(確認(rèn)號(hào)為服務(wù)器發(fā)送過來的SYN ACK報(bào)文的初始序列號(hào)加1,所以不影響高24位),在服務(wù)器端重新計(jì)算cookie,與確認(rèn)號(hào)的前24位比較,如果相同,則說明未被修改,連接合法,然后,服務(wù)器完成連接的建立過程。

        SYN-cookie技術(shù)由于在連接建立過程中不需要在服務(wù)器端保存任何信息,實(shí)現(xiàn)了無狀態(tài)的三次握手,從而有效地防御了SYN Flooding攻擊。但是該方法也存在一些弱點(diǎn)。由于cookie的計(jì)算只涉及了包頭的部分信息,在連接建立過程中不在服務(wù)器端保存任何信息,所以失去了協(xié)議的許多功能,比如超時(shí)重傳。此外,由于計(jì)算cookie有一定的運(yùn)算量,增加了連接建立的延遲時(shí)間,因此,SYN-cookie技術(shù)不能作為高性能服務(wù)器的防御手段。通常采用動(dòng)態(tài)資源分配機(jī)制,即分配了一定的資源后再采用cookie技術(shù),Linux系統(tǒng)中的SYN-cookie就是這樣實(shí)現(xiàn)的。還有一個(gè)問題是,當(dāng)我們避免了SYN Flooding攻擊的同時(shí),也提供了另一種拒絕服務(wù)攻擊方式,攻擊者發(fā)送大量的ACK報(bào)文,使服務(wù)器忙于計(jì)算驗(yàn)證。盡管如此,在預(yù)防SYN Flooding攻擊方面,SYN-cookie技術(shù)仍然是一種有效的技術(shù)。

        (2)地址狀態(tài)監(jiān)控的解決方法

        地址狀態(tài)監(jiān)控的解決方法是利用監(jiān)控工具對網(wǎng)絡(luò)中的有關(guān)TCP連接的數(shù)據(jù)包進(jìn)行監(jiān)控,并對監(jiān)聽到的數(shù)據(jù)包進(jìn)行處理。處理的主要依據(jù)是連接請求的源地址。

        每個(gè)源地址都有一個(gè)狀態(tài)與之對應(yīng),總共有四種狀態(tài):

        · 初態(tài):任何源地址剛開始的狀態(tài);

        · NEW狀態(tài):第一次出現(xiàn)或出現(xiàn)多次也不能斷定存在的源地址的狀態(tài);

        · GOOD狀態(tài):斷定存在的源地址所處的狀態(tài);

        · BAD狀態(tài):源地址不存在或不可達(dá)時(shí)所處的狀態(tài)。

        具體的動(dòng)作和狀態(tài)轉(zhuǎn)換根據(jù)TCP頭中的位碼值決定。

        ① 監(jiān)聽到SYN包,如果源地址是第一次出現(xiàn),則置該源地址的狀態(tài)為NEW狀態(tài);如果是NEW狀態(tài)或BAD狀態(tài);則將該包的RST位置1然后重新發(fā)出去,如果是GOOD狀態(tài)不作任何處理。

       ?、?監(jiān)聽到ACK或RST包,如果源地址的狀態(tài)為NEW狀態(tài),則轉(zhuǎn)為GOOD狀態(tài);如果是GOOD狀態(tài)則不變;如果是BAD狀態(tài)則轉(zhuǎn)為NEW狀態(tài);如果是BAD狀態(tài)則轉(zhuǎn)為NEW狀態(tài)。

        ③ 監(jiān)聽到從服務(wù)器來的SYN ACK報(bào)文(目的地址為addr),表明服務(wù)器已經(jīng)為從addr發(fā)來的連接請求建立了一個(gè)半連接,為防止建立的半連接過多,向服務(wù)器發(fā)送一個(gè)ACK包,建立連接,同時(shí),開始計(jì)時(shí),如果超時(shí),還未收到ACK報(bào)文,證明addr不可達(dá),如果此時(shí)addr的狀態(tài)為GOOD則轉(zhuǎn)為NEW狀態(tài);如果addr的狀態(tài)為NEW狀態(tài)則轉(zhuǎn)為BAD狀態(tài);如果為addr的狀態(tài)為BAD狀態(tài)則不變。

        地址狀態(tài)的轉(zhuǎn)換圖如圖2所示。

        圖2 地址狀態(tài)轉(zhuǎn)換圖

        下面分析一下基于地址狀態(tài)監(jiān)控的方法如何能夠防御SYN Flooding攻擊。

        對于一個(gè)偽造源地址的SYN報(bào)文,若源地址第一次出現(xiàn),則源地址的狀態(tài)為NEW狀態(tài),當(dāng)監(jiān)聽到服務(wù)器的SYN+ACK報(bào)文,表明服務(wù)器已經(jīng)為該源地址的連接請求建立了半連接。此時(shí),監(jiān)控程序代源地址發(fā)送一個(gè)ACK報(bào)文完成連接。這樣,半連接隊(duì)列中的半連接數(shù)不是很多。計(jì)時(shí)器開始計(jì)時(shí),由于源地址是偽造的,所以不會(huì)收到ACK報(bào)文,超時(shí)后,監(jiān)控程序發(fā)送RST數(shù)據(jù)包,服務(wù)器釋放該連接,該源地址的狀態(tài)轉(zhuǎn)為BAD狀態(tài)。之后,對于每一個(gè)來自該源地址的SYN報(bào)文,監(jiān)控程序都會(huì)主動(dòng)發(fā)送一個(gè)RST報(bào)文。

        對于一個(gè)合法的SYN報(bào)文,若源地址第一次出現(xiàn),則源地址的狀態(tài)為NEW狀態(tài),服務(wù)器響應(yīng)請求,發(fā)送SYN+ACK報(bào)文,監(jiān)控程序發(fā)送ACK報(bào)文,連接建立完畢。之后,來自客戶端的ACK很快會(huì)到達(dá),該源地址的狀態(tài)轉(zhuǎn)為GOOD狀態(tài)。服務(wù)器可以很好地處理重復(fù)到達(dá)的ACK包。

        3. ACK Flooding

        ACK Flooding攻擊是在TCP連接建立之后,所有的數(shù)據(jù)傳輸TCP報(bào)文都是帶有ACK標(biāo)志位的,主機(jī)在接收到一個(gè)帶有ACK標(biāo)志位的數(shù)據(jù)包的時(shí)候,需要檢查該數(shù)據(jù)包所表示的連接四元組是否存在,如果存在則檢查該數(shù)據(jù)包所表示的狀態(tài)是否合法,然后再向應(yīng)用層傳遞該數(shù)據(jù)包。如果在檢查中發(fā)現(xiàn)該數(shù)據(jù)包不合法,例如該數(shù)據(jù)包所指向的目的端口在本機(jī)并未開放,則主機(jī)操作系統(tǒng)協(xié)議棧會(huì)回應(yīng)RST包告訴對方此端口不存在。

        這里,服務(wù)器要做兩個(gè)動(dòng)作:查表、回應(yīng)ACK/RST。這種攻擊方式顯然沒有SYN Flooding給服務(wù)器帶來的沖擊大,因此攻擊者一定要用大流量ACK小包沖擊才會(huì)對服務(wù)器造成影響。按照我們對TCP協(xié)議的理解,隨機(jī)源IP的ACK小包應(yīng)該會(huì)被Server很快丟棄,因?yàn)樵诜?wù)器的TCP堆棧中沒有這些ACK包的狀態(tài)信息。但是實(shí)際上通過測試,發(fā)現(xiàn)有一些TCP服務(wù)會(huì)對ACK Flooding比較敏感,比如說JSP Server,在數(shù)量并不多的ACK小包的打擊下,JSP Server就很難處理正常的連接請求。對于Apache或者IIS來說,10kbps的ACK Flooding不會(huì)構(gòu)成危脅,但是更高數(shù)量的ACK Flooding會(huì)造成服務(wù)器網(wǎng)卡中斷頻率過高,負(fù)載過重而停止響應(yīng)??梢钥隙ǖ氖牵珹CK Flooding不但可以危害路由器等網(wǎng)絡(luò)設(shè)備,而且對服務(wù)器上的應(yīng)用有不小的影響。

        如果沒有開放端口,服務(wù)器將直接丟棄,這將會(huì)耗費(fèi)服務(wù)器的CPU資源。如果端口開放,服務(wù)器回應(yīng)RST。

        利用對稱性判斷來分析出是否有攻擊存在。所謂對稱性判斷,就是收包異常大于發(fā)包,因?yàn)楣粽咄ǔ?huì)采用大量ACK包,并且為了提高攻擊速度,一般采用內(nèi)容基本一致的小包發(fā)送。這可以作為判斷是否發(fā)生ACK Flooding的依據(jù),但是目前已知情況來看,很少有單純使用ACK Flooding攻擊,通常都會(huì)和其他攻擊方法混合使用,因此,很容易產(chǎn)生誤判。

        一些防火墻應(yīng)對的方法是:建立一個(gè)hash表,用來存放TCP連接“狀態(tài)”,相對于主機(jī)的TCP協(xié)議棧實(shí)現(xiàn)來說,狀態(tài)檢查的過程相對簡化。例如,不作sequence number的檢查,不作包亂序的處理,只是統(tǒng)計(jì)一定時(shí)間內(nèi)是否有ACK包在該“連接”(即四元組)上通過,從而“大致”確定該“連接”是否是“活動(dòng)的”。

        4. UDP Flooding

        UDP Flooding是日漸猖厥的流量型DoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包沖擊DNS服務(wù)器,或Radius認(rèn)證服務(wù)器、流媒體視頻服務(wù)器。100kbps的UDP Flooding經(jīng)常將線路上的骨干設(shè)備例如防火墻打癱,造成整個(gè)網(wǎng)段的癱瘓。由于UDP協(xié)議是一種無連接的服務(wù),在UDP Flooding攻擊中,攻擊者可發(fā)送大量偽造源IP地址的小UDP包。但是,由于UDP協(xié)議是無連接性的,所以只要開了一個(gè)UDP的端口提供相關(guān)服務(wù)的話,那么就可針對相關(guān)的服務(wù)進(jìn)行攻擊。

        正常應(yīng)用情況下,UDP包雙向流量會(huì)基本相等,而且大小和內(nèi)容都是隨機(jī)的,變化很大。出現(xiàn)UDP Flooding的情況下,針對同一目標(biāo)IP的UDP包在一側(cè)大量出現(xiàn),并且內(nèi)容和大小都比較固定。

        UDP協(xié)議與TCP 協(xié)議不同,是無連接狀態(tài)的協(xié)議,并且UDP應(yīng)用協(xié)議五花八門,差異極大,因此針對UDP Flooding的防護(hù)非常困難。其防護(hù)要根據(jù)具體情況對待。

        · 判斷包大小:如果是大包攻擊則使用防止UDP碎片方法。根據(jù)攻擊包大小設(shè)定包碎片重組大小,通常不小于1500。在極端情況下,可以考慮丟棄所有UDP碎片。

        · 攻擊端口為業(yè)務(wù)端口:根據(jù)該業(yè)務(wù)UDP最大包的長度設(shè)置檢測UDP最大包以過濾異常流量。

        · 攻擊端口為非業(yè)務(wù)端口:一個(gè)是丟棄所有UDP包,可能會(huì)誤傷正常業(yè)務(wù);另一個(gè)是建立UDP連接規(guī)則,要求所有去往該端口的UDP包,必須首先與TCP端口建立TCP連接。不過這種方法需要很專業(yè)的防火墻或其他防護(hù)設(shè)備支持。

        在網(wǎng)絡(luò)的關(guān)鍵之處使用防火墻對來源不明的有害數(shù)據(jù)進(jìn)行過濾,可以有效減輕UDP Flooding攻擊。此外,在用戶的網(wǎng)絡(luò)中還應(yīng)采取如下的措施。

        · 禁用或過濾監(jiān)控和響應(yīng)服務(wù)。

        · 禁用或過濾其他的 UDP 服務(wù)。

        · 如果用戶必須提供一些 UDP 服務(wù)的外部訪問,那么需要使用代理機(jī)制來保護(hù)那種服務(wù),保證它不會(huì)被濫用。

        · 對用戶的網(wǎng)絡(luò)進(jìn)行監(jiān)控以了解哪些系統(tǒng)在使用這些服務(wù),并對濫用的跡象進(jìn)行監(jiān)控。

        · 對于一些小型的服務(wù)器,可以直接用防火墻添加規(guī)則的方法屏蔽掉。

        5. Connection Flooding

        Connection Flooding是典型的并且非常的有效的利用小流量沖擊大帶寬網(wǎng)絡(luò)服務(wù)的攻擊方式,這種攻擊方式目前已經(jīng)越來越猖獗。這種攻擊的原理是利用真實(shí)的IP地址向服務(wù)器發(fā)起大量的連接,并且建立連接之后很長時(shí)間不釋放,占用服務(wù)器的資源,造成服務(wù)器上殘余連接(WAIT狀態(tài))過多,效率降低,甚至資源耗盡,無法響應(yīng)其他客戶所發(fā)起的連接。

        其中一種攻擊方法是每秒鐘向服務(wù)器發(fā)起大量的連接請求,這類似于固定源IP的SYN Flooding攻擊,不同的是采用了真實(shí)的源IP地址。通常這可以在防火墻上限制每個(gè)源IP地址每秒鐘的連接數(shù)來達(dá)到防護(hù)目的。但現(xiàn)在已有工具采用慢速連接的方式,也即幾秒鐘才和服務(wù)器建立一個(gè)連接,連接建立成功之后并不釋放并定時(shí)發(fā)送垃圾數(shù)據(jù)包給服務(wù)器使連接得以長時(shí)間保持。這樣一個(gè)IP地址就可以和服務(wù)器建立成百上千的連接,而服務(wù)器可以承受的連接數(shù)是有限的,這就達(dá)到了拒絕服務(wù)的效果。

        另外,蠕蟲大規(guī)模爆發(fā)的時(shí)候,由于蠕蟲代碼比較簡單,傳播過程中會(huì)出現(xiàn)大量源IP地址相同的包,對于 TCP 蠕蟲,則表現(xiàn)為大范圍掃描行為。這是在判斷Connection Flooding時(shí)需要注意的。

        該攻擊的一般表現(xiàn)形式是:在受攻擊的服務(wù)器上使用netstat –an命令來查看,會(huì)發(fā)現(xiàn)大量連接狀態(tài)來自少數(shù)的幾個(gè)源。如果統(tǒng)計(jì)的話,可以看到連接數(shù)對比平時(shí)出現(xiàn)異常。并且增長到某一閾值之后開始波動(dòng),說明此時(shí)可能已經(jīng)接近性能極限。因此,對這種攻擊的判斷原則為:在流量上體現(xiàn)并不大,甚至可能會(huì)很小;出現(xiàn)大量的ESTABLISH狀態(tài);新建的ESTABLISH狀態(tài)總數(shù)有波動(dòng)。

        防范該攻擊主要有如下方法。

        · 主動(dòng)清除殘余連接。

        · 對惡意連接的IP進(jìn)行封禁。

        · 限制每個(gè)源IP的連接數(shù)。

        · 可以對特定的URL進(jìn)行防護(hù)。

        · 反查Proxy后面發(fā)起HTTP Get Flood的源。

      詳解TCP/IP協(xié)議棧面臨的五大網(wǎng)絡(luò)安全問題相關(guān)文章:

      1.什么是TCP IP 網(wǎng)絡(luò)tcp ip協(xié)議詳解

      2.TCP/IP協(xié)議和CP/IP協(xié)議是什么

      3.什么是TCP/IP協(xié)議

      4.Linux操作系統(tǒng)的TCP/IP協(xié)議棧

      5.XP系統(tǒng)如何安裝TCP/IP協(xié)議

      6.TCP/IP通信協(xié)議的安裝

      2760711