旁路阻斷的可行性分析
旁路阻斷就是采用旁路偵聽(tīng)的手段來(lái)獲取互聯(lián)網(wǎng)上的數(shù)據(jù)包,然后再進(jìn)行協(xié)議還原,根據(jù)內(nèi)容進(jìn)行阻斷。這類(lèi)技術(shù)的優(yōu)點(diǎn)是不影響互聯(lián)網(wǎng)訪問(wèn)的速度,并且對(duì)用戶沒(méi)有特殊的設(shè)置要求。通俗講是并聯(lián)在互聯(lián)網(wǎng)的出口上,不會(huì)影響原來(lái)網(wǎng)絡(luò)的穩(wěn)定性。
采用旁路的方式管理網(wǎng)絡(luò)并阻斷非法連接的方法可以分為三類(lèi):
1、 發(fā)送TCP Reset包
2、 通過(guò)與網(wǎng)關(guān)產(chǎn)品聯(lián)動(dòng),建立臨時(shí)規(guī)則
3、 進(jìn)行基于arp的阻斷方式。
首先我們看一下TCP Reset,我們以IDS為例,IDS設(shè)備是一個(gè)典型的旁路監(jiān)聽(tīng)并通過(guò)TCP Reset進(jìn)行阻斷的網(wǎng)絡(luò)安全設(shè)備。IDS TCP Reset實(shí)現(xiàn)方法,當(dāng)IDS發(fā)現(xiàn)一條非法得連接IDS將會(huì)向通信的兩端各發(fā)送一個(gè)TCP RESET包,從而實(shí)現(xiàn)主動(dòng)切斷連接的目的,此時(shí)通信雙方的堆棧將會(huì)把這個(gè)RESET包解釋為另一端的回應(yīng),然后停止整個(gè)通信過(guò)程,釋放緩沖區(qū)并撤銷(xiāo)所有TCP狀態(tài)信息。這個(gè)時(shí)候,攻擊數(shù)據(jù)包可能還在目標(biāo)主機(jī)操作系統(tǒng)TCP/IP堆棧緩沖區(qū)中,沒(méi)有被提交給應(yīng)用程序,由于緩沖區(qū)被清空了,所以攻擊不會(huì)發(fā)生。
對(duì)于RESET包來(lái)說(shuō),IDS發(fā)出的RESET包的前提是知道整個(gè)會(huì)話當(dāng)前的序列號(hào)和確認(rèn)號(hào),否則這個(gè)RESET包將會(huì)被忽略。我們假定一個(gè)會(huì)話得確認(rèn)號(hào)必須為152如果你發(fā)送的RESET包的確認(rèn)號(hào)為142,那么堆棧將會(huì)認(rèn)為這是一個(gè)無(wú)效的數(shù)據(jù)包或者被破壞的數(shù)據(jù)包而將它忽略掉。
從另一方面講所有的IDS在響應(yīng)攻擊時(shí)都有延遲時(shí)間,因?yàn)镮DS從抓取數(shù)據(jù)包,監(jiān)測(cè)攻擊,產(chǎn)生RESET包,到最后發(fā)出RESET整個(gè)過(guò)程都要消耗一定的時(shí)間。很多的IDS使用libpcap庫(kù)來(lái)抓包,大部分IDS構(gòu)建在類(lèi)BSD的系統(tǒng)上,BSD系統(tǒng)下是利用BPF(Berkeley Packet Filters)進(jìn)行抓包,BPF默認(rèn)將會(huì)開(kāi)一個(gè)很大的緩沖區(qū),在一個(gè)典型的網(wǎng)絡(luò)中,IDS發(fā)出RESET包的過(guò)程大約會(huì)延遲半秒。在Linux和Solaris平臺(tái)上,性能要稍微好一點(diǎn),但是肯定也有延遲時(shí)間。
而且TCP Rest對(duì)于網(wǎng)絡(luò)得應(yīng)用來(lái)說(shuō)也有著很大得局限性,其只能針對(duì)通常得標(biāo)準(zhǔn)TCP連接發(fā)送阻斷信息,對(duì)于UDP會(huì)話是無(wú)能為力得。再則目前得一些網(wǎng)絡(luò)應(yīng)用軟件在會(huì)話連接保持上都很強(qiáng)得能力,TCP Reset包對(duì)于他們得效果基本可以忽略。
通過(guò)與網(wǎng)關(guān)產(chǎn)品的聯(lián)動(dòng)方式主要是向防火墻發(fā)送臨時(shí)規(guī)則,以及路由器或交換機(jī)發(fā)送臨時(shí)ACL列表,阻斷當(dāng)前這個(gè)會(huì)話。
這種方式存在著這么幾個(gè)方面得問(wèn)題:
1、首先是聯(lián)動(dòng)協(xié)議問(wèn)題。“聯(lián)動(dòng)”一直是網(wǎng)絡(luò)安全界中的一個(gè)很時(shí)髦的概念,雖然已經(jīng)有五六年的歷史,但是到目前為止,還遠(yuǎn)遠(yuǎn)沒(méi)有得到充分的發(fā)展。現(xiàn)在聯(lián)動(dòng)得實(shí)現(xiàn)是以現(xiàn)有得某個(gè)廠家為核心,其他廠家的產(chǎn)品在一些半公開(kāi)的SDK的支持下實(shí)現(xiàn)與核心廠家的某個(gè)產(chǎn)品實(shí)現(xiàn)互聯(lián)。這樣導(dǎo)致現(xiàn)有和多產(chǎn)品有聯(lián)動(dòng)功能,但是沒(méi)有聯(lián)動(dòng)得實(shí)際效果。
2、聯(lián)動(dòng)信息的滯后。即使產(chǎn)品與防火墻有著優(yōu)良得聯(lián)動(dòng)相應(yīng)方式,IDS產(chǎn)品在檢測(cè)得過(guò)程中發(fā)現(xiàn)了非法得連接,生成一條臨時(shí)規(guī)則發(fā)送到防火墻,防火墻應(yīng)用這條規(guī)則阻斷這個(gè)連接;在這一個(gè)過(guò)程中存在著三個(gè)延時(shí),一、IDS發(fā)現(xiàn)非法連接,生成臨時(shí)規(guī)則;二、規(guī)則傳輸給防火墻;三、防火墻應(yīng)用規(guī)則。這三個(gè)演示得總時(shí)間最好情況下是小于兩秒,而且這個(gè)過(guò)程當(dāng)中IDS的檢測(cè)是滯后IDS檢測(cè)到非法連接時(shí),這個(gè)連接已經(jīng)建立了,如果這個(gè)連接時(shí)蠕蟲(chóng),或木馬,兩秒的延時(shí)足夠成功攻擊了。
3、當(dāng)遇到大規(guī)模的非法連接的時(shí)候,IDS會(huì)針對(duì)每一條會(huì)話向防火墻添加臨時(shí)規(guī)則,這樣勢(shì)必造成防火墻臨時(shí)規(guī)則增大,降低防火墻的效率,引起防火墻包轉(zhuǎn)發(fā)延時(shí),嚴(yán)重造成防火墻癱瘓,網(wǎng)絡(luò)中斷。
最后我們來(lái)看一下基于arp的阻斷,共有三種方式ARP 欺騙、ARP 投毒和 ARP 攻擊。先了解ARP的原理。ARP 用于將 IP 地址匹配到或解析至恰當(dāng)?shù)?MAC 地址,所有的網(wǎng)絡(luò)設(shè)備都有一張 ARP 表,里面臨時(shí)記憶著該設(shè)備已經(jīng)匹配起來(lái)的所有的 IP 地址和 MAC 地址。ARP 表能夠確保該設(shè)備不需要向已經(jīng)與自己進(jìn)行過(guò)通信的計(jì)算機(jī)重復(fù) ARP 詢問(wèn)。當(dāng)有人在未獲得授權(quán)時(shí)就企圖更改 MAC 和 IP 地址的 ARP 表格中的信息時(shí),就發(fā)生了 ARP 攻擊。通過(guò)這種方式我們可以偽造ARP應(yīng)答包,使得非法連接主機(jī)的ARP表錯(cuò)誤,無(wú)法連接到網(wǎng)關(guān),從而阻斷連接。
這種阻斷方式從效果上講是很強(qiáng)得,但是同時(shí)也造成了一個(gè)問(wèn)題,其不但阻止了非法連接,而且也阻斷了合法連接,這對(duì)于網(wǎng)絡(luò)中的正常應(yīng)用是有著很大得影響得。
綜上所述,采用旁路阻斷的方式在實(shí)際應(yīng)用中時(shí)不可行的。