夏淑華
湖南司法警官職業(yè)學院管理系 湖南 410131
隨著計算機技術和網絡技術的迅速發(fā)展,黑客工具泛濫,大量的公司、企業(yè)和個人電腦遭到不同程度的入侵和破壞,給個人和企業(yè)財產帶來了嚴重損失。入侵檢測作為一種主動防御技術,已經成為網絡安全防衛(wèi)的重要組成部分。入侵檢測通過對計算機網絡或計算機系統(tǒng)中的若干關鍵點收集信息并對其進行分析,從中發(fā)現(xiàn)網絡或系統(tǒng)中是否有違反安全策略的行為和被攻擊的跡象。隨著智能計算技術的日趨成熟,人們利用BP神經網絡、遺傳算法及各種改進算法用于入侵檢測系統(tǒng)的研究,開拓了一個新的入侵檢測發(fā)展方向。
圖1 基于模糊k均值和神經網絡的入侵檢測算法流程
BP神經網絡具有較強的自適應學習能力、非線性映射能力和泛化能力,但是BP神經網絡作為一種局部搜索的優(yōu)化方法,也存在著收斂速度慢和容易陷入局部極小的問題。利用 K-means對樣本數據聚類并提取訓練集和測試集,能夠克服樣本不均和神經元個數過多的問題,盡可能滿足類中的數據近似度高,各類間數據近似度低,提高神經網絡訓練時間和訓練精度。圖1為基于模糊k均值和神經網絡的入侵檢測算法流程。
為了驗證基于模糊 k均值和神經網絡算法的性能及效率,生成一個三層結構的神經網絡,包括六個神經元的隱藏層。采用通用的入侵檢測KDD CUP 99 數據集進行實驗,對算法進行100次訓練。算法實現(xiàn)的部分Matlab代碼如下:
i=0;
M=[];
% while i<1 %設置一個循環(huán)用于計算5次平均誤差
%% 生成神經元網絡并訓練神經元網絡
numnue1=nuecell(clusternumb); %調用一下模糊聚類函數判斷聚類個數,計算神經網絡的神經元個數;
% net=newff(all_tra,all_bar,numnue1,{'tansig','purelin'},'trainscg');
net=newff(all_tra,all_bar,numnue1,{'tan sig','purelin'},'trainbfg'); %有彈回的BP算法,用于消除梯度模值對網絡訓練帶來的影響,提高訓練的速度
net=init(net); %初始化一個神經網絡數據
net.trainParam.goal=0.000001; %設置相應的參數
net.trainParam.show=1;
net.trainParam.mc=0.9;
net.trainParam.lr=0.5;
net.trainParam.epochs=50;
[net tr]=train(net,all_tra,all_bar);%訓練神經網絡
MSE=tr.perf;
% figure(1);
% % plot(MSE);
% % axis([0 50 0 100]);
% % title('神經網絡預測');
% % xlabel('x');
% % ylabel('y %誤差度');
% % legend('訓練集誤差曲線');
plotming(tr);
%% 運用已訓練好的網絡進行預測
an1=sim(net,all_tra); %用訓練的神經網絡得到預測結果
C=all_bar-an1; %計算與真實結果的差距
B=abs(C); %絕對值運算
A=(B>0.5); %算出預測錯誤的個數
a=sum(A);
s_n=length(A);
p=(s_n-a)/s_n; %計算百分比
M(i+1)=p; %記錄數據
i=i+1;
M_sumtrain=mean(M); %求多次預測的誤差均值
dis('')
fprintf('訓練集精度: %g%% ',M_sumtrain*100);
%%
i=0;
MSE=tr.perf;
an2=sim(net,all_test); %用訓練的神經網絡得到預測結果
C=all_theory-an2; %計算與真實結果的差距
B=abs(C); %絕對值運算
A=(B>0.5); %算出預測錯誤的個數
a=sum(A);
s_nu=length(A);
p=(s_nu-a)/s_nu; %計算百分比
M(i+1)=p; %記錄數據
i=i+1;
% end
M_sumtest=mean(M); %求多次預測的誤差均值
fprintf('測試集精度:%% ',M_sumtest*100);
通過實驗得到了如表1所示數據,其中訓練集精度為97.0928%,測試集精度為97.8777%。從測試結果來看,相比神經網絡算法,基于模糊k均值和神經網絡的組合算法識別率得到了一定程度的提高,能夠快速、準確地對各種攻擊方式進行學習訓練,從而及時有效地檢測、預報網絡攻擊。
表1 模糊k均值算法和神經網絡算法預測實驗結果
圖2 基于模糊k均值和神經網絡的入侵檢測算法均方根誤差
互聯(lián)網的開放性使得計算機網絡受到來自內外的攻擊與挑戰(zhàn),針對網絡數據中各個字段屬性差異及其對產生入侵行為的作用不同,運用模糊k均值結合神經網絡改進算法對網絡數據建模,通過多次學習確定模型參數,從而對網絡數據進行預測。實驗表明提高了BP神經網絡的訓練速度和計算精度,算法具有較強的實用性。
[1]廖年冬.神經網絡在入侵檢測系統(tǒng)中的研究[D].貴州:貴州大學.2006.
[2]高新波.模糊聚類分析及其應用[M].西安:西安電子科技大學出版社.2004.
[3]唐正軍.網絡入侵檢測系統(tǒng)的設計與實現(xiàn)[M].北京:電子工業(yè)出版社.2005.
[4]楊建剛.人工神經網絡實用教程[M].浙江大學出版社.2001.
[5]郭翠英,余雪麗.基于神經網絡的入侵檢測模型[J].太原理工大學學報.2001.