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