楊姣
(德州職業技術學院 山東省德州市 251500)
k 近鄰算法(k-Nearest Neighbor,KNN)的算法思路是如果某樣本能夠被劃分在一個特征空間中,如果該特征空間中的k 個相鄰樣本屬于某一特定類別,那么該樣本也屬于此類別[1]。而且KNN算法在進行決策時會確定當前樣本的類別,推測當前樣本的類別的方法是根據當前樣本與K 個數據點之間的歐氏距離大小來進行判定的。
KNN 算法思路是比較容易實現的,首先,在每一個數據點上計算未知實例到已知實例的歐氏距離,然后選取適當的參數k,通常k 的值比較小,不超過20。最后,對測試的未知實例進行分類,分類的評定規則主要是根據多數表決的結果將未知實例分類到樣本最多的類別。舉例說明:在一個有三角和方框的測試樣本中,當K=3 時距離未知數據最近的為三角所以判定為三角,當K=5 時距離最近的為方框所以被判定為方框。
KNN 算法能有效地進行二維空間的分類,在多維空間中分類精度也較高。KNN 算法的優點是實現起來比較簡單,對異常數據流不是很敏感,可以對一些交叉樣本進行正確分類[2]。但是由于KNN 算法是通過計算歐氏距離的大小來進行決策的,這也導致當樣本數據量變大時算法的性能會受到影響。
網絡數據流異常檢測即在數據流發生異常時可以立即檢測出來的一種實時監測技術。用戶實時的檢測網絡的安全情況,一旦發生網絡入侵或者是惡意攻擊行為能夠及時的采取相關的措施。因此,數據流異常檢測成為了維護和維持網絡安全的主要技術,受到了國內外眾多機構的關注,是一直以來研究的熱點問題。雖然檢測的方法、種類各式各樣,但是仍存在很多弊端,所以如何準確實時的發現網絡異常行為仍是一大難題。在科技飛速發展,大量持續變化的數據源源不斷產生的今天,將機器學習算法用于網絡異常檢測成為目前一個重要的研究方向。
通過高斯函數自適應選取KNN 算法的k 值,解決了樣本空間分布不均的問題。常規KNN 分類算法對每個屬性賦予相同的權值。通過對屬性重要性的判別,利用隨機森林算法確定屬性的重要性,并按其重要度進行排序。通過bootstrap 隨機重采樣技術和隨機節點分割技術,在計算屬性重要性時構建多個決策樹,并對最終的分類結果進行投票。在此基礎上,引入了基于KNN 的組合加權(CWKNN)算法,提高了異常檢測的速度,并在此基礎上引入了KNN算法。若要對采樣距離進行加權,可利用高斯函數對不同距離采樣權進行優化。若訓練樣本與測試樣本間的距離較大時,這個距離值的權重就會減小。即兩個樣本的歐氏距離更小,則可以分配較多的權值,而樣本間的歐氏距離較大時,其分配的權值相對較小[3]。圖示1 為改進算法的異常檢測流程圖。

圖1:基于KNN 的網絡異常檢測流程
在KDDCUP99 數據集中收集數據,然后以MATLAB 為工具進行數據分析,數據集選取已知異常與正常具體比例的數據集組成,并將其分為3組。其中利用KNN算法進行分類決策獲得的實驗結果,利用改進的CW-KNN 算法獲得的分類實驗結果。通過比較很明顯,改進后的KNN 算法不僅在分類過程中讓數據更集中,還能夠很好的將正常數據和異常數據進行分離。
接下來根據誤報率、準確率以及檢測率三個指標確定算法的性能,并選取KNN-ACO,ABTSVM 兩種算法進行仿真實驗,圖2、圖3 和圖4 顯示了檢測率、誤報率和準確率的具體比較情況。

圖2:檢測率比較

圖3:誤報率比較

