蔡旻甫
(攀枝花學(xué)院數(shù)學(xué)與計算機系,四川 攀枝花 617000)
云計算以互聯(lián)網(wǎng)作為通信支撐平臺,與傳統(tǒng)計算環(huán)境相比,其具有虛擬化、分布式和超大規(guī)模等特點,擁有強大的計算能力、海量的存儲空間和豐富的用戶信息,且互聯(lián)網(wǎng)具有很大的開放性。而傳統(tǒng)入侵檢測系統(tǒng)只是基于單一或者簡單網(wǎng)絡(luò)環(huán)境的入侵檢測,這樣傳統(tǒng)產(chǎn)品無法部署到云計算環(huán)境下進而及時部署成功,其檢測效果無法滿足云計算網(wǎng)絡(luò)安全標(biāo)準(zhǔn)。因此迫切需要開展云計算入侵檢測系統(tǒng)方面的研究,開發(fā)出云計算環(huán)境下的新的入侵檢測系統(tǒng)產(chǎn)品,為云計算產(chǎn)業(yè)的健康發(fā)展提供技術(shù)支撐。本論文將針對云計算環(huán)境下的入侵檢測系統(tǒng)進行全面深入的研究,開發(fā)以神經(jīng)網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的網(wǎng)絡(luò)入侵防御系統(tǒng)。
云計算環(huán)境的數(shù)據(jù)獲取主要是通過抓包工具實現(xiàn)的。為了成功地實現(xiàn)云計算環(huán)境中的入侵檢測,就必須能檢測到云計算網(wǎng)絡(luò)中的網(wǎng)絡(luò)、主機、操作系統(tǒng)以及云計算內(nèi)部應(yīng)用程序的運行狀態(tài)和數(shù)據(jù)操作行為。因此數(shù)據(jù)捕獲的類型必須包含:網(wǎng)絡(luò)和主機系統(tǒng)日志文件;目錄和文件的不期望改變;程序執(zhí)行中的不期望行為;物理形式的入侵活動記錄;同時數(shù)據(jù)捕獲內(nèi)容應(yīng)該包含多方位、多層次,需要考慮到接入層、網(wǎng)絡(luò)層、系統(tǒng)層中的數(shù)據(jù)變動[1]。
接入層捕獲主要是指與云計算環(huán)境交互的邊界區(qū)域,例如訪問云計算服務(wù)時的用戶終端接入,一般情況下接入層的數(shù)據(jù)捕獲只需要通過防火墻就可以實現(xiàn),大多防火墻都具有用戶接入日志記錄,日記記錄中一般都包含TCP、UDP、ICMP、OTHER等連接信息。
網(wǎng)絡(luò)層中的數(shù)據(jù)獲取一般通過網(wǎng)絡(luò)數(shù)據(jù)抓包工具來實現(xiàn),例如常見的網(wǎng)絡(luò)抓包工具為Libpcap,通過Libpcap可以對網(wǎng)絡(luò)數(shù)據(jù)傳輸中的協(xié)議數(shù)據(jù)、數(shù)據(jù)包格式、數(shù)據(jù)包內(nèi)容進行詳細(xì)分解與分析。
對于系統(tǒng)層捕獲,主要是指在把未知攻擊轉(zhuǎn)移到蜜罐或蜜網(wǎng)后,蜜罐或蜜網(wǎng)通過模擬真實的攻擊進行交互,實現(xiàn)對攻擊行為的數(shù)據(jù)捕獲。系統(tǒng)層捕獲的信息包括惡意進程、注冊表異動和文件異動。
數(shù)據(jù)分析主要是指首先獲取入侵行為特征、關(guān)鍵字、短語,然后與系統(tǒng)已有規(guī)則特征進行匹配的技術(shù)。其主要數(shù)據(jù)分析技術(shù)有:文件屬性分析;文件數(shù)字摘要分析;日志分析;數(shù)據(jù)解密;密碼破譯;由入侵代碼格式推斷出作者;挖掘同一事件不同證據(jù)之間聯(lián)系的分析;對電子介質(zhì)中被保護的信息強行訪問等。
1.2.1 數(shù)據(jù)分析的數(shù)學(xué)方法
云計算環(huán)境下的數(shù)據(jù)分析通常有統(tǒng)計分析和完整性分析兩種方式。
統(tǒng)計分析主要是指將信息綜合起來進行定量處理技術(shù),是對收集到的有關(guān)數(shù)據(jù)資料進行整理歸類并進行解釋的過程。通過統(tǒng)計分析得到正常行為的特征庫后,就可以用來對未知行為數(shù)據(jù)進行分析和判別了。
完整性分析。在入侵檢測中,需要關(guān)注網(wǎng)絡(luò)或主機系統(tǒng)中的數(shù)據(jù)、文件或規(guī)定對象是否被改變,例如數(shù)據(jù)、文件和目錄的內(nèi)容及屬性是否被改變。當(dāng)前數(shù)據(jù)完整性分析技術(shù)主要是通過消息摘要函數(shù)來驗證,常用的函數(shù)是MD5算法來校驗被保護對象最微弱的完整性改變。
1.2.2 數(shù)據(jù)分析的智能方法
數(shù)據(jù)分析的智能方法主要有數(shù)據(jù)挖掘、神經(jīng)網(wǎng)絡(luò)等,本文主要是對這兩種智能分析方法做詳細(xì)分析[2-3]。
數(shù)據(jù)挖掘方式進行數(shù)據(jù)分析主要是通過計算機對數(shù)據(jù)信息進行分解,并提取有用戶知識信息的技術(shù)。其挖掘分類根據(jù)環(huán)境、類型、對象不同而不同,例如:若根據(jù)數(shù)據(jù)挖掘?qū)ο蠓诸?,可以分為事?wù)型、多媒體、分布式、空間等。而從技術(shù)角度出發(fā),又可以分為模式發(fā)掘、趨勢建模型、分析評價等,其中模式發(fā)掘主要負(fù)責(zé)尋找數(shù)據(jù)的規(guī)則與模式;趨勢建模主要負(fù)責(zé)分析數(shù)據(jù)發(fā)展趨勢,對此可以通過邏輯、十字表、方程式來實現(xiàn)趨勢建模,邏輯方法的優(yōu)點在于可以支持字符型和數(shù)值型數(shù)據(jù),而十字表主要處理字符型數(shù)據(jù)。常用的十字表處理方法是遺傳學(xué)算法,而基于方程的處理方法主要是通過方程方式,如網(wǎng)絡(luò)神經(jīng)算法來分析數(shù)值型數(shù)據(jù);分析評價則主要是通過具體的挖掘工具來發(fā)現(xiàn)異常行為。
1.3.1 基于知識的檢測技術(shù)
基于知識的檢測技術(shù)主要是通過建立已知入侵以及攻擊知識庫,然后通過入侵模式匹配的方式識別入侵行為的方法。其主要檢測方法有:基于規(guī)則匹配的特征檢測方法;基于模型推理的特征檢測方法;基于專家系統(tǒng)的特征檢測方法。
基于規(guī)則匹配的特征檢測方法主要是通過數(shù)據(jù)特征提取與特征庫匹配的數(shù)據(jù)來發(fā)現(xiàn)攻擊行為?;谀P屯评淼奶卣鳈z測方法是首先對入侵行為進行建模,然后在已知入侵行為模型基礎(chǔ)上,根據(jù)這些模型參數(shù)構(gòu)造入侵腳本庫,每個入侵腳本都是一個入侵活動序列。模型推理的方向包括向前推理和向后推理。基于專家系統(tǒng)的特征檢測方法主要是通過專家系統(tǒng)檢測特定入侵行為[4]。
1.3.2 基于行為的檢測技術(shù)
行為檢測技術(shù)主要是指根據(jù)用戶數(shù)據(jù)操作行為以及資源使用情況來判斷是否入侵。主要方法有神經(jīng)網(wǎng)絡(luò)判別方法、數(shù)據(jù)挖掘檢測方法和其他異常檢測方法。
神經(jīng)網(wǎng)絡(luò)判別方法通過尋找到大量能夠用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)算法的已知標(biāo)簽的訓(xùn)練數(shù)據(jù)來實現(xiàn),該方法主要用于處理入侵規(guī)則未知、知識庫不存在,而環(huán)境復(fù)雜的入侵行為,主要方法是首先分析與提取攻擊行為特征,然后進行入侵行為建模,通過測定模型的構(gòu)建自動實現(xiàn)異常系統(tǒng)的識別,補充規(guī)則匹配技術(shù)無法發(fā)現(xiàn)未知入侵行為的不足。其他異常檢測方法主要是通過異常的系統(tǒng)調(diào)用序列來主動識別其應(yīng)用模式、文本分類規(guī)則[5]。
本設(shè)計采用神經(jīng)網(wǎng)絡(luò)方法來部署入侵檢測系統(tǒng)設(shè)計,它自動部署,簡單易用,且具有主動識別入侵特征的數(shù)據(jù)挖掘能力,其系統(tǒng)部署拓?fù)浣Y(jié)構(gòu)如圖1所示。
在入侵檢測系統(tǒng)中,設(shè)置多種類型的檢測引擎,每個引擎負(fù)責(zé)一種類型的入侵檢測,該引擎進行檢測時,同時使用多種方法。即在進行入侵檢測時,一個引擎負(fù)責(zé)一種類型的入侵,對于該入侵則通過多種方法細(xì)化其入侵類型。同時根據(jù)細(xì)化的入侵類型實現(xiàn)多個引擎間的協(xié)調(diào)合作,完成整個入侵檢測任務(wù)。通過多引擎、多任務(wù)、多檢測方法模式可以實現(xiàn)入侵檢測任務(wù)的準(zhǔn)確性與檢測效率[6]。
圖1 系統(tǒng)拓?fù)浣Y(jié)構(gòu)
對于Cloud IDS系統(tǒng)中的數(shù)據(jù)捕獲模塊,主要基于業(yè)界廣泛認(rèn)可的Libpcap函數(shù)庫中的API接口進行二次開發(fā),以適用于大規(guī)模分布式的云計算環(huán)境。在設(shè)定好網(wǎng)絡(luò)適配器模式后,Cloud IDS系統(tǒng)開始監(jiān)聽連接到該網(wǎng)絡(luò)適配器相應(yīng)端口的所有設(shè)備,捕獲鏈路層上的數(shù)據(jù)包并調(diào)用callback函數(shù)將所捕獲數(shù)據(jù)向上提交到Cloud IDS系統(tǒng)的數(shù)據(jù)分析模塊,進行行為判別。其中,Cloud IDS系統(tǒng)中的數(shù)據(jù)捕獲模塊主要包括如下API函數(shù)接口[7]:
pcap_open_live():主要查詢網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)傳輸報文內(nèi)容,函數(shù)處理結(jié)果主要是返回數(shù)據(jù)捕獲描述符。
pcap_stats():主要記錄數(shù)據(jù)包相關(guān)數(shù)據(jù)統(tǒng)計情況的狀態(tài)值,當(dāng)狀態(tài)值為0表示數(shù)據(jù)包正常,若數(shù)據(jù)包檢測總出現(xiàn)異?;蛘邤?shù)據(jù)包無法檢測時則返回-1,表示數(shù)據(jù)包相關(guān)數(shù)據(jù)統(tǒng)計情況的狀態(tài)出現(xiàn)異常,需要對該數(shù)據(jù)包重新檢測。
pcap_set_filter():主要是對裝載分組捕獲設(shè)備信息,通過該函數(shù)可以對一些信息進行過濾,以提高異常設(shè)備準(zhǔn)確性。
pcap_read():該函數(shù)主要負(fù)責(zé)把底層數(shù)據(jù)包過濾機制裝載入緩沖區(qū),然后同時調(diào)用回調(diào)(callback)函數(shù)實現(xiàn)緩沖區(qū)中的數(shù)據(jù)寫入底層。
pcap_close():函數(shù)主要負(fù)責(zé)關(guān)閉正在運行的文件以及釋放該文件所占用的臨時資源。
Cloud IDS系統(tǒng)采用N-Code語言來描述行為規(guī)則。該規(guī)則共包括規(guī)則頭、傳輸協(xié)議、IP地址、端口號和方向操作符5個部分。N-Code行為規(guī)則包含規(guī)則動作、傳輸協(xié)議等。其中,規(guī)則動作是指檢測到的數(shù)據(jù)包當(dāng)滿足該規(guī)則動作時就觸發(fā)相應(yīng)的行為對策,例如設(shè)置:Alert tcp
表示當(dāng)外來數(shù)據(jù)訪問到192.168.1.0網(wǎng)段時,則觸發(fā)報警,同時記錄所有目的IP為該IP地址的數(shù)據(jù)包信息。Cloud IDS系統(tǒng)中的行為規(guī)則匹配主要有以下兩個函數(shù)來實現(xiàn):(1)CreateRuleFile():利用調(diào)用參數(shù)所提供信息,組裝生成一條新的行為規(guī)則;(2)ParseRulesFile():主要是解析所有規(guī)則中的內(nèi)容信息函數(shù),其函數(shù)參數(shù)包括原始規(guī)則字符串、規(guī)則和協(xié)議類型。
在入侵檢測系統(tǒng)中,除了使用簽名的規(guī)則匹配校驗外還使用BP神經(jīng)網(wǎng)絡(luò)算法來實現(xiàn)其他未經(jīng)過識別和無法匹配入侵行為的入侵判斷。本設(shè)計中的BP神經(jīng)網(wǎng)絡(luò)算法是經(jīng)過業(yè)界入侵檢測訓(xùn)練數(shù)據(jù)集訓(xùn)練后的算法,其算法核心公式[8]為
通過pi來得出an值,通過an得到BP的out值,最后通過該out值來判斷該數(shù)據(jù)包是否正常。
為評測Cloud IDS系統(tǒng)入侵檢測功能的有效性,使用MIT林肯實驗室在美國國防先進研究項目局中所開發(fā)的KDD CUP99離線數(shù)據(jù)集作為實驗評測數(shù)據(jù)。該數(shù)據(jù)集除了模擬大量的常態(tài)網(wǎng)絡(luò)數(shù)據(jù)流量外,還包含部分已知類型的典型網(wǎng)絡(luò)攻擊,例如拒絕服務(wù)攻擊、R2L攻擊、U2R攻擊、探測和掃描攻擊等。
KDD CUP99數(shù)據(jù)集中用于訓(xùn)練的前7個星期的數(shù)據(jù)量過大,約為5000000條記錄。選取總量數(shù)據(jù)中10%數(shù)據(jù)共約494021條記錄用作分析樣本,作為系統(tǒng)評測實驗的訓(xùn)練數(shù)據(jù),同時,為了保證所選擇訓(xùn)練數(shù)據(jù)的代表性,基于隨機方法進行選擇。評測實驗的環(huán)境是:CPU為P4 2.0GHz,512M內(nèi)存,硬盤120G,操作系統(tǒng)Windows XP;所采用的仿真工具是Matlab。對于每兩種入侵,選擇150個樣本,其中80個用于訓(xùn)練,其余用于測試。
從圖2可以看出,當(dāng)訓(xùn)練Cloud IDS系統(tǒng)中的BP神經(jīng)網(wǎng)絡(luò)判別算法接近最優(yōu)時,BP神經(jīng)網(wǎng)絡(luò)判別算法迅速收斂,大大減少了迭代次數(shù)(約為54次)。由此可見,BP神經(jīng)網(wǎng)絡(luò)判別算法借助于云計算的超大計算能力,能夠很快地實現(xiàn)尋優(yōu)收斂,彌補了傳統(tǒng)環(huán)境下神經(jīng)網(wǎng)絡(luò)算法收斂緩慢的不足。
評價Cloud IDS系統(tǒng)測試效果的標(biāo)準(zhǔn)主要包括誤報率、漏報率、檢測能力、容侵能力。所謂誤報率主要是指把原本屬于正常的系統(tǒng)運行行為被判斷為入侵行為的概率;漏報率是指入侵行為已經(jīng)發(fā)生,但由于規(guī)則以及檢測上的漏洞,導(dǎo)致沒有檢測到該入侵行為的概率,或者把該次入侵行為按系統(tǒng)正常運行模式處理的概率;檢測率是指在選去數(shù)據(jù)包樣本數(shù)量與總數(shù)據(jù)包總量間的比例。在相同入侵檢測中,檢測率和誤報率是衡量入侵檢測系統(tǒng)檢測能力的兩個基本指標(biāo)。一般來說,這兩個指標(biāo)可以通過增加報警閥值的方式來提高。
圖2 系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)判別算法的收斂情況
表1給出了Cloud IDS系統(tǒng)對典型入侵攻擊類型的檢測率情況??梢?,Cloud IDS系統(tǒng)對PROBING類型的各種未知攻擊檢測率最高,達(dá)到98.3%,而對于該類型的各種已知攻擊檢測率也很高,達(dá)到97.5%;其次,Cloud IDS系統(tǒng)對于U2R的各種未知攻擊檢測率達(dá)到82.1%,而對DoS的各種已知攻擊檢測率為80.2%。之所以如此,是因為PROBING和DoS兩種類型的各種攻擊訓(xùn)練數(shù)據(jù)較多,Cloud IDS系統(tǒng)中的BP神經(jīng)網(wǎng)絡(luò)判別算法具有比較準(zhǔn)確的判別權(quán)值,因此檢測率比較高。
從表2中可以看到,Cloud IDS系統(tǒng)對于檢測己知的入侵有很好的效果,特別是對于OOB攻擊,檢測率達(dá)到99.5%,原因在于OOB攻擊的特征容易辨別,這從另外一方面說明在入侵檢測系統(tǒng)中特征選取很重要。對于另外的幾種攻擊,正確檢測率也都在96.3%以上,比其他的入侵檢測系統(tǒng)要好。
除了檢測已知類型的入侵攻擊,Cloud IDS系統(tǒng)的另一個優(yōu)勢是其學(xué)習(xí)能力,這意味著基于神經(jīng)網(wǎng)絡(luò)的云計算入侵檢測系統(tǒng)不僅可以檢測已知類型的入侵攻擊,而且能夠檢測未知類型的入侵攻擊,實驗結(jié)果如表3所示??梢钥吹?,Cloud IDS系統(tǒng)有能力檢測未知的入侵攻擊,也就是說,CloudIDS系統(tǒng)可以檢測沒有被訓(xùn)練過的入侵行為。這主要是因為神經(jīng)網(wǎng)絡(luò)的分類能力和自管理能力。對于FTP攻擊,漏報率有點高,這是因為FTP攻擊和正常的行為很相似,對于另外的兩種攻擊,測試的結(jié)果還是令人滿意的。
表1 系統(tǒng)檢測出來的攻擊類型及比例
表2 系統(tǒng)測試已知類型攻擊的效率
表3 系統(tǒng)測試未知類型攻擊的效率
云計算的入侵檢測是保證云計算環(huán)境安全的一個重要途徑。本文重點介紹了Cloud IDS系統(tǒng)中網(wǎng)絡(luò)數(shù)據(jù)捕獲、行為規(guī)則匹配、神經(jīng)網(wǎng)絡(luò)判別3個模塊以及通過實驗驗證了Cloud IDS系統(tǒng)的檢測效率,為云計算環(huán)境下的入侵檢測提供一種思路和方法。
[1]Kandukuri B R,Paturi V R,Rakshit A.Cloud security issues[J].IEEE International Conference on Services Computing,2009:517-520.
[2]Koziol J.Snort入侵檢測實用解決方案 [M].吳薄峰.北京:機械工業(yè)出版社,2005:20-33.
[3]閆華.利用SNMP代理實現(xiàn)基于狀態(tài)機的入侵檢測[J].中國測試技術(shù),2005,31(5):96-99.
[4]孫劍華.未來計算在“云端”-淺談云計算和移動學(xué)習(xí)[J].現(xiàn)代教育技術(shù),2009,19(8):60-63.
[5]陳全,鄧倩妮.云計算及其關(guān)鍵技術(shù)[J].計算機應(yīng)用,2009,29(9):2562-2567.
[6]Attanasio C R.Virtual machines and data security,In:Proceedings of the workshop on virtual computer systems[M].New York:NY,USA:ACM,1973:206-209.
[7]Descher M,Masser P,F(xiàn)eilhauer T,et al.Retaining data control to the client in infrastructure clouds[C]∥InTernational Conference on Availability,Reliability and Security,2009(9):9-16.
[8]陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學(xué)報,2009,20(5):1337-1348.