TW201624310A - 估計熵值之方法與系統 - Google Patents

估計熵值之方法與系統 Download PDF

Info

Publication number
TW201624310A
TW201624310A TW103146640A TW103146640A TW201624310A TW 201624310 A TW201624310 A TW 201624310A TW 103146640 A TW103146640 A TW 103146640A TW 103146640 A TW103146640 A TW 103146640A TW 201624310 A TW201624310 A TW 201624310A
Authority
TW
Taiwan
Prior art keywords
entropy
value
estimating
packet
estimated
Prior art date
Application number
TW103146640A
Other languages
English (en)
Other versions
TWI541662B (zh
Inventor
賴裕昆
特佑 魏
游輝評
Original Assignee
中原大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中原大學 filed Critical 中原大學
Priority to TW103146640A priority Critical patent/TWI541662B/zh
Priority to US14/640,351 priority patent/US9781427B2/en
Publication of TW201624310A publication Critical patent/TW201624310A/zh
Application granted granted Critical
Publication of TWI541662B publication Critical patent/TWI541662B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在高速網路的環境下,要將所有的封包標頭資訊做即時統計、並計算熵值,需要耗費大量的計算和儲存資源,本發明根據Ashwin Lall等人所提出的川流估計熵演算法,使用速寫演算法取代其精確計數的部分,以一次性的處理手法,快速的統計封包流的資訊,來估算熵值。本發明使用少量的記憶體空間,於NetFPGA-10G開發平台,實現基於計數速寫(Count Sketch)之川流估計熵演算法量測系統。本系統可於30Gbps網路流量中,進行高速熵值估算。

Description

估計熵值之方法與系統
本發明係關於一種估計熵值之方法與系統,特別係關於一種適用於高速網路流量分析的估計熵值之方法與系統。
近來年網路發展快速,傳輸速率日益增加,網路的攻擊或是異常行為也越來越普遍,像是蠕蟲(Worm)、端口掃描(Port Scan)、分散式阻斷服務攻擊(Distributed Denial of Service,以下簡稱DDoS)、位址掃描(Address Scan)等攻擊,都有可能影響到正常的網路環境與使用者。在網路的觀測中,我們可以根據封包標頭資訊進行統計與分析,用來觀察網路是否有異常的發生。
熵(Entropy)是一種用來量測資料分散與聚集程度的指標,熵的值越高表示資料分佈越分散,而熵的值越低表示資料分佈較集中。針對網路封包標頭資訊進行熵值的分 析,可以從中得知網路流量分佈的改變,進而找出是否存在異常行為或攻擊的事件,以DDoS攻擊為例,在短時間內會有多個來源端IP位址發送至相同目的地端IP位址,此時來源端IP地址種類增加,而被攻擊的目的地端地址封包個數增加,此時網路流量的分佈將會改變。而這些特殊的分佈會使熵值改變,若分佈集中於某些特定流量辨識碼(Flow ID)會使熵值降低,流量辨識碼平均分散則會使熵值提升,因此,運用熵值分析的技巧被廣泛地應用在網路安全相關的應用分析之中,來找出網路流量的分佈特徵,進而推斷是否有異常或是攻擊的發生。
在高速網路下,會有大量資料需要在短時間內進行統計與分析,若使用軟體的方式進行處理,需要相當長的運算時間與儲存空間,再者,在信息理論中,熵值可用來量測資料聚集的程度,且要將所有封包標頭資訊做即時統計,並計算熵值需要耗費大量的計算和儲存資源。傳統熵值的方程式可如下公式(1)所示,其中m為總封包數,m i 為流量辨識碼i [n]的封包數,n為封包種類數。
為在高速網路的環境下計算熵值,Ashwin Lall等人,提出使用川流值計熵的演算法,藉由熵值的方程式整理出一方程式,如公式(2)所示。再藉由公式的推導,定義S值如公式(3)所示。Ashwin Lall等人認為可以利用估計S的值,來計算熵值H,所以使用川流估計熵演算法估計S的值,再帶入公式(4),以求得最後的估計熵值。
川流估計熵的演算法是根據AMS演算法所衍伸的方法,川流估計熵的演算法如表1所示,其主要分成三個階段,第一階段是先隨機在川流資料中先隨機取樣g x z個位置,在取樣前須先知道封包的總數m,並設定可容忍的誤差值,來決定取樣的個數,g與z的選取參照公式(5)所示;第二階段可分為更新與取樣兩部分,更新的部分對於川流中的所有封包進行流量辨識碼比對,若某流量辨識碼已被取樣過,則對其所有相同流量辨識碼的計數器c進行計數,在取樣的部分,若某封包被取樣,則在對應的位子記錄流 量辨識碼並進行封包計數;第三階段為統計結束,將所有的計數器值以公式(6)計算,求得每一列的平均數,再從每列的平均數中選取中位數做為S的估計值。
X=m(c log(c)-(c-1)log(c-1))................(6)
藉由表1的演算法,可簡易歸納為表2的演算法如下:
由於在高速網路的環境下,軟體手法因為耗用大量的運算時間無法達到即時異常偵測,所以S.Nagalakshmi以FPGA硬體實現川流估計熵演算法。S.Nagalakshmi提出減少計數器的數量,並證明計算結果的錯誤率仍然能保持在預設的錯誤率範圍。然而,雖然S.Nagalakshmi使用112組計算模組可以平行處理封包計數,但仍然需要多次對記憶體進行比對與更新的動作,若在高速而且大量封包的環境下,會無法滿足線速處理的要求,造成熵值估計的錯誤率增加。
鑑於傳統對於估計熵值缺乏一套有效的估計熵值的方法及系統,因此亟需提出一種新穎機制,可用於高速網 路流量的環境下進行估計熵值的分析。
鑒於上述之發明背景中,為了符合產業上特別之需求,本發明提供一種估計熵值之方法與系統可用以解決上述傳統技藝未能達成之標的。
根據本發明上述之目的,本發明提供一種估計熵值之方法,該方法包括:一種估計熵值之方法,包括:在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的個數;於該川流資料中,隨機取樣一複數個位置;應用一計數速寫演算法來對每一個封包進行計數與更新;根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢;將每一個該封包的查詢結果記錄在一熵表格中;求得該熵表格中同一列計數器的平均數;從每一列計數器的該平均數中選出一中位數為一估計值;以及根據該估計值,以求得一估計的熵值。
根據本發明上述之目的,本發明提供一種估計熵值之系統,該系統包括:一量測模組,用在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的 個數;一取樣模組,耦接該量測模組,其於該川流資料中,隨機取樣一複數個位置;一計算與更新模組,耦接該取樣模組,其應用一計數速寫演算法來對每一個封包進行計數與更新;一查詢模組,耦接該計算與更新模組,其根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢;一儲存模組,耦接該查詢模組與該計算與更新模組,其將每一個該封包的查詢結果記錄在一熵表格中,並求得該熵表格中同一列計數器的平均數,且從每一列計數器的該平均數中選出一中位數為一估計值,以及根據該估計值,以求得一估計的熵值。
根據本發明上述之目的,本發明提供一種估計熵值之方法,該方法包括:一種估計熵值之方法,包括:在一川流資料中,應用一川流估計熵演算法,決定一取樣的個數,並隨機取樣一複數個位置;以及應用一計數速寫演算法,以求得一估計的熵值。
S101~S108‧‧‧步驟
201‧‧‧量測模組
202‧‧‧取樣模組
203‧‧‧計算與更新模組
204‧‧‧查詢模組
205‧‧‧儲存模組
第一圖所示係為根據本發明實施例所示之估計熵值之方法的流程圖;第二圖所示係為根據本發明實施例所示之估計熵值之系統的示意圖;第三圖所示係為計數速寫封包更新的示意圖;第四圖所示係為計算封包更新之模擬波形圖;第五圖所示係為蓄水池取樣之模擬波形圖;第六圖所示係為估計熵系統運作之系統架構圖;第七圖所示係為計算速寫結合川流估計熵值的測試結果圖形變化圖;與第八圖所示係為計算速寫空間大小(4k~256k)與估計熵錯誤率之比較統計圖。
本發明在此所探討的方向為估計熵值之方法與系統,為了能徹底地瞭解本發明,將在下列的描述中提出詳盡的結構及其元件與方法步驟。另一方面,眾所周知的結構及其元件並未描述於細節中,以避免造成本發明不必要之限制。此外,為提供更清楚之描述及使熟悉該項技藝者能理解本發明之發明內容,圖示內各部分並沒有依照其相對之尺寸而繪圖,某些尺寸與其他相關尺度之比例會被突顯而顯得誇張,且不相關之細節部分亦未完全繪出,以求圖示簡潔。本發明的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明範圍不受限定,其以之後的專利範圍為準。
參考第一圖所示,根據本發明之實施例,本發明提供一種估計熵值之方法,該方法包括:在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的個數(步驟S101),接著,於該川流資料中,隨機取樣一複數個位置(步驟S102),且該複數個位置為一g x z的陣列位置,並應用一公式來進行該g與z的選取,且該公式為:
接著,應用一計數速寫演算法來對每一個封包進行計數與更新(步驟S103),並根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢(步驟S104),並將每一個該封包的查詢結果記錄在一熵表格中(步驟S105),其中該熵表格為一陣列表格。
接著,求得該熵表格中同一列計數器的平均數(步驟S106),並從每一列計數器的該平均數中選出一中位數為一估計值(步驟S107)以及根據該估計值,以求得一估計的熵值(步驟S108)。特別是,於「求得該熵表格中同一列計數器的平均數」之步驟,更包括根據一方程式計算該熵表格中同一列計數器值,以得出一計算值以及根據該計算值取得每一列計數器值的該平均數,且其中該方程式為:X=m(c log(c)-(c-1)log(c-1))。
特別是,其中「根據該估計值,以求得一估計的熵值」之步驟,更包括將該估計值代入一方程式,以求得一估計的熵值,且該方程式為:
參考第二圖所示,根據本發明之實施例,本發明提供一種估計熵值之系統,該系統包括:一量測模組201,用在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的個數。
一取樣模組202,耦接該量測模組,其於該川流資料中,隨機取樣一複數個位置,其中該複數個位置為一g x z的陣列位置,並應用一公式來進行該g與z的選取,且該公式為:
一計算與更新模組203,耦接該取樣模組,其應用一計數速寫演算法來對每一個封包進行計數與更新。該計算與更新模組203根據一方程式計算該熵表格中同一列計數器值,以得出一計算值,以及根據該計算值取得每一列計數器值的該平均數,且其中該方程式為:X=m(c log(c)-(c-1)log(c-1))。
該計算與更新模組203將該估計值代入一方程式,以求得一估計的熵值,且該方程式為:
一查詢模組204,耦接該計算與更新模組203,其根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢;一儲存模組205,耦接該查詢模組204與該計算與更新模組203,其將每一個該封包的查詢結果記錄在一熵表格中,並求得該熵表格中同一列計數器的平均數,且從每一列計數器的該平均數中選出一中位數為一估計值,以及根據該估計值,以求得一估計的熵值。
速寫(Sketch)演算法是一種只需要少量記憶體,即可將大量資料進行快速摘要處理的方式,透過雜湊函數(Hash Function)將資料映射到固定的儲存位置,查詢、更新各流量辨識碼的統計資料。速寫演算法具有線性加總的特性,若使用相同參數可以將不同的觀測點或是觀測區間整合。
計數速寫(Count Sketch)是一種(ε,δ)預估演算法,可以用來估計資料流中各個元素所出現的頻率。其使用t組記數器陣列,每一組陣列含有b個32位元的計數器,參數t與b的選用如公式(7)所示。
計數速寫中,每一組記數器陣列皆搭配有兩種通用雜湊函數(Universal Hash Function),分別為:h i (x)與s i (x)其值的映射範圍分別為{0,1,2,....,b-1}以及{+1,-1}。演算法運作流程可分為封包更新(Update)與查詢(Query)兩部分。
第三圖顯示計數速寫封包更新運算圖。在封包更新的部分,演算法對IP地址進行t個雜湊函數運算:h i (IP),再分別將對應的陣列位置行s i (IP)的更新,如第三圖所示與公式(8)所示。
C[i,h i (IP)]=C[i,h i (IP)]+s i (IP),i=1,.....,t........................(8)
當計數結束時,使用雜湊函數h i ( )對流量辨識碼x所計算的值h i (x)為地址,在t個一維陣列中讀出所統計的數值,並乘上雜湊函數s i (x),計算如公式(9)所示。再將t個陣列所查 詢到的值,取中位數,即為此流量辨識碼x的封包估計數個數。
f i =C[i,h i (x)]×s i (x),i=1,....,t.....................................(9)
本發明改良Ashwin Lall等人所提出的估計熵演算法,針對Ashwin Lall等人所提出的估計熵演算法中精確的封包計數,改用計數速寫(Count Sketch)所估計的封包出現次數,如表3所示,當量測開始時,系統對每一個封包進計數更新,再根據先前所選取的g x z個位置的流量識別碼,進行計數速寫封包的查詢,並將查詢結果記錄在g x z個估計熵陣列Est[ ]之中,當觀測區結束時,將所有同一列計數器的值以公式(6)計算X的數值,計算後取得每列的平均數avg[i],再從每列的值中選取中位數估計S的值,並經由公式(4)計算出估計的熵值H。
因此,在可接受的錯誤率下,本發明比Ashwin Lall等人所提出的估計熵演算法更能大幅減少記憶體空間的使用與演算法運算的時間。例如,在取樣的部分,A.Lall所提出的估計熵演算法中,當某封包被取樣,對流量辨識碼進行雜湊函數的運算,找尋其相對應的位置,並對樣的封包進行新的計數器新增,將封包流量辨識碼儲存於估計熵表格中,並將計數器設定為1,若是取樣到相同的位置則需進行鏈結串列 指標的更新,根據碰撞次數i的不同,記憶體存取的次數為2+i次。而使用計數速寫演算法結合川流估計熵演算法則須對計數速寫進行流量辨識碼的封包計數查詢,將查詢的值依序填入估計熵表格中,記憶體存取的次數為2次。
藉由表3的演算法,可簡易歸納為表4的演算法如下:
在更新的部分,A.Lall所提出的估計熵演算法,對流量辨識碼進行雜湊函數的運算,找尋其相對應的位置,並進行流量辨識碼的比對,根據碰撞的次數i的不同,需要進行1+i次的比對與i次的鏈結串列指標讀取,若相同流量辨識碼個數為j,則需進行2 x j次的記憶體讀寫,共計(i+2)+i+(2 x j)次記憶體讀寫。而使用計數速寫演算法結合川流估計熵演算法,則只需要進行2次的記憶體存取(讀/寫)。記憶體存取次數如表3所示。
再來,本發明分別使用相同記憶體空間(400Kbyte)與較少之計數速寫陣列(112Kbyte),比較其熵值預估之錯誤率,結果如表4所示。使用計數速寫演算法取代精確計數的估計熵演算法相較於A.Lall等人所提出的估計熵演算法,以計算速寫陣列4k為例,本發明只需要使用將近四分之一的記憶體空間其錯誤率可在5%的範圍內,並可以大幅減少系統的運算時間。
另外,本發明應用NetFPGA-10G開發平台,來實現適用於高速網路流量之川流估計熵演算法之量測與估計熵兩大模組。NetFPGA是由美國史丹佛大學研究團隊使用可程式化邏輯閘陣列(FPGA)所開發出來的設計平台。設計者可以透過硬體描述語言(Verilog,VHDL),在開發平台上實現諸如交換器、路由器等網路系統。
本發明以NetFPGA-10G的網路卡參考設計模組(Reference NIC)為基礎,加入基於計數速寫封包更新的量測模組(Histogram Module),包含雜湊函數實現、計數器陣列與蓄水池抽樣實現,目的是為了透過硬體,加快統計表格與估計熵表格的計數器更新速度。量測階層中有主要兩大部分,分別為封包更新與封包取樣。
在封包更新的部分使用計數速寫演算法進行封包個數統計,計數封包參數設定為三組,每一組擁有28k個、32位元之計數器陣列(t=3,b=28k),硬體使用三個BRAM做封包的即時更新,當封包進入量測模組時,使用2-Universal雜湊函數進行速寫的存取位置運算。在運算雜湊函數時需要進行取餘數(mod)的運算,以硬體實現而言,需要大量的資源與時間,因此,我們使用CW-trick,使用梅森質數,平行地進行三組雜湊函數的運算。
第四圖所示係為計算封包更新之模擬波形圖。於本實施例,是利用Xilinx開發工具iSim做硬體模擬的驗證,透過NetFPGA-10G所提供的封包產生腳本檔,可產生所需要的標頭資訊,來進行系統的模擬驗證,並產生不同來源端地址的封包,分別發送封包,來驗證計數速寫是否能夠正確的讀寫。第三圖中的框線處為某IP發送單一封包記憶體讀寫的模擬,在其所對應的記憶體位置0x0c07可以讀出原本值為0,當記憶體寫入後讀取的值變為1,框線內的部分是某一IP連續發送兩個封包,其所對應的記憶體位置為0x0262,所讀取的值為0,當記憶體寫入後讀取的值變為-1,當第二封包讀寫後,讀取的值變為-2,驗證在連續相同封包下記憶體能正確累計封包個數。
蓄水池抽樣(Reservoir sampling)演算法可用來解決未知長度的資料抽樣問題,如表5所示。當川流資料數(n)小於取樣(m)時,將每一個資料e n 都作取樣,當資料數大於取樣數時,根據的機率判斷e n 是否選取,若被選取則從取樣資料(R)中隨機替換新被取樣的值e n
本發明使用蓄水池取樣的方式式進行取樣,當封包被取樣時,可根據被取樣封包的流量辨識碼查詢當下三組計數速寫所計數封包的個數,取中間值為流量辨識碼的估計個數,將估計的封包個數,儲存於估計熵演算法的陣列中。蓄 水池取樣使用硬體實現,隨機演算法使用2-Universal雜湊函數來決定封包是否被取樣,並將蓄水池取樣做一些修改,以減少硬體資源與運算所需時間。在原始作者所提出之演算法 是將封包隨機取樣機率設定為,其中m為取樣的個數,n為 當下川流資料的個數,在硬體實現時,將原本的取樣機率更 改為,其中,即當為二的倍數時才取代p, 如此一來可以解決運算雜湊函數時需要進行取餘數(mod)的運算,使用位移的方式來取代乘法器,縮短系統硬體運算的時間。
第五圖所示係為蓄水池封包取樣之模擬波形圖。於本實施例,將封包計數的值(n)代入2-Universal雜湊函數會產生一個值,本發明將此值設定為封包取樣的依據,當產生的值小於估計熵陣列的空間大小g x z時,就將此封包進行計數速寫的查詢,並將此值當作取代的地址,達到使用硬體實現蓄水池取樣的目標。
當觀測區間結速時,以軟體實現的估計熵模組經由移動視窗暫存器將硬體中的估計熵表格經由PCIe匯流排讀出,進行熵值的運算,系統運作之架構如第六圖所示。第六圖所示係為估計熵系統運作之系統架構圖。主要分為軟體部分與硬體部分。軟體部分包括:含有ioctl函數的主操作系統, 用於執行熵值計算,硬體部分包括具有計算速寫功能、可進行更新(Update)和查詢(Query)的積體晶片,該計算速寫功能具有二種通用雜湊函數來進行運算。該軟體部分與硬體部分藉由PCI Express匯流排介面來進行訊息傳輸。
圖形化介面顯示目前熵值的變化,如第七圖所示。本發明所討論實現之系統功能是否正常,即當異常發生時熵值是否產生改變。使用合成的方式將流量測試檔2複製成三十分鐘,並在後十五分鐘加入Slammer蠕蟲案例的流量檔,以10秒為一觀測區間。Slammer蠕蟲案例其特徵為透過UDP Port 1434的漏洞,在網路中尋找有此漏洞的主機,本發明擷取流量記錄檔發生巨變的區段,其總長度為十五分鐘進行測試。熵值測試結果圖形化如第七圖所示,第七圖所示係為計算速寫結合川流估計熵值的測試結果圖形變化圖。
另外,計數速寫演算法在估計熵值時,因為空間大小不同,會造成熵值量測結果的差異。因此,此節可探討不同計數速寫演算法陣列大小對於估計熵的準確度,最後以有網路異常行為之流量進行實體系統的測試,查看使否能夠判斷網路異常行為,佐證系統之功能性。
本發明為測試演算法的正確性與系統實際效能,分別選用不同流量測試檔來測試,以下為各測試流量檔資訊。
流量測試檔1:從CAIDA的equinix-sanjose高速骨幹網路擷取的封包資訊,此流量檔只保留封包標頭資訊,共計30,801,712個IP封包,448,809個IP來源端位址,流量檔長度為一分鐘。
流量測試檔2:MAW所提供的流量檔,擷取至跨太平洋100Mbps的傳輸通道,此流量檔只保留封包標頭資訊,共計3514656個IP封包,51779個IP來源端位址,總長度為十五分鐘。
流量測試檔3:MAWI所提供的流量檔,此流量檔只保留封包標頭資訊,共計50544023個IP封包,6364302個IP來源端位址,總長度為十五分鐘。
OSNT(Open source Network Tester)是一個實現在NetFPGA-10G開發平台上的開放源網路測試系統。使用OSNT不僅可以做高速流量的測試,同時亦省去購買昂貴的流量產生設備所需要的成本。OSNT具有OSNT Traffic Generator與OSNT Traffic Monitor兩個功能,並提供圖形化介面方便使 用者使用。OSNT流量產生器可以利用事先載入的PCAP流量檔寫入SRAM中,根據不同需求可以重複播送多次,其流量檔大小限制依據SRAM大小而有所受限,OSNT亦提供延遲(Delay Module)與速率限制(Rate Limiter)兩種控制功能。而OSNT流量觀測器則可擷取封包,統計其封包個數與量測速率,並分析封包種類與設定過濾特定的封包。
本發明為驗證OSNT是否能產生線速的流量,將兩台具有NetFPGA-10G的電腦分別開啟OSNT流量產生器與流量觀測器並且對接,用於測試所播送之流量是否達到40G的線速,然而OSNT目前僅能提供兩個端口各10G線速,故改為使用兩台OSNT流量產生器來測試系統是否能夠達到40G的線速。
使用兩個實驗測試估計熵系統的功能是否能達到線速,在系統中影響線速的最大的因素是計數速寫的更新部分,所以驗證在線速下是否能夠正確的計數封包,第一個測試使用IXIA產生的流量測試檔,流量測試檔中包含一百個不同來源端IP位置(192.168.0.*),並且分別從四個端口發送重複播送十萬次,播送完畢後將量測系統中計數速寫計數器的值讀出,結果顯示有100個計數器讀出四十萬個封包計數,第二個測試使用相同流量辨識碼的最小封包進行測試,使用不同 端口數同時接收封包,最後將量測系統中計數速寫計數器的結果讀出,結果如表6所示,由表可驗證在30G的線速下,硬體實現之量測系統能夠正常計數:
第八圖顯示計算速寫空間大小(4k~256k)與估計熵錯誤率之比較統計圖。於本實施例,本發明使用計數速寫來進行流量摘要,估計各個來源端位置的封包個數,來計算熵值,然而雜湊函數會有碰撞的發生,會導致來源端封包估計的錯誤,降低估計熵值的準確度,因此,本發明使用不同速寫陣列大小,比較記憶體空間對於實際熵值所產生的誤差。本測試以軟體的方式實現計數速寫結合川流估計熵演算法,並使用流量記錄檔1進行準確度分析,此流量檔記錄了不同來源與目的地的封包。以來源端IP位址為量測標的,分析結果如第八圖所示。計數速寫在進行封包估計時,越小的儲存空間,相互碰撞的機率就越大,所估計的封包個數錯誤率就會越大,導致在估計熵時錯誤率上升。
本發明在討論使用硬體實現之系統與軟體模擬量測熵值的結果時,首先使用相同流量檔與相同參數,分別實現軟體與硬體之系統,驗證兩者所估算之熵值是否相同,在硬體測試本研究使用一台具有兩個SFP+光纖網路端口的10Gbit/s傳輸速率網卡(Myricom 10G NIC)主機,使用TCPREPLAY將測試流量檔播送至估計熵系統,測試系覺是否能正確計算熵值,並與軟體所計算之熵值做比較,測試結果如表7所示,顯示使用軟體測試結果與硬體測試結果相同,驗證硬體實現系統功能正確。
本發明改良Ashwin Lall等人所提出的川流估計熵演算法,使用計數速寫取代其精確計數,透過速寫演算法可以高速摘要大量網路流量的特性,於NetFPGA-10G開發平台,使用Verilog HDL硬體描述語言,實現適用高速核心網路之川流估計熵演算法。本發明使用實際的網路流量檔案,模擬、驗證估計熵演算法的精確度,並且使用OSNT測試硬體系統,確認經過量測系統流量所計算熵的值與模擬器的結果互相吻合。最後,本發明實作圖形化介面,讓網路管理者可以容易 的觀察流量標頭資訊熵值的變化,協助辨別目前網路的異常情況。
在高速網路的環境下,要將所有的封包標頭資訊做即時統計,並計算熵需要耗費大量的計算和儲存資源,本發明根據Ashwin Lall等人所提出的川流估計熵演算法,使用速寫演算法取代其精確計數的部分,以一次性的處理手法,快速的統計封包流的資訊,本發明使用少量的記憶體空間,於NetFPGA-10G開發平台,實現基於計數速寫(Count Sketch)之川流估計熵演算法量測系統。本系統可於30Gbps網路流量中,進行高速熵值估算。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申請專利範圍;凡其它未脫離發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之申請專利範圍內。
S101~S108‧‧‧步驟

Claims (20)

  1. 一種估計熵值之方法,包括:在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的個數;於該川流資料中,隨機取樣一複數個位置;應用一計數速寫演算法來對每一個封包進行計數與更新;根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢;將每一個該封包的查詢結果記錄在一熵表格中;求得該熵表格中同一列計數器的平均數;從每一列計數器的該平均數中選出一中位數為一估計值;以及根據該估計值,以求得一估計的熵值。
  2. 如申請專利範圍第1項所述之估計熵值之方法,其中該複數個位置為一g x z的陣列位置。
  3. 如申請專利範圍第2項所述之估計熵值之方法,其中應用一公式來進行該g與z的選取,且該公式為:
  4. 如申請專利範圍第1項所述之估計熵值之方法,其中該熵表格為一陣列表格。
  5. 如申請專利範圍第1項所述之估計熵值之方法,其中「求得該熵表格中同一列計數器的平均數」之步驟,更包括:根據一方程式計算該熵表格中同一列計數器值,以得出一計算值;以及根據該計算值取得每一列計數器值的該平均數。
  6. 如申請專利範圍第5項所述之估計熵值之方法,其中該方程式為:X=m(c log(c)-(c-1)log(c-1))。
  7. 如申請專利範圍第1項所述之估計熵值之方法,其中「根據該估計值,以求得一估計的熵值」之步驟,更包括將該估計值代入一方程式,以求得一估計的熵值,且該方程式為:
  8. 一種估計熵值之系統,包括:一量測模組,用在一川流資料中,根據一封包總數,設定一可容忍誤差,以決定一取樣的個數;一取樣模組,耦接該量測模組,其於該川流資料中,隨機取樣一複數個位置;一計算與更新模組,耦接該取樣模組,其應用一計數速寫演算法來對每一個封包進行計數與更新;一查詢模組,耦接該計算與更新模組,其根據該複數個位置的流量識別碼,並應用該計數速寫演算法來進行每一個該封包的查詢;與一儲存模組,耦接該查詢模組與該計算與更新模組,其將每一個該封包的查詢結果記錄在一熵表格中,並求得該熵表格中同一列計數器的平均數,且從每一列計數器的該平均數中選出一中位數為一估計值,以及根據該估計值,以求得一估計的熵值。
  9. 如申請專利範圍第8項所述之估計熵值之系統,其中該複數個位置為一g x z的陣列位置。
  10. 如申請專利範圍第9項所述之估計熵值之系統,其中應用一公式來進行該g與z的選取,且該公式為:
  11. 如申請專利範圍第8項所述之估計熵值之系統,其中該熵表格為一陣列表格。
  12. 如申請專利範圍第8項所述之估計熵值之系統,其中該計算與更新模組根據一方程式計算該熵表格中同一列計數器值,以得出一計算值,以及根據該計算值取得每一列計數器值的該平均數。
  13. 如申請專利範圍第12項所述之估計熵值之系統,其中該方程式為:X=m(c log(c)-(c-1)log(c-1))。
  14. 如申請專利範圍第8項所述之估計熵值之系統,其中該計算與更新模組將該估計值代入一方程式,以求得一估計的熵值,且該方程式為:
  15. 一種估計熵值之方法,包括:在一川流資料中,應用一川流估計熵演算法,決定一取樣的個數,並隨機取樣一複數個位置;以及應用一計數速寫演算法,以求得一估計的熵值。
  16. 如申請專利範圍第15項所述之估計熵值之方法,其中該川流估計熵值演算法更包括:根據一封包總數,設定一可容忍誤差,並決定一取樣的個數,與在該川流資料中,隨機取樣一複數個位置。
  17. 如申請專利範圍第15項所述之估計熵值之方法,其中該計數速寫演算法更包括:對每一個封包進行計數與更新,並根據該複數個位置的流量識別碼,來進行每一個該封包的查詢;將每一個該封包的查詢結果記錄在一熵表格中,並求得該熵表格中同一列計數器的平均數,並根據一方程式計算該熵表格中同一列計數器值,以得出一計算值,進而根據該計算值取得每一列計數器值的該平均數;以及從每一列計數器的該平均數中選出一中位數為一估計值,並根據該估計值,以求得一估計的熵值。
  18. 如申請專利範圍第17項所述之估計熵值之方法,其中該方程式為:X=m(c log(c)-(c-1)log(c-1))。
  19. 如申請專利範圍第15項所述之估計熵值之方法,其中將該估計值代入一方程式,以求得一估計的熵值,且該方程式為:
  20. 如申請專利範圍第15項所述之估計熵值之方法,其中該複數個位置為一g x z的陣列位置,而該熵表格為一陣列表格,其中應用一公式來進行該g與z的選取,且該公式為:
TW103146640A 2014-12-31 2014-12-31 估計熵值之方法與系統 TWI541662B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103146640A TWI541662B (zh) 2014-12-31 2014-12-31 估計熵值之方法與系統
US14/640,351 US9781427B2 (en) 2014-12-31 2015-03-06 Methods and systems for estimating entropy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103146640A TWI541662B (zh) 2014-12-31 2014-12-31 估計熵值之方法與系統

Publications (2)

Publication Number Publication Date
TW201624310A true TW201624310A (zh) 2016-07-01
TWI541662B TWI541662B (zh) 2016-07-11

Family

ID=56165872

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103146640A TWI541662B (zh) 2014-12-31 2014-12-31 估計熵值之方法與系統

Country Status (2)

Country Link
US (1) US9781427B2 (zh)
TW (1) TWI541662B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356106B2 (en) 2011-07-26 2019-07-16 Palo Alto Networks (Israel Analytics) Ltd. Detecting anomaly action within a computer network
US9979739B2 (en) 2013-01-16 2018-05-22 Palo Alto Networks (Israel Analytics) Ltd. Automated forensics of computer systems using behavioral intelligence
US10075461B2 (en) 2015-05-31 2018-09-11 Palo Alto Networks (Israel Analytics) Ltd. Detection of anomalous administrative actions
US9692731B2 (en) * 2015-10-07 2017-06-27 International Business Machines Corporation Anonymization of traffic patterns over communication networks
US10027694B1 (en) * 2016-03-28 2018-07-17 Amazon Technologies, Inc. Detecting denial of service attacks on communication networks
US10686829B2 (en) 2016-09-05 2020-06-16 Palo Alto Networks (Israel Analytics) Ltd. Identifying changes in use of user credentials
US10462170B1 (en) * 2016-11-21 2019-10-29 Alert Logic, Inc. Systems and methods for log and snort synchronized threat detection
GB2605931B (en) 2017-10-18 2023-05-10 Frank Donnelly Stephen Entropy and value based packet truncation
US10999304B2 (en) 2018-04-11 2021-05-04 Palo Alto Networks (Israel Analytics) Ltd. Bind shell attack detection
US11184376B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Port scan detection using destination profiles
US11316872B2 (en) 2019-01-30 2022-04-26 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using port profiles
US11184378B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Scanner probe detection
US11070569B2 (en) 2019-01-30 2021-07-20 Palo Alto Networks (Israel Analytics) Ltd. Detecting outlier pairs of scanned ports
US11184377B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using source profiles
US11012492B1 (en) 2019-12-26 2021-05-18 Palo Alto Networks (Israel Analytics) Ltd. Human activity detection in computing device transmissions
US11082168B1 (en) * 2020-03-19 2021-08-03 Western Digital Technologies, Inc. Entropy driven endurance for normalized quality of service
US11509680B2 (en) 2020-09-30 2022-11-22 Palo Alto Networks (Israel Analytics) Ltd. Classification of cyber-alerts into security incidents
TWI747742B (zh) 2021-02-22 2021-11-21 中原大學 封包資訊分析方法及網路流量監測裝置
CN113360532B (zh) * 2021-06-07 2022-11-15 东南大学 基于略图结构的网络流基数在线实时估算方法
US11799880B2 (en) 2022-01-10 2023-10-24 Palo Alto Networks (Israel Analytics) Ltd. Network adaptive alert prioritization system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100812378B1 (ko) * 2005-11-28 2008-03-11 이원석 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
US8321579B2 (en) * 2007-07-26 2012-11-27 International Business Machines Corporation System and method for analyzing streams and counting stream items on multi-core processors
US7773538B2 (en) * 2008-05-16 2010-08-10 At&T Intellectual Property I, L.P. Estimating origin-destination flow entropy
US8612983B2 (en) * 2009-09-07 2013-12-17 International Business Machines Corporation Scheduling event streams depending on content information data
WO2013187963A2 (en) * 2012-03-30 2013-12-19 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for rapid filtering of opaque data traffic

Also Published As

Publication number Publication date
US9781427B2 (en) 2017-10-03
US20160191918A1 (en) 2016-06-30
TWI541662B (zh) 2016-07-11

Similar Documents

Publication Publication Date Title
TWI541662B (zh) 估計熵值之方法與系統
Sivaraman et al. Heavy-hitter detection entirely in the data plane
Dimitropoulos et al. Probabilistic lossy counting: An efficient algorithm for finding heavy hitters
US10097464B1 (en) Sampling based on large flow detection for network visibility monitoring
Yoon et al. Fit a compact spread estimator in small high-speed memory
US9979624B1 (en) Large flow detection for network visibility monitoring
JP5961354B2 (ja) 効率的なネットフローデータ解析のための方法及び装置
US10536360B1 (en) Counters for large flow detection
CN110519290A (zh) 异常流量检测方法、装置及电子设备
US10003515B1 (en) Network visibility monitoring
JP6293283B2 (ja) ソフトウェア定義ネットワークにおけるオフラインクエリ
CN110049061A (zh) 高速网络上轻量级DDoS攻击检测装置及检测方法
Wellem et al. A flexible sketch-based network traffic monitoring infrastructure
Lai et al. Implementing on-line sketch-based change detection on a NetFPGA platform
CN106878314A (zh) 基于可信度的网络恶意行为检测方法
CN117201368A (zh) 一种基于前置采样的网络流基数估计方法及系统
Canini et al. Per flow packet sampling for high-speed network monitoring
Wang et al. Botnet detection using social graph analysis
Hammerschmidt et al. Efficient learning of communication profiles from ip flow records
Cohen et al. Algorithms and estimators for accurate summarization of internet traffic
CN115580543B (zh) 一种基于哈希计数的网络系统活跃度评估方法
Wang et al. Virtual indexing based methods for estimating node connection degrees
JP4209897B2 (ja) 大量フロー生成ホスト特定方法およびシステム
CN113810332B (zh) 一种加密数据报文判定方法、装置及计算机设备
Wang et al. An on-line anomaly detection method based on a new stationary metric-entropy-ratio