圖4:準確率比較
結果表明,改進的CW-KNN 模型算法在檢測率、誤報率以及準確率上相比其他三種算法都有明顯的優勢,具有良好的分類效果。
隨著信息化的不斷深入和發展,計算機技術在教育行業得到廣泛的應用,目前大部分學校都有獨立的網站、FTP 服務器、Email郵件服務器,極大推動了學校教科研水平的提高[4]。校園網作為教學、科研、交流等資源平臺,給現代教育帶來豐富的信息,但其本身也面臨很多的威脅:用戶無節制的使用網絡資源,玩網絡游戲、在線觀看視頻等,影響其他人的上網速度,造成網絡資源的浪費;學生瀏覽暴力和色情網站,嚴重影響了其身心健康的成長。如何及時發現校園網絡中的異常現象,杜絕濫用網絡資源以及瀏覽不良網絡內容,合理利用網絡資源、凈化網絡環境,提高網絡服務質量,是校園網絡須亟待解決的問題[5]。傳統的網絡數據采用離線數據的檢測分析方法,但是隨著網絡規模的擴大,網絡數據量的急劇增大,離線數據分析方法已經不能滿足網絡應用的需要,它沒有考慮到網絡數據的動態性和實時性,對網絡狀態的分析相對滯后。而基于數據流的數據技術可以實時檢測網絡數據、監控網絡的行為。
結合校園安全的工作需求,在大數據技術的基礎上,將校園的網絡大數據通過Kafka、Redis、MPP DB、ETL 等集群技術進行具體應用,研發聚類挖掘、數據采集、關鍵字過濾、流量異常檢測與預警等應用模塊,并基于該模型,構建了一個以校園網絡大數據整體架構。
聚類挖掘模塊主要應用于對重點出口和入口的部署與控制,以及關鍵領域的實時監控等需要的安全服務。數據來源主要有視頻監控數據、卡口圖片數據、通話記錄和上網記錄等[6]。標準化的數據集群實時收集來自數據源的數據,并對收集的數據根據需求進行預處理,然后采用數據流的形式將其寫入Kafka 集群中。Kafka集群負責傳輸流數據,提供基于Topic 的發布和訂閱機制,實現決策后的實時通知。接下來使用Flink 的分布式流引擎來執行數據流的處理任務,其處理數據流時的延遲是毫秒級,每個節點均具有600M·s-1的處理能力,同時支持水平擴展且可以擴展到1000個節點,還可以完成用戶任務完成狀態的實時備份,備份性能保證高可靠性,校園網絡的業務需求基于Flink 進行拓撲實現數據流的處理邏輯。Redis 集群提供了快速的key/value 存儲和查詢功能,以便對中間數據進行流處理進行緩存[7]。MPP DB 數據庫是傳統的關系型數據庫,數據流處理結果由Fink 拓撲寫入校園網絡應用程序,以便實時完成結果查詢、通知和顯示。
實時數據的采集是指在網絡范圍中即時數據的采集,包括網絡中監視器的接入情況、各個網絡設備的出入流量、接口實時匯總的情況以及出現實時警告的情況。數據采集模塊中數據的主要來源為卡口數據、GPS 記錄、基站信息以及地圖導航數據。ETL 集群負責從數據源收集數據并將數據加載到Spark 集群中,以便進行關系分析。在MPP DB 集群中,還直接將一些需要快速實時分析的數據放入比較和碰撞。MPP DB 集群用來存儲大量的結構化數據,支持快速的前端查詢、比較、碰撞等應用。Hadoop 集群主要是基于Hadoop 技術進行原始數據存儲的,采用Spark 計算架構和 Hive 數據倉庫體系結構,將卡口數據進行分析比對形成軌跡數據,并寫入MPP DB 中進行存儲,可為校園網絡的應用層根據需要進行集成調用。
考慮到數據存儲所用的數據庫屬于能夠滿足校園網中的大量數據存儲,還需要滿足數據聚合的功能,所以選用了 MySQL 數據庫存儲捕獲后的數據。因為校園網的龐大的數據總量及網絡數據的差異性,所以編寫并使用動態自定義的數據庫,這類數據庫可以滿足不同的需求,根據需求情況進行調整,其中包括了符合數據聚合要求的 SQL 語言的整體框架,和自增字段等動態化操作。
根據校園網絡業務需求進行文本類數據檢索時使用的,如各類校園資料查詢、單鍵查詢服務、4G 通訊服務等。資料來源包括國家安全局國家核心信息資源數據庫、各個校園網絡數據庫主要數據庫,還有比如互聯網大數據、社會媒體、網吧等數據庫[8]。ETL 集群從數據源中完成數據的收集工作后,并進行清理和關聯,以確保數據質量。優質的數據流隨后被傳輸到HBase 集群中,同時在Solr集群中根據一些關鍵字建立索引。HBase 集群用于存儲被ETL 清理后的相關數據,并可被校園內的應用層查詢和使用。
異常數據流的檢測是網絡異常檢測的重要研究方向[9]。異常的數據流是指在網絡中和正常流量明顯不同,有較大偏移的情況,一般網絡數據流的流量會根據網絡環境和用戶的操作而發生變化。所以,需要比較異常流量和在相同網絡狀態下運行的正常流量的行為,從而確定網絡數據流中的異常行為。KDD Cup99 數據集的數據采集模塊預處理。其中包括將符號函數轉換成數字函數,數字標準化以及數字的規范化。特征樣本的選取利用隨機森林算法確定屬性的重要性,根據屬性的重要性去除無關特征,并按照特征樣本屬性的重要性進行加權。然后利用異常數據流檢測模塊根據測試樣本與訓練樣本的加權距離,并通過改進的KNN 算法來判斷該樣本是否是攻擊流量和類型。
選取試驗數據:KDD-Cup99 數據集共包含31 萬多條數據記錄,每條數據由本次實驗選擇一個測試數據集KDD-Cup99 作為實驗數據[10]。這個數據集有五類,一類是普通數據,四類是攻擊類。將異常攻擊類型配置為DDOS 攻擊或其他異常攻擊。該數據集包含311029 條數據記錄,每條數據包含41 個維度屬性,包括34 個維度連續屬性和7 個維度離散屬性[11]。全部試驗數據均進行了標準化。
對原KNN 算法和改進的模型進行時效性分析,并對網絡數據流中的不同異常的誤報率和處理時長進行測試[12]。其中,KNN 算法和CW-KNN 算法的時效性比較中,兩種算法對網絡數據流的處理能力分析結果如圖5所示。

圖5:檢驗對比情況
如圖5所示,兩種算法在不同數據集上的性能不存在顯著差異。CW-KNN 算法在沒有人工干預的情況下,其漂移檢測效率不低于KNN 算法。CW-KNN 算法的實時性高于KNN 算法。通過對不同攻擊類型的檢測實驗和未知的攻擊檢測實驗,證明了CW-KNN 算法比KNN 算法更有效。CW-KNN 算法的實時性高于KNN 算法。KNN 算法的執行時間隨網絡數據量的增加而顯著高于CW-KNN 算法的執行時間。由此可知,CW-KNN 算法比KNN 算法在檢測網絡流量異常方面更加及時。
對系統異常流量的測量分析功能進行測量,主要查看本文提出的算法是否運行正常,是否可以將異常流量準確的檢測出來。根據實驗結果總結分析得出:系統異常流量的檢測功能運行正常,可以將校園網的異常流量檢測出來,校園網網絡流量監測與分析系統檢測異常流量能力綜合提升。