摘要:介紹了人工免疫系統(tǒng)中沙盒主機的總用及系統(tǒng)結構,在傳統(tǒng)負載均衡的思想上對沙盒負載均衡進行了改進,提出了一種動態(tài)的沙盒主機負載均衡算法,并進行了算法分析。
關鍵詞:人工免疫,沙盒,負載均衡
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)35-2360-03
Artificial Immune System Sandbox Host of Dynamic Load Balancing Algorithm
ZHAO Xiao-juan
(Hunan Urban Construction College Information Engineering Department,Xiangtan 41110,China)
Abstract: Introduced in the artificial immunization system the sandbox main engine always uses and the system structure, in the thought has made the improvement in the tradition load equalization to the sandbox load equalization, proposed one kind of dynamic sandbox main engine load equalization algorithm, and has carried on the algorithmic analysis.
Key words: honeypot;IDS;linkage defense model
1 引言
計算機網(wǎng)絡的安全問題已經(jīng)日漸突出,現(xiàn)有的網(wǎng)絡安全手段有防火墻、存取控制等已經(jīng)無法充分地解決日益增長的網(wǎng)絡安全問題。因此,能夠從周圍環(huán)境中自主地“學習”安全的基于機體免疫的計算機免疫安全模型就被提出來了。
計算機免疫系統(tǒng)是模擬生物免疫機理進行計算機系統(tǒng)安全防御的新興技術,包括免疫檢測、免疫穩(wěn)定、生物應答、免疫調(diào)節(jié)功能[1]。其通過各部件的聯(lián)動反應,對分布計算環(huán)境提供安全保障。GECISM(general compu ter immunesystem model )就是根據(jù)仿生學原理,模擬生物系統(tǒng)的免疫機理,設計的一種計算機系統(tǒng)安全模型。該模型由不同的代理構成,各代理通過相互協(xié)作,區(qū)分系統(tǒng)中的“自我”、“非我”,并消除“非我”[2]。沙盒主機為其重要的代理,它的構造關系到計算機免疫系統(tǒng)是否能夠模仿生物免疫系統(tǒng)進行對未知入侵的檢測和消除;而且對未知進程的檢測、消除時也只有通過沙盒主機的控制,才能減少或避免未知進程中的“非我”對整個免疫系統(tǒng)的危害,提高系統(tǒng)本身的安全性(高可用性和高可靠性),才能使整個計算機免疫系統(tǒng)的功能得到充分發(fā)揮。
2 GECISM介紹
計算機免疫系統(tǒng)GECISM是把生物免疫系統(tǒng)的機理用于計算機安全領域的一個產(chǎn)物,是模擬免疫檢測、免疫應答的一個計算機安全系統(tǒng)[3]。它具有以下三個功能:1)區(qū)分“自我”、“非我”;2)消除“非我”;3)調(diào)節(jié)自身的反應強度。其中,“自我”為正常用戶行為造成的計算機系統(tǒng)中的可編碼串;“非我”為異常行為引起的計算機系統(tǒng)中的可編碼串,GECISM的總體結構如圖1所示。
沙盒主機可以是物理機也可以是虛擬機,在生物免疫系統(tǒng)中當遇到新抗原時,會引起初次免疫應答。GECISM中用沙盒主機對未知特征的“非我”進行測試,得出該“非我”是否有害,能否消除。同時,對檢測規(guī)則的生成與更新也是在沙盒中完成的。
在GECISM中,沙盒主機被攻陷后對系統(tǒng)造成的破壞是致命的,采用“臨接點圍欄”技術解決該問題;而為了防止拜占庭故障,選擇四個沙盒主機同時測試,以防止其中一個主機被攻陷時造成的影響。[4]
3沙盒主機系統(tǒng)
沙盒主機在生物免疫中沒有對應的免疫細胞,但它為進程創(chuàng)建了一個可運行的虛擬環(huán)境,根據(jù)運行的結果提供最為直接、有效的判別依據(jù),并生成新的判別、分類和消除規(guī)則,因此在整個免疫系統(tǒng)中起著至關重要的作用。沙盒主機結構如圖2所示。
從充分利用網(wǎng)絡資源的角度考慮,本文采用虛擬機形式在每臺計算機上部署沙盒主機,并設置感知器來發(fā)送、接收消息和判斷網(wǎng)絡整體負載狀態(tài)。但采用虛擬機形式的沙盒主機會出現(xiàn)某些主機上有大量的未知進程等待在沙盒主機中運行并處理,而另一些主機卻處于空閑狀態(tài)的情況。為了有效利用整個網(wǎng)絡的處理能力,采用進程遷移的方法來實現(xiàn)負載平衡,即根據(jù)各節(jié)點負載狀況來確定是在本機的沙盒主機中處理未知進程,還是在相鄰機器的沙盒主機中處理。
對沙盒主機進行負載平衡涉及通信開銷和可靠性的問題,某結點廣播請求應答信號后,不僅根據(jù)其他結點響應與否來判斷是否有故障發(fā)生,同時還記錄響應速度并以之作為結點間通信開銷的依據(jù)。進程遷移時,首先以通信開銷最小的結點作為目標結點,再逐步擴展到其他結點。
4 負載均衡技術
4.1 負載均衡技術介紹
負載均衡技術主要可分為無前端調(diào)度節(jié)點和有前端調(diào)度節(jié)點兩種類型[5]。它們的明顯區(qū)別是前者對于用戶表現(xiàn)為多個IP地址,而后者通常只表現(xiàn)為單一的IP地址。
前者在結構上不存在瓶頸,通常沒有整個系統(tǒng)的一致性維護工作,因而實現(xiàn)簡單,但在可靠性和均衡效果方面存在問題;后者的特點是用戶只能看到前端調(diào)度節(jié)點的IP地址,調(diào)度節(jié)點不參與實際的服務工作,只進行后端服務器集群的狀態(tài)收集、系統(tǒng)一致性維護和負載分配的工作。后端的每一臺服務器都有自己單獨的IP地址,它對于客戶而言是透明的。這樣做的優(yōu)點是可以獲得額外的安全性,但在網(wǎng)絡流量很大的情況下,前端調(diào)度節(jié)點就可能會成為系統(tǒng)的瓶頸。而且,如果其宕機則可能導致整個集群系統(tǒng)的癱瘓,若采用備份設備跟蹤,則不僅備份設備的數(shù)量將受到限制,而且維護中心設備與備份設備之間的一致性開銷也會非常之大。
綜上所述,一種理想的負載均衡技術應該是:
1) 對于客戶表現(xiàn)為單一的IP地址;
2) 不存在結構上的瓶頸;
3) 負載分配合理,分配開銷??;
4) 實現(xiàn)簡單,適用范圍廣;
5) 可靠性高,易于維護和擴展。
4.2 自適應對稱啟動算法簡介
負載分配算法可以廣義地分為靜態(tài)、動態(tài)和自適應算法。自適應對稱啟動算法是一種較常見的自適應算法,它的基本思想為:將所有節(jié)點機分為發(fā)送者、接收者和中立者,每個節(jié)點機用3張表分別記錄各類節(jié)點機的名稱。當某節(jié)點機就緒隊列長度超過上限時成為發(fā)送者,啟動發(fā)送者啟動算法;當節(jié)點機成為接收者時啟動接收者啟動算法。該算法的接收者發(fā)送者的啟動由節(jié)點機決定,算法結構簡單,但考慮的因素較少,容易造成系統(tǒng)不穩(wěn)定,甚至崩潰。
4.2.1 相關定義
在敘述改進算法思想之前首先需要介紹幾個相關的定義。
1) 負載
常用的負載分量包括CPU利用率、CPU就緒隊列長度、內(nèi)存使用情況、磁盤訪問頻度以及I/O速度等。由于計算機免疫系統(tǒng)的各節(jié)點基本上為同構節(jié)點,因此這里不需要考慮異構節(jié)點在處理能力的差異。[6]
節(jié)點的負載值用下面的公式來表示:
其中:Ci表示本地節(jié)點Ni的負載值;ai表示選定的負載分量;mi表示分量權重,通常主負載指標的權重較大。
2) 負載采集頻率
算法的啟動是由各節(jié)點負載狀態(tài)決定的,為了及時把握網(wǎng)絡中負載變化,同時又能夠降低由于頻繁采集節(jié)點負載信息而造成的資源浪費,本文使用了可變的負載采集頻率Gt來控制采集負載信息的時間間隔。當各節(jié)點負載保持穩(wěn)定時,負載采集頻率Gt在一定的范圍內(nèi)隨時間減小;當節(jié)點負載狀態(tài)變化超過一定值時,負載采集頻率Gt在一定的范圍內(nèi)隨時間增大。負載采集的結果是創(chuàng)建1張統(tǒng)一的負載表,作為動態(tài)調(diào)整閾值的依據(jù)。
3) 動態(tài)閾值
閾值是判斷主機節(jié)點負載狀態(tài)的度量值,分為上限HW和下限LW2個值。根據(jù)主機節(jié)點的負載Ck,可以將節(jié)點分為以下幾種:
重載節(jié)點:Ck≥HW;適中節(jié)點:LW≤Ck≤HW;輕載節(jié)點:Ck≤LW
動態(tài)閾值首先引入了上限偏移量δh和下限偏移量δl,分別用于改變閾值上下限值。系統(tǒng)通過計算所有節(jié)點負載的均值Cm和方差,根據(jù)網(wǎng)絡的實際情況修改偏移量值達到改變閾值的目的,使適中負載區(qū)間為(HW+δh,LW+δl)。
4) 相鄰節(jié)點
相鄰節(jié)點指的是通信開銷較小的節(jié)點,而不一定是物理上相鄰的節(jié)點。引入相鄰節(jié)點的目的主要是為了實現(xiàn)重負載的逐步擴散,避免在進程遷移時發(fā)生抖動現(xiàn)象。同時在查找相鄰節(jié)點的過程中可以利用心跳檢測技術發(fā)現(xiàn)故障節(jié)點,提高系統(tǒng)的可靠性。
錄該節(jié)點I在進行負載分配時可以查詢的通信開銷最小的節(jié)點數(shù)量,即節(jié)點I的負載只會在這ni個相鄰節(jié)點中擴散。ni的值根據(jù)節(jié)點負載狀態(tài)隨時間變化,其最小值為1。在經(jīng)過一定的時間間隔t后,當節(jié)點I取得令牌時,若沙盒主機仍為重負載則將ni增大,仍為輕負載則將ni減小;若沙盒主機原為空閑則掛起,若已經(jīng)掛起則終止。
5 動態(tài)自適應沙盒負載均衡算法
5.1 算法基本思想
設置負載表和通信開銷表,其中負載表用于記錄各節(jié)點的負載值;而通信開銷表用于記錄各節(jié)點之間的通信開銷,是判斷相鄰節(jié)點的依據(jù)。節(jié)點獲得令牌時,若節(jié)點為重負載則在相鄰節(jié)點中查詢輕負載節(jié)點并將部分進程遷移出去;若節(jié)點為輕負載則在相鄰節(jié)點中查詢重負載節(jié)點并接收進程遷移。同時,具有令牌的節(jié)點通過廣播請求應答信號修改通信開銷表、根據(jù)自身負載狀態(tài)改變相鄰節(jié)點數(shù);若經(jīng)過了一個負載采集時間間隔則在負載表中更新自身的負載值,同時激活負載表中的輕負載節(jié)點對網(wǎng)絡整體負載狀態(tài)進行判斷并調(diào)整閾值和負載采集頻率。[7]
5.2 算法分析
動態(tài)負載平衡算法保證了沙盒主機的可靠性和高效性,使進程遷移策略及時反映系統(tǒng)中負載的變化,解決遷移過程中可能發(fā)生抖動的現(xiàn)象,其特征可以歸納為以下幾點:
1) 負載分配逐步擴散,避免了進程遷移抖動。
2) 局部查詢轉移節(jié)點,不僅有效限制了查詢節(jié)點的次數(shù),而且保證了通信的性能。
3) 動態(tài)的負載狀態(tài)收集,可以根據(jù)緊急程度自動調(diào)整收集各節(jié)點負載狀態(tài)的頻率。
4) 利用改進的心跳檢測技術不僅可以有效地保證系統(tǒng)的可靠性,同時獲取各節(jié)點間的通信開銷。
5) 動態(tài)修改上下限閾值功能可以調(diào)節(jié)網(wǎng)絡整體負載平衡。
6) 雙向主動的啟動策略提高了系統(tǒng)的反應速度。
6 總結
該文提出了人工免疫系統(tǒng)中的沙盒主機動態(tài)負載均衡算法,經(jīng)過論證該算法能夠根據(jù)緊急程度自動調(diào)整各節(jié)點負載均衡的頻率,并且可以調(diào)節(jié)網(wǎng)絡整體夫在平衡,該算法經(jīng)證實有效可行。
參考文獻:
[1] Forrest S,Ho fm eyr S,Soma Yaj I A. Computer immuno logy [J].Commun ACM,1997,40 (10): 8296.
[2] SOMA YAJ I A,HO FM EYR S, FORREST S.P rincip les of a computer immune system [A]. NewSecur ity Paradigms Workshop [C].[s l]:ACMP ress,1998.
[3] 劉振鵬,李繼民,常勝,基于“鄰接點”技術提高計算機免疫系統(tǒng)GECISM可靠性的方法[J].微電子學與計算機,2003,20(3):26-29.
[4] 周特.計算機免疫系統(tǒng)GECISM中非我集的建立[D].河北大學,2005.
[5] 程偉,盧澤新,王宏.一種新的服務器集群系統(tǒng)負載均衡技術[J].計算機工程與科學,2006,28(2):35-36,51.
[6] 趙麗,王鳳先,劉振鵬,常卓.計算機免疫系統(tǒng)中沙盒主機的構建[J].大連理工大學學報,2003(10):16-18.
[7] 王鳳先,曾斌,張海帆,常卓.計算機免疫系統(tǒng)中沙盒主機的負載平衡[J].河北大學學報(自然科學版),2005(4):98-102.