999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于機器學習的局域網異常流量檢測應用

2024-04-29 00:00:00王軍國吳瑞
無線互聯科技 2024年1期

基金項目:中央高校基本科研業務費專項資金;項目編號:LGYB202203。

作者簡介:王軍國(1987— ),男,工程師,碩士研究生;研究方向:教育信息化。

摘要:近年來,隨著網絡安全方面的政策傾斜和社會投入的增加,網絡整體安全現狀得到大幅改善,但針對園區網內部局域網絡安全的相關研究卻相對較少。為了解這些小型局域網絡內部的安全狀況,文章運用Zeek開源軟件實現了對局域網流量的數據采集,進而使用Python和相關機器學習算法實現了網絡流量數據處理、算法模型訓練和異常行為檢測等環節,實現了以較低經濟成本、方便快捷地對局域網流量進行異常檢測,能夠有效提升網絡管理工作效率。

關鍵詞:機器學習;網絡流量;異常檢測

中圖分類號:TP393.1;TP181" 文獻標志碼:A

0" 引言

隨著數字化時代的來臨,網絡在社會生產和生活中得到了更為廣泛的應用,同時也帶來了前所未有的安全挑戰,網絡安全愈加成為全社會重點關注的問題。隨著相關政策法規的不斷出臺和投入的不斷增加,社會公共網絡整體安全現狀得到大幅改善,但針對園區網內部小型局域網絡安全的相關研究卻相對較少。在網絡安全體系中,理解并有效對抗內部威脅至關重要,與外部威脅相比,絕大多數的網絡安全事件事實上發生在網絡內部。網絡內部的安全事件及其誘因包括但不限于惡意攻擊、木馬病毒、網絡配置錯誤、軟件設計缺陷等,這些問題如果得不到及時處理,可能會導致更加嚴重的網絡安全事件。對于園區網中具有專門用途的局域網來說,網絡的安全和穩定同樣至關重要。為了解局域網內部的安全狀況、及時發現網絡異常,本文將利用開源軟件實現基于機器學習網絡異常流量檢測,為局域網日常管理和安全防護提供一種輕量化和經濟可行的解決方案。

1" 異常檢測概述

網絡流量異常檢測是一項關鍵的網絡安全措施,旨在及時發現和響應網絡中的異常活動,以保障網絡的安全穩定。網絡流量異常可能是惡意攻擊、內部故障或其他安全威脅的先兆,對這些異常情況的感知和迅速響應至關重要。

網絡流量異常檢測的過程通常包括實時監測和分析網絡流量的變化,以尋找與正常行為模式不符的行為或趨勢。涉及對網絡流量的深入審查,包括協議、源地址、目的地址、通信端口、數據包的大小、頻率以及與先前行為的對比等。通過與基準行為模型對比,系統能夠自動標識出潛在的異常活動,從而觸發進一步的調查或阻斷措施[1]。

目前存在多種工具和技術可用于有效地監控和分析網絡流量,其中,入侵檢測系統(IDS)和入侵防御系統(IPS)是常見的商用軟件系統,一般部署在園區網絡邊界,用于實時監測并對異常流量做出反應,另外,如Wireshark、Snort、Zeek等軟件工具也被廣泛應用于分析網絡數據分析。

面對海量的網絡流量數據,機器學習算法也逐漸成為網絡流量異常檢測中必不可少的利器,通過訓練模型來自動識別不同類型的異常行為,提高檢測的準確性和效率[2]。

2" 異常檢測需求分析

2.1" 異常檢測一般流程

基于流量的異常檢測一般流程可分為數據采集、模型訓練、算法應用和持續優化4個環節,如圖 1所示。

數據采集環節需要實現目標網絡流量數據的收集,包括出站和入站流量以及傳輸層、應用層日志數據,并對數據進行預處理,去除無效或冗余的信息,轉換為結構化數據,并進行數據標準化。

模型訓練環節需要完成數據特征提取和模型建立工作,從經過預處理的數據中提取關鍵特征,如源目標IP地址、端口號、協議類型等,進而選擇合適的機器學習算法進行模型訓練和驗證。

算法應用階段,運用算法模型檢測目標網絡生成流量數據,識別異常行為并輸出。

持續優化階段,需定期檢查和調整算法模型,分析誤報及漏報,調整模型以提高準確性,確保系統隨時應對網絡流量模式的變化。

2.2" 系統需求分析

小型專用局域網絡位于園區網內部,經過園區網邊界防火墻、IPS等設備防護,可免受來自園區外部的網絡威脅,但這些防護措施對局域網內部異常以及來自園區其它區域的網絡威脅起不到監測和防護作用。為實現對局域網異常流量檢測,需在網絡出口處部署采集器,實現對局域網收發數據流量的采集,并進一步應用于分析和監測,如圖 2所示。

