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

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

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

基金項目:中央高?;究蒲袠I務費專項資金;項目編號: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

主站蜘蛛池模板: 中文字幕日韩丝袜一区| 成色7777精品在线| 中文字幕有乳无码| 天天爽免费视频| 国产菊爆视频在线观看| 免费中文字幕一级毛片| 亚洲国产一区在线观看| 国产成人免费手机在线观看视频 | 精品国产一二三区| 九一九色国产| 久久精品人人做人人爽电影蜜月| 性色在线视频精品| 精品一区二区三区四区五区| 九九久久精品国产av片囯产区| 亚洲欧洲一区二区三区| 天天综合色网| 99手机在线视频| 91 九色视频丝袜| 91九色国产在线| 欧美色视频日本| 夜夜操狠狠操| 欧美精品色视频| 秋霞国产在线| 蜜芽一区二区国产精品| 激情无码字幕综合| 999国产精品永久免费视频精品久久 | 亚洲最大在线观看| 亚洲天堂视频在线播放| a欧美在线| 国产女人在线视频| 日日拍夜夜操| 成人综合网址| 91精品国产麻豆国产自产在线| 国产aⅴ无码专区亚洲av综合网| 久久精品人人做人人爽| 国产精品私拍99pans大尺度| 欧美乱妇高清无乱码免费| 在线观看网站国产| 免费看a级毛片| 婷婷激情五月网| 伊人色天堂| 99人体免费视频| www.亚洲一区二区三区| www.狠狠| 99九九成人免费视频精品| 欧美视频免费一区二区三区| 91无码视频在线观看| 欧美国产日韩在线观看| 色综合中文| 久久这里只精品国产99热8| 伊人久热这里只有精品视频99| 国产成人1024精品| 亚洲人成网线在线播放va| 四虎成人精品| 97青草最新免费精品视频| 女人一级毛片| 日本91视频| 国产屁屁影院| 免费观看无遮挡www的小视频| 大陆精大陆国产国语精品1024| 九色91在线视频| 成人无码一区二区三区视频在线观看| 全午夜免费一级毛片| 尤物特级无码毛片免费| 黄色网站不卡无码| 香蕉久久国产精品免| 狠狠干欧美| 中国一级特黄大片在线观看| 四虎免费视频网站| 国产精品毛片一区视频播| 99在线视频免费| 免费xxxxx在线观看网站| 91人妻在线视频| 欧美三级自拍| 国产成人综合亚洲欧美在| 精品久久香蕉国产线看观看gif| 国产精品福利一区二区久久| 一级毛片在线播放免费观看| 国产精品免费p区| 亚洲精品动漫| 国产精品粉嫩| 无码中文字幕精品推荐|