楊宇夏 孫浩月,2,*
(1.河北建筑工程學(xué)院,河北 張家口 075000;2.張家口市大數(shù)據(jù)技術(shù)創(chuàng)新中心,河北 張家口 075000)
隨著互聯(lián)網(wǎng)的不斷發(fā)展、普及,大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)等新興技術(shù)的不斷完善.越來(lái)越多的設(shè)備接入互聯(lián)網(wǎng),徹底改變了人們的衣、食、住、行,人們從而享受著這改變帶來(lái)的極大便利,讓人們減少生活中的煩惱而更加專(zhuān)心工作.但是網(wǎng)絡(luò)空間安全威脅問(wèn)題近十年來(lái)急劇增加,比如2010年旨在破壞伊朗的核武器計(jì)劃的計(jì)算機(jī)蠕蟲(chóng)病毒“震網(wǎng)”和黑客入侵Google后端基礎(chǔ)設(shè)施的極光行動(dòng)事件,以及2013年暴露了美國(guó)及其“五眼聯(lián)盟”在911襲擊后建立的全球監(jiān)視網(wǎng)絡(luò)的斯諾登事件.這些事件都說(shuō)明了網(wǎng)絡(luò)空間安全的威脅越來(lái)越嚴(yán)重了.隨著全球各地對(duì)網(wǎng)絡(luò)空間的日趨重視.提高網(wǎng)絡(luò)安全檢測(cè)手段和技術(shù)刻不容緩,一大批學(xué)者爭(zhēng)先恐后研究網(wǎng)絡(luò)空間安全.本文提出一種基于k近鄰算法的入侵檢測(cè)模型,用kdd99數(shù)據(jù)集驗(yàn)證的時(shí)候效果非常不錯(cuò).
入侵檢測(cè)就是在局域網(wǎng)的內(nèi)部的某些關(guān)鍵的設(shè)備上,比如交換機(jī)路由器上檢測(cè)來(lái)往的流量,對(duì)其行為進(jìn)行預(yù)測(cè),判斷是否是惡意行為.入侵檢測(cè)是一種主動(dòng)防御技術(shù),相對(duì)于傳統(tǒng)通過(guò)標(biāo)識(shí)入侵?jǐn)?shù)據(jù)來(lái)達(dá)到檢測(cè)目的的被動(dòng)防御技術(shù),它的防御能力更好.如果把防火墻比喻成一個(gè)房子外面的籬笆,那么入侵檢測(cè)就是房子里面的監(jiān)視系統(tǒng).它是防火墻的合理補(bǔ)充,能夠擴(kuò)大管理員的安全管理能力,提高效率和減低成本,為各種入侵和誤操作進(jìn)行實(shí)時(shí)保護(hù).
k近鄰算法(KNN算法)由Thamas等于1967年提出.它基于以下思想:要確定一個(gè)樣本的類(lèi)別,可以計(jì)算它與所有訓(xùn)練樣本的距離,然后找出和該樣本最接近的k個(gè)樣本,統(tǒng)計(jì)這些樣本的類(lèi)別的數(shù)量以進(jìn)行投票,票數(shù)最多的那個(gè)類(lèi)就是分類(lèi)結(jié)果.
對(duì)于分類(lèi)問(wèn)題,給定l個(gè)訓(xùn)練樣本(xi,yi),其中,xi為特征向量,yi為標(biāo)簽值,設(shè)定參數(shù)k,假設(shè)類(lèi)型為c,待分類(lèi)樣本的特征向量為x.預(yù)測(cè)算法的流程如下.
1)在訓(xùn)練樣本集中找出離x最近的k個(gè)樣本,假設(shè)這些樣本的集合為N.
2)統(tǒng)計(jì)集合N中每一類(lèi)樣本的個(gè)數(shù)Ci,i=1,2,.....,c
3)最終的分類(lèi)結(jié)果為arg maxCi
在這里,arg maxCi表示最大的Ci值對(duì)應(yīng)的那個(gè)類(lèi)i,如果k=1,k近鄰算法退化成最近鄰算法[2].
KDD入侵檢測(cè)模型結(jié)構(gòu)如圖1所示,步驟如下:
圖1 KDD入侵檢測(cè)模型結(jié)構(gòu)
步驟一:分析原始數(shù)據(jù),把文本數(shù)據(jù)轉(zhuǎn)化為數(shù)字?jǐn)?shù)據(jù).
步驟二:每個(gè)入侵行為的各維特征使用的量綱和量綱單位都不一樣,為了使它們可相互比較,故消除量綱,對(duì)KDD99數(shù)據(jù)集進(jìn)行歸一化處理.
步驟三:把處理好的數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集占總數(shù)據(jù)的60%.
步驟四:用KDD算法進(jìn)行分類(lèi),得到分類(lèi)結(jié)果.
KDD99數(shù)據(jù)集是網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域的基準(zhǔn),為基于計(jì)算智能的網(wǎng)絡(luò)入侵檢測(cè)研究奠定基礎(chǔ),因此本文選擇該數(shù)據(jù)集進(jìn)行驗(yàn)證.本文用到的數(shù)據(jù)一共有311029條,最后分為60%的訓(xùn)練集和40%的測(cè)試集.該數(shù)據(jù)集的每一條數(shù)據(jù)一共有42維,前41維是特征,最后一維是標(biāo)簽.特征中有9個(gè)離散特征,其余是連續(xù)特征.該數(shù)據(jù)集包含DOS、R2L、U2L、pribling四種網(wǎng)絡(luò)入侵的行為.入侵行為分布如表1所示.
表1 入侵行為分布表
數(shù)據(jù)預(yù)處理就是去除數(shù)據(jù)中不完整的、由于各種原因而損失的和不規(guī)范的值的侵?jǐn)_,從而達(dá)到提高數(shù)據(jù)質(zhì)量的目的.如果不去除這些侵?jǐn)_,會(huì)影響到數(shù)據(jù)的準(zhǔn)確性、完整性、一致性、時(shí)效性、可信性和可解析性,會(huì)影響到最后分類(lèi)的結(jié)果.
圖2是KDD99數(shù)據(jù)集的截圖,從中可以知道,第二列表示tcp,udp,icmp三種協(xié)議類(lèi)型,網(wǎng)絡(luò)服務(wù)類(lèi)型在第三列,包括http_443,echo,link,finger等70種,第四列表示網(wǎng)絡(luò)連接狀態(tài),包括OTH,REJ,RSTO等11種類(lèi)型,第41列表示normal,buffer_overflow,loadmodule等38種攻擊類(lèi)型.這幾列都是文本數(shù)據(jù)類(lèi)型,只有數(shù)字?jǐn)?shù)據(jù)才能輸入到模型中訓(xùn)練,所以需要轉(zhuǎn)化為數(shù)字?jǐn)?shù)據(jù)類(lèi)型.轉(zhuǎn)換方法是把這幾列中每列所有的類(lèi)型初始化列表,再把相應(yīng)的字符類(lèi)型數(shù)據(jù)轉(zhuǎn)換為其在數(shù)組的下標(biāo),從而實(shí)現(xiàn)把字符類(lèi)型數(shù)據(jù)轉(zhuǎn)化為數(shù)據(jù)類(lèi)型數(shù)據(jù).
圖2 KDD99數(shù)據(jù)集截圖
轉(zhuǎn)化后的數(shù)據(jù)特征由于量綱不同而差異較大,而歸一化可以消除量綱的影響,讓不同入侵行為的每個(gè)特征在數(shù)值上具有可比性,這樣的數(shù)據(jù)得出來(lái)的結(jié)果才有分析的意義,因此還要對(duì)對(duì)于已經(jīng)把文本數(shù)據(jù)轉(zhuǎn)化為數(shù)字?jǐn)?shù)據(jù)的KDD99數(shù)據(jù)進(jìn)行去除量綱的歸一化處理,步驟如下所示:
(1)選取每個(gè)特征的最大最小值:每一個(gè)入侵行為都有41個(gè)特征,需要選取除了是離散類(lèi)型數(shù)據(jù)的每個(gè)入侵行為相同特征的最大值和最小值.
(2)入侵行為數(shù)據(jù)歸一化:用每個(gè)入侵行為的每個(gè)特征分別減去每個(gè)特征對(duì)應(yīng)的最小值的差除以其最大值與最小值的差,歸一化公式具體如下所示:
其中,Min和Max分別表示每個(gè)特征向量的最小值和最大值,歸一后的數(shù)據(jù)將在[0,1]之間.
使用的最廣泛的評(píng)價(jià)模型預(yù)測(cè)能力的是二維混淆矩陣(Confusion matrix),如表2所示:
表2 二維混淆矩陣
準(zhǔn)確率(Accuracy)表示正確分類(lèi)的測(cè)試實(shí)例的個(gè)數(shù)占測(cè)試實(shí)例總數(shù)的比例,公式為:
召回率(Recall),也叫查全率,表示正確分類(lèi)的正例個(gè)數(shù)占實(shí)際正例個(gè)數(shù)的比例,公式為:
精確率(Precision),也叫查準(zhǔn)率,表示正確分類(lèi)的正例個(gè)數(shù)占分類(lèi)為正例的實(shí)例個(gè)數(shù)的比例,公式為:
F1-score是基于召回率(Recall)與精確率(Precision)的調(diào)和平均,即將召回率和精確率綜合起來(lái)評(píng)價(jià),公式為:
本文就是用二維混淆矩陣評(píng)價(jià)KDD入侵檢測(cè)模型,檢測(cè)結(jié)果如下:
表3 檢測(cè)結(jié)果
從上表可以看出KDD數(shù)據(jù)集中的38種攻擊類(lèi)型除了一些數(shù)據(jù)比較少在訓(xùn)練的時(shí)候提取的特征不足而造成召回率、精確率和f1-score低外,其他的攻擊類(lèi)型的召回率、精確率和f1-score都很高,而且模型對(duì)測(cè)試集124412個(gè)行為的預(yù)測(cè)準(zhǔn)確率達(dá)到98%,所以這個(gè)模型能夠很好的預(yù)測(cè)已有的攻擊行為.
互聯(lián)網(wǎng)發(fā)展越來(lái)越快,普及得越來(lái)越廣.方便人們的生活,促進(jìn)經(jīng)濟(jì)的快速發(fā)展.但是網(wǎng)絡(luò)空間安全問(wèn)題發(fā)生的越來(lái)越頻繁,也越來(lái)越嚴(yán)重.傳統(tǒng)的安全防御技術(shù)面對(duì)這種情況已經(jīng)捉襟見(jiàn)肘,已經(jīng)落后了不少,亟須要更好更完善得方法和技術(shù)防御網(wǎng)絡(luò)入侵.而近年來(lái)人工智能得興起,并迅速發(fā)展,不少學(xué)者用人工智能得算法應(yīng)用到入侵檢測(cè)領(lǐng)域.從而彌補(bǔ)了傳統(tǒng)防御技術(shù)由于是人工標(biāo)識(shí)入侵?jǐn)?shù)據(jù)而達(dá)到檢測(cè)目的的缺點(diǎn),應(yīng)用了人工智能方法的入侵檢測(cè)技術(shù)大多可以大大提高了檢測(cè)的效率和明顯降低檢測(cè)的成本.是當(dāng)前最流行和火熱的檢測(cè)方法.本文使用基于KNN的入侵檢測(cè)技術(shù),經(jīng)過(guò)對(duì)數(shù)據(jù)集的觀察和分析,發(fā)現(xiàn)數(shù)據(jù)集中有文本數(shù)據(jù),需要轉(zhuǎn)化為數(shù)字?jǐn)?shù)據(jù),為了消除量綱再進(jìn)行歸一化進(jìn)行處理,最后進(jìn)行檢測(cè).結(jié)果表明準(zhǔn)確率可以達(dá)到98%.