徐凱華 王樂
摘要:在分析入侵檢測(cè)模型的基礎(chǔ)上,結(jié)合模型體系的結(jié)構(gòu)、工作流程及針對(duì)目前入侵檢測(cè)系統(tǒng)成為被攻擊目標(biāo)的現(xiàn)狀和代理技術(shù)給系統(tǒng)帶來的安全問題,提出了基于MA的分布式入侵檢測(cè)系統(tǒng)開發(fā)工具及平臺(tái),詳細(xì)描述了Aglet開發(fā)環(huán)境及實(shí)現(xiàn)技術(shù),并結(jié)合現(xiàn)實(shí)情況提出了改進(jìn)方法。
關(guān)鍵詞:分布式入侵檢測(cè);Aglet開發(fā)環(huán)境;Agent實(shí)現(xiàn)技術(shù)
中圖分類號(hào): TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)13-0024-02
Abstract: According to the characteristics of DIDS model based on MA distributed intrusion detection system development tool and platform is proposed in this paper, a detailed description of the Aglet development environment and implementation technology, combined with the reality of improving method is put forward.
Key words: distributed intrusion detection; Aglet development environment; Agent Technology
基于MA的分布式入侵檢測(cè)系統(tǒng)應(yīng)用十分廣泛,能有效地檢測(cè)出外來的攻擊和破壞,通過對(duì)系統(tǒng)用戶需求的分析,確定了本系統(tǒng)的開發(fā)工具及所使用的移動(dòng)代理平臺(tái):
系統(tǒng)采用基于Web頁(yè)面的入侵檢測(cè)系統(tǒng),Web服務(wù)器為Apache2.0;后臺(tái)數(shù)據(jù)庫(kù)使用SQL 2008;開發(fā)語言用C++,JSP腳本語言;移動(dòng)代理平臺(tái):IBM Aglet 2.0。
在整個(gè)系統(tǒng)中,移動(dòng)代理的設(shè)計(jì)是關(guān)鍵。選擇合適的移動(dòng)代理平臺(tái)就顯得尤為重要,并將直接影響到系統(tǒng)功能的實(shí)現(xiàn)。在這里,我們選用Aglets軟件開發(fā)工具箱(ASDK,Aglets Software Delevopment Kit)進(jìn)行原型設(shè)計(jì)、概念證明與評(píng)價(jià)。
Aglets的設(shè)計(jì)主要是為移動(dòng)代理系統(tǒng)的標(biāo)準(zhǔn)化提供參考。與操作系統(tǒng)中進(jìn)程類似,Aglet是有生命周期的,且每個(gè)Aglet在其生命期內(nèi)都有一個(gè)的唯一標(biāo)志符。標(biāo)志符中包含了Alget獨(dú)一無二的類名。Alget的擁有者(AgletOwner)定義了Aglet的安全優(yōu)先權(quán)(Security Preference),并時(shí)刻關(guān)注和檢查Aglet的安全性, 這個(gè)優(yōu)先權(quán)主要是限制Aglet的權(quán)利以確保安全,如防止巡游Aglet非法通信,規(guī)定最大允許的CPU消耗量等。
在Aglets系統(tǒng)中,為了降低管理的成本,引入域(Domain)的概念。域是由多個(gè)長(zhǎng)期存在的上下文對(duì)象組成的。系統(tǒng)中的DBMS 采用的是關(guān)系型的SQL Server,它是一個(gè)效率高,功能完善,安全性能優(yōu)且同時(shí)API豐富的一種數(shù)據(jù)庫(kù)開發(fā)環(huán)境。
Aglet提供了一個(gè)簡(jiǎn)單而全面的移動(dòng)代理編程模型,在安全策略保障的情況下,為移動(dòng)Aglet提供靈活的互通信機(jī)制。 在開發(fā)語言上選擇Java和C++。Java開發(fā)工具包(Java Development Kit,簡(jiǎn)稱JDK)是升陽公司開發(fā)的基于Java語言的開發(fā)環(huán)境,對(duì)于數(shù)據(jù)模塊的分析要產(chǎn)成若干代理,要與移動(dòng)代理平臺(tái)保持頻繁通信,而本系統(tǒng)中,用純Java語言編寫移動(dòng)代理平臺(tái)。開發(fā)環(huán)境是微軟的Visual C++6.0,編程語言是C++。
1 Aglet開發(fā)環(huán)境
Aglet在一臺(tái)主機(jī)上以線程的形式產(chǎn)生一臺(tái)工作站,之后整個(gè)Aglet物件被分派到另一臺(tái)工作站上,在分派的過程中,Aglet暫停自己正在運(yùn)行的程序;當(dāng)整個(gè)Aglet全部派遣到另一臺(tái)工作站后,新的Aglet將會(huì)重新啟動(dòng)繼續(xù)執(zhí)行剛才暫停的任務(wù)[1]。Aglets執(zhí)行過程有序進(jìn)行,只需要消耗很小的系統(tǒng)資源,有效地保護(hù)了Aglets執(zhí)行后續(xù)任務(wù)的可用資源。Agent系統(tǒng)框架如圖1所示.
Agent系統(tǒng)、agentid、內(nèi)容長(zhǎng)度等字節(jié)數(shù)組AgletAglet Runtime層安全、緩存、持久管理器等ATCI層(ATP、CORBA、RMI)Aglet Runtime層安全、緩存、持久管理器等ATCI層(ATP、CORBA、RMI)AgletTCP/IPTCPIP。從Agent系統(tǒng)框架圖看出,Agent的執(zhí)行分為發(fā)送、請(qǐng)求、處理、接受幾個(gè)過程,最終便可在遠(yuǎn)端主機(jī)上執(zhí)行。
2 Agent實(shí)現(xiàn)技術(shù)
Agent實(shí)現(xiàn)的關(guān)鍵是最佳路由的選擇,最佳路由一般考慮傳輸路徑、規(guī)劃路由上的網(wǎng)絡(luò)吞吐量、遠(yuǎn)程主機(jī)負(fù)載及主機(jī)上是否能快速查到存在信息的概率。MA的主要任務(wù)是在規(guī)劃的最佳移動(dòng)路徑上完成任務(wù),時(shí)間越短,執(zhí)行效率越好。通過Agent的協(xié)同工作,移動(dòng)Agent系統(tǒng)發(fā)現(xiàn)本地主機(jī)和網(wǎng)絡(luò)的入侵行為[2]。
2.1 Agent的設(shè)計(jì)模式
在系統(tǒng)的整個(gè)設(shè)計(jì)中,采用了主從設(shè)計(jì)模式。根據(jù)檢測(cè)的實(shí)際需要,主Agent查找距離自己最近的從Agent,把任務(wù)委派下去;待從Agen收到任務(wù)后,成為新的主Agent;再次查找距離自己最近的從Agent,以此類推。直到任務(wù)遷移到指定的目的地,通信完成,返回結(jié)果。
下面以收發(fā)器Agent產(chǎn)生功能Agent為例來說明上述過程。Create程序片斷如下:
//功能Agent的生成
public void CreateAgent( ) {
try{
setText(“begin Agent…”);
waitMessage(2*2000);
init object[ ];
object[ ] =new Object[ ]{transceiverProxy,pmlsi};
AgletProxy proxy=getAgletContext[ ].CreateAglet(null,” Agent”,init);
}
catch(Exception ex)
{
ex.PrintStackTrace( );
}
}
}
當(dāng)產(chǎn)生功能Agent后,Agent會(huì)自動(dòng)呼叫方法OnCreation( ),在OnCreation( )中,接收收發(fā)器Agent傳過來的參數(shù)值,指定給相對(duì)應(yīng)的變量,而后呼叫方法run( ),run( )執(zhí)行,完成所交付的任務(wù)。
Agent.java中相關(guān)被產(chǎn)生的程序片斷如下:
public void onCreation(Object o) {
try{
transceiverProxy=(AgletProxy)((Object[])init)[0];
mlsi=(AgletProxy)((Object[])init)[1];
Proxy=getProxy( );
}
catch(Exception ex) {
}
} //end of onCreation( )
public void run( ) {
//doTask( ) 執(zhí)行任務(wù);
readalertVecInfo=readAlertInfo.size( );
if(Vecsize > 0)
SendMessage(ReadalertVecInfo);
}
2.2 Agent的通信過程
在移動(dòng)Agent系統(tǒng)中,Agent的通信是整個(gè)系統(tǒng)設(shè)計(jì)的核心,關(guān)系到系統(tǒng)設(shè)計(jì)的成敗。Agent的通信猶如最佳路由的選擇,不是單個(gè)Agent能完成的;各個(gè)Agent之間相互通信進(jìn)行信息交換[3],協(xié)同工作。
在Aglet中,Value和Kind是每個(gè)消息對(duì)象MO(Message Object)的初始值。為了說明Agent的通信過程,現(xiàn)以收發(fā)器Agent和功能Agent的溝通協(xié)調(diào)為例來來說明。當(dāng)功能Agent發(fā)現(xiàn)入侵信息,即系統(tǒng)存在入侵行為后,功能Agent使用方法SendMessage( )將入侵消息傳給收發(fā)器Agent功能,此處的Kind和Value分別是ReportInformation和 AlertinfoVec(Vector類型)。在收發(fā)器Agent收到消息后,又會(huì)如何處理收到的消息呢?這時(shí)收發(fā)器Agent會(huì)使用方法HandleMessage( )去處理剛剛收到的消息,同時(shí)給功能Agent傳輸一個(gè)boolean值,以便告知處理消息的結(jié)果是否成功。我們知道, Agent間的通信是通過一個(gè)代理(Proxy)來分步驟實(shí)現(xiàn)的,所以當(dāng)收發(fā)器Agent向控制臺(tái)Agent匯報(bào)信息時(shí),必須要使用控制臺(tái)Agent的代理,即收發(fā)器Agent與此代理聯(lián)系。
2.3 Agent的移動(dòng)
IBM提出的指定執(zhí)行環(huán)境和服務(wù)接口,可以被看作是一個(gè)最小實(shí)現(xiàn)代理傳輸協(xié)議,基于移動(dòng)智能體傳輸協(xié)議ATP(Agent Transfer Protocol)框架定義了一組原語的接口和基本信息設(shè)置,實(shí)現(xiàn)智能體在整個(gè)異構(gòu)網(wǎng)絡(luò)環(huán)境中的傳輸,并為其分配執(zhí)行環(huán)境和服務(wù)接口,可以看作是一個(gè)Agent傳輸協(xié)議的最小實(shí)現(xiàn), ATP框架結(jié)構(gòu)定義了一組原語性的接口和基礎(chǔ)消息集,其基本操作如圖2所示。
在實(shí)現(xiàn)本系統(tǒng)的過程中,對(duì)Agent的遷移采用了巡行(itinerary)模式。這種模式能最大限度地維護(hù)著所有可能到達(dá)的目的地的列表,并將新發(fā)現(xiàn)的路由加入這一個(gè)列表,使得列表的規(guī)模不斷壯大;負(fù)責(zé)路由策略的制訂和最佳路由的選擇,并按時(shí)到達(dá)指定目的地;當(dāng)在檢測(cè)過程中有異常情況(如目的地不存在)發(fā)生時(shí),也能及時(shí)處理。
3 小結(jié)
基于移動(dòng)代理(MA)的分布式入侵檢測(cè)系統(tǒng)(DIDS),可以降低網(wǎng)絡(luò)負(fù)載,在不影響有效傳輸數(shù)據(jù)使用的情況下,對(duì)整個(gè)網(wǎng)絡(luò)中是否有入侵行為的發(fā)生、入侵后對(duì)內(nèi)部系統(tǒng)的破壞程度進(jìn)行檢測(cè)。能夠防御針對(duì)IDS自身的入侵行為,有較好的安全性;下一步在以下兩方面對(duì)系統(tǒng)進(jìn)一步完善,使之成為分布式入侵檢測(cè)的中間件,充分發(fā)揮Agent在DIDS中的靈活作用。
(1)智能化入侵檢測(cè)。在入侵檢測(cè)上也可以采用智能化的方法進(jìn)行快速、準(zhǔn)確的入侵。常用的有基于免疫原理的方法檢測(cè)、基于神經(jīng)網(wǎng)絡(luò)的智能化檢測(cè)及基于遺傳各種算法的等方法。這些方法的共同點(diǎn)就是入侵特征的提取與判斷。
(2)網(wǎng)絡(luò)安全技術(shù)相結(jié)合。入侵檢測(cè)過程結(jié)合PKIX,防火墻技術(shù),安全電子交易(SET)等技術(shù),提供完整的網(wǎng)絡(luò)安全。例如,基于網(wǎng)絡(luò)和基于主機(jī)的入侵檢測(cè)系統(tǒng)相結(jié)合,將基于網(wǎng)頁(yè)的檢測(cè)技術(shù)很好地結(jié)合在一起的主機(jī)都相輔相成,提供集成的攻擊簽名,檢測(cè),報(bào)告和事件關(guān)聯(lián)等功能。提供完整的網(wǎng)絡(luò)安全保障,將入侵行為拒絕在門外。
參考文獻(xiàn):
[1] 李劍峰,王乘.在分布式入侵檢測(cè)系統(tǒng)中應(yīng)用MobileAgent[J].計(jì)算機(jī)工程與應(yīng)用,2004,40(7):161-164.
[2] 馬恒太,蔣建春,陳偉鋒,等.基于Agent的分布式入侵檢測(cè)系統(tǒng)模型[J].軟件學(xué)報(bào),2012,11(10):1312-1319.