談防火墻及防火墻的滲透技術(shù)
傳統(tǒng)的防火墻工作原理及優(yōu)缺點(diǎn):
1.(傳統(tǒng)的)包過(guò)濾防火墻的工作原理
包過(guò)濾是在IP層實(shí)現(xiàn)的,因此,它可以只用路由器完成。包過(guò)濾根據(jù)包的源IP地址、目的IP地址、源端口、目的端口及包傳遞方向等報(bào)頭信息來(lái)判斷是否允許包通過(guò)。過(guò)濾用戶定義的內(nèi)容,如IP地址。其工作原理是系統(tǒng)在網(wǎng)絡(luò)層檢查數(shù)據(jù)包,與應(yīng)用層無(wú)關(guān),包過(guò)濾器的應(yīng)用非常廣泛,因?yàn)镃PU用來(lái)處理包過(guò)濾的時(shí)間可以忽略不計(jì)。而且這種防護(hù)措施對(duì)用戶透明,合法用戶在進(jìn)出網(wǎng)絡(luò)時(shí),根本感覺(jué)不到它的存在,使用起來(lái)很方便。這樣系統(tǒng)就具有很好的傳輸性能,易擴(kuò)展。但是這種防火墻不太安全,因?yàn)橄到y(tǒng)對(duì)應(yīng)用層信息無(wú)感知——也就是說(shuō),它們不理解通信的內(nèi)容,不能在用戶級(jí)別上進(jìn)行過(guò)濾,即不能識(shí)別不同的用戶和防止IP地址的盜用。如果攻擊者把自己主機(jī)的IP地址設(shè)成一個(gè)合法主機(jī)的IP地址,就可以很輕易地通過(guò)包過(guò)濾器,這樣更容易被黑客攻破。 基于這種工作機(jī)制,包過(guò)濾防火墻有以下缺陷:
通信信息:包過(guò)濾防火墻只能訪問(wèn)部分?jǐn)?shù)據(jù)包的頭信息;
通信和應(yīng)用狀態(tài)信息:包過(guò)濾防火墻是無(wú)狀態(tài)的,所以它不可能保存來(lái)自于通信和應(yīng)用的狀態(tài)信息;
信息處理:包過(guò)濾防火墻處理信息的能力是有限的。
比如針對(duì)微軟IIS漏洞的Unicode攻擊,因?yàn)檫@種攻擊是走的防火墻所允許的80端口,而包過(guò)濾的防火墻無(wú)法對(duì)數(shù)據(jù)包內(nèi)容進(jìn)行核查,因此此時(shí)防火墻等同于虛設(shè),未打相應(yīng)patch的提供web服務(wù)的系統(tǒng),即使在防火墻的屏障之后,也會(huì)被攻擊者輕松拿下超級(jí)用戶的權(quán)限。
包過(guò)濾防火墻的缺點(diǎn)和不足,可以在應(yīng)用層解決。下面我們來(lái)看看應(yīng)用層網(wǎng)關(guān)
2.應(yīng)用網(wǎng)關(guān)
1、應(yīng)用代理服務(wù)器(Application Gateway Proxy)
在網(wǎng)絡(luò)應(yīng)用層提供授權(quán)檢查及代理服務(wù)。當(dāng)外部某臺(tái)主機(jī)試圖訪問(wèn)受保護(hù)網(wǎng)絡(luò)時(shí),必須先在防火墻上經(jīng)過(guò)身份認(rèn)證。通過(guò)身份認(rèn)證后,防火墻運(yùn)行一個(gè)專門為該網(wǎng)絡(luò)設(shè)計(jì)的程序,把外部主機(jī)與內(nèi)部主機(jī)連接。在這個(gè)過(guò)程中,防火墻可以限制用戶訪問(wèn)的主機(jī)、訪問(wèn)時(shí)間及訪問(wèn)的方式。同樣,受保護(hù)網(wǎng)絡(luò)內(nèi)部用戶訪問(wèn)外部網(wǎng)時(shí)也需先登錄到防火墻上,通過(guò)驗(yàn)證后,才可訪問(wèn)。
應(yīng)用網(wǎng)關(guān)代理的優(yōu)點(diǎn)是既可以隱藏內(nèi)部IP地址,也可以給單個(gè)用戶授權(quán),即使攻擊者盜用了一個(gè)合法的IP地址,也通不過(guò)嚴(yán)格的身份認(rèn)證。因此應(yīng)用網(wǎng)關(guān)比報(bào)文過(guò)濾具有更高的安全性。但是這種認(rèn)證使得應(yīng)用網(wǎng)關(guān)不透明,用戶每次連接都要受到認(rèn)證,這給用戶帶來(lái)許多不便。這種代理技術(shù)需要為每個(gè)應(yīng)用寫(xiě)專門的程序。
2、回路級(jí)代理服務(wù)器
即通常意義的代理服務(wù)器,它適用于多個(gè)協(xié)議,但不能解釋?xiě)?yīng)用協(xié)議,需要通過(guò)其他方式來(lái)獲得信息,所以,回路級(jí)代理服務(wù)器通常要求修改過(guò)的用戶程序。
套接字服務(wù)器(Sockets Server)就是回路級(jí)代理服務(wù)器。套接字(Sockets)是一種網(wǎng)絡(luò)應(yīng)用層的國(guó)際標(biāo)準(zhǔn)。當(dāng)受保護(hù)網(wǎng)絡(luò)客戶機(jī)需要與外部網(wǎng)交互信息時(shí),在防火墻上的套服務(wù)器檢查客戶的User ID、IP源地址和IP目的地址,經(jīng)過(guò)確認(rèn)后,套服務(wù)器才與外部的服務(wù)器建立連接。對(duì)用戶來(lái)說(shuō),受保護(hù)網(wǎng)與外部網(wǎng)的信息交換是透明的,感覺(jué)不到防火墻的存在,那是因?yàn)榫W(wǎng)絡(luò)用戶不需要登錄到防火墻上。但是客戶端的應(yīng)用軟件必須支持 “Socketsified API”,受保護(hù)網(wǎng)絡(luò)用戶訪問(wèn)公共網(wǎng)所使用的IP地址也都是防火墻的IP地址。
3、代管服務(wù)器
代管服務(wù)器技術(shù)是把不安全的服務(wù)如FTP、Telnet等放到防火墻上,使它同時(shí)充當(dāng)服務(wù)器,對(duì)外部的請(qǐng)求作出回答。與應(yīng)用層代理實(shí)現(xiàn)相比,代管服務(wù)器技術(shù)不必為每種服務(wù)專門寫(xiě)程序。而且,受保護(hù)網(wǎng)內(nèi)部用戶想對(duì)外部網(wǎng)訪問(wèn)時(shí),也需先登錄到防火墻上,再向外提出請(qǐng)求,這樣從外部網(wǎng)向內(nèi)就只能看到防火墻,從而隱藏了內(nèi)部地址,提高了安全性。
4、IP通道(IP Tunnels)
如果一個(gè)大公司的兩個(gè)子公司相隔較遠(yuǎn),通過(guò)Internet通信。這種情況下,可以采用IP Tunnels來(lái)防止Internet上的黑客截取信息,從而在Internet上形成一個(gè)虛擬的企業(yè)網(wǎng)。
5、網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT Network Address Translate)
當(dāng)受保護(hù)網(wǎng)連到Internet上時(shí),受保護(hù)網(wǎng)用戶若要訪問(wèn)Internet,必須使用一個(gè)合法的IP地址。但由于合法Internet IP地址有限,而且受保護(hù)網(wǎng)絡(luò)往往有自己的一套IP地址規(guī)劃(非正式IP地址)。網(wǎng)絡(luò)地址轉(zhuǎn)換器就是在防火墻上裝一個(gè)合法IP地址集。當(dāng)內(nèi)部某一用戶要訪問(wèn)Internet時(shí),防火墻動(dòng)態(tài)地從地址集中選一個(gè)未分配的地址分配給該用戶,該用戶即可使用這個(gè)合法地址進(jìn)行通信。同時(shí),對(duì)于內(nèi)部的某些服務(wù)器如Web服務(wù)器,網(wǎng)絡(luò)地址轉(zhuǎn)換器允許為其分配一個(gè)固定的合法地址。外部網(wǎng)絡(luò)的用戶就可通過(guò)防火墻來(lái)訪問(wèn)內(nèi)部的服務(wù)器。這種技術(shù)既緩解了少量的IP地址和大量的主機(jī)之間的矛盾,又對(duì)外隱藏了內(nèi)部主機(jī)的IP地址,提高了安全性。
6、隔離域名服務(wù)器(Split Domain Name Server )
這種技術(shù)是通過(guò)防火墻將受保護(hù)網(wǎng)絡(luò)的域名服務(wù)器與外部網(wǎng)的域名服務(wù)器隔離,使外部網(wǎng)的域名服務(wù)器只能看到防火墻的IP地址,無(wú)法了解受保護(hù)網(wǎng)絡(luò)的具體情況,這樣可以保證受保護(hù)網(wǎng)絡(luò)的IP地址不被外部網(wǎng)絡(luò)知悉。
7、郵件技術(shù)(Mail Forwarding)
當(dāng)防火墻采用上面所提到的幾種技術(shù)使得外部網(wǎng)絡(luò)只知道防火墻的IP地址和域名時(shí),從外部網(wǎng)絡(luò)發(fā)來(lái)的郵件,就只能送到防火墻上。這時(shí)防火墻對(duì)郵件進(jìn)行檢查,只有當(dāng)發(fā)送郵件的源主機(jī)是被允許通過(guò)的,防火墻才對(duì)郵件的目的地址進(jìn)行轉(zhuǎn)換,送到內(nèi)部的郵件服務(wù)器,由其進(jìn)行轉(zhuǎn)發(fā)。
應(yīng)用網(wǎng)關(guān)是檢查所有應(yīng)用層的信息包,并將檢查的內(nèi)容信息放入決策過(guò)程,這樣安全性有所提高。然而,它們是通過(guò)打破客戶機(jī)/服務(wù)器模式實(shí)現(xiàn)的,每一個(gè)客戶機(jī)/服務(wù)器通信需要兩個(gè)連接:一個(gè)是從客戶端到防火墻,另一個(gè)是從防火墻到服務(wù)器。另外,每一個(gè)代理需要一個(gè)不同的應(yīng)用進(jìn)程,或一個(gè)后臺(tái)運(yùn)行的服務(wù)程序,這樣如果有一個(gè)新的應(yīng)用就必須添加對(duì)此應(yīng)用的服務(wù)程序,否則不能使用該種服務(wù),可伸縮性差。 基于這種工作機(jī)制,應(yīng)用網(wǎng)關(guān)防火墻有以下缺陷:
連接限制:每一個(gè)服務(wù)需要自己的代理,所以可提供的服務(wù)數(shù)和伸縮性受到限制;
技術(shù)限制:應(yīng)用網(wǎng)關(guān)不能為UDP、RPC及普通協(xié)議族的其他服務(wù)提供代理;
性能:實(shí)現(xiàn)應(yīng)用網(wǎng)關(guān)防火墻犧牲了一些系統(tǒng)性能。
防火墻基礎(chǔ)知識(shí)介紹
防火墻是一種功能,它使得內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)或Internet互相隔離,以此來(lái)保護(hù)內(nèi)部網(wǎng)絡(luò)或主機(jī)。簡(jiǎn)單的防火墻可以由Router,3 Layer Switch的ACL(access control list)來(lái)充當(dāng),也可以用一臺(tái)主機(jī),甚至是一個(gè)子網(wǎng)來(lái)實(shí)現(xiàn)。復(fù)雜的可以購(gòu)買專門的硬件防火墻或軟件防火墻來(lái)實(shí)現(xiàn)。
防火墻的功能有:
1、過(guò)濾掉不安全服務(wù)和非法用戶
2、控制對(duì)特殊站點(diǎn)的訪問(wèn)
3、提供監(jiān)視Internet安全和預(yù)警的方便端點(diǎn)
防火墻并不是萬(wàn)能的,也有很多防火墻無(wú)能為力的地方:
1、防火墻防不住繞過(guò)防火墻的攻擊。比如,防火墻不限制從內(nèi)部網(wǎng)絡(luò)到外部網(wǎng)絡(luò)的連接,那么,一些內(nèi)部用戶可能形成一個(gè)直接通往Internet的連接,從而繞過(guò)防火墻,造成一個(gè)潛在的backdoor.惡意的外部用戶直接連接到內(nèi)部用戶的機(jī)器上,以這個(gè)內(nèi)部用戶的機(jī)器為跳板,發(fā)起繞過(guò)防火墻的不受限制的攻擊。
2、防火墻不是防毒墻,不能攔截帶病毒的數(shù)據(jù)在網(wǎng)絡(luò)之間傳播。
3、防火墻對(duì)數(shù)據(jù)驅(qū)動(dòng)式攻擊也無(wú)能為力。
因此,我們不能過(guò)分依賴防火墻。網(wǎng)絡(luò)的安全是一個(gè)整體,并不是有某一樣特別出色的配置。網(wǎng)絡(luò)安全遵循的是“木桶原則”。
一般防火墻具備以下特點(diǎn):
1、廣泛的服務(wù)支持:通過(guò)將動(dòng)態(tài)的、應(yīng)用層的過(guò)濾能力和認(rèn)證相結(jié)合,可實(shí)現(xiàn)WWW瀏覽器、HTTP服務(wù)器、 FTP等;
2、對(duì)私有數(shù)據(jù)的加密支持:保證通過(guò)Internet進(jìn)行虛擬私人網(wǎng)絡(luò)和商務(wù)活動(dòng)不受損壞;
3、客戶端認(rèn)證只允許指定的用戶訪問(wèn)內(nèi)部網(wǎng)絡(luò)或選擇服務(wù):企業(yè)本地網(wǎng)與分支機(jī)構(gòu)、商業(yè)伙伴和移動(dòng)用戶間安全通信的附加部分;
4、反欺騙:欺騙是從外部獲取網(wǎng)絡(luò)訪問(wèn)權(quán)的常用手段,它使數(shù)據(jù)包好似來(lái)自網(wǎng)絡(luò)內(nèi)部。防火墻能監(jiān)視這樣的數(shù)據(jù)包并能扔掉它們;
5、C/S模式和跨平臺(tái)支持:能使運(yùn)行在一平臺(tái)的管理模塊控制運(yùn)行在另一平臺(tái)的監(jiān)視模塊。
防火墻的體系結(jié)構(gòu)及組合形式
1、屏蔽路由器(Screening Router)
這是防火墻最基本的構(gòu)件。它可以由廠家專門生產(chǎn)的路由器實(shí)現(xiàn),也可以用主機(jī)來(lái)實(shí)現(xiàn)。屏蔽路由器作為內(nèi)外連接的唯一通道,要求所有的報(bào)文都必須在此通過(guò)檢查。路由器上可以裝基于IP層的報(bào)文過(guò)濾軟件,實(shí)現(xiàn)報(bào)文過(guò)濾功能。許多路由器本身帶有報(bào)文過(guò)濾配置選項(xiàng),但一般比較簡(jiǎn)單。
單純由屏蔽路由器構(gòu)成的防火墻的危險(xiǎn)帶包括路由器本身及路由器允許訪問(wèn)的主機(jī)。它的缺點(diǎn)是一旦被攻陷后很難發(fā)現(xiàn),而且不能識(shí)別不同的用戶。
2、雙宿主機(jī)網(wǎng)關(guān)(Dual Homed Gateway)
任何擁有多個(gè)接口卡的系統(tǒng)都被稱為多宿的,雙宿主機(jī)網(wǎng)關(guān)是用一臺(tái)裝有兩塊網(wǎng)卡的主機(jī)做防火墻。兩塊網(wǎng)卡各自與受保護(hù)網(wǎng)和外部網(wǎng)相連。主機(jī)上運(yùn)行著防火墻軟件,可以轉(zhuǎn)發(fā)應(yīng)用程序,提供服務(wù)等。
雙宿主機(jī)網(wǎng)關(guān)優(yōu)于屏蔽路由器的地方是:堡壘主機(jī)的系統(tǒng)軟件可用于維護(hù)系統(tǒng)日志、硬件拷貝日志或遠(yuǎn)程日志。這對(duì)于日后的檢查很有用。但這不能幫助網(wǎng)絡(luò)管理者確認(rèn)內(nèi)網(wǎng)中哪些主機(jī)可能已被黑客入侵。
雙宿主機(jī)網(wǎng)關(guān)的一個(gè)致命弱點(diǎn)是:一旦入侵者侵入堡壘主機(jī)并使其只具有路由功能,則任何網(wǎng)上用戶均可以隨便訪問(wèn)內(nèi)網(wǎng)。
3、被屏蔽主機(jī)網(wǎng)關(guān)(Screened Host Gateway)
屏蔽主機(jī)網(wǎng)關(guān)易于實(shí)現(xiàn)也很安全,因此應(yīng)用廣泛。例如,一個(gè)分組過(guò)濾路由器連接外部網(wǎng)絡(luò),同時(shí)一個(gè)堡壘主機(jī)安裝在內(nèi)部網(wǎng)絡(luò)上,通常在路由器上設(shè)立過(guò)濾規(guī)則,并使這個(gè)堡壘主機(jī)成為從外部網(wǎng)絡(luò)唯一可直接到達(dá)的主機(jī),這確保了內(nèi)部網(wǎng)絡(luò)不受未被授權(quán)的外部用戶的攻擊。
如果受保護(hù)網(wǎng)是一個(gè)虛擬擴(kuò)展的本地網(wǎng),即沒(méi)有子網(wǎng)和路由器,那么內(nèi)網(wǎng)的變化不影響堡壘主機(jī)和屏蔽路由器的配置。危險(xiǎn)帶限制在堡壘主機(jī)和屏蔽路由器。網(wǎng)關(guān)的基本控制策略由安裝在上面的軟件決定。如果攻擊者設(shè)法登錄到它上面,內(nèi)網(wǎng)中的其余主機(jī)就會(huì)受到很大威脅。這與雙穴主機(jī)網(wǎng)關(guān)受攻擊時(shí)的情形差不多。
4、被屏蔽子網(wǎng) (Screened Subnet)
這種方法是在內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間建立一個(gè)被隔離的子網(wǎng),用兩臺(tái)分組過(guò)濾路由器將這一子網(wǎng)分別與內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)分開(kāi)。在很多實(shí)現(xiàn)中,兩個(gè)分組過(guò)濾路由器放在子網(wǎng)的兩端,在子網(wǎng)內(nèi)構(gòu)成一個(gè)“非軍事區(qū)”DMZ。有的屏蔽子網(wǎng)中還設(shè)有一堡壘主機(jī)作為唯一可訪問(wèn)點(diǎn),支持終端交互或作為應(yīng)用網(wǎng)關(guān)代理。這種配置的危險(xiǎn)帶僅包括堡壘主機(jī)、子網(wǎng)主機(jī)及所有連接內(nèi)網(wǎng)、外網(wǎng)和屏蔽子網(wǎng)的路由器。
如果攻擊者試圖完全破壞防火墻,他必須重新配置連接三個(gè)網(wǎng)的路由器,既不切斷連接又不要把自己鎖在外面,同時(shí)又不使自己被發(fā)現(xiàn),這樣也還是可能的。但若禁止網(wǎng)絡(luò)訪問(wèn)路由器或只允許內(nèi)網(wǎng)中的某些主機(jī)訪問(wèn)它,則攻擊會(huì)變得很困難。在這種情況下,攻擊者得先侵入堡壘主機(jī),然后進(jìn)入內(nèi)網(wǎng)主機(jī),再返回來(lái)破壞屏蔽路由器,整個(gè)過(guò)程中不能引發(fā)警報(bào)。
建造防火墻時(shí),一般很少采用單一的技術(shù),通常是多種解決不同問(wèn)題的技術(shù)的組合。這種組合主要取決于網(wǎng)管中心向用戶提供什么樣的服務(wù),以及網(wǎng)管中心能接受什么等級(jí)風(fēng)險(xiǎn)。采用哪種技術(shù)主要取決于經(jīng)費(fèi),投資的大小或技術(shù)人員的技術(shù)、時(shí)間等因素。一般有以下幾種形式: [!--empirenews.page--]
1、使用多堡壘主機(jī);
2、合并內(nèi)部路由器與外部路由器;
3、合并堡壘主機(jī)與外部路由器;
4、合并堡壘主機(jī)與內(nèi)部路由器;
5、使用多臺(tái)內(nèi)部路由器;
6、使用多臺(tái)外部路由器;
7、使用多個(gè)周邊網(wǎng)絡(luò);
8、使用雙重宿主主機(jī)與屏蔽子網(wǎng)。
隨著人們對(duì)網(wǎng)絡(luò)安全意識(shí)的提高,防火墻的應(yīng)用越來(lái)越廣泛。有錢的用高級(jí)硬件防火墻,沒(méi)錢的用免費(fèi)的軟件防火墻。那么,硬件防火墻和軟件防火墻相比,有哪些優(yōu)點(diǎn)呢?
硬件防火墻采用專用的硬件設(shè)備,然后集成生產(chǎn)廠商的專用防火墻軟件。從功能上看,硬件防火墻內(nèi)建安全軟件,使用專屬或強(qiáng)化的操作系統(tǒng),管理方便,更換容易,軟硬件搭配較固定。硬件防火墻效率高,解決了防火墻效率、性能之間的矛盾,可以達(dá)到線性。
軟件防火墻一般基于某個(gè)操作系統(tǒng)平臺(tái)開(kāi)發(fā),直接在計(jì)算機(jī)上進(jìn)行軟件的安裝和配置。由于客戶平臺(tái)的多樣性,軟件防火墻需支持多操作系統(tǒng),如Unix、Linux、SCO-Unix、Windows等,代碼龐大、安裝成本高、售后支持成本高、效率低。
1、性能優(yōu)勢(shì)。防火墻的性能對(duì)防火墻來(lái)說(shuō)是至關(guān)重要的。它決定了每秒鐘通過(guò)防火墻的數(shù)據(jù)流量。單位是Bps,從幾十M到幾百M(fèi)不等,還有千兆防火墻甚至達(dá)到幾G的防火墻。而軟件防火墻則不可能達(dá)到如此高的速率。
2、CPU占用率的優(yōu)勢(shì)。硬件防火墻的CPU占用率當(dāng)然是0了,而軟件防火墻就不同了,如果處于節(jié)約成本的考慮將防火墻軟件安裝在提供服務(wù)的主機(jī)上,當(dāng)數(shù)據(jù)流量較大時(shí),CPU占用率將是主機(jī)的殺手,將拖跨主機(jī)。
3、售后支持。硬件防火墻廠家會(huì)對(duì)防火墻產(chǎn)品有跟蹤的服務(wù)支持,而軟件防火墻的用戶能得到這種機(jī)會(huì)的相對(duì)較少,而且廠家也不會(huì)在軟件防火墻上下太大的功夫和研發(fā)經(jīng)費(fèi)。
防火墻滲透技術(shù)簡(jiǎn)介
防火墻滲透
以上我們簡(jiǎn)單的介紹了防火墻的原理,分類,優(yōu)缺點(diǎn)等。下面,我們將對(duì)防火墻的滲透技術(shù)做一下簡(jiǎn)單的介紹。
精心配置過(guò)的防火墻固然將讓絕大多數(shù)crackers擋在外圍,掌握網(wǎng)絡(luò)控制的主動(dòng)權(quán),但是,防火墻并不是萬(wàn)能的,我們也在上一節(jié)的內(nèi)容中簡(jiǎn)單的講了防火墻的缺點(diǎn)。沒(méi)有任何一樣網(wǎng)絡(luò)產(chǎn)品可以說(shuō)是絕對(duì)安全的。綠盟的san的一篇的文章介紹了滲透防火墻的shellcode,有興趣的朋友可以參考一下。 說(shuō)到通道技術(shù),我想再提一下“端口復(fù)用”,很多朋友以為通道技術(shù)就是端口復(fù)用技術(shù)。那么,錯(cuò)了,端口復(fù)用是指一個(gè)端口上建立了多個(gè)連接,而不是在一個(gè)端口上面開(kāi)放了多個(gè)服務(wù)而互不干擾。假如你想在已經(jīng)開(kāi)放了WWW服務(wù)的主機(jī)上,在80端口再添加一項(xiàng)服務(wù),只有2種可能:1.添加服務(wù)失敗 2.WWW服務(wù)出錯(cuò)。那么什么是通道呢?這里所謂的通道,是指一種繞過(guò)防火墻端口屏蔽的通訊方式。防火墻兩端的數(shù)據(jù)包封裝在防火墻所允許通過(guò)的數(shù)據(jù)包類型或是端口上,然后穿過(guò)防火墻與處在防火墻后面的主機(jī)通訊,當(dāng)封裝的數(shù)據(jù)包到達(dá)目的地時(shí),再將數(shù)據(jù)包還原,并將還原后的數(shù)據(jù)包交送到相應(yīng)的服務(wù)上,是在一個(gè)端口上面開(kāi)放了多個(gè)服務(wù)而互不干擾的。
為了通信,不論是什么防火墻,都不可能把所有的服務(wù),所有的端口都封閉。(如果有那樣的防火墻,還不如拔網(wǎng)線來(lái)的直接,呵呵)大多數(shù)的防火墻或多或少都要開(kāi)放一個(gè)端口或服務(wù)(比如HTTP),只要開(kāi)放了端口和服務(wù),就給了我們滲透的可能。HTTP是一種比較簡(jiǎn)單而常用的互交式協(xié)議,你給服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器就返回給你一個(gè)回應(yīng)。幾乎所有的主機(jī)都被允許發(fā)送HTTP請(qǐng)求。網(wǎng)絡(luò)上HTTP協(xié)議使用的是如此廣泛,這也決定了我們可以通過(guò)使用通道技術(shù)而輕松的通過(guò)防火墻或其他類似設(shè)備而將我們需要的數(shù)據(jù)發(fā)送至目標(biāo)。一個(gè)很典型的例子就是http-tunnel.
在http-tunnel的官方網(wǎng)站http://www.http-tunnel.com
上有這么一句話:“http-tunnel在HTTP請(qǐng)求中建立了一個(gè)雙向的虛擬數(shù)據(jù)連接。HTTP請(qǐng)求可以經(jīng)過(guò)代理而被發(fā)送,這就可以被那些處在限制了端口的防火墻背后的用戶使用。如果通過(guò)HTTP代理的WWW瀏覽是被允許的,那么http-tunnel也就可以成立,也就是說(shuō),可以在防火墻外telnet或者PPP到防火墻的內(nèi)部。”這樣看來(lái),攻擊者可以使用這種技術(shù)來(lái)實(shí)現(xiàn)遠(yuǎn)程控制。我們來(lái)看看http-tunnel的設(shè)計(jì)思路:
A主機(jī)在防火墻的外面,沒(méi)有做任何限制。B主機(jī)在防火墻內(nèi)部,受到防火墻保護(hù),防火墻配置的訪問(wèn)控制原則是只允許80端口的數(shù)據(jù)進(jìn)出,但主機(jī)開(kāi)放了telnet服務(wù)。現(xiàn)在假設(shè)需要從A系統(tǒng)Telnet到B系統(tǒng)上去,怎么辦?使用正常的telnet肯定是不可能了,因?yàn)閠elnet使用的23端口被防火墻屏蔽,防火墻收到這個(gè)telnet的包后,發(fā)現(xiàn)不符合只允許80端口的數(shù)據(jù)通過(guò)的過(guò)濾原則,就丟棄了。但我們知道可用的有80端口,那么這個(gè)時(shí)候使用Httptunnel通道,就是一個(gè)好的辦法,思路如下:
在A機(jī)器上運(yùn)行tunnel的客戶端,讓它偵聽(tīng)本機(jī)的一個(gè)不被使用的任意指定端口(最好是1024以上65535以下),如,8888。同時(shí)將來(lái)自8888端口上的數(shù)據(jù)指引到B機(jī)的80端口上,因?yàn)槭?0端口,防火墻是允許通過(guò)的。然后在B機(jī)上起一個(gè)服務(wù)端,(在只有80端口對(duì)外開(kāi)放的情況下,只能先得到一個(gè)WEBSHELL,想辦法提升自己的權(quán)限,并運(yùn)行服務(wù)端)同樣掛接在80端口上,同時(shí)指引80端口的來(lái)自客戶端的轉(zhuǎn)發(fā)到本機(jī)的telnet服務(wù)端口23,這樣就OK了。現(xiàn)在在A機(jī)上telnet本機(jī)端口8888,根據(jù)剛才的設(shè)置數(shù)據(jù)包會(huì)被轉(zhuǎn)發(fā)到目標(biāo)端口為80的B機(jī),因?yàn)榉阑饓υ试S通過(guò)80端口的數(shù)據(jù),因此數(shù)據(jù)包暢通的穿過(guò)防火墻,到達(dá)B機(jī)。此時(shí)B機(jī)在80端口偵聽(tīng)的進(jìn)程收到來(lái)自A的數(shù)據(jù)包,會(huì)將數(shù)據(jù)包還原,再交還給telnet進(jìn)程。當(dāng)數(shù)據(jù)包需要由B到A返回時(shí),將由80端口再回送,同樣可以順利的通過(guò)防火墻。
上述功能似乎用端口映射也能做的到,把A主機(jī)上的23端口重定向到80端口,再把B主機(jī)上的80端口重定向到23端口就行了。但如果B主機(jī)已經(jīng)開(kāi)啟了WWW服務(wù)了呢?要使用上述功能,使用端口映射必須犧牲B主機(jī)的80端口,這是得不償失的。試想在一次滲透防火墻的對(duì)某臺(tái)主機(jī)的攻擊中,把別人本來(lái)已經(jīng)開(kāi)啟的WWW服務(wù)DOWN了,你還能在這臺(tái)主機(jī)上呆多久?但是,使用http-tunnel就可以完美實(shí)現(xiàn),即使B主機(jī)已經(jīng)開(kāi)放80,提供WWW,我們也照樣可以發(fā)送telnet到其80端口上,享受到“正版”的telnet服務(wù)。
對(duì)于通道技術(shù),我們的解決方案是采用應(yīng)用層的數(shù)據(jù)包檢測(cè)技術(shù),因?yàn)樵谡5腍TTP請(qǐng)求中,GET、POST等行為是必不可少的,如果來(lái)自一個(gè)連接的HTTP請(qǐng)求中,總是沒(méi)有GET、POST,那么這個(gè)連接肯定有問(wèn)題。從而終止此連接。現(xiàn)在已經(jīng)有公司的IDS產(chǎn)品能夠查出隱藏在80中的tunnel,但是這些IDS產(chǎn)品的費(fèi)用恐怕也不是中小型企業(yè)能承受的了的。
對(duì)于防火墻的滲透,還有一些方法,比如找防火墻本身的設(shè)計(jì)缺陷等等,但那些難度太大。恐怕不是我們應(yīng)該考慮的了。
總結(jié)
我們又把防火墻和防火墻的滲透深入淺出的復(fù)習(xí)了一遍?,F(xiàn)在我們應(yīng)該更清楚的知道,防火墻不是萬(wàn)能的,即使是經(jīng)過(guò)精心配置的防火墻也抵擋不住隱藏在看似正常數(shù)據(jù)下的通道程序。那么,對(duì)于一個(gè)網(wǎng)絡(luò)來(lái)說(shuō),我們應(yīng)該怎么做才能夠保證它的最大安全呢?
1.根據(jù)需要合適的配置防火墻,盡量少開(kāi)端口。
2.采用過(guò)濾嚴(yán)格的WEB程序。
3.采用加密的HTTP協(xié)議(HTTPS)。
4.如果條件允許,購(gòu)買一臺(tái)功能較強(qiáng)大的NIDS。
5.管理好你的內(nèi)網(wǎng)用戶,防止攻擊者和內(nèi)網(wǎng)用戶直接連接繞過(guò)防火墻。
6.經(jīng)常升級(jí)你的firewall產(chǎn)品。