常用的網絡流量采集方法有串聯模式、旁路模式和分布式等。其中串聯模式將采集設備前置于網絡出口,實現對局域網收發數據的全量采集,采集設備性能直接影響網絡效率;旁路模式采用端口鏡像等方式,不直接影響網絡效率;分布式采集基于網絡探針,部署方式相對復雜,且較難采集全量數據。為實現對局域網流量的方便快捷采集,同時盡可能避免影響網絡性能,本文采用端口鏡像方式進行旁路流量采集。

網絡流量分析根據關注內容層級不同可以大致分為Bit-level、Packet-level和基于Flow/Stream-level 3種,分別對應網絡傳輸速率以及吞吐率、數據包的到達情況及數據載荷和流量統計特性3個研究方面,本文關注數據流層面異常行為,屬于后者。

流量分析主要采用基于統計的和基于機器學習的方法,當前網絡應用普及情況下,基于統計的方法難以處理大量的流量數據,因此處理效率更高的機器學習的方法成為更佳選擇。基于機器學習網絡流量異常檢測可自動將流量劃分為正常或異常,適用分類算法,流量異常類型可進一步細化,屬于多分類問題,常見算法有KNN、SVM、決策樹、隨機森林以及深度學習等。本文以隨機森林為例,選用KDD99數據集作為基準進行模型訓練[3]。

3" 異常檢測實施

3.1" 網絡配置

在局域網出口交換機中,將上聯端口的輸入和輸出全部流量發送到交換機本地端口,用于連接旁路采集器,交換機配置命令如下。

[Sysname] mirroring-group 1 local

[Sysname-mirroring-group-local-1] mirroring-port GigabitEthernet 1/0/1 both

[Sysname-mirroring-group-local-1] monitor-port GigabitEthernet 1/0/3

3.2" 數據采集

Zeek軟件是一款開源的網絡安全監控工具,可以靜默采集網絡流量,創建緊湊、高保真的事務日志,可以用于監控網絡流量,以便及時發現和處理網絡安全問題,被廣泛地應用于各種網絡安全領域,滿足本文使用需求[4]。

Zeek提供二進制包安裝和源碼編譯安裝2種方式,以Ubuntu系統下源碼編譯安裝方式為例,安裝過程如下。

sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev

git clone --recursive https://github.com/zeek/zeek

cd zeek

./configure

make

make install

export PATH=/usr/local/zeek/bin:$PATH

export PATH=/usr/local/zeek/bin:$PATH

先安裝軟件編譯及運行所依賴的庫和工具,下載軟件源碼,編譯安裝,配置運行環境。

Zeek軟件運行后按照配置文件設置,監聽來自指定網卡的流量數據。承載Zeek軟件的采集設備一般配置雙千兆網卡:網卡一設置為混淆模式,接入鏡像端口,供Zeek采集流量使用;網卡二正常配置網絡,用于采集設備遠程管理和數據上傳。

Zeek軟件運行后可自動生成20余種流量相關日志文件,日志文件有純文本和JSON 2種格式,常用日志文件類型有CONN、DNS、HTTP等。本文主要使用CONN日志,該日志包含了網絡流的時間、ID、收發地址及端口、收發數據量、網絡連接等狀態,可用于機器學習數據輸入。

3.3" 數據預處理

KDD是數據挖掘與知識發現(Data Mining and Knowledge Discovery)的簡稱,KDD99是1999年舉行競賽時采用的數據集,來自MIT林肯實驗室在模擬的美國空軍局域網中仿真各種用戶類型、各種不同的網絡流量和攻擊手段,收集了9周時間的網絡流量和系統審計數據,是流量異常檢測領域常用基準數據[5]。

KDD99數據集提供了4類共42項流量特征,分別是基本特征9項、內容特征13項、基于時間的流量統計特征9項和基于主機的統計特征10種。數據集提供了4類共39種異常流量標簽,是模型訓練過程中算法對流量數據進行分類的依據。

Zeek生成的CONN日志數據涵蓋了KDD99對應的9項基本特征,基于時間的流量統計特征通過對CONN中“conn_state”字段使用2 s滑動窗口統計得出。為保證訓練數據與最終實際數據標準統一,最終選擇連接時長、協議、發送數據字節、接收數據字節以及9項基于時間的流量統計特征。為保證與KDD數據標準一致,對Zeek生成數據進行清洗后,將其中協議字段從“proto”更名為“protocol_type”,并進行統一的數值編碼,“orig_ip_bytes”“resp_ip_bytes”分別更名為“src_bytes”“dst_bytes”,最終所得數據如下。

duration,protocol_type,src_bytes,dst_bytes,count,srv_count,serror_rate,srv_serror_rate,rerror_rate,srv_rerror_rate,same_srv_rate,diff_srv_rate,srv_diff_host_rate

