TWI591982B - 網路流量辨識方法及辨識系統 - Google Patents
網路流量辨識方法及辨識系統 Download PDFInfo
- Publication number
- TWI591982B TWI591982B TW104123571A TW104123571A TWI591982B TW I591982 B TWI591982 B TW I591982B TW 104123571 A TW104123571 A TW 104123571A TW 104123571 A TW104123571 A TW 104123571A TW I591982 B TWI591982 B TW I591982B
- Authority
- TW
- Taiwan
- Prior art keywords
- network traffic
- application
- different
- network
- classification
- Prior art date
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係關於一種網路流量辨識方法及其系統,特別地,係關於一種以機器學習演算分析執行於智慧型裝置或瀏覽器上之應用程式之網路流量行為特徵屬性值,而判斷出應用程式真實名稱,藉以作為後續網路管理決策之網路流量辨識方法及其系統。
隨著科技高度發展,基於網際網路連線的應用亦漸趨多樣化。除了傳統瀏覽網站資料外,透過網路連線,亦可有如觀賞線上影音或執行線上遊戲等更為複雜之應用方式。
基於上述,能正確辨識網路流量,對網路使用者和網路管理者而言深具重要性。習知為能對網路流量進行辨識,諸多演算法已被提出以對網路流量之封包內容進行分類,以便能區分網路流量種類。另外,亦有基於埠的分類演算法。然而,由於越來越多的網路應用使用動態埠號以及加
密技術來發送封包,使基於埠號及基於封包檢測的分類演算法逐漸失去了有效性。
據上,基於機器學習的網路流量分類方法已被提
出以解決上述問題。然而,基於機器學習的網路流量分類演算法需要取得能夠準確對應應用類型的網路流量資料集以進行訓練以及分類。
如何取得適合之網路流量資料,以及如何準確對
此網路流量資料進行分類,將是上述基於機器學習的網路流量分類方法的重要議題。
已有研究提出於使用者主機上安裝用戶端守護進
程,以便用來追蹤網路封包的變化,並將對封包內含之行為屬性特徵值進行比對。然而,習知比對方式皆是使用深度包檢測技術(Deep Packet Inspection)來獲得,其係檢測對外網路封包內是否含有特定字串,藉此取得需要之訊息。
然而,上述方式需進行大量字串資料比對,因而耗費大量系統資源;並且,現今網路流量多經過加密,此將使得封包字串內容無法被解析。
緣此,仍亟需一種無需擷取封包字串的網路流量辨識方法。
本發明係提供一種網路流量辨識方法及辨識系統。其係將網路流量對應之行為特徵屬性值與應用程式名稱作為訓練資料,並利用機器學習演算將此訓練資料分類建構
成基於不同封包來回時間之分類模型。藉此,可適用於具有不同網路環境之網路區域,兼可減少辨識誤差,提升辨識率。
本發明之一目的在提供一網路流量辨識方法,其
包含一訓練步驟及一分類/辨識步驟。訓練步驟包含:於建構於一網路環境中之一終端裝置重覆執行一應用程式;擷取應用程式對應之一網路流量進行分析,將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;取得應用程式所對應的真實應用程式名稱;將真實應用程式名稱與此等行為特徵屬性值集合成為一訓練資料;模擬不同之網路環境,依據各網路環境中之各網路流量包含之不同封包來回時間將訓練資料多層結構化分類為不同子集合;及依據此等子集合以機器學習演算建構數個分類模型。分類/辨識步驟包含:擷取終端裝置所執行之一待測應用程式對應之一網路流量進行分析,將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;取得待測應用程式所對應的真實應用程式名稱;將真實應用程式名稱與此等行為特徵屬性值集合成為一訓練資料;取得此等連線之封包來回時間:依據此等封包來回時間將訓練資料多層結構化分類為不同子集合;依據此等子集合以機器學習演算建構數個分類模型,並與訓練步驟中所建構之此等分類模型進行比對;及找出相對應之分類模型以判斷待測應用程式之真實名稱。
上述網路流量辨識方法中,係將前述封包以5元
組(tuple)為基準分類為數個不同的連線,其中5元組分別為來源IP(Source IP)、目標IP(Destination IP)、來源埠(Source Port)、目標埠(Destination Port)以及第4層協定(Layer 4 Protocol)。此外,終端裝置可為一個人電腦、一平板電腦或一智慧型裝置。
本發明另一目的在提供一網路流量辨識方法,其
包含一訓練步驟及一分類/辨識步驟。訓練步驟包含:於建構於一網路環境中之一瀏覽器重覆執行一網站;擷取網站對應之一網路流量進行分析,將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;以一瀏覽器控制器取得網站所對應的真實網站名稱;將真實網站名稱與此等行為特徵屬性值集合成為一訓練資料;模擬不同之網路環境,依據各網路環境中之各網路流量包含之不同封包來回時間將訓練資料多層結構化分類為不同子集合;及依據此等子集合以機器學習演算建構數個分類模型。
分類/辨識步驟包含:擷取一瀏覽器所執行之一待測網站對應之一網路流量進行分析,將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;取得待測網站所對應的真實網站名稱;將待測網站之真實網站名稱與此等行為特徵屬性值集合成為一訓練資料;取得此等連線之封包來回時間:依據此等封包來回時間將訓練資料多層結構化分類為不同子集合;依據此等子集合以機器學習演算建構數個分類模型,並與訓練步驟中所建構之此等
分類模型進行比對;及找出相對應之分類模型以判斷待測網站之真實名稱。
本發明再一目的在提供一網路流量辨識方法,係
用於辨識運行於一網路環境中之一智慧型裝置上所執行之一應用程式,其包含一訓練步驟及一分類/辨識步驟。訓練步驟包含:於智慧型裝置上重覆執行應用程式;將應用程式對應之IP傳輸至一IP映射伺服器以便過濾掉不屬於應用程式之網路流量;擷取屬於應用程式對應之一網路流量進行分析,將此網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;透過一應用程式伺服器取得智慧型裝置上執行之應用程式所對應的真實應用程式名稱;將真實應用程式名稱與此等行為特徵屬性值集合成為一訓練資料;模擬不同之網路環境,依據各網路環境中之各網路流量包含之不同封包來回時間將訓練資料多層結構化分類為不同子集合;及依據子集合以機器學習演算建構數個分類模型。分類/辨識步驟包含:將待測應用程式對應之IP傳輸至一IP映射伺服器以便過濾掉不屬於待測應用程式之網路流量;擷取屬於待測應用程式對應之一網路流量進行分析;將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;透過一應用程式伺服器取得智慧型裝置上執行之待測應用程式所對應的真實應用程式名稱;將真實待測應用程式名稱與此等行為特徵屬性值集合成為一訓練資料;取得此等連線之封包來回時間;依據此等封包來回時間將訓練資料多層結構化分類為不同子集合;依
據此等子集合以機器學習演算建構數個分類模型,並與訓練步驟中所建構之分類模型進行比對;及找出相對應之分類模型以判斷待測應用程式之真實名稱。
本發明又一目的在提供一種網路流量辨識系統,
其係用以運作如前述之網路流量辨識方法。網路流量辨識系統包含一相互連線之一資料管理伺服器、一規則伺服器、一訓練器以及一分類器。訓練器係用以接收於終端裝置重覆執行之應用程式之網路流量,並對網路流量內含之每個封包進行解碼後,將網路流量分類成數個連線,並取得網路流量之行為特徵屬性值,且取得應用程式之真實應用程式名稱後,將真實應用程式名稱與些行為特徵屬性值集合成為一訓練資料,並將訓練資料傳輸透過資料管理伺服器傳輸至規則伺服器以便進行訓練步驟;於規則伺服器:對訓練資料依據各行為特徵屬性值進行多層結構化分類以得出數個資料子集合,並透過機器學習演算依據此等連線之封包來回時間將此等資料子集合分別建構出多個分類模型。分類器係用以擷取終端裝置所執行之待測應用程式對應之網路流量進行分析,將網路流量包含之所有封包分類為數個不同的連線;計算對應此等連線之數個行為特徵屬性值;取得待測應用程式所對應的真實應用程式名稱;將真實應用程式名稱與此等行為特徵屬性值集合成為一訓練資料,並將訓練資料傳輸透過資料管理伺服器傳輸至規則伺服器以便進行分類/辨識步驟;於規則伺服器:取得此等連線之封包來回時間,並依據此等封包來回時間將訓練資料多層結構化分類為不同子集合,依據此等子
集合以機器學習演算建構數個分類模型,並與訓練步驟中所建構之此等分類模型進行比對,以判斷待測程式之真實應用程式名稱。
上述網路流量辨識系統中,終端裝置可為一個人
電腦、一平板電腦或一智慧型裝置。當應用程式為執行於終端裝置上所運行一瀏覽器上之一網站時,則透過一瀏覽器控制器取得該網站之真實名稱。當終端裝置為智慧型裝置時,系統更包含一IP映射伺服器及一應用程式伺服器,透過IP映射伺服器以便過濾掉不屬於應用程式之網路流量,並透過應用程式伺服器取得智慧型裝置上執行之應用程式所對應的真實應用程式名稱。
11‧‧‧資料管理伺服器
12‧‧‧分類器
13‧‧‧訓練器
14‧‧‧規則伺服器
15‧‧‧軟體定義網路控制器
16‧‧‧基於OpenFlow協定之交換器
17‧‧‧終端裝置
101~118‧‧‧步驟
201~212‧‧‧步驟
301~312‧‧‧步驟
S1‧‧‧IP映射伺服器(IP Mapping Server)
S2‧‧‧應用程式映射伺服器(App Mapping Server)
第1圖係繪示本發明之網路流量辨識系統基本架構圖;第2圖係繪示本發明中對訓練資料進行多層結構化分類架構圖;第3圖係繪示依據本發明一實施例之網路流量辨識方法流程示意圖;第4圖係繪示本發明依據封包來回時間對訓練資料進行多層結構化分類架構圖;第5圖係繪示依據本發明另一實施例之網路流量辨識方法流程示意圖;
第6圖係繪示本發明之應用於智慧型裝置之網路流量辨識系統架構圖;第7圖係繪示第6圖中IP映射伺服器(IP Mapping Server)及應用程式映射伺服器(App Mapping Server)之運作原理示意圖;以及第8圖係繪示依據本發明又一實施例之網路流量辨識方法流程示意圖。
以下將參照圖式說明本發明之複數個實施例。為明確說明起見,許多實務上的細節將在以下敘述中一併說明。然而,應瞭解到,這些實務上的細節不應用以限制本發明。也就是說,在本發明部分實施例中,這些實務上的細節是非必要的。此外,為簡化圖式起見,一些習知慣用的結構與元件在圖式中將以簡單示意的方式繪示之;並且重複之元件將可能使用相同的編號表示之。
本發明係使用大量真實應用程式名稱及其對應之網路流量之行為特徵屬性值作為訓練資料,並利用機器學習演算進行訓練後,從中找出規則性,以便建構出分類模型。一般機器學習演算會於訓練時使用大量運算資源,因而造成系統資源耗費,當使用本發明所建構出的分類模型進行網路流量辨識時,可在降低資源情況下,達到高的辨識效率,並且可解決於不同網路環境下的差異造成辨識產生誤差的問題。
於此先述及本發明所建構之基於機器學習
(Machine Learning)的網路流量辨識基本原理,以便於理解如何將其應用於智慧型裝置或網頁上所執行的應用程式名稱之辨識。請一併參照第1圖至第4圖。第1圖係繪示本發明所應用之基於機器學習的網路流量辨識系統架構圖。第2圖係繪示本發明中對訓練資料進行多層結構化分類架構圖。第3圖係繪示依據本發明一實施例之網路流量辨識方法流程示意圖。第4圖係繪示本發明依據封包來回時間對訓練資料進行多層結構化分類架構圖。
於第1圖中,基於機器學習的網路流量辨識系統
係基本包含一資料管理伺服器11、一分類器12、一訓練器13以及一規則伺服器14。此外,若基於軟體定義網路(Software Define Network)而建構,則可能包含軟體定義網路控制器15以及基於OpenFlow協定之交換器16。需知上述系統之網路架構並非必須基於OpenFlow協定,亦得由OSI七層協定或TCP/IP協定架構而成。實際狀況中,使用者係透過一終端裝置17執行應用程式。終端裝置17可為一個人電腦、平板電腦或智慧型手機等。於此實施例中,將先以執行於個人電腦為例。
資料管理伺服器11係用以統籌管理規則伺服器
14、分類器12以及訓練器13。
當有規則伺服器14開啟時,會先向資料管理伺
服器11註冊,而資料管理伺服器11會不斷監控規則伺服器14
狀態,當系統上規則伺服器14負載超過設定值時,資料管理伺服器11將開啟新規則伺服器14。
當有新的訓練器13或分類器12開啟時,資料管理伺服器11將取得負載較輕的規則伺服器14,並於其內執行後續網路流量訓練與分類事宜。
規則伺服器14內部係包含實作機器學習演算及基於封包來回時間(RTT,Round Trip Time)之多層結構,以便建構多個分類模型。前述封包來回時間一般為傳送一個封包至一網路節點,並收到回應的平均所需時間。
規則伺服器14於執行網路流量訓練時,首先接收來自訓練器13的訓練請求,並對一封包內含之行為特徵屬性值與相對應的應用程式名稱進行多層結構化分類。之後,依據每個行為特徵屬性值進行資料集的分類以得出數個資料子集合,並將數個資料子集合獨立建構出多個分類模型。此外,將此多個分類模型儲存至一資料庫伺服器中,此資料庫伺服器向資料管理伺服器11發出同步請求,更新所有規則伺服器14的分類模型。此外,此資料庫伺服器亦接收來自資料管理伺服器11的更新分類模型請求。
規則伺服器14於執行網路流量分類/辨識時,與前述執行網路流量訓練時類似,依次接收來自分類器12的網路流量的行為特徵屬性值,同時,規則伺服器14依據最適合的機器學習模型進行分類辨識,並將最後辨識的結果回傳至分類器12。
前述訓練器13,係用以分析本地終端裝置17所
執行應用程式之網路流量而產生機器學習所需要的網路流量訓練資料。本地終端裝置17執行應用程式後所產生之網路流量,傳遞至訓練器13後,對每個封包進行解碼,並將網路流量以5元組(tuple):Source IP(來源IP)、Destination IP(目標IP)、Source Port(來源埠)、Destination Port(目標埠)、Layer 4 Protocol(第4層協定)分至不同的流量類別,並且計算其行為模式對應之特徵屬性值。由於網路流量係來自本地終端裝置17執行之應用程式,因此可以利用Source Port(來源埠)向其作業系統反查進程名稱(Process name),可得到真實應用程式名稱。當所需的行為特徵屬性值已全部計算完畢時,傳遞至前述規則伺服器14中彙整,並且以取得之行為特徵屬性值為前述多層結構化分類所需的分層因子,例如:封包來回時間(RTT)、網域等,得出依據每個行為特徵屬性值分類之子集合與真實應用程式名稱的對應資料。此資料包含對應網路流量行為模式的特徵屬性值,並傳遞至一雲端伺服器中。
於訓練器13訓練完成後,分類器12係針對本地
終端裝置17所執行之待測應用程式之網路流量進行解析,並透過進程-埠映射(process-port mapping)方式取得機器學習的參考基準(Ground Truth)(此即為待測之應用程式名稱),且與透過機器學習建構完成之分類模型加以比對,以便進行辨識。最終,可得到於終端裝置17上所執行之待測應用程式
的真實應用程式名稱,藉此可對於終端裝置17上所執行之應用程式進行管理。
據上,可理解本發明係將機器學習應用於網路流
量辨識領域。習知已此等方式進行網路流量辨識時,多完全純粹仰賴機器學習演算能力進行辨識。然而,在網路環境中,仍存在有許多因素改變網路行為,進而影響辨識準確度。舉例而言,於不同的網路區域存在有不同的網路環境,其頻寬、傳輸時間等皆不相同,因而其網路流量的行為模式亦有所差異。假設以上述系統訓練了A地與B地的網路流量,而在辨識A地的網路流量時,卻使用了B地的分類模型,此將大幅降低辨識準確度。為避免上述問題,本發明提出多層結構化分類架構,並且利用封包來回時間(RTT)為行為特徵屬性值以區分出不同的網路區域。藉此,於分類時可選擇出最相近的網路環境下所訓練的分類模型,以提高辨識之準確度。
以下說明本發明所使用多層架構化分類對網路流
量進行訓練及分類的概念。封包來回時間RTT為常用的網路環境品質衡量指標,係指網路拓樸中兩個結點的封包來回時間,因此涵蓋虛擬網路品質與現實地理位置的因素。本系統選定一個網路結點為基準點,量測訓練器與分類器至基準點的封包來回時間,將此封包來回時間加入到每筆網路流量之行為特徵屬性值,以作為不同網路區域的辨識基準。
更具體而言,此多層架構化分類係類似決策樹架
構,如第2圖所示,係利用不同分層因子(Factor)將所獲得之
網路訓練資料依據網路區域區分至不同子集合。第一層因子設為封包來回時間,並且設置不同閥值(Threshold)將訓練資料區分至不同的子集合。此時,利用第二層因子,例如目標IP(Destination IP),再將每個子集合區分至更趨近於單一網路環境的集合。
上述多層架構化分類可依據分層因子與閥值數量
向縱向或橫向擴展。本發明係以封包來回時間RTT為主要分層因子,並且在訓練時各別將每個子集合以機器學習演算,建立出各分類模型。因此,在系統中存在多個適用不同網路區域的分類模型,故得以選擇最適合的網路區域的分類模型來進行網路流量分類及辨識,藉以解決於不同網路區域下,因不同網路環境造成的網路行為差異。
上述已介紹本發明之基於機器學習的網路流量辨
識系統架構,以及對所欲訓練資料進行多層架構化分類以應不同網路區域所需。以下以一具體實例,說明一網路流量辨識方法,其係應用第1圖之網路流量辨識系統於辨識於一個人電腦(PC)執行之應用程式,此網路流量辨識法大致分為訓練步驟以及分類/辨識步驟。
訓練步驟:於一個人電腦PC中安裝訓練器,並
且運行希望被分類的數種應用程式,例如:Line、Skype、或FTP等,並透過訓練器將訓練資料傳送至規則伺服器,並於規則伺服器以機器學習演算法建立分類模型。
分類/辨識步驟:於一個人電腦PC中安裝分類器,並且將外部網路流量導入其中進行分析,並且傳送至規則伺服器進行辨識,最終將辨識結果回傳至SDN控制器中。
由於初始系統並不具有任何分類模型,因此必須透過上述訓練步驟以便得到分類模型。當訓練器啟動後會先對資料管理伺服器發出訓練請求。此時,資料管理伺服器將選擇負載最輕的規則伺服器,並回傳其IP到訓練器,然後開始進行訓練。
訓練步驟如下:於分類器端:步驟101,選擇此電腦對外網路介面卡進行監控。步驟102,重覆運行欲訓練的應用程式。步驟103,擷取此網路介面卡網路流量,並加以分析,將所有封包以5元組(tuple)(分別為來源IP(Source IP)、目標IP(Destination IP)、來源埠(Source Port)、目標埠(Destination Port)以及第4層協定(Layer 4 Protocol))為基準分類為不同的連線。步驟104,計算出各種行為特徵屬性值,如果此時連線的封包數量仍不足以計算出某行為特徵屬性值時,會持續等待步驟103擷取封包。當所有行為特徵屬性值都已計算完畢時,則進行步驟105,訓練器使用ICMP協定量測與基準點的封包來回時間RTT。步驟106,此時已經完成所有資料的計算,但是目前仍缺少監督式機器學習所需的Ground Truth(即每筆連線行為特徵屬性值所對應的真實應用程式名稱)。因此,向作業系統查詢目前應用程式名稱。得出應用程式名稱後,便可以標記至對應之網路連線之行為特徵屬性值中,最後將此筆網路連線資料傳送至規則伺服器。
規則伺服器於接收連線之行為特徵屬性值與對應之應用程式名稱後,於步驟107,將資料匯入資料庫中,並分別於步驟108及109中,使用封包來回時間RTT將訓練資料依據網路區域,以不同分層因子分類為不同子集合,並於步驟110中,建構分類模型。在此實施例中,封包來回時間RTT以25ms為區間,如第4圖所繪示,共分為七個分類模型。若此訓練資料的封包來回時間RTT大於50ms並且小於等於75ms,則會落入分類模型3。此時,將會針對有資料新增訓練資料的分類模型更新,以上例,將使用機器學習演算與最新的訓練資料重建分類模型,並套用至系統,於步驟111中,通知系統中所有規則伺服器套用分類模型3。
經由上述訓練步驟後,系統已有分類模型可供使用。此時,若欲對一使用者所執行應用程式之網路流量進行分類及辨識,則於分類器啟動後,與上述訓練器相同,會先透過資料管理伺服器取得可使用的規則伺服器,之後便將所有鏡射(Mirror)過去的使用者所執行應用程式之網路流量進行分類/辨識。
分類/辨識步驟如下:於步驟112中,選擇此電腦對外網路介面卡進行監控。步驟113,僅需要擷取此網路介面卡網路流量並加以分析,將所有封包以5元組(tuple)為基準分類為不同的連線。步驟114,計算出各種行為特徵屬性值,同樣地,如果連線的封包數量仍不足以計算時,會持續等待步驟113擷取封包。計算完畢後,則進入步驟115,此時分類
器將透過ICMP協定量測與基準點的封包來回時間RTT,並將此筆連線資料傳送至規則伺服器。
規則伺服器於接收此網路連線之行為特徵屬性值後,於步驟116中,取出封包來回時間,並於步驟117中,依據封包來回時間RTT選擇出最適合此網路環境的分類模型。於一例中,如果此筆網路連線的行為特徵屬性值的封包來回時間RTT大於50ms並且小於等於75ms,則將使用分類模型3。於步驟118中,使用選擇的分類模型3進行比對,找出最可能對應此筆網路連線的行為特徵屬性值的應用程式名稱。
規則伺服器辨識完成後,將其辨識結果回傳至分類器,分類器獲得分類結果後,將5元組(tuple)與分類結果的應用名稱回傳至SDN控制器,便可以利用取得網域中所有連線所對應的應用程式名稱,並加以控管。
SDN控制器於接收分類器的5元組(tuple)與分類結果後,即取得連線對應的應用程式,並根據應用程式重要性,設置連線頻寬。假若應用程式為Skype,為維持良好通訊品質可以給予較高頻寬,相對假若應用程式為線上遊戲,則可以設置較小頻寬。最後以Openflow格式,將管理規則下置網域中的SDN交換機,完成流量管理。
上述已描述如何針對一般個人電腦之網路流量進行訓練與分類及辨識流程。惟僅辨識一般個人電腦之網路流量已無法滿足現今複雜網路環境之需求。據此,本發明以上述之網路流量辨識系統及辨識方法為基礎,將其應用於網站及智慧型裝置進行訓練,再結合機器學習演算對網路流量之
行為模式進行分析,即如上述建構機器學習分類模型,並可以此進行網站及智慧型裝置之網路流量辨識。
上述實施例中,本發明使用訓練器軟體,除分析
本機網路流量,並計算其行為特徵屬性值外,也負責使用5元組(tuple)向本機之作業系統查詢對應之真實應用程式名稱,以便進行後續機器學習之用。然而,隨著網際網路技術的發展,使用網站已不僅限於單純的訊息觀看,更多是執行於網站後端之應用程式,例如使用網頁觀看youtube,或於網頁上執行遊戲應用程式等。因此,若以上述方式向作業系統查詢網站流量所對應之應用程式名稱,僅能取得其瀏覽器名稱,例如:chrome、firefox或internet explorer等。因此,無法利用機器學習演算對網站上所執行的應用程式進行辨識。據此,本發明提供一獨立之瀏覽器,並對其監控並紀錄網站名稱,再將網路資訊提供給訓練器,使訓練器可取得網路流量所對應的真實網站名稱,後續再利用機器學習建構分類模型及進行網路流量的辨識。
第5圖係繪示依據本發明另一實施例之網路流量
辨識方法流程示意圖。為取得網路流量對應之網站名稱,因此使用自行開發之瀏覽器系統,其包含瀏覽器本體以及瀏覽器控制器。瀏覽器本體使用http或https等現行常見協定供進行網站遨遊。瀏覽器控制器負責監控所有瀏覽器,紀錄所流覽之網站名稱及對應之瀏覽器系統於作業系統的上之進程標籤(Process ID),並且處理來自訓練器的查詢,將對應網站名稱回傳至訓練器中。
網站專用之訓練器,負責產生分析本機網站瀏覽時產生之網路流量,並產生機器學習所需要的訓練資料。與上述相似地,網路流量包含之每個封包於進行解碼後,以5元組(tuple)分至不同的網路流量分類,並且開始計算其對應之行為特徵屬性值。同時,由於網路流量來自本機,因此可透過進程-埠映射(Process-Port Mapping)方式,利用來源埠(Source Port)向系統反查進程名稱(Process name)。當進程名稱(Process name)為本方法中對應之瀏覽器本體名稱時,表示此網路流量為網站瀏覽所產生。接續,進入網站名稱映射程序(Web Name Mapping),以進程標籤(Process ID)向瀏覽器控制器查詢對應之網站名稱。並於資料伺服器進行彙整,將所需的多層結構化分類所需的分層因子加入,組成行為特徵屬性值與網站名稱的對應資料集合,以便取得網站瀏覽的訓練資料。
於第5圖中,對網站之訓練步驟,將原來應用於個人電腦之訓練器替換為網站訓練器,並執行下列步驟:步驟201,開啟自行設計之瀏覽器控制器,準備開始記錄網站名稱資訊。步驟202中,選擇此電腦對外網路介面卡進行監控。步驟203中,開啟Yahoo.com或Youtube.com等欲被訓練之網站。步驟204中,擷取此網路介面卡流量並加以分析,將所有封包以5元組(tuple)(分別為來源IP(Source IP)、目標IP(Destination IP)、來源埠(Source Port)、目標埠(Destination Port)以及第4層協定(Layer 4 Protocol))為基準分類為不同的連線,並於步驟205,計算各連線之行為特徵
屬性值。當所有行為特徵屬性值都已計算完畢,則進入步驟206,使用ICMP協定量測與基準點的封包來會時間RTT。此時已經完成所有資料的計算,網站訓練器會將網路流量的進程標籤(Process ID)傳送至瀏覽器控制器,瀏覽器控制器並回傳對應網站名稱。此時,於步驟207,可將行為特徵屬性值與網站名稱結合,並傳送至規則伺服器中。
規則伺服器於接收連線之行為特徵屬性值與對應之網站名稱後,於步驟208,將資料匯入資料庫中,並分別於步驟209及210中,使用封包來回時間RTT將訓練資料依據網路區域分類為不同子集合,並於步驟211中,建構分類模型。類似於前述實施例,在此實施例中,若封包來回時間RTT以25ms為區間,則如第4圖所繪示,共分為七個分類模型。若此訓練資料的封包來回時間RTT大於50ms並且小於等於75ms,則會落入分類模型3。此時,將會針對有資料新增訓練資料的分類模型更新,以上例,將使用機器學習演算與最新的訓練資料重建分類模型,並套用至系統,於步驟212中,通知系統中所有規則伺服器套用分類模型3。
經由上述流程,已利用機器學習對網站瀏覽之行為特徵屬性值建構出分類模型。此時,再結合與前述步驟112至步驟118相同之程序,即可對網站名稱進行分類/辨識。
請參照第6圖、第7圖以及第8圖。第6圖係繪示本發明之應用於智慧型裝置之網路流量辨識系統架構圖;第7圖係繪示第6圖中IP映射伺服器(IP Mapping Server)及應用程式映射伺服器(App Mapping Server)之運作原理示意圖;
以及第8圖係繪示本發明又一實施例之網路流量辨識方法流程示意圖。
現今智慧型裝置(平板或手機)已逐漸普及,其上
亦執行各式智慧型作業系統,例如iOS或Android等。而現時大半智慧型裝置亦具有連網功能。因此,原本透過個人電腦裝置所執行之應用程式亦得以於此等智慧型裝置上執行。然而,前述使用個人電腦時之架構需龐大之運算,並不適合直接應用於智慧型裝置中。因此,於本發明中,將智慧型裝置之5元組(tuple)與應用程式(App)對應資料傳至應用程式映射伺服器(App Mapping Server)與IP映射伺服器(IP Mapping Server),再將智慧型裝置之網路流量引導至智慧型裝置之訓練器(Trainer)中,藉此,可透過智慧型裝置之訓練器、應用程式映射伺服器(App Mapping Server)與IP映射伺服器(IP Mapping Server)進行訓練步驟。
於智慧型裝置上設置之監測程式(Monitor APP),主要負責以下兩種工作:其一為在應用程式開啟時傳送智慧型裝置所屬IP至IP映射伺服器(IP Mapping Server)中,以利後續智慧型裝置訓練器過濾封包使用。其二為監控智慧型裝置內應用程式的網路使用狀態,並不需要對網路流量進行分析,僅需記錄網路流量(5元組)與對應之應用程式名稱即可,並將此資訊傳送至應用程式映射伺服器(App Mapping Server)及IP映射伺服器(IP Mapping Server)中。
應用程式映射伺服器(App Mapping Server)及IP映射伺服器(IP Mapping Server)接收來自裝有監測應用程
式(Monitor App)的智慧型裝置之資料,並將其存入資料庫中。同時,IP映射伺服器(IP Mapping Server)會於第一時間將IP資訊傳送至智慧型裝置訓練器中,以便進行封包過濾;而應用程式映射伺服器(App Mapping Server)則用以處理來自智慧型裝置訓練器的查詢,接收5元組(tuple),並回傳對應之應用程式名稱至智慧型裝置訓練器。
智慧型裝置訓練器負責計算智慧型裝置之網路流量行為特徵屬性值,產生機器學習所需要的訓練資料。由於智慧型裝置流量是由外部匯入,因此在對封包進行解碼後,除了將網路流量以5元組(tuple)分至不同的連線外,還會從IP映射伺服器(IP Mapping Server)接收智慧型裝置的IP,並加以過濾,非來自智慧型裝置的外部流量則不予與處理,以節省計算資源。之後,本機流量利用進程-埠映射(Process-Port Mapping)方式,向作業系統查詢進程名稱(Process name);智慧型裝置之網路流量則進入App Name Mapping,以5元組(tuple)向應用程式映射伺服器(App Mapping Server)查詢對應之應用程式(App)名稱。當所需的行為特徵屬性值計算完畢時,同樣於資料管理伺服器中彙整,並將多層式架構分類所需的因子如封包來回時間及網域等加入,並集合行為特徵屬性值及應用程式名稱的對應資料,最後傳至雲端伺服器中。
智慧型裝置的網路流量會以鏡射(Mirror)方式匯入智慧型裝置訓練器,而IP、應用程式名稱與對應的5元組(tuple)則分別傳送至IP映射伺服器(IP Mapping Server)與應
用程式映射伺服器(App Mapping Server)。當智慧型裝置訓練器啟動後會先對資料管理伺服器發出訓練請求,此時資料管理伺服器選擇負載最輕的,並回傳其IP到訓練器,此時系統即可開始進行訓練步驟。
主要訓練步驟如下:首先,於步驟301中,於智慧型裝置(此實施例為運行Android作業系統之智慧型手機)運行一監測程式(Monitor APP),此監測程式啟動時會將本身IP傳送至IP映射伺服器(IP Mapping Server))S1,並且監控智慧型裝置之網路使用狀態,並將5元組(tuple)與對應之應用名稱傳送至應用程式映射伺服器(App Mapping Server)S2。步驟302中,監控網路介面卡,同時使用IP映射伺服器(IP Mapping Server)所記錄的IP過濾封包。步驟303中,重覆運行欲訓練的Android應用程式,例如:Line、Instagram等軟體。步驟304中,擷取此網路介面卡網路流量並加以分析,將所有封包以5元組(tuple)分類為不同的連線。步驟305中,計算出對應連線之各種行為特徵屬性值,如果此時連線的封包數量仍不足以計算出某行為特徵屬性值時,會持續等待步驟304擷取封包,直至所有行為特徵屬性值都計算完畢。當所有行為特徵屬性值都計算完畢,續行步驟306,智慧型裝置訓練器會使用ICMP協定量測與基準點的封包來回時間RTT。續行步驟307,於完成計算行為特徵屬性值及量測封包來回時間後,仍缺少機器學習所需的參考基準(Ground Truth),此時,會使用5元組(tuple)向應用程式映射伺服器(App Mapping Server)查詢應用程式名稱,最後將
行為特徵屬性值、封包來回時間RTT以及應用程式名稱彙整後,傳送至規則伺服器。
規則伺服器於接收連線之行為特徵屬性值與對應之網站名稱後,於步驟308,將資料匯入資料庫中,並分別於步驟309及310中,使用封包來回時間RTT將訓練資料依網路區域以多個分層因子分類為不同子集合,並於步驟311中,建構分類模型。類似於前述實施例,在此實施例中,若封包來回時間RTT以25ms為區間,則如第4圖所繪示,共分為七個分類模型。若此訓練資料的封包來回時間RTT大於50ms並且小於等於75ms,則會落入分類模型3。此時,將會針對有新增訓練資料的分類模型更新,以上例,將使用機器學習演算與最新的訓練資料重建分類模型,並套用至系統,於步驟312中,通知系統中所有規則伺服器套用分類模型3。
經由上述訓練步驟,便可將智慧型裝置的網路流量由外部匯入智慧型裝置訓練器之中,計算行為特徵屬性值並取得應用程式名稱,並利用機器學習演算產生分類模型。當欲進行智慧型裝置的網路流量辨識時,則依照前述步驟112至步驟118,完成智慧型裝置網路流量之分類/辨識。
綜上,本發明係將網路流量對應之行為特徵屬性值與應用程式名稱作為訓練資料,並依據不同封包來回時間,透過機器學習演算將此訓練資料分類建構成多個相對應之分類模型。藉此,於進行辨識時能符合不同之網路環境,以減少辨識誤差,提升辨識率。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
201~212‧‧‧步驟
Claims (10)
- 一種網路流量辨識方法,其包含:一訓練步驟,包含:於建構於一網路環境中之一終端裝置重覆執行一應用程式;擷取該應用程式對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;取得該應用程式所對應的真實應用程式名稱;將該真實應用程式名稱與該些行為特徵屬性值集合成為一訓練資料;模擬不同之該網路環境,依據各該網路環境中之各網路流量包含之不同封包來回時間將該訓練資料多層結構化分類為不同子集合;及依據該些子集合以機器學習演算建構數個分類模型;以及一分類/辨識步驟,包含:擷取該終端裝置所執行之一待測應用程式對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;取得該些連線之封包來回時間;依據該些封包來回時間將該些行為特徵屬性值多層結構化分類為不同子集合; 依據該些子集合以機器學習演算建構數個分類模型,並與該訓練步驟中所建構之該些分類模型進行比對;及找出相對應之分類模型以判斷該待測應用程式之真實名稱;其中,多層架構化分類係利用不同分層因子將所獲得之該些行為特徵屬性值依據網路區域區分至不同子集合。
- 如申請專利範圍第1項之網路流量辨識方法,其中於該訓練步驟中,將該些封包以5元組(tuple)為基準分類為數個不同的連線。
- 如申請專利範圍第2項之網路流量辨識方法,其中該5元組分別為來源IP(Source IP)、目標IP(Destination IP)、來源埠(Source Port)、目標埠(Destination Port)以及第4層協定(Layer 4 Protocol)。
- 如申請專利範圍第1項之網路流量辨識方法,其中該終端裝置為一個人電腦、一平板電腦或一智慧型裝置。
- 一種網路流量辨識方法,其係用於辨識運行於一網路環境中之一網站(Web Site),其包含:一訓練步驟,包含:於一瀏覽器中重覆執行該網站; 擷取該網站對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;以一瀏覽器控制器取得該網站所對應的網站真實名稱;將該網站真實名稱與該些行為特徵屬性值集合成為一訓練資料;模擬不同之該網路環境,依據各該網路環境中之各網路流量包含之不同封包來回時間將該訓練資料多層結構化分類為不同子集合;及依據該些子集合以機器學習演算建構數個分類模型;以及一分類/辨識步驟,包含:擷取一終端裝置所執行之一待測網站對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;取得該些連線之封包來回時間;依據該些封包來回時間將該些行為特徵屬性值多層結構化分類為不同子集合;依據該些子集合以機器學習演算建構數個分類模型,並與該訓練步驟中所建構之該些分類模型進行比對;及找出相對應之分類模型以判斷該待測網站之真實名稱; 其中,多層架構化分類係利用不同分層因子將所獲得之該些行為特徵屬性值依據網路區域區分至不同子集合。
- 一種網路流量辨識方法,其係用於辨識運行於一網路環境中之一智慧型裝置上所執行之一應用程式(App),其包含:一訓練步驟,包含:於該智慧型裝置上重覆執行該應用程式;將該應用程式對應之IP傳輸至一IP映射伺服器以便過濾掉不屬於該應用程式之網路流量;擷取屬於該應用程式對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;透過一應用程式伺服器取得該智慧型裝置上執行之該應用程式所對應的真實應用程式名稱;將該真實應用程式名稱與該些行為特徵屬性值集合成為一訓練資料;模擬不同之該網路環境,依據各該網路環境中之各網路流量包含之不同封包來回時間將該訓練資料多層結構化分類為不同子集合;及依據該些子集合以機器學習演算建構數個分類模型;以及一分類/辨識步驟,包含:於該智慧型裝置上執行一待測應用程式; 將該待測應用程式對應之IP傳輸至一IP映射伺服器以便過濾掉不屬於該待測應用程式之網路流量;擷取屬於該待測應用程式對應之一網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;取得該些連線之封包來回時間;依據該些封包來回時間將該些行為特徵屬性值多層結構化分類為不同子集合;依據該些子集合以機器學習演算建構數個分類模型,並與該訓練步驟中所建構之該些分類模型進行比對;及找出相對應之分類模型以判斷該待測應用程式之真實名稱;其中,多層架構化分類係利用不同分層因子將所獲得之該些行為特徵屬性值依據網路區域區分至不同子集合。
- 一種網路流量辨識系統,其係用以運作如請求項第1項之網路流量辨識方法,該網路流量辨識系統包含一相互連線之一資料管理伺服器、一規則伺服器、一訓練器以及一分類器,其中:該訓練器係用以接收於該終端裝置重覆執行之該應用程式之該網路流量,並對該網路流量內含之每個封包進行解碼後,將該網路流量分類成數個連線,並取得該網路流量之行為特徵屬性值,且取得該應用程式之該真實應用程式名稱後,將該真實應用程式名稱與該些行為特徵屬性值集合成為 一訓練資料,並將該訓練資料透過該資料管理伺服器傳輸至該規則伺服器以便進行該訓練步驟;於該規則伺服器:對該訓練資料依據各該行為特徵屬性值進行多層結構化分類以得出數個資料子集合,並透過機器學習演算依據該些連線之封包來回時間將該些資料子集合分別建構出多個分類模型;該分類器係用以擷取該終端裝置所執行之一待測應用程式對應之該網路流量進行分析,將該網路流量包含之所有封包分類為數個不同的連線;計算對應該些連線之數個行為特徵屬性值;將該些行為特徵屬性值傳輸透過該資料管理伺服器傳輸至該規則伺服器以便進行該分類/辨識;於該規則伺服器:取得該些連線之封包來回時間,並依據該些封包來回時間將該些行為特徵屬性值多層結構化分類為不同子集合,依據該些子集合以機器學習演算建構數個分類模型,並與該訓練步驟中所建構之該些分類模型進行比對,以判斷該待測應用程式之該真實應用程式名稱;其中,多層架構化分類係利用不同分層因子將所獲得之該些行為特徵屬性值依據網路區域區分至不同子集合。
- 如申請專利範圍第7項之網路流量辨識系統,其中該終端裝置為一個人電腦、一平板電腦或一智慧型裝置。
- 如申請專利範圍第8項之網路流量辨識系統,其中當該應用程式為執行於該終端裝置上所運行一瀏覽器上之一網站時,則透過一瀏覽器控制器取得該網站之真實名稱。
- 如申請專利範圍第8項之網路流量辨識系統,其中當該終端裝置為該智慧型裝置時,該系統更包含一IP映射伺服器及一應用程式伺服器,透過該IP映射伺服器以便過濾掉不屬於該應用程式之網路流量,並透過該應用程式伺服器取得該智慧型裝置上執行之該應用程式所對應的真實應用程式名稱。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104123571A TWI591982B (zh) | 2015-07-21 | 2015-07-21 | 網路流量辨識方法及辨識系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104123571A TWI591982B (zh) | 2015-07-21 | 2015-07-21 | 網路流量辨識方法及辨識系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201705722A TW201705722A (zh) | 2017-02-01 |
TWI591982B true TWI591982B (zh) | 2017-07-11 |
Family
ID=58609239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104123571A TWI591982B (zh) | 2015-07-21 | 2015-07-21 | 網路流量辨識方法及辨識系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI591982B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11977958B2 (en) | 2017-11-22 | 2024-05-07 | Amazon Technologies, Inc. | Network-accessible machine learning model training and hosting system |
US10621019B1 (en) * | 2017-11-22 | 2020-04-14 | Amazon Technologies, Inc. | Using a client to manage remote machine learning jobs |
-
2015
- 2015-07-21 TW TW104123571A patent/TWI591982B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201705722A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Network traffic classification for data fusion: A survey | |
Perdisci et al. | Iotfinder: Efficient large-scale identification of iot devices via passive dns traffic analysis | |
Alshammari et al. | Identification of VoIP encrypted traffic using a machine learning approach | |
CN104052639B (zh) | 基于支持向量机的实时多应用网络流量识别方法 | |
WO2022037130A1 (zh) | 网络流量异常的检测方法、装置、电子装置和存储介质 | |
CN110855648B (zh) | 一种网络攻击的预警控制方法及装置 | |
US11290331B2 (en) | Detection and resolution of rule conflicts in device classification systems | |
Viegas et al. | A reliable and energy-efficient classifier combination scheme for intrusion detection in embedded systems | |
Yin et al. | Iot etei: End-to-end iot device identification method | |
Liu et al. | Riemannian manifold on stream data: Fourier transform and entropy-based DDoS attacks detection method | |
Salman et al. | Data representation for CNN based internet traffic classification: a comparative study | |
TWI591982B (zh) | 網路流量辨識方法及辨識系統 | |
Wetzig et al. | Unsupervised anomaly alerting for iot-gateway monitoring using adaptive thresholds and half-space trees | |
Lee et al. | ATMSim: An anomaly teletraffic detection measurement analysis simulator | |
CN111310796B (zh) | 一种面向加密网络流的Web用户点击识别方法 | |
Wan et al. | DevTag: A benchmark for fingerprinting IoT devices | |
CN115514720B (zh) | 一种面向可编程数据平面的用户活动分类方法及应用 | |
Zhao et al. | TrCMP: A dependable app usage inference design for user behavior analysis through cyber-physical parameters | |
Ma et al. | A Multi-Perspective Feature Approach to Few-Shot Classification of IoT Traffic | |
CN114510615A (zh) | 一种基于图注意力池化网络的细粒度加密网站指纹分类方法和装置 | |
Kumar et al. | Machine learning based traffic classification using low level features and statistical analysis | |
CN114679318A (zh) | 一种高速网络中轻量级的物联网设备识别方法 | |
de Souza et al. | Network traffic classification using AdaBoost dynamic | |
CN111711946A (zh) | 一种加密无线网络下的IoT设备识别方法及识别系统 | |
Yan | Combining Renyi entropy and EWMA to detect common attacks in network |