摘 要: 入侵檢測" title="入侵檢測">入侵檢測防御(IDP)系統(tǒng)是一種新興的代表未來發(fā)展方向的維護(hù)網(wǎng)絡(luò)安全的重要工具。首先提出一種由IDP系統(tǒng)構(gòu)建的網(wǎng)絡(luò)安全體系結(jié)構(gòu),進(jìn)而重點(diǎn)討論如何采用網(wǎng)絡(luò)處理器" title="網(wǎng)絡(luò)處理器">網(wǎng)絡(luò)處理器(NP)實(shí)現(xiàn)輕量級(jí)IDP系統(tǒng)。研究結(jié)果表明,基于IDP構(gòu)架的網(wǎng)絡(luò)安全系統(tǒng)" title="安全系統(tǒng)">安全系統(tǒng)更具安全性,由NP實(shí)現(xiàn)的輕量級(jí)IDP系統(tǒng)可滿足中小企業(yè)用戶對網(wǎng)絡(luò)安全的需求。
關(guān)鍵詞: 網(wǎng)絡(luò)處理器 入侵檢測防御系統(tǒng) 多線程并行編程 嵌入式實(shí)時(shí)操作系統(tǒng)
隨著網(wǎng)絡(luò)應(yīng)用的普及,政府、銀行、大中小型企業(yè)等機(jī)構(gòu)都已經(jīng)逐步建立了內(nèi)部網(wǎng)絡(luò)資源,這些電子商務(wù)、電子政務(wù)和企業(yè)網(wǎng)絡(luò)中的商業(yè)秘密,就是攻擊者的目標(biāo)。各種安全產(chǎn)品也相繼出現(xiàn),如網(wǎng)絡(luò)防毒、防火墻、入侵檢測系統(tǒng)" title="入侵檢測系統(tǒng)">入侵檢測系統(tǒng)、漏洞掃描系統(tǒng)、身份認(rèn)證和加密系統(tǒng)等。它們對防止系統(tǒng)被非法入侵都具有一定的效果,但是還不能完全防止對于應(yīng)用層的攻擊以及完全、及時(shí)地阻止入侵。所以對網(wǎng)絡(luò)系統(tǒng)提供良好的保障具有很強(qiáng)的現(xiàn)實(shí)性和緊迫性。
1 現(xiàn)有網(wǎng)絡(luò)安全技術(shù)——IDS技術(shù)簡介
當(dāng)前比較先進(jìn)和流行的網(wǎng)絡(luò)安全技術(shù)已經(jīng)進(jìn)入了防火墻與其他安全機(jī)能產(chǎn)品,特別是入侵檢測系統(tǒng)IDS(Intrusion Detection System)[1~3]的智能化協(xié)防階段。入侵檢測是指對計(jì)算機(jī)網(wǎng)絡(luò)上企圖入侵、正在進(jìn)行的入侵或已經(jīng)發(fā)生的入侵活動(dòng)進(jìn)行識(shí)別和響應(yīng)。從數(shù)據(jù)來源看,可以將入侵檢測系統(tǒng)分為基于主機(jī)的入侵檢測系統(tǒng)(HIDS)和基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(NIDS)。圖1所示是一種典型的網(wǎng)絡(luò)型入侵檢測系統(tǒng)[4]。
圖1所示的網(wǎng)絡(luò)型IDS系統(tǒng)是在基于防火墻的基礎(chǔ)上,利用網(wǎng)絡(luò)型IDS對防火墻的漏洞進(jìn)行彌補(bǔ)的一種網(wǎng)絡(luò)安全系統(tǒng)。
首先,防火墻作為一種獲取安全性的方法,有著不可替代的作用。它可以確定允許提供的服務(wù),對受保護(hù)的網(wǎng)絡(luò)(即網(wǎng)點(diǎn))的往返訪問進(jìn)行控制,防止易受攻擊的協(xié)議的使用,對系統(tǒng)進(jìn)行了集中的安全防范。
其次,IDS用來對網(wǎng)絡(luò)數(shù)據(jù)作深層次的檢測。如圖1所示,利用IDS探測器連接在集線器上,對一個(gè)網(wǎng)段進(jìn)行監(jiān)控,或者利用交換機(jī)端口拷貝的形式,對一個(gè)交換機(jī)的輸出端口進(jìn)行監(jiān)控,然后匯報(bào)給IDS服務(wù)器。一個(gè)IDS通常保存著已知攻擊特征庫,而IDS的作用就是對網(wǎng)絡(luò)流量中的數(shù)據(jù)包內(nèi)容進(jìn)行檢測,尋找可能的攻擊。當(dāng)所監(jiān)視的數(shù)據(jù)內(nèi)容和特征庫的內(nèi)容匹配時(shí),IDS便發(fā)出報(bào)警信息。有些IDS系統(tǒng)能與其他設(shè)備相配合,對入侵做出簡單的響應(yīng)。
上述典型系統(tǒng)的缺陷在于:雖然IDS系統(tǒng)能夠檢測出深層次的入侵和攻擊,但是其結(jié)構(gòu)本身決定了它應(yīng)對攻擊的脆弱性。它沒有能力直接防御入侵和攻擊,它對攻擊的反應(yīng),需要第二方的設(shè)備的聯(lián)動(dòng),或者需要人為干預(yù)。當(dāng)它發(fā)現(xiàn)入侵攻擊的時(shí)候,往往攻擊者早已經(jīng)得手撤退。
2 IDP網(wǎng)絡(luò)安全系統(tǒng)設(shè)計(jì)構(gòu)想
針對IDS系統(tǒng)防御能力弱的缺點(diǎn),IDP(Intrusion De-tection & Protection)系統(tǒng)的概念很快被提出來[4]。IDP是指對計(jì)算機(jī)網(wǎng)絡(luò)上企圖入侵、正在進(jìn)行的入侵或已經(jīng)發(fā)生的入侵活動(dòng)進(jìn)行識(shí)別并且做出主動(dòng)響應(yīng)(阻止入侵活動(dòng)或預(yù)先對攻擊性的流量進(jìn)行自動(dòng)攔截)。IDP系統(tǒng)的概念雖然提出一段時(shí)間了,但是一直沒有比較成型的方案。下面提出一種網(wǎng)關(guān)型的IDP系統(tǒng)方案,并用它構(gòu)建網(wǎng)絡(luò)安全系統(tǒng)。
2.1 P2DR模型
P2DR是Policy(策略)、Protection(防護(hù))、Detection(檢測)和Response(響應(yīng))的縮寫,P2DR安全模型是一個(gè)被廣泛認(rèn)同的計(jì)算機(jī)系統(tǒng)的安全理論系統(tǒng)。它的指導(dǎo)思想比傳統(tǒng)靜態(tài)安全方案有突破性提高,特點(diǎn)是其動(dòng)態(tài)性和基于時(shí)間性[3]。其結(jié)構(gòu)如圖2所示。
P2DR安全模型闡述了這樣一個(gè)結(jié)論:安全的目標(biāo)實(shí)際上就是盡可能地增大保護(hù)時(shí)間,盡量減少檢測時(shí)間和相應(yīng)時(shí)間。入侵檢測技術(shù)就是實(shí)現(xiàn)P2DR安全模型中的“Detection”部分的主要技術(shù)手段。積極的防御功能是“Protection”模塊的主要任務(wù)。在P2DR模型中,安全策略處于中心位置,安全策略是制定入侵檢測規(guī)則的一個(gè)重要信息來源,也是防御部分根據(jù)安全策略實(shí)現(xiàn)具體防御動(dòng)作的準(zhǔn)則。
從P2DR安全模型的角度看,IDS系統(tǒng)的缺點(diǎn)表現(xiàn)在雖然基本上實(shí)現(xiàn)了檢測和響應(yīng)兩大模塊,但是其響應(yīng)時(shí)間很長,不能及時(shí)、完全地實(shí)現(xiàn)防御功能模塊。只有能夠及時(shí)、完全地實(shí)現(xiàn)響應(yīng)與防御功能模塊,才能完整地實(shí)現(xiàn)P2DR安全模型。下面提出的網(wǎng)關(guān)型IDP正是較完整地實(shí)現(xiàn)P2DR安全模型的解決方案。
2.2 基于網(wǎng)絡(luò)處理器的網(wǎng)關(guān)型IDP設(shè)計(jì)
本文提出的網(wǎng)關(guān)型IDP的設(shè)計(jì)是從IDS技術(shù)發(fā)展延伸而來的。設(shè)計(jì)的目標(biāo)就是將其如同透明網(wǎng)關(guān)一樣,可以放置在需要保護(hù)的網(wǎng)段前,也可以放置在一臺(tái)特殊需要的服務(wù)器前。它對流過它的所有數(shù)據(jù)都進(jìn)行檢測,并且根據(jù)安全策略和具體的規(guī)則體,做出是否容許通過的具體決定以及相應(yīng)的回復(fù)與防御機(jī)制。
網(wǎng)關(guān)型IDP在設(shè)計(jì)上的難點(diǎn)在于需要對大量的數(shù)據(jù)作深層次的檢測處理,并且對檢測結(jié)果及時(shí)地做出反應(yīng)。網(wǎng)絡(luò)處理器NP(Network Processor)的出現(xiàn)為解決這一難題提供了很好的手段。
網(wǎng)絡(luò)處理器NP是一種為網(wǎng)絡(luò)應(yīng)用領(lǐng)域設(shè)計(jì)的專用指令處理器(ASIP)。它具備通用處理器(GPP)的編程靈活性,又擁有專用集成電路(ASIC)的高處理速度。目前NP是通過多個(gè)獨(dú)立總線的微引擎" title="微引擎">微引擎以及Push-Pull引擎來實(shí)現(xiàn)內(nèi)部大量數(shù)據(jù)的交換的。這樣,內(nèi)部的數(shù)據(jù)通道瓶頸就不復(fù)存在了。Intel公司IXP系列NP的級(jí)聯(lián)設(shè)計(jì)可以很容易地提高數(shù)據(jù)流處理能力[6]。
基于NP的IDP系統(tǒng)采用嵌入式實(shí)時(shí)操作系統(tǒng),軟件系統(tǒng)設(shè)計(jì)基本延續(xù)IDS的CIDF模型[3](由以下組件組成:事件產(chǎn)生器,事件分析器,響應(yīng)單元,事件數(shù)據(jù)庫)的設(shè)計(jì)。在設(shè)計(jì)中應(yīng)該考慮如下幾個(gè)關(guān)鍵點(diǎn):
(1)在MAC層增加對數(shù)據(jù)的標(biāo)記模式,以便在響應(yīng)單元能夠采取積極防御手段。
(2)大型IDP應(yīng)考慮網(wǎng)絡(luò)時(shí)延和全局時(shí)鐘。
(3)保證設(shè)備本身的安全性。
(4)預(yù)留控制臺(tái)接口,以便報(bào)告日志信息,及時(shí)升級(jí)特征庫和修改檢測與防御策略。
2.3 用網(wǎng)關(guān)型IDP構(gòu)建安全系統(tǒng)
用網(wǎng)關(guān)型IDP構(gòu)建的安全網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)如圖3所示。
在圖3中,路由器作為外網(wǎng)的入口,起著網(wǎng)絡(luò)接口轉(zhuǎn)換以及屏蔽廣播包的作用。系統(tǒng)采用網(wǎng)關(guān)型IDP與防火墻協(xié)防的構(gòu)架。
網(wǎng)關(guān)型IDP放置在網(wǎng)絡(luò)中需要檢測數(shù)據(jù)的通道,其檢測和防御規(guī)則根據(jù)安全策略預(yù)先設(shè)定,也可根據(jù)IDP控制臺(tái)安全策略的決定而設(shè)置。IDP控制臺(tái)和網(wǎng)關(guān)型IDP形成相對獨(dú)立的局域網(wǎng)。IDP控制臺(tái)作為管理窗口,也可以連接在內(nèi)部網(wǎng)絡(luò)中,其安全保證這里不做詳述。
3 一個(gè)輕量級(jí)網(wǎng)關(guān)型IDP的設(shè)計(jì)
對多家中小企業(yè)的網(wǎng)絡(luò)使用情況進(jìn)行了調(diào)查,其結(jié)果如下:
(1)網(wǎng)絡(luò)業(yè)務(wù)相對比較簡單:收發(fā)郵件,瀏覽網(wǎng)頁,https,telnet,ftp。
(2)對外帶寬一般不會(huì)超過10M,內(nèi)部網(wǎng)絡(luò)一般采用百兆以太網(wǎng)組網(wǎng)。
(3)網(wǎng)絡(luò)安全需求明顯,但硬件成本投入較少,一般都有一個(gè)防火墻。
(4)人力成本投入較少,一般只有一個(gè)網(wǎng)絡(luò)管理員。
根據(jù)調(diào)查結(jié)果,針對中小企業(yè)網(wǎng)絡(luò)安全提出防火墻協(xié)同一個(gè)輕量級(jí)的網(wǎng)關(guān)型IDP的網(wǎng)絡(luò)安全系統(tǒng)方案。
防火墻采用只開放必要服務(wù)的策略(可以ping,收發(fā)郵件,瀏覽網(wǎng)頁,ssh,https,telnet,ftp),其他的訪問則全部丟棄,所有缺省的安全策略是拒絕所有(Deny All)的。輕量級(jí)的網(wǎng)關(guān)型IDP系統(tǒng)安裝時(shí)可考慮只安裝針對這些業(yè)務(wù)的規(guī)則體插件。
下面介紹輕量級(jí)網(wǎng)關(guān)型IDP的設(shè)計(jì)方案。
3.1 硬件結(jié)構(gòu)
IXP1200是Intel公司生產(chǎn)的第一代網(wǎng)絡(luò)處理器。芯片內(nèi)部集成了7個(gè)RSIC處理器,包括1個(gè)StrongArm和6個(gè)可編程的微引擎(MicroEngine)。其中,StrongArm最高可工作在232 MHz的主頻上,每個(gè)微引擎內(nèi)部提供多個(gè)硬件線程,可用于任何要求高速信息包檢查、數(shù)據(jù)處理以及數(shù)據(jù)傳送的場合。IXP1200中使用的多線程是由硬件實(shí)現(xiàn)的,但是能夠通過軟件控制。由硬件實(shí)現(xiàn)多線程使得線程切換的零開銷成為可能。
以IXP1200為核心處理器提出的輕量級(jí)網(wǎng)關(guān)型IDP的硬件構(gòu)架如圖4所示。
在圖4中,A口和B口作為需要檢測的以太網(wǎng)數(shù)據(jù)的入口和出口,對數(shù)據(jù)流的吞吐能力為100M;C口作為控制臺(tái)通訊接口;串口專門用于調(diào)試。
IX bus是Intel公司為網(wǎng)絡(luò)處理器特殊設(shè)計(jì)的總線,能夠在IXP1200和網(wǎng)絡(luò)設(shè)備(如MACs和SARs)間傳送數(shù)據(jù)塊。每條IX Bus的數(shù)據(jù)容量約為5.12Gbit(64×80Mbit)。
SDRAM的容量選為128MB(參考Snort2.0內(nèi)存占用大約為78MB);SRAM的容量選為4MB。
3.2 軟件結(jié)構(gòu)
操作系統(tǒng)采用pSOSystem嵌入式實(shí)時(shí)操作系統(tǒng)。使用嵌入式實(shí)時(shí)操作系統(tǒng)有以下優(yōu)點(diǎn):
(1)對數(shù)據(jù)流處理的高效性,可以讓NP多線程并行處理的優(yōu)勢得以發(fā)揮。
(2)系統(tǒng)本身的安全性很高,幾乎不會(huì)發(fā)生對嵌入式實(shí)時(shí)系統(tǒng)的攻擊。
本系統(tǒng)的處理流程圖如圖5所示。
圖5所示的處理流程基本上延續(xù)IDS的CIDF模型的機(jī)制處理數(shù)據(jù)。網(wǎng)絡(luò)處理器接收到的以太網(wǎng)數(shù)據(jù)幀存儲(chǔ)時(shí),應(yīng)在數(shù)據(jù)幀前增加標(biāo)簽。標(biāo)簽由兩部分構(gòu)成,端口號(hào)A或者B以及序列號(hào),序列號(hào)以65535循環(huán)使用。包解碼引擎需要處理此數(shù)據(jù)時(shí),應(yīng)對此數(shù)據(jù)采用拷貝的形式使用。此以太網(wǎng)數(shù)據(jù)經(jīng)過預(yù)處理、檢測后,雖然已經(jīng)解析、重組為應(yīng)用層數(shù)據(jù)流,但是此標(biāo)簽作為對原始以太網(wǎng)數(shù)據(jù)的辨認(rèn)依然隨數(shù)據(jù)流存在。利用此標(biāo)簽可以決定原始以太網(wǎng)數(shù)據(jù)幀是否通過以及應(yīng)當(dāng)轉(zhuǎn)發(fā)的端口。檢測出非法數(shù)據(jù)后,可以根據(jù)識(shí)別出的IP地址,依據(jù)安全策略做出相應(yīng)回復(fù)。
3.3 資源分配
IXP1200內(nèi)部有6個(gè)微引擎,每個(gè)微引擎擁有4個(gè)硬件線程。其中1個(gè)微引擎共4個(gè)線程執(zhí)行接收數(shù)據(jù);1個(gè)微引擎共4個(gè)線程執(zhí)行包解碼;1個(gè)微引擎共4個(gè)線程執(zhí)行包預(yù)處理和對有非法記錄的IP的預(yù)攔截;2個(gè)微引擎共8個(gè)線程用來對規(guī)則體進(jìn)行快速、便利的匹配檢測;1個(gè)微引擎共4個(gè)線程執(zhí)行數(shù)據(jù)發(fā)送。Strong Arm則負(fù)責(zé)規(guī)則體設(shè)定、異常記錄和對異常數(shù)據(jù)的回復(fù)以及控制臺(tái)的代理[6]。
3.4 接收和存儲(chǔ)策略
采用如下的數(shù)據(jù)接收、存儲(chǔ)和轉(zhuǎn)發(fā)策略。
接收策略:不管端口上是否出現(xiàn)有效數(shù)據(jù),都讓4個(gè)線程輪流去接收數(shù)據(jù),若數(shù)據(jù)無效則丟棄。這樣,一旦端口上出現(xiàn)有效數(shù)據(jù),就會(huì)在第一時(shí)間被接收到。
存儲(chǔ)策略:由于以太網(wǎng)幀的長度并不固定(最大為1500B),考慮到對存儲(chǔ)速度的要求,采用固定分配存儲(chǔ)單元的辦法。無論整個(gè)數(shù)據(jù)幀多長,都存放在大小為2048B的存儲(chǔ)器單元中[7]。
3.5 檢測引擎多線程協(xié)同工作
檢測引擎中的模式匹配算法是檢測引擎工作的關(guān)鍵,利用IXP1200多線程協(xié)同工作完成快速遍歷規(guī)則匹配是設(shè)計(jì)中的難點(diǎn)。多線程并發(fā)調(diào)度的設(shè)計(jì)要對調(diào)度要求、存儲(chǔ)器響應(yīng)時(shí)間、存儲(chǔ)空間大小等多方面因素綜合考慮。進(jìn)一步的設(shè)計(jì)要考慮接收請求預(yù)測、內(nèi)存延遲隱藏等優(yōu)化技術(shù)的應(yīng)用,以完成高效的應(yīng)用開發(fā)。
3.6 系統(tǒng)規(guī)格、規(guī)則體以及Snort的移植
系統(tǒng)采用濫用檢測模型、Snort 2.0的規(guī)則體及其穩(wěn)定高效的內(nèi)核以及基本框架,并根據(jù)pSOS的架構(gòu)更改相應(yīng)的應(yīng)用程序接口(API)以及語言格式。針對標(biāo)簽機(jī)制,在對Snort的包解碼引擎以及快速規(guī)則匹配引擎移植時(shí)[5],這些標(biāo)簽需要保留。除了可以阻斷惡意數(shù)據(jù)流外,IDP也可以作一些其他積極的防御機(jī)制,例如,當(dāng)發(fā)現(xiàn)某些惡意數(shù)據(jù)包時(shí),可以通過向攻擊者和目標(biāo)主機(jī)發(fā)送TCP復(fù)位包,以終止入侵會(huì)話[7]。
3.7 控制臺(tái)終端代理
網(wǎng)關(guān)型IDP上的軟件由主程序和控制臺(tái)終端代理軟件兩部分組成。終端代理軟件和控制臺(tái)之間采用 SNMP 協(xié)議,終端代理軟件將來自控制臺(tái)的命令解析成相應(yīng)的操作,并通過調(diào)用內(nèi)部函數(shù)接口將操作傳給IDP主程序來具體執(zhí)行;同時(shí),主程序產(chǎn)生的日志、告警消息以SNMP Trap的形式通知給控制臺(tái),控制臺(tái)通過駐留在IDP上的終端代理軟件來配置、升級(jí)規(guī)則體并獲取檢測和回復(fù)的信息。控制臺(tái)的管理信息庫MIB(Management Information Base)用于對所有IDP的記錄和日志分類,呈現(xiàn)出網(wǎng)絡(luò)運(yùn)行細(xì)節(jié)。
在完成基本檢測和防御規(guī)則配置的前提下,控制臺(tái)軟件也是提供給網(wǎng)管人員的一個(gè)分析工具。網(wǎng)管人員作為安全防御中的一個(gè)重要因素,對一些未知情況,可以利用這個(gè)工具提供的數(shù)據(jù)、手段,并根據(jù)自己的知識(shí),更為靈活地處理各種入侵動(dòng)作。
本文所提出的網(wǎng)關(guān)型IDP系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方法,即基于網(wǎng)絡(luò)處理器的網(wǎng)關(guān)型IDP系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),基本上實(shí)現(xiàn)了P2DR安全模型,一個(gè)輕量級(jí)的IDP的設(shè)計(jì)即可滿足中小型企業(yè)網(wǎng)絡(luò)對入侵檢測防御的要求。
參考文獻(xiàn)
1 S Axelsson.Research in Intrusion Detection Systems:A Survey[R].TR-98-17,Sweden:Chalmers Uni of Technology,1998
2 Julia Allen,Alan Christie,William Fithen et al.State of the practice of intrusion detection technologies[R].MU/SEI-99-TR-028 ESC-99-028,U.S.:Carnegie Mellon Uni,2000
3 唐正軍,李建華.入侵檢測技術(shù)[M].北京:清華大學(xué)出版社,2004
4 網(wǎng)絡(luò)產(chǎn)品新概念.http://www.dataworld.com.cn
5 B Caswell,J Beale,J C Foster et al.Snort 2.0 Intrusion Detection.National Defence industrial Press,2003
6 Erik Johnson,Aaron Kunze.IXP1200 programming[M].U.S.:Intel,2002
7 宋獻(xiàn)濤,紀(jì) 勇.網(wǎng)絡(luò)維護(hù):從IDS到IPS.計(jì)算機(jī)安全,2003;(11)