宋鵬
摘 要:無線傳感器網(wǎng)絡(luò)中,由于受到節(jié)點(diǎn)能量等因素的限制,只能部署輕量級的入侵檢測方案。因此,不可能實(shí)現(xiàn)分布式檢測與集中式檢測相結(jié)合,并且在入侵檢測算法上也存在一定的缺陷。本文提出了一種基于SDWSN的入侵檢測方案,該方案充分利用了SDN轉(zhuǎn)控分離,集中控制的特點(diǎn),并且提出了一種優(yōu)化K值的二分K-means算法。不僅解決了普通節(jié)點(diǎn)計(jì)算能力和能量的限制,而且可以有效地檢測無線傳感器的入侵。仿真結(jié)果表明檢測方案不僅有很高的檢測率,而且減少了普通節(jié)點(diǎn)的能量消耗。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò) SDWSN 入侵檢測 二分K-means算法
中圖分類號:TP311.9 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2018)11(a)-00-02
傳統(tǒng)的無線傳感器網(wǎng)絡(luò)由于受到節(jié)點(diǎn)能量、節(jié)點(diǎn)性能、網(wǎng)絡(luò)拓?fù)涞纫蛩氐南拗芠1],使得人們只能在簇頭上部署輕量級的入侵檢測方案。一旦節(jié)點(diǎn)內(nèi)的能量和資源耗盡,將導(dǎo)致入侵檢測方案難以實(shí)現(xiàn)。針對這些缺陷,許多研究人員提出了SDN作為解決無線傳感器網(wǎng)絡(luò)缺陷的潛在方案——SDWSN[2-3]。通過在SDWSN架構(gòu)的控制層部署入侵檢測算法來實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)中的入侵檢測。
1 軟件定義無線傳感器網(wǎng)絡(luò)
在軟件定義無線傳感器網(wǎng)絡(luò)中主要存在3個基本角色主節(jié)點(diǎn)(MasterNode)、中心節(jié)點(diǎn)(CenterNode)、普通節(jié)點(diǎn)。主節(jié)點(diǎn)作為整個網(wǎng)絡(luò)的控制器,可以根據(jù)控制單元的實(shí)時(shí)情況,如網(wǎng)絡(luò)拓?fù)?、路由傳輸和路由限制等來控制整個網(wǎng)絡(luò)[4]。中心節(jié)點(diǎn)類似于SDN中的OpenFlow交換機(jī),負(fù)責(zé)無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)流匹配和轉(zhuǎn)發(fā)。普通節(jié)點(diǎn)只負(fù)責(zé)接受和執(zhí)行數(shù)據(jù)流。因此,傳感器的普通節(jié)點(diǎn)只進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)操作,任何檢測計(jì)算任務(wù)由主節(jié)點(diǎn)執(zhí)行,但不影響能量消耗。該方法可以解決無線傳感器網(wǎng)絡(luò)的大部分固有問題,促進(jìn)與其他網(wǎng)絡(luò)的互操作性,提高無線傳感器網(wǎng)絡(luò)的效率和可持續(xù)性。
2 一種K值確定的二分K-means算法
假設(shè)X=(x1,x2,…xi,…xn)是Rd空間的數(shù)據(jù),在進(jìn)行聚類之前,假設(shè)K值為類簇的數(shù)量。為了將數(shù)據(jù)分成K個類簇,將空間中所有的點(diǎn)看作一個類簇Ci,然后執(zhí)行當(dāng)K值等于2的K-means算法,將類簇分為兩個類簇[5]。然后計(jì)算這兩個類簇的SSE函數(shù),選擇SSE函數(shù)比較大的那個類簇來繼續(xù)執(zhí)行K=2的K-means算法二分K-means算法進(jìn)行劃分。續(xù)進(jìn)行上述的分割,直到分割類簇的數(shù)量達(dá)到用戶所指定的K值。SSE函數(shù)定義:
(1)
其中,K代表了用戶指定類簇的數(shù)量,ci是指第i個類簇中心,dist代表了歐氏距離。
考慮到K值與實(shí)際類簇?cái)?shù)量之間的關(guān)系。假設(shè)給出一個合適的類簇標(biāo)準(zhǔn),如所有類簇的半徑(簇中所有點(diǎn)到中心的最大距離)的平均值。當(dāng)類簇的數(shù)量等于或者高于實(shí)際簇的數(shù)量時(shí),該指數(shù)會急劇變化。如果從第K步開始,每個簇的平均半徑開始穩(wěn)定,則算法是收斂的,類簇的實(shí)際數(shù)目為K,如圖1,圖2所示。
K-means算法(K=2)如下:
(1)隨機(jī)選擇兩個初始聚類中心。
(2)計(jì)算其他點(diǎn)到這兩個中心的距離;并將這些點(diǎn)分配到離其最近的中心。
(3)計(jì)算每個聚類中所有點(diǎn)的平均值作為一個新的中心。
(4)如果新的聚類中心不同于舊的中心,則返回步驟(2),否則輸出聚類中心。
主要算法:
(1)首先令N=1。
(2)計(jì)算所有類簇的平均半徑Ri。
(3)對平均半徑最大的類簇執(zhí)行當(dāng)K=2時(shí)的K-means算法,N=N+1。
(4)如果連續(xù)兩次分割的平均半徑與前一次分割得到的平均半徑只差的絕對值小于本次分割得到的平均半徑的10%,則返回步驟(3)。
(5)輸出第N-2次分裂的結(jié)果。
3 仿真分析
本文通過使用KDD CUP99數(shù)據(jù)集中的數(shù)據(jù)來驗(yàn)證我們所提出的算法。該數(shù)據(jù)集是針對DoS、Normal和PROBE等KDD CUP99數(shù)據(jù)攻擊類型的10%抽樣數(shù)據(jù),還包含U2R和R2L的所有樣本[6]。本文通過對該數(shù)據(jù)的輸入屬性的選擇和預(yù)處理,使用其進(jìn)行測試。入侵檢測的性能可以通過檢測率和誤報(bào)率來描述。
根據(jù)數(shù)據(jù)集的類型分配比例,隨機(jī)選取10000個數(shù)據(jù),其中正常數(shù)據(jù)8689,異常數(shù)據(jù)1311。通過公式(2)(3)計(jì)算得到改進(jìn)前后聚類算法的檢測率和誤報(bào)率如表1所示。
4 結(jié)語
傳統(tǒng)無線傳感器網(wǎng)絡(luò)由于節(jié)點(diǎn)能量的限制,只能部署輕量級的入侵檢測算法,因此無法實(shí)現(xiàn)分布式檢測與集中式檢測相結(jié)合。因此,針對上述問題,本文檢測SDN新型架構(gòu)引入到WSN中,解決了節(jié)點(diǎn)能量、存儲能力不足的問題,并在這種新型網(wǎng)絡(luò)的基礎(chǔ)上提出了一種K值確定的二分K-means算法,仿真驗(yàn)證了其有效性,具有較高的檢測率和較低的誤報(bào)率。
參考文獻(xiàn)
[1] 張勇,姬生生,王閎毅.基于SDN架構(gòu)的WSN入侵檢測技術(shù)[J].河南大學(xué)學(xué)報(bào):自然科學(xué)版,2015,45(2):211-216.
[2] H. Kaur S. Sahore.A survey on wireless sensor network (wsn) security using AI methods[J].International Journal of Latest Trends in Engineening and Technology,2016,7(4):234-239.
[3] H. I. Kobo, A. M. Abu-Mahfouz,G. P. Hancke.A Survey on Software-Defined Wireless Sensor Networks: Challenges and Design Requirements[J]IEEE Access, 2017,5(1):1872-1899.
[4] 任萬里.基于軟件定義網(wǎng)絡(luò)的無線傳感網(wǎng)關(guān)鍵技術(shù)研究[D].河南大學(xué),2014.
[5] 梁烜彰.基于大數(shù)據(jù)平臺的用戶搜索日志分析和研究[D].華南理工大學(xué),2018.
[6] 易倩.改進(jìn)的聚類與決策樹算法在入侵檢測中的應(yīng)用[D].廣東工業(yè)大學(xué),2012.