??? 摘??要: 針對(duì)單木馬的生存問(wèn)題,提出了基于Multi-Agent" title="Multi-Agent">Multi-Agent思想的新型木馬模型。通過(guò)實(shí)驗(yàn),證明其體現(xiàn)了多木馬協(xié)同作業(yè)的優(yōu)越性,提高了生存能力。?
??? 關(guān)鍵詞: 木馬; 多Agent; 協(xié)同
?
??? 計(jì)算機(jī)中的特洛伊木馬(Trojan horse)是指隱藏在正常程序中的一段具有特殊功能的惡意代碼,其具有隱蔽性和非授權(quán)性的特點(diǎn)。所謂隱蔽性是指木馬的設(shè)計(jì)者為了防止木馬被發(fā)現(xiàn),會(huì)采用多種手段隱藏木馬。但現(xiàn)在眾多的查殺木馬工具正在不斷縮小木馬的生存空間[1]。因此木馬的首要特征是其生存能力。?
??? Fred Cohen等人[2,3]將木馬作為病毒的一種特例,并給出了木馬的數(shù)學(xué)模型,但未對(duì)木馬的隱藏特征進(jìn)行分析。Harold Thimbleby等人[4]對(duì)木馬模型框架進(jìn)行了研究,給出了木馬的形式化模型,對(duì)木馬隱藏的特征進(jìn)行了描述,但未對(duì)多木馬協(xié)同隱藏進(jìn)行描述和分析。?
??? 本文在對(duì)單木馬隱藏技術(shù)分析研究的基礎(chǔ)上,針對(duì)單木馬在復(fù)雜網(wǎng)絡(luò)環(huán)境下的生存缺陷,提出了基于Multi-Agent思想的新型木馬模型,體現(xiàn)了多木馬協(xié)同隱藏的思想,增強(qiáng)了木馬的生存能力。?
1 單木馬的局限性?
??? 通過(guò)對(duì)木馬結(jié)構(gòu)分析發(fā)現(xiàn),至今,所有的木馬結(jié)構(gòu)都是單木馬結(jié)構(gòu)。也就是單個(gè)的被控端只為單個(gè)的控制端" title="控制端">控制端服務(wù),這種結(jié)構(gòu)可以看作為“點(diǎn)對(duì)點(diǎn)”結(jié)構(gòu)[5]。被控端和控制端都在外網(wǎng)時(shí),問(wèn)題不是很大,只是被控端沒(méi)有得到充分的利用。但是在局域網(wǎng)內(nèi)、外運(yùn)用這種結(jié)構(gòu)(即被控端在局域網(wǎng)內(nèi)部,控制端在局域網(wǎng)外部)時(shí)存在以下缺點(diǎn):?
??? (1)用戶(hù)可根據(jù)網(wǎng)絡(luò)連接推斷出控制端的地址;?
??? (2)被控端的木馬被刪除后就不能再恢復(fù);?
??? (3)在局域網(wǎng)內(nèi)、外只有一條通道連接,容易因流量過(guò)大而被發(fā)現(xiàn)。?
??? 因?yàn)榫钟蚓W(wǎng)能很好地防范一些攻擊,為了安全,在當(dāng)前的Internet上有大量局域網(wǎng)存在。為了更好地進(jìn)行內(nèi)網(wǎng)" title="內(nèi)網(wǎng)">內(nèi)網(wǎng)攻擊,本文提出了主要針對(duì)局域網(wǎng)的一種全新的木馬模型。?
2 Multi-Agent技術(shù)
??? 為了解決以上問(wèn)題,針對(duì)局域網(wǎng)防火墻對(duì)內(nèi)監(jiān)督能力較弱等特點(diǎn),本文引入Agent技術(shù),實(shí)現(xiàn)基于Multi-Agent的木馬模型,利用多Agent之間的協(xié)作幫助木馬更好地進(jìn)行局域網(wǎng)外對(duì)局域網(wǎng)內(nèi)的控制。?
2.1 Agent技術(shù)?
??? 學(xué)術(shù)界對(duì)Agent至今沒(méi)有統(tǒng)一明確的定義。一般來(lái)說(shuō)Agent可以理解為艾真體、主體或智能代理。也就是說(shuō),Agent可以指具有智能的任何實(shí)體,包括硬件和軟件,如人、機(jī)器人、智能軟件等。?
??? 當(dāng)前對(duì)Agent的典型定義基本有兩種[6]:?
??? (1)Agent是駐留于環(huán)境中的實(shí)體,它可以解釋環(huán)境中所發(fā)生事件的數(shù)據(jù),并執(zhí)行對(duì)環(huán)境產(chǎn)生影響的行為。這是FIPA(Foundation for Intelligent Physical Agent) 對(duì)Agent的定義。?
??? (2)Agent是能為用戶(hù)執(zhí)行特定任務(wù)的、具有一定程度的、智能的、能自主執(zhí)行任務(wù)的并能與環(huán)境相互作用的軟件程序。這是軟件Agent研究者對(duì)Agent的定義。?
??? 當(dāng)前Agent不僅僅應(yīng)用于人工智能,而且廣泛地用于Internet的電子商務(wù)、信息搜索、人機(jī)界面、分布式計(jì)算、軟件工程等領(lǐng)域。?
2.2 Agent特性?
??? 在木馬中引入Agent技術(shù)與其特性有關(guān)。從廣義的角度規(guī)定Agent的特性,幾乎所有被稱(chēng)為Agent的軟件或硬件系統(tǒng)都具有以下特性:?
??? (1)自治性:可以在沒(méi)有其他Agent的控制下運(yùn)行,對(duì)自己的行為有某種控制能力。這與木馬在單機(jī)上能夠自主地完成本身的啟動(dòng)和隱藏等功能一樣,能夠獨(dú)立。?
??? (2)反應(yīng)能力 :對(duì)周?chē)h(huán)境有感知能力,并能通過(guò)自身行為改變環(huán)境。這與木馬在各種不同單機(jī)環(huán)境上能夠很好地溶入環(huán)境,并且設(shè)置一些木馬需要的功能等是相同的。?
??? (3)自發(fā)行為:能夠通過(guò)接受某些啟示信息,做出基于目標(biāo)的行為。這個(gè)特性正是木馬被控端接受控制端的命令,完成相應(yīng)功能的體現(xiàn)。?
??? (4)交流能力:可以和其他的Agent通過(guò)某種語(yǔ)言進(jìn)行交互。這是引入Agent技術(shù)的主要目的之一。通過(guò)多Agent木馬的互相監(jiān)督,在某個(gè)Agent出現(xiàn)問(wèn)題時(shí),能在其他Agent的協(xié)作下恢復(fù)工作,使木馬大大增強(qiáng)了生存能力。?
??? 從以上對(duì)Agent特性分析來(lái)看,Agent與木馬有如此相似的特性,因此把Agent引入木馬中也是很自然的,而且利用Multi-Agent的協(xié)同能力,應(yīng)該能夠改進(jìn)木馬在復(fù)雜網(wǎng)絡(luò)環(huán)境下的生存能力。?
3 基于Multi-Agent的木馬模型?
3.1木馬模型的形式化描述?
??? 參考Harold Thimbleby木馬模型[4],對(duì)基于Multi-Agent的協(xié)同作業(yè)思想進(jìn)行如下形式化描述:?
??? 若干個(gè)協(xié)同的Server-Agent木馬。定的功能,?
???
??? 由上述Agent木馬協(xié)同作業(yè)的形式化描述可以看出,顯現(xiàn)出不一致。引入
3.2 模型的整體結(jié)構(gòu)?
??? 本模型采用異構(gòu)的多Agent結(jié)構(gòu)。每臺(tái)主機(jī)的Agent都是獨(dú)立的。Agent按功能分為Server-Agent和Clint-Agent兩類(lèi)異構(gòu)的Agent。Server-Agent和Clint-Agent分別位于被控端和控制端上。由功能需要,Server-Agent和Clint-Agent又劃分多個(gè)不同的功能模塊,如圖1所示。
?
?
3.3 模型的工作流程?
??? 借鑒P2P技術(shù),基于多Agent模型的木馬運(yùn)行流程大致如下:當(dāng)在局域網(wǎng)的某臺(tái)主機(jī)中植入木馬的Server-Agent后,利用局域網(wǎng)內(nèi)網(wǎng)的一些漏洞進(jìn)行滲透,種下多個(gè)Server-Agent。這些Server-Agent保持通信,互相協(xié)作。如對(duì)局域網(wǎng)內(nèi)的某一資源進(jìn)行獲取時(shí),多個(gè)Server-Agent將資源進(jìn)行分塊,各Server-Agent根據(jù)分配的任務(wù),各自負(fù)責(zé)將分塊數(shù)據(jù)發(fā)送到外網(wǎng)分散的Clint-Agent,各個(gè)Clint-Agent在收到分塊數(shù)據(jù)后,與發(fā)送請(qǐng)示的Clint-Agent交互。發(fā)送請(qǐng)求的Clint-Agent在得到所有數(shù)據(jù)塊后重新組合,就得到了請(qǐng)求答復(fù)。?
??? 在該模型中,每個(gè)Server-Agent保存該局域網(wǎng)內(nèi)活動(dòng)Server-Agent的信息。如果某個(gè)Server-Agent被刪除,則與它最近的Server-Agent會(huì)在一定時(shí)間后重新植入Server-Agent。?
3.4 Agent部件的實(shí)現(xiàn)?
??? (1) Clint-Agent?
??? Clint-Agent相對(duì)較簡(jiǎn)單,與其他木馬大致相同。Clint-Agent負(fù)責(zé)應(yīng)對(duì)用戶(hù)請(qǐng)求,將其轉(zhuǎn)換為Server-Agent可以接收的請(qǐng)求格式,并且接收從Server-Agent送到的數(shù)據(jù),以及與其他Clint-Agent交互數(shù)據(jù),進(jìn)行組合。并以用戶(hù)要求的形式展現(xiàn)。Clint-Agent包括下列模塊:?
??? ①通信模塊" title="通信模塊">通信模塊:負(fù)責(zé)與Clint-Agent和Server-Agent通信。?
??? ②接口模塊:負(fù)責(zé)與用戶(hù)交互,向用戶(hù)提供一個(gè)圖形界面。?
??? ③控制模塊" title="控制模塊">控制模塊:負(fù)責(zé)與其他Clint-Agent協(xié)調(diào),對(duì)數(shù)據(jù)進(jìn)行解密重組等。?
??? (2) Server-Agent?
??? Server-Agent即木馬服務(wù)端。它負(fù)責(zé)接收從Clint-Agent送到的用戶(hù)請(qǐng)求,在與其他Server-Agent交互后,將執(zhí)行結(jié)果返回給Clint-Agent。Server-Agent可保證自身安全。它可分為下列模塊:?
??? ①通信模塊:與Clint-Agent一樣,負(fù)責(zé)與其他Agent通信。?
??? ②狀態(tài)檢查模塊:專(zhuān)門(mén)負(fù)責(zé)Agent的安全。它定期檢查本機(jī)和相關(guān)Server-Agent的狀態(tài)。為隱蔽,它平時(shí)一般沒(méi)有什么動(dòng)作。當(dāng)運(yùn)行時(shí),如發(fā)現(xiàn)控制模塊或通信模塊被刪除,則用備份重新生成,并重新插入另一個(gè)系統(tǒng)進(jìn)程中。如果與某個(gè)相關(guān)Server-Agent失去聯(lián)系,則要對(duì)該地址重新滲透一次。?
??? ③控制模塊:Server-Agent的功能相對(duì)較多,與大部分木馬類(lèi)似,包括控制系統(tǒng)、隱藏屬性、附加功能等,也有一個(gè)狀態(tài)檢查塊,用以對(duì)狀態(tài)檢查模塊的線程進(jìn)行保護(hù),從而形成守護(hù)線程。?
3.5 Agent的通信?
??? 在本模型中,Agent之間的協(xié)作通過(guò)通信實(shí)現(xiàn),本實(shí)驗(yàn)系統(tǒng)采用TCP與ICMP相結(jié)合的方式,并對(duì)數(shù)據(jù)進(jìn)行IDEA加密。其通信內(nèi)容為一個(gè)四元組:?
??? <通信內(nèi)容>:=<發(fā)送Agent;接收Agent,目的Agent,加密數(shù)據(jù)>?
??? 不同的Agent之間使用不同通信協(xié)議。在Clint-Agent之間直接采用FTP方式通信,這是因?yàn)椴挥脫?dān)心安全問(wèn)題,用FTP能達(dá)到較好速度。在Server-Agent之間采用FTP方式通信,因?yàn)榫钟蚓W(wǎng)網(wǎng)內(nèi)較少屏蔽ICMP協(xié)議點(diǎn)。在最關(guān)鍵的Clint-Agent和Server-Agent之間采用HTTP遂道技術(shù),這是無(wú)法完全封閉的。即使被一些檢測(cè)系統(tǒng)截得,也只是一些代號(hào)和不完整的加密數(shù)據(jù),還原相當(dāng)困難。?
??? Agent想與其他Agent通信時(shí),數(shù)據(jù)經(jīng)過(guò)控制模塊加密后到達(dá)通信模塊,通信模塊根據(jù)目的地址進(jìn)行轉(zhuǎn)發(fā)。?
3.6 實(shí)驗(yàn)結(jié)果?
??? 實(shí)驗(yàn)結(jié)果表明該木馬模型有以下優(yōu)點(diǎn):?
??? (1)分散傳輸數(shù)據(jù)量降低了木馬程序由于流量異常被發(fā)現(xiàn)的概率。?
??? (2)多目的地址接收數(shù)據(jù),增大追查源地址的難度。?
??? (3)各Agent木馬寄生于不同主機(jī)并且相互聯(lián)系,增強(qiáng)了木馬抗查殺能力。可以通過(guò)進(jìn)一步完善Agent木馬各自的功能,達(dá)到更好的生存能力。?
??? (4)黑客間可以共享被控制端和實(shí)時(shí)交流。?
??? (5)有良好的可擴(kuò)展性,能方便地在Agent模塊中添加更新的技術(shù),對(duì)Agent進(jìn)行強(qiáng)制更新,從而克服了傳統(tǒng)木馬動(dòng)態(tài)更新的局限性。?
??? 本文引入Agent技術(shù)對(duì)當(dāng)前木馬進(jìn)行改造。模型采用多被控端和多個(gè)控制端的分布式結(jié)構(gòu),Agent間通過(guò)協(xié)議通信,大大提升了內(nèi)網(wǎng)控制能力。但也帶來(lái)了一些問(wèn)題,如將數(shù)據(jù)分散時(shí),數(shù)據(jù)的完整性不能確保,有時(shí)因某個(gè)Clint-Agent和Server-Agent關(guān)機(jī)可能得不到完整的數(shù)據(jù)。另一個(gè)問(wèn)題是在內(nèi)網(wǎng)多臺(tái)主機(jī)中植入木馬,被發(fā)現(xiàn)的可能性相對(duì)加大。但是總體上這種基于Agent的新型木馬模型相對(duì)提高了生存能力。?
??? 木馬在同反木馬的抗衡中不斷的發(fā)展和進(jìn)化,隨著木馬理論和技術(shù)的發(fā)展,木馬各種能力也在不斷提高。?
參考文獻(xiàn)?
[1] 雙世勇,李俊全. 檢測(cè)Windows Rootkit的新方法[J]. 信息安全與通信保密,2005,(2):173-175.?
[2] ADLEMAN L M. An abstract theory of computer viruses[C]. In:8th Annual International Cryptology Conference,?Santa Barbara, California, USA, 1988.?
[3] COHEN F. On the implications of computer viruses and??methods of defense[J]. Computers and Security, 1988,7(2):167-184.?
[4] THIMBLEBY H, ANDERSON S, CAIRNS P. A framework for modeling trojans and computer virus infection[J]. The?Computer Journal,1998,41(7):444-458.?
[5] 康治平,向宏. 特洛伊木馬隱藏技術(shù)研究及實(shí)踐[J].計(jì)算機(jī)工程與應(yīng)用, 2006,(9):103-105.?
[6] 張?jiān)朴? 移動(dòng)Agent及其應(yīng)用[M]. 北京:清華大學(xué)出版社,2002.