0.690039,1,374,284,0,21,0.0,0.0,0.0,0.0,0.0,0.0,1.0

0.126942,1,217,171,0,22,0.0,0.0,0.0,0.0,0.0,0.0,1.0

0.122460,1,217,171,2,23,0.0,0.0,0.0,0.0,0.5,0.5,0.9565217391304348

0.129743,1,217,171,1,24,0.0,0.0,0.0,0.0,0.0,1.0,1.0

0.100054,1,217,171,2,25,0.0,0.0,0.0,0.0,0.5,0.5,0.96

0.129391,1,217,171,1,17,0.0,0.0,0.0,0.0,0.0,1.0,1.0

0.123500,1,217,171,0,5,0.0,0.0,0.0,0.0,0.0,0.0,1.0

0.128104,1,217,171,2,27,0.0,0.0,0.0,0.0,0.5,0.5,0.9629629629629628

0.125616,1,217,171,0,7,0.0,0.0,0.0,0.0,0.0,0.0,1.0

0.126911,1,217,171,0,8,0.0,0.0,0.0,0.0,0.0,0.0,1.0

3.4" 模型訓練

隨機森林是一種由決策樹構成的(并行)集成算法,屬于Bagging類型,通過組合多個弱分類器,最終結果通過投票或取均值,使得整體模型的結果具有較高的精確度和泛化性能,同時也有很好的穩定性,是一種用于分類和回歸任務的有監督學習算法[6]。本文使用Python sklearn中RandomForestClassifier分類器,以KDD99數據集為基準進行模型訓練,并將訓練好的模型儲存,供算法應用階段調用,關鍵代碼如下。

# x、y分別為kdd數據中的輸入特征和分類標簽

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=42)

model_rf = RandomForestClassifier(n_estimators=10, max_depth=None,

min_samples_split=2, random_state=42)

model_rf.fit(X_train, y_train)

predictions = model_rf.predict(X_test)

accuracy = accuracy_score(y_test, predictions)

dump(model_rf, 'kdd_rf_skl.joblib')

model_rf = RandomForestClassifier(n_estimators=10, max_depth=None,

min_samples_split=2, random_state=42)

predictions = model_rf.predict(X_test)

accuracy = accuracy_score(y_test, predictions)

3.5" 算法應用

加載算法模型,對預處理Zeek日志數據進行分類,分類結果根據與處理過程類別與編碼對應關系進行反向映射,然后合并入原始Zeek數據集,供進一步分析和判斷使用,關鍵代碼如下。

loaded_rf = load('kdd_rf_skl.joblib')

# 流量類別與編碼對應關系

d_class = {v: k for k, v in d_target.items()}

# zdf、new_x分別為zeek原始數據與預處理數據

rf_predictions = loaded_rf.predict(new_x)

zdf['rf_pdt'] = rf_predictions

zdf['rf_pdt'] = zdf['rf_pdt'].replace(d_class)

zdf.to_csv('zeek_prd.csv',index=False,encoding='utf-8-sig')

loaded_rf = load('kdd_rf_skl.joblib')

d_class = {v: k for k, v in d_target.items()}

rf_predictions = loaded_rf.predict(new_x)

zdf['rf_pdt'] = rf_predictions

zdf['rf_pdt'] = zdf['rf_pdt'].replace(d_class)

zdf.to_csv('zeek_prd.csv',index=False,encoding='utf-8-sig')

3.6" 檢測結果分析

模型訓練與算法應用階段使用Python及機器學習相關庫,主機配置:Intel i5、8 G內存、256 G SSD,操作系統Windows 10 64位,Python版本3.10.11;機器學習相關庫版本:pandas-1.5.2、sklearn-1.2.2、joblib-1.2.0。

使用sklearn中的隨機森林算法,以KDD99數據集494 021條數據為基準訓練算法模型,最終所得模型預測準確率為99%,精確率和召回率相對略低。

算法應用階段,對Zeek軟件采集24 h產生的315 422條網絡流數據進行預測,共標記出1 697條異常數據。經分析比對,異常流量中包含了地址掃描、端口掃描、設備異常廣播等現象,同時也存在明顯的誤報和漏報。

以端口掃描為例,如圖3所示,局域網外部同一IP地址在短時間內對局域網中同一主機進行了端口掃描,掃描過程中部分流量數據被算法識別,同時也存在部分異常流量漏報。依據被識別異常行為,經人工比對分析發現,該IP在被識別時間節點前后還對局域網內進行了大量IP地址段掃描和主機端口掃描,屬于明顯的異常行為。據此,可按需對該IP實施限制策略,以保護局域網內相關設施。

