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