修長虹 鄭小松 梁建坤
沈陽藥科大學(xué)網(wǎng)絡(luò)中心 遼寧 110016
近年來隨著計算機(jī)應(yīng)用技術(shù)如Internet技術(shù)的迅速發(fā)展,一方面基于網(wǎng)絡(luò)的計算機(jī)系統(tǒng)在現(xiàn)代社會中的地位越來越重要,越來越多的用戶可以足不出戶地訪問到全球網(wǎng)絡(luò)系統(tǒng)豐富的信息資源。網(wǎng)絡(luò)信息技術(shù)的應(yīng)用也日益的普及和推廣,各種商務(wù)、金融機(jī)構(gòu)以及國家政府機(jī)構(gòu)在電子商務(wù)熱潮中紛紛連入Internet。另一方面伴隨著網(wǎng)絡(luò)上不斷增強(qiáng)的信息共享和業(yè)務(wù)處理,這些關(guān)鍵的業(yè)務(wù)越來越多的成為黑客的攻擊目標(biāo),網(wǎng)絡(luò)的安全問題也顯得越來越突出,而Internet所具有的開放性、國際性和自由性在增加應(yīng)用自由度的同時,對安全也提出了更高的要求。
網(wǎng)絡(luò)安全的一個主要威脅是來自于非法用戶或黑客通過網(wǎng)絡(luò)信息系統(tǒng)進(jìn)行的入侵。而傳統(tǒng)的安全方法是采用盡可能多的禁止策略對入侵進(jìn)行防御,但是這種策略無法防止隱信道的產(chǎn)生以及系統(tǒng)所認(rèn)定的授權(quán)用戶的非法操作,對于來自內(nèi)部非法操作、口令和密碼的泄露、軟件缺陷以及拒絕服務(wù)型攻擊(DoS)則更是無能為力。近年來流行的數(shù)據(jù)包過濾、應(yīng)用層網(wǎng)關(guān)及虛擬網(wǎng)技術(shù)的防火墻已經(jīng)能夠防止許多安全漏洞,如常見的協(xié)議實現(xiàn)漏洞、源路由及地址仿冒等多種攻擊手段,并能夠提供安全的數(shù)據(jù)通道。但是它不能對付層出不窮的應(yīng)用層后門、應(yīng)用設(shè)計缺陷和通過加密通道的攻擊,而為了解決用戶對系統(tǒng)信息使用的方便性和嚴(yán)格控制之間的平衡問題也使得系統(tǒng)不可能完全安全。這樣,傳統(tǒng)的防范入侵的手段隨著攻擊者對網(wǎng)絡(luò)系統(tǒng)了解的日趨深入,攻擊工具和手法的日趨復(fù)雜多樣,這種被動的防范方法已經(jīng)顯得力不從心,所以需要一種更加仔細(xì)的、能夠及時發(fā)現(xiàn)并報告系統(tǒng)中未授權(quán)或異?,F(xiàn)象的監(jiān)控系統(tǒng)來改善和保護(hù)我們的計算機(jī)網(wǎng)絡(luò)系統(tǒng)安全。入侵檢測系統(tǒng)(IDS)便在此需求下應(yīng)運(yùn)而生,成為保護(hù)計算機(jī)系統(tǒng)安全的另一道安全防線。
網(wǎng)絡(luò)入侵主要分為兩大類:來自局域網(wǎng)(LAN)外部入侵和來自局域網(wǎng)內(nèi)部的入侵。然而,不管是哪一種入侵方式,入侵者很少直接從它們自己的主機(jī)上對目標(biāo)主機(jī)進(jìn)行攻擊。這樣做的原因很明確,隱藏自己的真實身份。入侵者一般首先攻擊防范較薄弱的主機(jī),然后逐步接近防范較強(qiáng)的主機(jī),最終到達(dá)要攻擊的目標(biāo)機(jī)器。一般情況下不僅是目標(biāo)主機(jī)上的管理員不會注意到入侵,中間主機(jī)的管理員也不會檢測到入侵。即使管理員檢測到入侵,如果入侵者及時斷開網(wǎng)絡(luò)連接,那么系統(tǒng)管理員也無法追蹤入侵者最初是從哪里發(fā)起攻擊的。
本文所設(shè)計的模型是一個分布式實時入侵檢測系統(tǒng),系統(tǒng)使用了移動代理。數(shù)據(jù)包被分發(fā)到安裝在網(wǎng)絡(luò)上的各種類型的代理上,不同的代理執(zhí)行不同的任務(wù),控制、檢測、策略、阻塞。當(dāng)一個入侵被檢測到并且策略機(jī)制判定阻塞后,可疑的數(shù)據(jù)包將在到達(dá)目的主機(jī)之前被丟棄。
檢測系統(tǒng)主要部件有:代理系統(tǒng)、存儲系統(tǒng)、分析系統(tǒng)、響應(yīng)系統(tǒng)、控制系統(tǒng)。代理系統(tǒng)以各種方法收集信息,包括分析日志、監(jiān)視用戶行為、分析系統(tǒng)調(diào)用、分析該主機(jī)的網(wǎng)絡(luò)通信等。它們也具有數(shù)據(jù)分析功能,對于已知的攻擊,在這些部件中所用模式匹配的方法來檢測可以大大提高系統(tǒng)的處理速度,也可以減少分析部件的工作量及系統(tǒng)網(wǎng)絡(luò)傳輸?shù)挠绊憽?/p>
存儲系統(tǒng)的作用是用來存儲事件產(chǎn)生器捕獲的原始數(shù)據(jù)、分析結(jié)果等重要數(shù)據(jù)。儲存的原始數(shù)據(jù)在對發(fā)現(xiàn)入侵者進(jìn)行法律制裁時提供確鑿的證據(jù)。存儲系統(tǒng)也是不同部件之間數(shù)據(jù)處理的共享數(shù)據(jù)庫,為系統(tǒng)不同部件提供各自感興趣的數(shù)據(jù)。因此,存儲系統(tǒng)應(yīng)該提供靈活的數(shù)據(jù)維護(hù)、處理和查詢服務(wù),同時也是一個安全的日志系統(tǒng)。
分析系統(tǒng)是對事件發(fā)生器捕獲的原始信息、其它入侵檢測系統(tǒng)提供的可疑信息進(jìn)行統(tǒng)一分析和處理的系統(tǒng)。分析系統(tǒng)注重于高層次的分析方法,如基于統(tǒng)計的分析方法、基于神經(jīng)網(wǎng)絡(luò)的分析方法等。同時負(fù)責(zé)對分布式攻擊進(jìn)行檢測。各種分析方法都有各自的優(yōu)勢和不足,因此,系統(tǒng)中分析方法應(yīng)該是可以動態(tài)更換,并且多種算法可以并存的。
響應(yīng)系統(tǒng)是對確認(rèn)的入侵行為采取相應(yīng)措施的子系統(tǒng)。響應(yīng)包括消極的措施,如給管理員發(fā)電子郵件、消息、傳呼等。也可以采取保護(hù)性措施,如切斷入侵者的TCP連接、修改路由器的訪問控制策略等。還可以采取主動的反擊策略。
控制系統(tǒng)是整個入侵檢測系統(tǒng)的中心,也是IDS提供給用戶的管理界面,用戶通過系統(tǒng)控制臺可以對整個子系統(tǒng)組件、安全通信、報表生成、負(fù)載均衡等進(jìn)行控制和管理。
代理系統(tǒng)是入侵檢測系統(tǒng)代理的總體。IDA使用的移動代理能夠跟蹤入侵者,并且確定是否已經(jīng)發(fā)生了入侵。移動代理只收集整個入侵路由過程中與入侵有關(guān)的信息。這樣大大提高了檢測效率。IDA減少了系統(tǒng)的負(fù)載,并且能夠檢測到一些新的未知形式的攻擊。
在分布式系統(tǒng)的范疇中,代理是指分布式系統(tǒng)中的節(jié)點實體,一般用來進(jìn)行信息收集和節(jié)點控制等工作。由于分布式系統(tǒng)拓?fù)浣Y(jié)構(gòu)的特點,代理往往處于系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)的末端,節(jié)點的信息非常有限和單一,所以這些代理往往只能完成相對簡單的任務(wù),例如簡單數(shù)據(jù)采集和轉(zhuǎn)發(fā)等。模型中有五種類型的代理。它們是:網(wǎng)關(guān)代理,控制代理,檢測代理,策略代理和主機(jī)代理。在這五種代理中,只有控制代理是可移動的,其它類型的代理都是靜態(tài)的。多代理合作是移動代理的一個重要特性。也就是說,通過虛擬機(jī)系統(tǒng)的通信機(jī)制,可以實現(xiàn)多個代理之間的合作。相同的代理之間互相協(xié)作,可以防止系統(tǒng)和代理失效。異種代理之間也可以進(jìn)行互補(bǔ)性合作,多個不同功能的代理協(xié)作完成共同目標(biāo)。
基于代理的分布式入侵檢測系統(tǒng),它并不存在檢測中心,而是通過相關(guān)的多代理之間的協(xié)作來完成最終的入侵檢測,從而避免了檢測中心的瓶頸現(xiàn)象,因而適合于大型的網(wǎng)絡(luò)的入侵檢測。在多代理系統(tǒng)中,代理是自主的,多個代理的知識、愿望、意圖和行為等往往各不相同,對多個代理的共同工作進(jìn)行協(xié)調(diào),是多代理系統(tǒng)的問題解決能力和效率得以保障的必要條件。多代理系統(tǒng)中的協(xié)調(diào)是指多個代理為了以一致、和諧的方式工作而進(jìn)行交互的進(jìn)程,避免代理之間的死鎖。
移動代理是一種特殊的代理。一般情況下,它需要運(yùn)行在特定的虛擬機(jī)環(huán)境中。它可以自由地在主機(jī)之間進(jìn)行遷移,使得代理不再局限在某一個特定位置。在運(yùn)行期間可以直接進(jìn)行主機(jī)間的遷移,就是說:可以從一個場地采集所需要的數(shù)據(jù)并處理之后,不終止進(jìn)程而直接遷移到另一臺主機(jī)上繼續(xù)運(yùn)行,保留了原來進(jìn)程的數(shù)據(jù)段和堆棧。這樣,極大簡化了數(shù)據(jù)的處理過程。
移動代理系統(tǒng)具有跨平臺的特性,其工作平臺可以混合使用不同廠家的系統(tǒng)。通過在各個操作系統(tǒng)中運(yùn)行移動代理的虛擬機(jī),可以將硬件和操作系統(tǒng)的平臺細(xì)節(jié)屏蔽,使代理獲得一個統(tǒng)一的界面。在這個基礎(chǔ)上,代理可以在各個平臺之間自由移動,通過將控制代理盡可能靠近資源,甚至在資源上運(yùn)行,使得業(yè)務(wù)控制和管理軟件的實現(xiàn)更分布化。增加軟件的靈活性、重用性和效率。
由于結(jié)構(gòu)上的特殊性,移動代理可以實時對所采集到的數(shù)據(jù)進(jìn)行過濾,然后將關(guān)鍵數(shù)據(jù)提出,而無需像傳統(tǒng)的代理體系那樣,將各個主機(jī)的所有數(shù)據(jù)都匯集到一個中央服務(wù)器中,由這個服務(wù)器進(jìn)行綜合處理,然后再向相關(guān)的代理轉(zhuǎn)發(fā)。這樣,可以明顯減少經(jīng)過網(wǎng)絡(luò)上的數(shù)據(jù)流量,提高網(wǎng)絡(luò)的總體可用性。
網(wǎng)關(guān)代理是放置在內(nèi)部網(wǎng)和外部網(wǎng)之間的代理。它負(fù)責(zé)抓取外部網(wǎng)絡(luò)上的數(shù)據(jù)包,并將它們轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的一個控制代理進(jìn)行入侵檢測。
圖1 網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)圖
將特定數(shù)據(jù)包發(fā)送到哪個控制代理依據(jù)控制代理所在主機(jī)的負(fù)載情況,當(dāng)控制代理所在主機(jī)負(fù)載太大時,控制代理將通知網(wǎng)關(guān)代理和主機(jī)代理不要再發(fā)送任何數(shù)據(jù)包讓它檢測。這樣我們能保證入侵檢測不會妨礙主機(jī)的正常工作。一般數(shù)據(jù)包發(fā)送給目標(biāo)主機(jī)上的控制代理,以便減少不必要的網(wǎng)絡(luò)流量和時間耽擱。為了提高效率,屬于同一個會話的數(shù)據(jù)包發(fā)送給同一個控制代理。為了檢測分布式入侵,幾個控制代理相互聯(lián)系形成了一個組,以便交換信息。
控制代理安裝在內(nèi)部網(wǎng)絡(luò)上。它接受主機(jī)代理發(fā)出的信息或網(wǎng)關(guān)代理送來的信息數(shù)據(jù)包。然后發(fā)送數(shù)據(jù)包到檢測代理進(jìn)行入侵檢測。最后,它把數(shù)據(jù)包和檢測代理的檢測結(jié)果轉(zhuǎn)發(fā)給目的主機(jī)上的主機(jī)代理或網(wǎng)關(guān)代理。
控制代理是一個移動代理。當(dāng)主機(jī)超載時,控制代理將移到其他主機(jī)上繼續(xù)檢測工作。同時,它將通知網(wǎng)關(guān)代理和主機(jī)代理不要再發(fā)送任何新的會話數(shù)據(jù)包讓它檢測。然后,它將繼續(xù)檢測先前檢測著會話的數(shù)據(jù)包。當(dāng)先前的主機(jī)不再超載時,他將移回來,并且通知網(wǎng)關(guān)代理和主機(jī)代理任務(wù)重新開始。
檢測代理負(fù)責(zé)真正的入侵檢測工作。每個控制代理控制許多檢測代理。每個檢測代理僅僅負(fù)責(zé)檢測出某種類型的入侵。這樣,當(dāng)出現(xiàn)新的攻擊類型或者發(fā)明了新的檢測方法時,檢測代理更易于更新。檢測代理從控制代理那里得到數(shù)據(jù)包,從一個組的主控制代理那里得到信息。然后,檢測代理檢測數(shù)據(jù)包是否入侵并估計誤警率。在做出判斷之后,它向控制代理做出匯報。
主機(jī)代理負(fù)責(zé)從控制代理那里接收到來的數(shù)據(jù)包和向控制代理發(fā)送數(shù)據(jù)包。當(dāng)他從控制代理那里接收到數(shù)據(jù)包和檢測結(jié)果后,它查閱策略代理以決定它將采取什么措施。如果策略代理判定為不阻塞,這個數(shù)據(jù)包將被傳送給主機(jī)上的相應(yīng)進(jìn)程。當(dāng)某個進(jìn)程需要向外發(fā)送數(shù)據(jù)包時,不論發(fā)往外部主機(jī)還是內(nèi)部主機(jī),主機(jī)代理都將他們重新定向給控制代理而不是直接向外傳送。發(fā)送數(shù)據(jù)包給哪個控制代理的標(biāo)準(zhǔn)和網(wǎng)關(guān)代理一樣。
策略代理負(fù)責(zé)當(dāng)一個入侵被發(fā)現(xiàn)時,主機(jī)代理或網(wǎng)關(guān)代理應(yīng)當(dāng)采取什么樣的措施??赡艿拇胧┌ǎ簛G棄包、允許數(shù)據(jù)包通過通知系統(tǒng)管理員或者不通知系統(tǒng)管理員但是將相關(guān)信息寫到日志上。
不應(yīng)該阻塞所有可疑入侵的數(shù)據(jù)包。因為在所有入侵檢測系統(tǒng)中誤警率一直都很高,阻塞所有可疑的數(shù)據(jù)包會使許多非入侵的數(shù)據(jù)包被丟棄。因此,應(yīng)該僅僅阻塞或丟棄那些幾乎確定對主機(jī)有危害的數(shù)據(jù)包。策略代理的作用就是做出決定,主機(jī)代理應(yīng)該對可疑的數(shù)據(jù)包采取什么樣的行動。
為了檢測分布式入侵,幾個控制代理形成一個組。在一個組之內(nèi),控制代理能夠共享信息以便檢測分布式入侵。例如,對整個網(wǎng)絡(luò)進(jìn)行端口掃描等入侵活動檢測。
一個組在控制代理中形成,這些控制代理檢測具有“相同的頭”的數(shù)據(jù)包。也就是說,這些數(shù)據(jù)包有相同的目的地址,相同的目的端口,相同的源地址或者相同的源端口。
因為一個控制代理可能被涉及到檢測不同地址、端口的數(shù)據(jù)包,所以一個控制代理可以在多個組中。在一個組中,控制代理選出一個主控制代理,所有控制代理必須向主控制代理匯報。這樣,主控制代理處理收到數(shù)據(jù)然后把結(jié)果發(fā)送給組內(nèi)的成員(控制代理)。
如果網(wǎng)關(guān)代理或主機(jī)代理隨機(jī)的用一個控制代理進(jìn)行入侵檢測,許多的控制代理將涉及到檢測一個特定的地址或端口,這樣,組將變得非常巨大。因為主控制代理需要同大量的控制代理進(jìn)行通信。就會導(dǎo)致效率下降。為了提高效率,如果可能的話,網(wǎng)關(guān)代理應(yīng)該發(fā)送數(shù)據(jù)包給那些已經(jīng)在組內(nèi)的控制代理。
各種代理包含不同的代理程序模塊類型,由它們相互協(xié)作,共同完成各代理不同的功能。
圖2 代理程序類層次結(jié)構(gòu)圖
Entity類是所有主要代理程序類的基礎(chǔ)類型,它定義了所有代理實體的共同特征,實現(xiàn)了主要的數(shù)據(jù)抽象和功能抽象。很多時候會有多個代理希望從同一個數(shù)據(jù)源中獲取數(shù)據(jù),此時如果每個代理各行其是,則會造成運(yùn)行效率的損失,所以第一個子程序類是Filter類,它定義了過濾器的主要特征,代理通過注冊向過濾器申請數(shù)據(jù),過濾器在有數(shù)據(jù)時通知代理。第二個子程序類是Agent,它定義了各代理的主要特征及它們各自的功能特點。第三個子程序類Controller Entity,實現(xiàn)了系統(tǒng)中控制實體的基本功能,即通過它控制其它實體。由它派生出Monitor子程序和Transceiver子程序,Monitor子程序模塊和Transceiver子程序分別實現(xiàn)了檢測器和收發(fā)器的功能。
在本文的設(shè)計中,如果入侵事件被發(fā)現(xiàn),并且策略代理判斷為阻塞的話,這些可疑的數(shù)據(jù)包在到達(dá)目的主機(jī)的處理進(jìn)程之前將被丟棄,較好的實現(xiàn)了實時性。
存儲系統(tǒng)把系統(tǒng)檢測到的事件記錄下來,以便于以后的分析。構(gòu)造專用的存儲系統(tǒng)可以提高反應(yīng)速度,但那是一件很昂貴的事情。所以我們選擇現(xiàn)有的數(shù)據(jù)庫系統(tǒng)來建立存儲系統(tǒng)?,F(xiàn)有的數(shù)據(jù)庫系統(tǒng)都支持SQL查詢,它對搜索的封裝使得分析系統(tǒng)可以使用通用的接口。根據(jù)入侵檢測系統(tǒng)的規(guī)模,存儲系統(tǒng)也有很大的區(qū)別,它可能是一個單一的數(shù)據(jù)文件存儲系統(tǒng),也可能是一個數(shù)據(jù)庫系統(tǒng),對于大規(guī)模的入侵檢測系統(tǒng)來說也有可能配置一個數(shù)據(jù)倉庫作為其存儲系統(tǒng)。
控制系統(tǒng)是控制中心與控制臺的通信接口。它接受并解析來自控制臺的請求,向控制單元和數(shù)據(jù)庫管理模塊發(fā)送相應(yīng)的請求,在控制單元的控制下,接受從數(shù)據(jù)庫管理模塊傳回的數(shù)據(jù),經(jīng)處理后傳回控制臺??刂婆_是分布式檢測系統(tǒng)與用戶交互界面,易于操作的控制臺是系統(tǒng)必不可少的部分。如果沒有良好的人機(jī)交互界面,系統(tǒng)管理員很難和IDS系統(tǒng)交流,IDS很難發(fā)揮其功能。控制臺的設(shè)計應(yīng)面向用戶,有完備的功能和圖形化的操作界面。它包括安全事件管理、事件報表管理、監(jiān)測器管理和虛報警管理。
分布式入侵檢測系統(tǒng)一般指的是部署于大規(guī)模網(wǎng)絡(luò)環(huán)境下的入侵檢測系統(tǒng),任務(wù)是用來監(jiān)視整個網(wǎng)絡(luò)環(huán)境中的安全狀態(tài),包括網(wǎng)絡(luò)設(shè)施本身和其中包括的主機(jī)系統(tǒng)。它的應(yīng)用增大了網(wǎng)絡(luò)和系統(tǒng)安全的保護(hù)縱深。本論文提出的分布式系統(tǒng)模型,以及實時性入侵檢測系統(tǒng)框架,不僅為我們今后在入侵檢測領(lǐng)域中的研究工作提供了可靠的理論、技術(shù)依據(jù),而且具有明顯的工程應(yīng)用價值。由于時間的局限,對網(wǎng)絡(luò)環(huán)境下的入侵檢測技術(shù),以及集成多種安全技術(shù)的網(wǎng)絡(luò)安全防御體系方面的研究,還需要進(jìn)一步的研究。
[1] Stephen Northcutt.網(wǎng)絡(luò)入侵檢測分析員手冊.人民郵電出版社.2000.
[2] Rebecca Northcutt,Mank Cooper,Matt Fearnow,Karent Frede rick.入侵特征與分析.中國電力出版社.2002.
[3] Rebecca Gurley Brace.入侵檢測原理.人民郵電出版社.2001.
[4] Paul E.Proctor.入侵檢測實用手冊.中國電力出版社.2002.
[5] 唐國軍、李建華.入侵檢測技術(shù).清華大學(xué)出版社.2004.
[6] 精英科技.系統(tǒng)安全與黑客防范手冊.中國電力出版社.2002.
[7] Eric Cole.黑客---攻擊透析與防范.電子工業(yè)出版社.2002.
[8] 劉寶旭,許榕生.黑客防范技術(shù)揭秘.機(jī)械工業(yè)出版社.2002.