張陽+張琛+唐朝京


摘 要:對(duì)于目前計(jì)算機(jī)防御技術(shù)的不成熟和日益突出的網(wǎng)絡(luò)安全問題,運(yùn)用人工免疫中的DCA算法,提出一種以改進(jìn)單分類器DCA算法為基礎(chǔ)的主動(dòng)安全防御算法。DCA算法作為最新的人工免疫算法,以危險(xiǎn)信號(hào)為基礎(chǔ)對(duì)異物進(jìn)行識(shí)別,而主動(dòng)安全DCA算法弱化了主觀人為因素對(duì)實(shí)驗(yàn)結(jié)果的影響。對(duì)算法進(jìn)行驗(yàn)證,結(jié)果表明,該算法對(duì)于smurf攻擊具有較高的檢測(cè)率。
關(guān)鍵詞: 危險(xiǎn)理論; DCA算法; 主動(dòng)安全防御; smurf攻擊
中圖分類號(hào): TN915.08?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)15?0053?04
Defense algorithm for active safety based on DCA
ZHANG Yang, ZHANG Chen, TANG Chaojing
(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)
Abstract: Since the current computer defense technology is immature and the network security problem becomes more prominent, an defense algorithm for active safety based on the modified single classifier dendritic cell algorithm (DCA) is proposed. DCA is the latest artificial immune algorithm, which takes danger signal as the foundation to recognize foreign body. The active safety DCA weakened the subjective human factors influencing on the experimental results. In this paper, the algorithm is verified, and the verification results show that the algorithm has higher detection rate for the smurf attack.
Keywords: danger theory; DCA; active safety defense; smurf attack
0 引 言
主動(dòng)防御系統(tǒng)能夠自主識(shí)別影響主機(jī)正常運(yùn)行的各種異常行為,相對(duì)于傳統(tǒng)的防護(hù)體系,需要較少或極少的人工干預(yù),因此也相對(duì)比較智能。例如,主動(dòng)安全防御系統(tǒng)通過對(duì)外部、內(nèi)部網(wǎng)絡(luò)入侵知識(shí)的獲取及運(yùn)用,能夠自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)入侵行為;通過對(duì)本機(jī)系統(tǒng)調(diào)用及日志的查看,能夠識(shí)別出異常進(jìn)程。
然而,主動(dòng)安全防御系統(tǒng)的研究也相對(duì)不是很成熟,隨著近年來人工智能算法的深入研究,主動(dòng)安全防御技術(shù)也獲得了一些突破與進(jìn)展,越來越多的學(xué)者把諸如蟻群算法、遺傳算法、神經(jīng)網(wǎng)絡(luò)和人工免疫等運(yùn)用于防御系統(tǒng)。
人工免疫算法在計(jì)算機(jī)安全方面的運(yùn)用具有先天的優(yōu)勢(shì),其模擬自然界生物的免疫進(jìn)行異常檢測(cè)。本文將較新的DCA算法運(yùn)用于主動(dòng)安全系統(tǒng),結(jié)果表明,該算法具有較好的檢測(cè)效果。
傳統(tǒng)的人工免疫算法基于自我/非我模型,有時(shí)也會(huì)對(duì)非入侵行為發(fā)出錯(cuò)誤的報(bào)警信息,造成一定的誤檢和漏檢的發(fā)生。
危險(xiǎn)理論基于危險(xiǎn)信號(hào)的識(shí)別與檢測(cè)技術(shù),其中的關(guān)鍵技術(shù)是對(duì)危險(xiǎn)信號(hào)的定義和提取工作。本文主要研究了危險(xiǎn)理論中的DCA算法,首先根據(jù)攻擊等特點(diǎn)定義危險(xiǎn)信號(hào),以及DCA算法中的遷移閾值、權(quán)值矩陣等參數(shù)值,由于本文重在檢驗(yàn)算法,基于篇幅考慮故將危險(xiǎn)信號(hào)的提取部分略去,直接使用KDD Cup99數(shù)據(jù)集進(jìn)行測(cè)試。
鑒于算法的通用性,可以根據(jù)不同危險(xiǎn)信號(hào)的定義和提取將該算法用于各種攻擊行為的檢測(cè),其中包括網(wǎng)絡(luò)蠕蟲的檢測(cè)與防御技術(shù)。
1 危險(xiǎn)理論和DCA算法介紹
1.1 危險(xiǎn)理論
傳統(tǒng)的自體/非自體理論對(duì)于一些現(xiàn)象解釋出現(xiàn)矛盾,比如,在懷孕、衰老等情況下自身發(fā)生變化,但并沒引起免疫應(yīng)答。免疫系統(tǒng)對(duì)一些明顯發(fā)生細(xì)胞突變的腫瘤卻不發(fā)生排斥。太多的現(xiàn)象使人們感到“自我和非我”起碼不能完全決定機(jī)體的免疫應(yīng)答。1994年Matzinger首先提出危險(xiǎn)理論,她認(rèn)為免疫系統(tǒng)所能區(qū)分的實(shí)際上是“從某些非我中區(qū)分出某些自我”,并且聲稱危險(xiǎn)模式理論提出的不僅僅是一個(gè)新的概念,而且是一種避開區(qū)分自我和非我的方法。危險(xiǎn)理論假定免疫系統(tǒng)的激活不是由非自體的檢測(cè)惟一決定,也不對(duì)一個(gè)潛在的入侵做出響應(yīng),直到危險(xiǎn)被檢測(cè)到。結(jié)果顯示這些危險(xiǎn)信號(hào)是由病原感染細(xì)胞的壞死導(dǎo)致的。危險(xiǎn)信號(hào)的出現(xiàn)與被稱為抗原的潛在感染體分泌的蛋白質(zhì)相結(jié)合,是引起HIS防御應(yīng)答的必要條件。
1.2 DCA理論
樹突狀細(xì)胞(Dendritic Cell,DC)作為先天性免疫系統(tǒng)中專職的抗原提呈胞,能夠融合處理多種環(huán)境信號(hào),并將信號(hào)與抗原相關(guān)聯(lián),分析得到抗原的異常指標(biāo)。受DC功能的啟示,Greensmith等人通過對(duì)DC抗原提呈行為進(jìn)行抽象建模設(shè)計(jì)實(shí)現(xiàn)了樹突狀細(xì)胞算法(Dendritic Cell Algorithm,DCA),開創(chuàng)了一種全新的免疫算法。
DCA的基本原理就是仿真了生物免疫中DC狀態(tài)轉(zhuǎn)換的過程,把DC抽象為一個(gè)類似于信號(hào)處理器的數(shù)據(jù)結(jié)構(gòu),通過線性信號(hào)處理模型模擬DC的信號(hào)處理過程,對(duì)輸入信號(hào)進(jìn)行計(jì)算得到輸出信號(hào)決定DC的狀態(tài)。
輸入信號(hào)包括:
(1) PAMP表示存在異常,PAMP的增強(qiáng)表明存在異常的可靠度增加;
(2) DS表示可能存在異常,DS的增強(qiáng)表明存在異常的可能性增加,相比于PAMP的可靠度較低;
(3) SS表示異常的可能性非常小,SS的增強(qiáng)表明正常的可能性增加,存在異常的可能性減少,用于抵消PAMP和DS的影響。
IC用于放大前3種信號(hào)的影響。
輸出信號(hào)包括:
(1) 協(xié)同刺激分子csm(co?stimulatory molecules)用于決定DC是否進(jìn)行狀態(tài)轉(zhuǎn)換;
(2) 半成熟樹突狀細(xì)胞因子semi(semi?mature DC cytokines)表示抗原所處組織環(huán)境的安全程度;
(3) 成熟樹突狀細(xì)胞因子mat(mature DC cytokines)表示抗原所處組織環(huán)境的危險(xiǎn)程度。
DC分化過程的抽象化表示[1],如圖1所示。
2 基于DCA的主動(dòng)防御算法的實(shí)現(xiàn)
2.1 主動(dòng)防御DCA算法流程及說明
本實(shí)驗(yàn)采用了樹突狀細(xì)胞算法[2]并進(jìn)行了改進(jìn),為了盡可能減小人為主觀因素對(duì)結(jié)果的影響,算法對(duì)遷移閾值采用隨機(jī)選取,并通過多輪處理來修正結(jié)果。
算法的偽代碼如下:
輸入:抗原和經(jīng)過預(yù)處理的信號(hào)
輸出:抗原類型和其MCAV值
初始化DC種群,在一定范圍內(nèi)隨機(jī)選取遷移閾值;
for 每輪處理 do
for 每個(gè)抗原 do
更新組織抗原向量和信號(hào)向量
隨機(jī)從DC種群選取Mc個(gè)DC
for 每個(gè)被選擇的DC do
得到并存儲(chǔ)抗原;
得到并存儲(chǔ)該抗原的三組預(yù)處理信號(hào);
由輸入信號(hào)計(jì)算得到輸出信號(hào);
if 累積Csm≥遷移閾值then
if 累積Mat≥累積Semi then
ContextValue=1;
else
ContextValue=0;
end if
DC遷移到淋巴結(jié);
組織中增加一個(gè)新DC;
end if
if ContextValue == 1 then
更新抗原記錄;
更新DC種群;
end if
end for
end for
end for
for每個(gè)抗原 do
計(jì)算抗原的MCAV值;
對(duì)抗原進(jìn)行標(biāo)記處理;
end if
圖1 生物分化過程抽象模型
2.2 數(shù)據(jù)預(yù)處理及說明
為了檢驗(yàn)?zāi)P驮O(shè)計(jì),本文采用KDD Cup99數(shù)據(jù)集進(jìn)行測(cè)試。數(shù)據(jù)來源于kddcup.data_10_percent文件,總共包括494 021條數(shù)據(jù),其中97 278條正常連接和396 743條攻擊,10%的子集與完整數(shù)據(jù)集保持相同的統(tǒng)計(jì)特性。
考慮到原始數(shù)據(jù)有41個(gè)特征屬性,首先需要對(duì)數(shù)據(jù)集進(jìn)行簡(jiǎn)化處理。參照文獻(xiàn)[3],通過計(jì)算相應(yīng)屬性間的信息熵,計(jì)算公式如下:
[Gain(S,A)=Entropy(S)-v∈Values(A)SvSEntropy(Sv)]
式中:[S]為正常/攻擊類型;[A]為屬性;Entropy是計(jì)算熵值。
根據(jù)各個(gè)屬性間的信息熵計(jì)算結(jié)果,得到各個(gè)屬性與攻擊間的相關(guān)程度,選取部分屬性列舉見表1。
表1 正常/攻擊類型與相關(guān)屬性
[正常/攻擊類型\&相關(guān)屬性\&normal\&1,6,12,15,16,17,18,19,31,32,37\&smurf\&2,3,5,23,24,27,28,36,40,41\&neptune\&4,25,26,29,30,33,34,35,38,39\&]
綜合考慮各個(gè)攻擊與屬性相關(guān)性[2],選取10個(gè)屬性值:12,23,24,25,26,29,31,32,38,40,作為下面檢測(cè)攻擊的數(shù)值進(jìn)行計(jì)算。
2.3 抗原及信號(hào)的定義
本文將數(shù)據(jù)集的每一條記錄信息看作是一個(gè)抗原,由于算法中采用在(50,100)內(nèi)隨機(jī)選取遷移閾值,具有一定的隨機(jī)波形特性,運(yùn)行結(jié)果進(jìn)行了[L]輪(在程序中具體設(shè)置)計(jì)算后給出。
DCA模型使用的信號(hào)是經(jīng)過預(yù)分類和預(yù)規(guī)格化的數(shù)據(jù)源。各種信號(hào)根據(jù)應(yīng)用領(lǐng)域的相關(guān)知識(shí)預(yù)分類為PAMP,SS(安全信號(hào)),DS(危險(xiǎn)信號(hào)),之后需進(jìn)行預(yù)規(guī)格化,以取得預(yù)期的效果。本文將PAMP,SS,DS信號(hào)統(tǒng)一規(guī)格化到[0,100],規(guī)格化函數(shù)定義如下:
[f(x)=0,x∈0,mxn-m×100,x∈m,n100,x∈n,+∞]
式中:[x]為原始信號(hào)值,當(dāng)[x∈[m,n]]時(shí)進(jìn)行線性映射,[x]的最大值和最小值分別為100和0。
定義抗原和信號(hào)如下:
抗原:494 021個(gè)數(shù)據(jù)記錄;
信號(hào):
PAMP(五個(gè)屬性):serror_rate(25),srv_serror_rate(26),same_srv_rate(29),dst_host_serror_rate(38),dst_host_rerror_rate(40);
SS(三個(gè)屬性):logged_in(12),srv_diff_host_rate(31),dst_host_count(32);
DS(兩個(gè)屬性):count(23),srv_count(24)。
定義輸入到輸出信號(hào)的權(quán)值矩陣(可調(diào)整)見表2。
表2 算法權(quán)值矩陣
[\&PAMP\&DS\&SS\&Csm\&2\&0\&2\&Semi\&0\&0\&2\&Mat\&2\&1\&-2\&]
3 測(cè)試結(jié)果及分析
3.1 測(cè)試結(jié)果
為了對(duì)主動(dòng)防御DCA算法進(jìn)行驗(yàn)證,選取數(shù)據(jù)集的前10 000條記錄進(jìn)行測(cè)試,前10 000條記錄中,smurf攻擊數(shù)據(jù)記錄從第7 794條記錄開始到第10 000條,其余均為正常數(shù)據(jù)記錄。算法測(cè)試結(jié)果如圖2所示。
圖2是對(duì)kddcup.data_10_percent文件的前10 000個(gè)點(diǎn)測(cè)試的結(jié)果,分析原始數(shù)據(jù)可以看到,數(shù)據(jù)集從第7 794個(gè)數(shù)據(jù)點(diǎn)開始出現(xiàn)smurf攻擊,一直到第10 000個(gè)點(diǎn)。
圖2 算法測(cè)試結(jié)果
測(cè)試結(jié)果總體吻合,其中在前一部分出現(xiàn)了少部分噪點(diǎn),說明算法還存在一定的誤差。通過分析數(shù)據(jù)集和輸出結(jié)果可得,結(jié)果在第7 794個(gè)點(diǎn)處準(zhǔn)確地區(qū)分了攻擊的出現(xiàn),如圖3所示,這也在很大程度上看出了主動(dòng)安全DCA算法對(duì)smurf攻擊的辨別比較準(zhǔn)確。
3.2 測(cè)試結(jié)果性能評(píng)估
依據(jù)常用的單類分類問題的性能衡量指標(biāo)的方法,下面對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行準(zhǔn)確的性能評(píng)估。分別計(jì)算實(shí)驗(yàn)結(jié)果的檢測(cè)率(DR),誤報(bào)率(FPR)和漏報(bào)率(FNR),結(jié)果見表3。
表3 測(cè)試性能評(píng)估數(shù)據(jù)表
[Number\&Total\&TPs\&FPs\&TNs\&FNs\&\&10 000\&7 779\&8\&2173\&40\&Ratio\&TP\&FP\&TN\&FN\&\&\&0.998 973\&0.001 027\&0.981 925\&0.018 075\&\&Ratio\&DR\&FPR\&FNR\&\&\&\&0.981 925\&0.001 027\&0.018 075\&\&\&]
由算法測(cè)試評(píng)估計(jì)算結(jié)果可知,該測(cè)試的DR達(dá)到了98.19%,對(duì)于smurf攻擊具有較高的檢測(cè)率,而算法的FPR和FNR分別為0.1%和1.8%,由此可見,該算法對(duì)于smurf攻擊的檢測(cè)很有效。
圖3 測(cè)試攻擊開始放大圖
4 結(jié) 語
本文對(duì)DCA算法進(jìn)行了研究及改進(jìn),并將其應(yīng)用于主動(dòng)安全防御系統(tǒng)。作為人工免疫的最新算法,DCA算法表現(xiàn)出了較高的準(zhǔn)確率,而改進(jìn)算法則運(yùn)用隨機(jī)特性弱化了人為主觀因素對(duì)危險(xiǎn)信號(hào)的影響,提高了算法的準(zhǔn)確性。本文在后文給出了算法用于KDD Cup99數(shù)據(jù)集的測(cè)試結(jié)果及性能評(píng)估,結(jié)果表明,該算法對(duì)smurf攻擊具有較高的檢測(cè)率。
鑒于算法的通用性,可以根據(jù)不同的危險(xiǎn)信號(hào)的定義和提取而將該算法用于各種攻擊行為的檢測(cè),其中包括網(wǎng)絡(luò)蠕蟲的檢測(cè)與防御等技術(shù)。
參考文獻(xiàn)
[1] ZANERO S. ULISSE, a network intrusion detection system [C]// Proceedings of 2008 the 4th Annual Workshop on Cyber Security and Information Intelligence Research. New York: ACM, 2008: 45?49.
[2] GU F, GREENSMITH J, AICKELIN U. Further exploration of the dendritic cell algorithm [C]// Proceedings of 2008 International Conference on Artificial Immune Systems. Phuket: Springer Verlag, 2008: 142?153.
[3] KAYACIK H G, ZINCIR?HEYWOOD A N, HEYWOOD M I. Selecting features for intrusion detection:a feature relevance analysis on KDD 99 intrusion detection datasets [C]// 2005 IEEE Third Annual Conference on Privacy, Security and Trust. New Brunswick: IEEE, 2005: 75?80.
[4] NIEMI O P, LEVOMAKI L, MANNER M. Dismantling intrusion prevention systems [C]// Proceedings of 2012 ACM SIGCOMM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication. New York: ACM, 2012: 285?286.
[5] 盧天亮.基于人工免疫系統(tǒng)的惡意代碼檢測(cè)技術(shù)研究[D].北京:北京郵電大學(xué),2013.
[6] 王維,張鵬濤,譚營(yíng),等.一種基于人工兔疫和代碼相關(guān)性的計(jì)算機(jī)病毒特征提取方法[J].計(jì)算機(jī)學(xué)報(bào),2011,34(2):204?215.