總體上,算法模型能夠從網絡流量數據中識別出相當數量的異常行為,可以有效地輔助管理人員對局域網絡進行管理。

4" 結語

本文基于開源軟件和隨機森林算法,實現了包括數據采集、數據處理、模型訓練和算法應用等環節的完整局域網異常流量檢測流程。檢測過程使用開源軟件,經濟成本低、使用方便,適應小型網絡管理使用需求,同時也可以根據實際場景進行靈活調整。本文相關內容已經初步應用于真實網絡的日常管理,后續將繼續調整和優化算法,不斷提高檢測準確性。

參考文獻

[1]王軍國,邱波,吳瑞.教學專用網絡流量分析及其應用研究[J].網絡安全技術與應用,2023(2):72-74.

[2]張蕾,崔勇,劉靜,等.機器學習在網絡空間安全研究中的應用[J].計算機學報,2018(9):1943-1975.

[3]UCI KDD Archive. KDD Cup 1999 Data[EB/OL]. (1999-10-28) [2023-08-05]. http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.

[4]The Zeek Project. Zeek Documentation [EB/OL]. (2022-09-19)[2023-08-05]. https://docs.zeek.org/en/v4.0.9/.

[5]張新有,曾華燊,賈磊.入侵檢測數據集KDD CUP99研究[J].計算機工程與設計,2010(22):4809-4812,4816.

[6]王奕森,夏樹濤.集成學習之隨機森林算法綜述[J].信息通信技術,2018(1):49-55.

(編輯" 沈" 強)

Application of abnormal traffic detection in lan based on machine learning

Wang" Junguo, Wu" Rui

(Nanjing Police University, Nanjing 210023, China)

Abstract:" Recent years, with the policy inclination and the increase of social investment, the overall status of cyber security has been greatly improved, but relevant research on the local area network security within the campus network is relatively rare. In order to understand the internal security status of these small local area networks, we use an open-source software called Zeek to realize data collection of local area network traffic, and then uses Python and related machine learning algorithms to realize network traffic data processing, model training and abnormal behavior detection. The entire anomaly detecting process is convenient, fast, and at a lower economic cost, which is of great help to improve the efficiency of network management.

Key words: machine learning; network traffic; anomaly detection

主站蜘蛛池模板: 国产午夜精品鲁丝片| 成人在线亚洲| 熟女日韩精品2区| 国产精品女熟高潮视频| 欧美怡红院视频一区二区三区| 国产精品久久久久久搜索| 波多野结衣在线se| 精品国产网| 国产精品一区二区在线播放| 国产丝袜91| 国产成人超碰无码| 凹凸国产分类在线观看| 国产国产人免费视频成18| 波多野结衣第一页| 婷婷亚洲最大| 岛国精品一区免费视频在线观看| 日韩午夜片| 久久九九热视频| 美女高潮全身流白浆福利区| 69精品在线观看| 亚洲熟女偷拍| 免费在线a视频| 精品久久蜜桃| 亚洲乱伦视频| 欧美一级爱操视频| 伊人成色综合网| 国产男女XX00免费观看| 国产女人在线观看| 亚洲婷婷丁香| 久久亚洲天堂| 久久青草精品一区二区三区| 在线观看免费人成视频色快速| 中文字幕无码中文字幕有码在线| 久久精品国产精品一区二区| 欧美精品亚洲精品日韩专| 亚洲精品第一在线观看视频| a天堂视频| 三上悠亚在线精品二区| 精品国产成人国产在线| 高清大学生毛片一级| 国产精品性| 国产精品极品美女自在线| 99视频在线观看免费| 在线观看无码a∨| 无码在线激情片| 色久综合在线| 国产主播福利在线观看| 亚洲国产日韩一区| 国产麻豆另类AV| 天天操精品| 久久网欧美| 亚洲AV色香蕉一区二区| 国产高潮流白浆视频| 久久精品只有这里有| 精品一区二区久久久久网站| 亚洲日本在线免费观看| 成年免费在线观看| 国产一区二区三区精品久久呦| 中文天堂在线视频| 婷婷六月综合| 毛片基地视频| 亚洲IV视频免费在线光看| a级毛片免费看| 日本亚洲欧美在线| 国产一级精品毛片基地| 精品成人一区二区三区电影| 欧美成人手机在线观看网址| 熟妇丰满人妻| 国产AV无码专区亚洲精品网站| 婷婷色狠狠干| 丁香六月激情婷婷| 40岁成熟女人牲交片免费| 国内精品九九久久久精品| 69视频国产| 青青国产视频| 日本AⅤ精品一区二区三区日| 日本国产一区在线观看| 四虎影院国产| 粗大猛烈进出高潮视频无码| 午夜视频免费一区二区在线看| 欧美色亚洲| av免费在线观看美女叉开腿|