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