定義防御TCPSYN拒絕服務(wù)攻擊的策略

字號(hào):

在TCP/IP網(wǎng)絡(luò)中,當(dāng)一個(gè)正常的TCP連接建立時(shí),目標(biāo)主機(jī)會(huì)從源主機(jī)收到一個(gè)SYN(同步/開始)數(shù)據(jù)包,并返回一個(gè)SYN ACK(同步確認(rèn))數(shù)據(jù)包.目標(biāo)主機(jī)在連接建立之前,必須要“聽到”一個(gè)SYN ACK的ACK(確認(rèn))。此過(guò)程稱之為“TCP三次握手”。
    在等待SYN ACK的ACK時(shí),目標(biāo)主機(jī)上限定大小的連接隊(duì)列將跟蹤等待完成的連接。這個(gè)隊(duì)列典型情況下會(huì)很快騰空,因?yàn)锳CK在SYN ACK的幾毫秒 之后就會(huì)到達(dá)。
    TCP SYN攻擊就利用了這種設(shè)計(jì),其中攻擊源主機(jī)生成隨機(jī)源地址的TCP SYN數(shù)據(jù)包發(fā)往受害主機(jī)。受害者主機(jī)向某個(gè)隨機(jī)源地址返回一個(gè)SYN ACK數(shù)據(jù)包,并向連接隊(duì)列增加一個(gè)條目。因?yàn)镾YN ACK被設(shè)計(jì)來(lái)用于一個(gè)不正確的或非存在的主機(jī),所以“三次握手”的最后部分絕不可能完成,而此條目一直位于連接隊(duì)列中直至計(jì)時(shí)器超時(shí),典型情況下也就是大約一分鐘的時(shí)間。通過(guò)以極高的速率生成來(lái)自隨機(jī)IP地址的欺詐性TCP SYN數(shù)據(jù)包,就能夠填滿連接隊(duì)列并對(duì)合法用戶拒絕TCP服務(wù)(如電子郵件、文件傳輸、Web服務(wù))。
    并沒(méi)有什么簡(jiǎn)單方法來(lái)跟蹤攻擊的始作俑者,因?yàn)樵吹刂饭羰莻卧斓摹?BR>    這種問(wèn)題的外部體現(xiàn)包括無(wú)法接收電子郵件,不能接收與WWW或FTP服務(wù)的連接,或者是主機(jī)上在SYN_RCVD狀態(tài)中有大量的TCP連接。
    防御對(duì)網(wǎng)絡(luò)設(shè)備的攻擊
    1.防火墻之后的設(shè)備
    TCP SYN攻擊以大量的源自隨機(jī)IP地址的SYN數(shù)據(jù)包的涌入為特征,如果配置防火墻使其可以阻止進(jìn)入的SYN 數(shù)據(jù)包,那么防火墻之后的任何設(shè)備已經(jīng)受到了保護(hù),不需要采取進(jìn)一步的保護(hù)。這種防火墻的例子很多,如思科的PIX防火墻,也可采用配置有訪問(wèn)列表的路由器。許多媒體上都有這方面的很多材料,在此不再贅述。
    2.提供公共服務(wù)的設(shè)備
    對(duì)于一個(gè)公共的web服務(wù)器或一臺(tái)面向互聯(lián)網(wǎng)的郵件服務(wù)器來(lái)說(shuō),沒(méi)有什么方法可以決定哪些進(jìn)入的IP源地址是友好的,哪些是惡意的。因此,并沒(méi)有萬(wàn)能的防御手段可以對(duì)付來(lái)自隨機(jī)IP地址的攻擊。
    對(duì)于主機(jī)來(lái)說(shuō),可以采用如下的一些選擇:
    增加連接隊(duì)列(SYN ACK隊(duì)列)的大小
    減少等待三次握手的超時(shí)時(shí)間長(zhǎng)度
    如果可能,采用專用軟件補(bǔ)丁來(lái)檢測(cè)并解決問(wèn)題。
    用戶應(yīng)當(dāng)查看相關(guān)的廠商是否開發(fā)了對(duì)付TCP SYN ACK攻擊的特定補(bǔ)丁。
    注意:在服務(wù)器上過(guò)濾IP地址是無(wú)效的,因?yàn)楣粽呖梢愿淖兤銲P地址,而且某個(gè)被禁止的地址可能與某臺(tái)合法主機(jī)的IP地址相同。
    那么,如何防止某個(gè)網(wǎng)絡(luò)在不知情的情況下成為攻擊的“窩點(diǎn)”呢?
    既然這種拒絕服務(wù)攻擊的一個(gè)主要機(jī)理就是生成源自隨機(jī)IP地址的通信,那么我們可以這樣建議,過(guò)濾那些目的地是互聯(lián)網(wǎng)的通信?;镜睦砟钍窃趽碛蟹欠ǖ脑碔P地址的數(shù)據(jù)包進(jìn)入互聯(lián)網(wǎng)之前,就丟棄之。這樣做,并不會(huì)防止針對(duì)本地網(wǎng)絡(luò)的拒絕服務(wù)攻擊,但這卻有助于被攻擊的網(wǎng)絡(luò)將你排除在攻擊源范圍之外。此外,這還使得你的網(wǎng)絡(luò)不易成為這種攻擊的基地。
    1.防止傳輸非法的IP地址
    通過(guò)在與互聯(lián)網(wǎng)連接的路由器上過(guò)濾數(shù)據(jù)包,用戶就可以僅準(zhǔn)許那些擁有合法源地址的數(shù)據(jù)包離開本地網(wǎng)絡(luò)進(jìn)入互聯(lián)網(wǎng)。
    例如,如果用戶的本地網(wǎng)絡(luò)是172.16.0.0,用戶的路由器使用serial 0/1接口連接到ISP,那么,用戶就可以像下面這樣運(yùn)用訪問(wèn)列表:
    access list 111 permit ip 172.16.0.0 0.0.255.255 any
    access list 111 deny ip any any log
    interface serial 0/1
    ip access group 111 out
    注意:上述訪問(wèn)列表的最后一行可以決定是否有非法源地址的任何通信進(jìn)入互聯(lián)網(wǎng)。這一行并非關(guān)鍵性的,不過(guò)它有助于定位可能的攻擊源。
    2.防止接收非法的IP地址
    對(duì)于向終端網(wǎng)絡(luò)提供服務(wù)的ISP來(lái)說(shuō),我們強(qiáng)烈建議其確認(rèn)、驗(yàn)證來(lái)自客戶端的進(jìn)入型數(shù)據(jù)包。這可在在邊界路由器上運(yùn)用轉(zhuǎn)入型數(shù)據(jù)濾器而實(shí)現(xiàn)。例如,如果客戶端通過(guò)一個(gè)稱為serial 1/0的接口連接到你的路由器,那么你就可以創(chuàng)建下面的訪問(wèn)列表:
    網(wǎng)絡(luò)號(hào)為192.168.0.0 to 192.168.15.0, 172.18.0.0.
    access list 111 permit ip 192.168.0.0 0.0.15.255 any
    access list 111 permit ip 172.18.0.0 0.0.255.255 any
    access list 111 deny ip any any log
    interface serial 1/0
    ip access group 111 in
    注意:訪問(wèn)列表的最后一行決定了是否有任何非法源地址的通信進(jìn)入互聯(lián)網(wǎng)。這一行并非關(guān)鍵性的,不過(guò)它卻有助于定位可能的攻擊源。
    當(dāng)然,這些措施并不是靈丹妙藥,但卻有助于減緩攻擊。