TWI629886B - 封包分析裝置、方法及其電腦程式產品 - Google Patents

封包分析裝置、方法及其電腦程式產品 Download PDF

Info

Publication number
TWI629886B
TWI629886B TW106107566A TW106107566A TWI629886B TW I629886 B TWI629886 B TW I629886B TW 106107566 A TW106107566 A TW 106107566A TW 106107566 A TW106107566 A TW 106107566A TW I629886 B TWI629886 B TW I629886B
Authority
TW
Taiwan
Prior art keywords
packets
packet
bit
group
processing unit
Prior art date
Application number
TW106107566A
Other languages
English (en)
Other versions
TW201834427A (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 TW106107566A priority Critical patent/TWI629886B/zh
Application granted granted Critical
Publication of TWI629886B publication Critical patent/TWI629886B/zh
Publication of TW201834427A publication Critical patent/TW201834427A/zh

Links

Abstract

一種封包分析裝置、方法及其電腦程式產品。該封包分析裝置儲存複數個格式未知之封包。該封包分析裝置計算該等封包之複數個互相關值。該封包分析裝置根據該等互相關值及至少一第一門檻值決定至少一群組,各群組包含該等封包之一子集。該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,且該特定群組所包含之各該封包包含複數個位元。該封包分析裝置計算各該位元位置所對應之該等位元之一變化程度,且選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。

Description

封包分析裝置、方法及其電腦程式產品
本發明係關於一種封包分析裝置、方法及其電腦程式產品;更具體而言,本發明係關於一種分析未知格式封包之裝置、方法及其電腦程式產品。
由於資訊科技的快速地發展,許多資訊業者、研究單位基於不同的需求及考量,制定了各式各樣的封包格式(例如:不同通訊協定的封包格式、不同的資料儲存格式、不同的影像格式),但並非所有的封包格式皆符合國際制定之標準。
許多的應用(例如:模糊測試(Fuzz Testing))需要事先知道封包格式(例如:具有多少欄位、各欄位之長度)方能有效率地或/及正確地執行。目前已有一些技術能分析未知格式之封包,其係將未知格式之封包之特徵值與已知格式之封包之特徵值比對,藉此確認未知格式之封包之格式。採取此種技術之缺點在於,一旦未能找尋到特徵值相似之已知格式,將無法確認未知格式封包之格式。有鑑於此,本領域仍亟需一種能分析未知格式之封包之格式的技術。
本發明之一目的在於提供一種封包分析裝置。該封包分析裝置包含一儲存單元及一處理單元,且二者彼此電性連接。該儲存單元儲存複數個封包,且該等封包所符合之一格式為未知。該處理單元計算該等封包之複數個互相關值。該處理單元根據該等互相關值及至少一第一門檻值決定至少一群組,其中各該至少一群組包含該等封包之一子集。該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,且該特定群組所包含之各該封包包含複數個位元。該處理單元更計算各該位元位置所對應之該等位元之一變化程度,且選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
本發明之另一目的在於提供一種封包分析方法,其係適用於一電子計算裝置。該封包分析方法包含下列步驟:(a)計算複數個封包之複數個互相關值,其中該等封包所符合之一格式為未知,(b)根據該等互相關值及至少一第一門檻值決定至少一群組,其中各該至少一群組包含該等封包之一子集,該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,該特定群組所包含之各該封包包含複數個位元,(c)計算各該位元位置所對應之該等位元之一變化程度,以及(d)選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
本發明之又一目的在於提供一種電腦程式產品。一電子計算裝置載入該電腦程式產品後,該電子計算裝置執行該電腦程式產品所包含之複數個程式指令,以執行前段所述之封包分析方法。
概要而言,本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)會依據複數個封包間之關聯性決定至少一群組,再為至 少一個群組決定其所包含之封包之欄位邊界。這些欄位便可提供予使用者參考(例如:在制定模糊測試政策時參考)。本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)可進一步地為至少一群組分析其各位元位置之特性(例如:位元值機率、位元值偏向程度)或/及判斷其所包含之封包是否具有長度指示欄位。再者,本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)亦可進一步地分析一封包是否具有一週期特性。這些不同的資訊亦皆可提供予使用者參考,俾其進行更為深入的分析。
以下結合圖式闡述本發明之詳細技術及實施方式,俾使本發明所屬技術領域中具有通常知識者能理解所請求保護之發明之技術特徵。
1‧‧‧封包分析裝置
11‧‧‧儲存單元
13‧‧‧處理單元
10a、10b‧‧‧封包
12a、12b‧‧‧特定欄位
S201~S211‧‧‧步驟
S211~S233‧‧‧步驟
S241~S249‧‧‧步驟
第1A圖係描繪第一實施方式之封包分析裝置1之架構示意圖;第1B圖係描繪一範例中所使用之20個封包之示意圖;第1C圖係描繪位元位置及位元值偏向程度之一範例之示意圖;第1D圖係描繪特定欄位之一範例之示意圖;第2A圖係描繪第二實施方式之封包分析方法之流程圖;第2B圖係描繪為至少一群組判斷其所包含之封包是否具有長度指示欄位之流程圖;以及第2C圖係描繪分析任一封包是否具有週期特性之流程圖。
以下將透過多個實施方式來解釋本發明所提供之封包分析裝置、方法及其電腦程式產品。然而,該等實施方式並非用以限制本發明需在如該等實施方式所述之任何環境、應用或方式方能實施。因此,關於實施方式之說明僅為闡釋本發明之目的,而非用以限制本發明之範圍。需說明者,在以下實施方式及圖式中,與本發明非直接相關之元件已省略而未繪示,且各元件之尺寸以及元件間之尺寸比例僅為例示而已,而非用以限制本發明之範圍。
本發明之第一實施方式為一封包分析裝置1,其架構示意圖係描繪於第1A圖。封包分析裝置1包含一儲存單元11及一處理單元13,且二者彼此電性連接。儲存單元11可為一記憶體、一通用串列匯流排(Universal Serial Bus;USB)碟、一硬碟、一光碟(Compact Disk;CD)、一隨身碟或本發明所屬技術領域中具有通常知識者所知且具有相同功能之任何其他儲存媒體或電路。處理單元13可為各種處理器、中央處理單元(Central Processing Unit;CPU)、微處理器或本發明所屬技術領域中具有通常知識者所知之其他計算裝置中之任一者。
儲存單元11儲存複數個封包10a、…、10b,且封包10a、…、10b中之每一個包含複數個位元。封包10a、…、10b所符合之格式(例如:通訊協定)為未知;換言之,封包10a、…、10b中之每一個之欄位數目為未知,且各欄位之長度為未知。於本實施方式中,封包分析裝置1會依據封包10a、…、10b間之關聯性決定至少一群組,再為該至少一群組中之至少一個決定其所包含之封包之欄位邊界。
茲先說明封包分析裝置1如何計算封包10a、…、10b間之關 聯性。於本實施方式中,處理單元13計算封包10a、…、10b之複數個互相關值,且各互相關值與封包10a、…、10b中之二個封包相關。具體而言,處理單元13可針對由封包10a、…、10b中之任意二個封包所形成之所有組合中之每一個組合,計算一互相關值。
於某些實施方式中,處理單元13可先根據一互相關值計算長度決定封包10a、…、10b中每一個之一數值序列,其中該互相關值計算長度可為一預設長度。具體而言,針對封包10a、…、10b中之每一個,處理單元13以該互相關值計算長度取該封包所包含之該等位元之一子集(例如:前L個位元,其中L為該互相關值計算長度,且L為一正整數)作為其數值序列。此外,處理單元13更針對任意二個封包所形成之所有組合中之每一個組合所對應之該二個數值序列計算一向量內積值(亦即,將二個數值序列進行向量內積後所獲得之值),且以向量內積值作為互相關值。需說明者,前述封包10a、…、10b所對應之該等數值序列各具有一長度(亦即,數值序列中有幾個數值/位元),且該等長度相同(亦即,皆為該互相關值計算長度)。為便於理解,茲以下列數學符號表示處理單元13所決定之封包10a、…、10b之數值序列以及該等互相關值::第i個封包所對應之數值序列,其中i {0,1,...,M-1};:第j個封包所對應之數值序列,其中j {0,1,...,M-1};:第i個封包所對應之數值序列之長度; :第i個封包之第k個位元之值,,k {0,1,...,-1}; :第i個封包之數值序列之第k個數值,且;以及 ρ i,j :第i個封包與第j個封包間之互相關值,其中
需說明者,前述用以表示封包10a、…、10b之數值序列之數學符號中,參數M代表封包10a、…、10b之數目。此外,前述以向量內積值作為互相關值僅為一範例而已,並非用以限制本發明之範圍。由於一互相關值係用以表示界定該互相關值之二個封包間之相似程度(或關聯性),因此其他能呈現出二個封包(或二個數值序列)間之相似程度(或關聯性)之數值皆可作為互相關值。
為便於理解,茲以一範例詳細說明前述運作,但該範例並非用以限制本發明之範圍。請參第1B圖,其係描繪此範例中所使用之20個封包。第1B圖中,每一列代表一個封包,且各封包所包含之該等位元之值係以16進位表示。處理單元13先根據一互相關值計算長度決定各個封包之一數值序列,其中該等數值序列之長度相同。處理單元13再將任意二個封包所形成之所有組合中之每一個組合所對應之該二個數值序列計算一向量內積作為互相關值。茲假設此20個封包之編號為由0至19。以第0個封包為例,茲假設處理單元13為其所計算出來之互相關值(亦即,第0個封包與其他封包間之互相關值)包含ρ 0,1=0.595、ρ 0,2=0.5725、ρ 0,3=0.62、ρ 0,4=0.79、ρ 0,5=0.5725、ρ 0,6=0.66、ρ 0,7=0.585、ρ 0,8=0.555、ρ 0,9=0.56、ρ 0,10=0.5425、ρ 0,11=0.5925、ρ 0,12=0.565、ρ 0,13=0.6025、ρ 0,14==0.4775、ρ 0,15=0.4875、ρ 0,16=0.53、ρ 0,17=0.4975、ρ 0,18=0.5125及ρ 0,19=0.5025。
接著,處理單元13根據該等互相關值及至少一第一門檻值決定至少一群組,而各該至少一群組包含封包10a、…、10b之一子集。於某些實施方式中,處理單元13可為封包10a、…、10b中之每一個決定一第一 門檻值,且針對封包10a、…、10b中之每一個,以其相對應之第一門檻值決定一群組。於某些實施方式中,處理單元13可只決定一個第一門檻值,再以同一個第一門檻值為封包10a、…、10b中之每一個決定一群組。於某些實施方式中,處理單元13可僅針對封包10a、…、10b中之某一個或某些個(非全部)個別地產生一群組,而處理單元13於產生該等群組時所使用之第一門檻值可相同亦可不同。
為便於理解,茲接續前述範例(亦即,第1B圖所繪示之封包及其相關數據)說明,但該範例並非用以限制本發明之範圍。於此範例中,處理單元13以該等互相關值之一子集決定至少一第一門檻值。具體而言,針對第0個封包,處理單元13以與第0個封包相關之互相關值(亦即,ρ 0,1ρ 0,2ρ 0,3ρ 0,4ρ 0,5ρ 0,6ρ 0,7ρ 0,8ρ 0,9ρ 0,10ρ 0,11ρ 0,12ρ 0,13ρ 0,14ρ 0,15ρ 0,16ρ 0,17ρ 0,18ρ 0,19)計算一第一門檻值。舉例而言,處理單元13可計算與第0個封包相關之互相關值之平均值(約為0.569474),且以該平均值作為第0個封包之第一門檻值。再舉例而言,處理單元13可將前述平均值加上一變異數以作為第0個封包之第一門檻值。茲假設處理單元13係以與第0個封包相關之互相關值之平均值作為其第一門檻值,則處理單元13將大於第一門檻值之互相關值所對應之封包與第0個封包視為同一群組。具體而言,由於互相關值ρ 0,1ρ 0,3ρ 0,4ρ 0,6ρ 0,7ρ 0,11ρ 0,13大於第一門檻值,故處理單元13決定第0、1、3、4、6、7、11及13個封包形成一個群組。於此範例中,處理單元13會以雷同之方式為其他封包個別地決定一第一門檻值,且個別地決定一群組,茲不贅言。
如前所述,於某些實施方式中,處理單元13可只決定一個第 一門檻值,再以同一個第一門檻值為第0個至第19個封包個別地決定一群組。於某些實施方式中,處理單元13可僅針對第0個至第19個封包中之某一個(例如:僅針對第10個封包)或某些個(非全部)個別地產生一群組,而處理單元13於產生該(等)群組時所使用之第一門檻值可相同亦可不同。本發明所屬技術領域中具有通常知識者依據前段之敘述內容應可理解處理單元13如何完成該等實施方式之變化,茲不贅言。
於決定出封包10a、…、10b所形成之至少一個群組後,處理單元13會為其中至少一個群組決定其所包含之封包之欄位邊界。換言之,處理單元13可為該至少一群組中之一個群組、多個群組或全部群組,決定其所包含之封包之欄位邊界。為方便敘述,茲將處理單元13所處理之群組稱之為特定群組(未繪示)。此特定群組所包含之該等封包界定複數個位元位置。具體而言,處理單元13將該等封包依其最高位元對齊(亦即,將該等封包由其最高位元開始編號),而該等位元位置係由對齊後之封包所界定。舉例而言,該等封包之最高位元皆對應至第0個位元位置,依此類推。接著,處理單元13計算各該位元位置所對應之該等位元之一變化程度,並選取變化程度小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。處理單元13以位元變化程度較小之位元位置作為欄位邊界,主要是考量到一欄位之高位元之位元變化程度通常較小。於某些實施方式中,處理單元13可計算該等變化程度之一平均值,並以此平均值作為第二門檻值。於某些實施方式中,處理單元13可計算該等變化程度之一平均值,再將該平均值乘上一個介於0與1之間之數值以作為第二門檻值。
舉例而言,處理單元13可利用以下公式(1)及公式(2)計算各位元位置所對應之該等位元之變化程度,然應理解公式(1)及公式(2)並非用以限制本發明之範圍。
於上述公式(1)及公式(2)中,參數M代表特定群組內之封包個數,參數c ij 代表第i個封包於位元位置j之位元值,c ij {0,1},E[C j ]為位元位置j之位元之平均值,且Var[C j ]為位元位置j之位元之變異數。於此範例中,處理單元13以變異數Var[C j ]作為位元位置j之變化程度。於此範例中,在算出所有位元位置之變異數Var[C j ]後,處理單元13即可選取變異數Var[C j ]小於第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
於某些實施方式中,封包分析裝置1可進一步地為至少一群組分析其各位元位置之特性,以供使用者參考(例如:在制定模糊測試政策時參考)。換言之,處理單元13可為該至少一群組中之一個群組、多個群組或全部群組,分析其各位元位置之特性。茲以上述特定群組為例進一步地說明。對於此特定群組之各個位元位置,處理單元13會根據該位元位置所對應之該等位元,計算至少一位元值機率。舉例而言,處理單元13可利用以下公式(3)計算位元值為1之位元值機率,且利用以下公式(4)計算位元值為0之位元值機率。
P(C j =0)=1-P(C j =1) (4)
於上述公式(3)及公式(4)中,參數M代表特定群組內之封包個數,參數c ij 代表第i個封包於位元位置j之位元值,c ij {0,1},P(C j =1)為位元值為1之位元值機率,且P(C j =0)為位元值為0之位元值機率。
於某些實施方式中,對於此特定群組之各個位元位置,處理單元13會以0.5個別地減去各該至少一位元值機率作為至少一位元值偏向程度。舉例而言,處理單元13可利用以下公式(5)計算位元值為0之位元值偏向程度,且利用以下公式(6)計算位元值為1之位元值偏向程度。
β(C j [0])=0.5-P(C j =0) (5)
β(C j [1])=0.5-P(C j =1) (6)
於上述公式(5)及公式(6)中,P(C j =0)為位元值為0之位元值機率,P(C j =1)為位元值為1之位元值機率,β(C j [0])為位元值為0之位元值偏向程度,且β(C j [1])為位元值為1之位元值偏向程度。
於某些實施方式中,處理單元13可進一步地分析所有位元位置之位元值偏向程度,再依據分析之結果重新計算封包10a、…、10b之該等互相關值,並重新產生群組,以期產生更為正確的分群結果以進行分析。具體而言,處理單元13判斷該等位元位置中有一特定區間之位元值為1之位元值偏向程度之絕對值皆小於一門檻值,此現象代表封包之標頭及有效負載(Payload)之邊界極可能落於此特定區間。因此,處理單元13依此特定區間更新互相關值計算長度。於更新互相關值計算長度後,處理單元13便根據更新後之互相關值計算長度再次地決定封包10a、…、10b中每一個之一數值序列,再次計算封包10a、…、10b之該等互相關值,並再次產生群組。本發明所屬技術領域中具有通常知識者依據前述內容應能理解處理單 元13如何依據更新後之互相關值計算長度計算封包10a、…、10b之該等互相關值,並再次產生群組,茲不贅言。
為便於理解前段所述之更新互相關值計算長度,請參第1C圖所繪示之一範例。第1C圖中,水平軸代表位元位置,且垂直軸代表位元值為1之位元值偏向程度之絕對值。於此範例中,處理單元13判斷有一特定區間(亦即,第275個位元位置至第325個位元位置)之位元值為1之位元值偏向程度之絕對值皆小於一門檻值。因此,處理單元13便以作為下一階段計算互相關值及分群時所使用之互相關值計算長度。
於某些實施方式中,封包分析裝置1可進一步地為至少一群組判斷其所包含之封包是否具有長度指示欄位(亦即,指示封包內有效負載之長度之欄位),以供使用者參考(例如:在制定模糊測試政策時參考)。換言之,處理單元13可為該至少一群組中之一個群組、多個群組或全部群組,判斷其所包含之封包是否具有長度指示欄位。為方便敘述,茲將處理單元13所處理之群組稱之為特定群組(未繪示)。此特定群組所包含之該等封包界定複數個位元組位置,且此特定群組所包含之各封包具有一封包長度。
具體而言,處理單元13根據一位元組數目及該等位元組位置中之一特定位元組位置決定一特定欄位,再判斷此特定欄位是否為長度指示欄位。前述位元組數目代表長度指示欄位(若有)所佔之位元組之數目,此位元組數目可為預設值或由使用者由一輸入介面(未繪示)輸入。處理單元13對此特定群組所包含之各個封包執行以下運作:(a)根據該封包於該特定欄位之該等位元計算一評估長度,以及(b)將該封包之封包長度減去該 評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值。若此差值小於一預設範圍,代表此特定欄位極可能是此封包之長度指示欄位。之後,針對此特定群組,處理單元13計算該等差值小於一預設範圍之一數目,且判斷該數目是否大於一第三門檻值。若該數目大於該第三門檻值,處理單元13將此特定欄位視為此特定群組中之該等封包之長度指示欄位。於某些實施方式中,處理單元13可進一步地計算此長度指示欄位之判斷結果之正確率。具體而言,處理單元13可取前述該等差值小於該預設範圍之該數目除以此特定群組之封包數作為正確率。
為便於理解,茲以第1D圖為例說明。茲假設此特定群組包含多個封包,且封包10a、10b為其中之二。如第1D圖所示,封包10a、10b所包含之位元係以16進位表示,且封包10a、10b之封包長度分別為46個位元組及38個位元組。於第1D圖之範例中,位元組數目(亦即,用來代表長度指示欄位(若有)所佔之位元組之數目)為2個位元組,而特定位元組位置為第16個位元組(由第0個位元組起算)。處理單元13根據此位元組數目及特定位元組位置分別為封包10a、10b決定一特定欄位12a、12b。針對封包10a,處理單元13根據封包10a於特定欄位12a之該等位元計算一評估長度(亦即,161×1+160×15=31),再將封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值(亦即,46-31-17-2=-4)。針對封包10b,處理單元13根據封包10b於特定欄位12b之該等位元計算一評估長度(亦即,161×1+160×7=23),再將封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值(亦即,38-23-17-2=-4)。類似的,處理單元13會計算其他封包之 評估長度,再計算差值。於處理完此特定群組所包含之所有封包後,處理單元13計算該等差值小於一預設範圍(例如:正負5之間)之一數目(或一比例),再判斷該數目(或該比例)是否大於一第三門檻值。當該數目(或該比例)大於該第三門檻值時,處理單元13便將此特定欄位視為此封包群組中之該等封包之長度指示欄位。
茲針對前述位元組數目、特定位元組位置及特定欄位進一步說明。於某些實施方式中,為了針對某一特定群組找出其特定欄位,處理單元13可由第0個位元組位置開始測試(亦即,先以第0個位元組位置作為特定位元組位置,依此特定位元組位置及位元組數目決定特定欄位,並進行前述計算及判斷),接著測試第1個位元組位置,依此類推。於該等實施方式中,由於處理單元13以多個不同的位元組位置作為特定位元組位置進行測試,因此有可能有多個位元組位置其差值之數目(或該比例)大於該第三門檻值。當此情況發生時,處理單元13可選擇差值之數目(或該比例)最大者所對應之特定欄位作為此封包群組中之該等封包之長度指示欄位。再者,於某些實施方式中,處理單元13亦可將位元組數目設定為多個不同的值,並針對各個不同的值進行前述的計算及判斷,茲不贅言。
如前所述,在處理單元13判斷出一特定群組之長度指示欄位後,處理單元13可進一步地計算該長度指示欄位之判斷結果之正確率。當正確率越高,代表處理單元13對封包10a、…、10b所進行之分群越正確。因此,於某些實施方式中,處理單元13可重複前述運作,以期產生更為正確的分群結果以進行分析。
具體而言,在處理單元13判斷出一特定群組所包含之封包具 有長度指示欄位且計算出該判斷之正確率後,處理單元13可更新互相關值計算長度(例如:增加互相關值計算長度,或減少互相關值計算長度),依據更新後之互相關值計算長度再次地計算封包10a、…、10b之該等互相關值(例如:以該互相關值計算長度再次地決定封包10a、…、10b中每一個之一數值序列,且根據該等數值序列計算封包10a、…、10b之互相關值),再次地產生群組,再次地為至少一群組判斷其所包含之封包是否具有長度指示欄位,且再次地計算該長度指示欄位之判斷結果之正確率(若存在長度指示欄位)。本發明所屬技術領域中具有通常知識者依據前述內容應能理解處理單元13如何依據更新後之互相關值計算長度重複前述運作,茲不贅言。處理單元13可重複前述運作,直至正確率收斂至一預設條件(例如:高於某一門檻值)或執行次數達到一預設次數。
於某些實施方式中,封包分析裝置1可進一步地分析任一封包是否具有週期特性,以供使用者參考(例如:在制定模糊測試政策時參考)。為便於敘述,茲將處理單元13所處理之封包稱之為特定封包(未繪示),並以向量方式進行描述,各向量之維度為最長之特定封包之位元長度。處理單元13針對此特定封包產生一第一向量,而此第一向量包含複數個位元。處理單元13再藉由將第一向量循環位移(circular shift)相異之複數個位移位元數目以產生複數個第二向量。處理單元13更藉由對第一向量及各該第二向量進行模二加法(modulo 2 addition)以產生複數個第三向量,其中各該第三向量包含複數個位元。處理單元13計算各該第三向量中所包含之該等位元為1之一累計數目。之後,處理單元13選取累計數目之最小者所對應之該位移位元數目作為該特定封包之一週期特性(亦即,每隔該位 移位元數目之位元值相同)。為便於理解,茲以下列公式(7)代表處理單元13所執行之模二加法:
上述公式(7)中,[i]代表第一向量,[i+k]代表第二向量,且(k)代表第三向量。處理單元13藉由將變數k設為不同的值而產生不同的第二向量。針對各第三向量(亦即,(k)),處理單元13計算其漢明權重(Hamming Weight)(亦即,計算第三向量中,位元值為1之位元之累計數目)。當一第三向量之漢明權重愈低,代表用來計算此第三向量之第一向量及第二向量之間越相似。因此,處理單元13可選取累計數目之最小者所對應之該位移位元數目作為該特定封包之一週期特性。於某些實施方式中,若希望所判斷之週期特性更為正確,則前述累計數目之最小者需小於一計數門檻值,其所對應之該位移位元數目才能作為該特定封包之一週期特性。
由上述說明可知,封包分析裝置1會依據封包10a、…、10b間之關聯性決定至少一群組,再為至少一個群組決定其所包含之封包之欄位邊界。這些欄位便可提供予使用者參考(例如:在制定模糊測試政策時參考)。此外,封包分析裝置1可進一步地為至少一群組分析其各位元位置之特性(例如:位元值機率、位元值偏向程度)或/及判斷其所包含之封包是否具有長度指示欄位。再者,封包分析裝置1亦可進一步地分析一封包是否具有一週期特性。這些不同的資訊亦皆可提供予使用者參考,俾其進行更為深入的分析。
本發明之第二實施方式為一種封包分析方法,其流程圖係描 繪於第2A圖。此封包分析方法適用於一電子計算裝置,例如:第一實施方式中所述之封包分析裝置1。
於步驟S201,由該電子計算裝置計算複數個封包之複數個互相關值,其中該等封包所符合之一格式為未知。步驟S201所計算之該等互相關值個別地與該等封包中之二個封包相關。具體而言,步驟S201可針對由該等封包中之任意二個封包所形成之所有組合中之每一個組合,計算一互相關值。於某些實施方式中,封包分析方法可先執行一步驟以根據一互相關值計算長度決定各該封包之一數值序列,其中該互相關值計算長度可為一預設長度。具體而言,針對該等封包中之每一個,該電子計算裝置以該互相關值計算長度取該封包所包含之該等位元之一子集(例如:前L個位元,其中L為該互相關值計算長度,且L為一正整數)作為其數值序列。該等實施方式中,各該互相關值為該等封包中之二個封包所對應之該二個數值序列之一向量內積值。
於步驟S203,由該電子計算裝置根據該等互相關值及至少一第一門檻值決定至少一群組,其中各該至少一群組包含該等封包之一子集。該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,且該特定群組所包含之各該封包包含複數個位元。於某些實施方式中,各該至少一第一門檻值與該等互相關係數之一子集相關。接著,於步驟S205,由該電子計算裝置計算各該位元位置所對應之該等位元之一變化程度。於步驟S207,由該電子計算裝置選取該等變化程度中小於一第二門檻值者作為該特定群組之至少一欄位邊界。
於某些實施方式中,封包分析方法更包含步驟S209及步驟 S211,以針對至少一群組分析其各位元位置之特性,以供使用者參考(例如:在制定模糊測試政策時參考)。於步驟S209,由該電子計算裝置針對各該位元位置,根據該位元位置所對應之該等位元計算一位元值機率。於步驟S211,由該電子計算裝置針對各該位元位置,以0.5減去該位元值機率作為一位元值偏向程度。
於某些實施方式中,封包分析方法更包含第2B圖所繪示之步驟為至少一群組判斷其所包含之封包是否具有長度指示欄位(亦即,指示封包內有效負載之長度之欄位),以供使用者參考(例如:在制定模糊測試政策時參考)。於該等實施方式中,該特定群組所包含之該等封包界定複數個位元組位置,且該特定群組所包含之各該封包具有一封包長度。
於步驟S221,由該電子計算裝置根據一位元組數目及該等位元組位置中之一特定位元組位置決定一特定欄位。於步驟S223,由該電子計算裝置選取該特定群組中之一個尚未分析過之封包。於步驟S225,由該電子計算裝置根據該封包於該特定欄位之該等位元計算一評估長度。於步驟S227,由該電子計算裝置將該封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值。接著,於步驟S229,由該電子計算裝置判斷該特定群組是否尚有未分析過之封包。若步驟S229之判斷結果為是,則該封包分析方法再次地執行步驟S223至步驟S229。若步驟S229之判斷結果為否,則執行步驟S231,由該電子計算裝置計算該等差值小於一預設範圍之一數目。接著,於步驟S233,當該數目大於一第三門檻值時,由該電子計算裝置以該特定欄位作為該特定群組所包含之該等封包之一長度指示欄位。
於某些實施方式中,封包分析方法更包含第2C圖所繪示之步驟以分析任一封包是否具有週期特性,以供使用者參考(例如:在制定模糊測試政策時參考)。具體而言,於步驟S241,由該電子計算裝置針對該等封包中之一特定封包產生一第一向量,其中該第一向量包含複數個位元。於步驟S243,由該電子計算裝置藉由將該第一向量循環位移相異之複數個位移位元數目以產生複數個第二向量。於步驟S245,由該電子計算裝置藉由對該第一向量及各該第二向量進行模二加法以產生複數個第三向量,其中各該第三向量包含複數個位元。於步驟S247,由該電子計算裝置計算各該第三向量中所包含之該等位元為1之一累計數目。於步驟S249,由該電子計算裝置選取該第三向量所對應之該累計數目之最小且小於一計數門檻值者所對應之該位移位元數目作為該特定封包之一週期特性。
除了上述步驟,第二實施方式亦能執行第一實施方式及前述各實施方式所描述之所有運作及步驟,具有同樣之功能,且達到同樣之技術效果。本發明所屬技術領域中具有通常知識者可直接瞭解第二實施方式如何基於上述第一實施方式及各實施方式以執行此等運作及步驟,具有同樣之功能,並達到同樣之技術效果,故不贅述。
第二實施方式中所闡述之封包分析方法可由包含複數個指令之一電腦程式產品實現。該電腦程式產品可被儲存於一非暫態電腦可讀取儲存媒體中。該電腦程式產品所包含之該等指令被載入一電子計算裝置(例如:第一實施方式之封包分析裝置1)之後,該電腦程式執行如在第二實施方式中所述之封包分析方法。該非暫態電腦可讀取儲存媒體可為一電子產品,例如:一唯讀記憶體(read only memory;ROM)、一快閃記憶體、 一軟碟、一硬碟、一光碟(compact disk;CD)、一隨身碟、一磁帶、一可由網路存取之資料庫或本發明所屬技術領域中具有通常知識者所知且具有相同功能之任何其他儲存媒體。
需說明者,於本發明專利說明書中,第一門檻值、第二門檻值及第三門檻值之「第一」、「第二」及「第三」僅用以表示該等門檻值為不同門檻值。第一向量、第二向量及第三向量之「第一」、「第二」及「第三」僅用以表示該等向量為不同向量。
由上述說明可知,本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)會依據複數個封包間之關聯性決定至少一群組,再為至少一個群組決定其所包含之封包之欄位邊界。這些欄位便可提供予使用者參考(例如:在制定模糊測試政策時參考)。此外,本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)可進一步地為至少一群組分析其各位元位置之特性(例如:位元值機率、位元值偏向程度)或/及判斷其所包含之封包是否具有長度指示欄位。再者,本發明所提供之封包分析技術(包含裝置、方法及電腦程式產品)亦可進一步地分析一封包是否具有一週期特性。這些不同的資訊亦皆可提供予使用者參考,俾其進行更為深入的分析。
上述實施方式僅用來例舉本發明之部分實施態樣,以及闡釋本發明之技術特徵,而非用來限制本發明之保護範疇及範圍。任何本發明所屬技術領域中具有通常知識者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,而本發明之權利保護範圍以申請專利範圍為準。

Claims (20)

  1. 種封包分析裝置,包含:一儲存單元,儲存複數個封包,該等封包所符合之一格式為未知;以及一處理單元,電性連接至該儲存單元,計算該等封包之複數個互相關值,且根據該等互相關值及至少一第一門檻值決定至少一群組,且各該至少一群組包含該等封包之一子集,其中,該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,該特定群組所包含之各該封包包含複數個位元,該處理單元更計算各該位元位置所對應之該等位元之一變化程度,該處理單元更選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
  2. 如請求項1所述之封包分析裝置,其中該處理單元更針對該等封包中之一特定封包產生一第一向量,該第一向量包含複數個位元,該處理單元更藉由將該第一向量循環位移(circular shift)相異之複數個位移位元數目以產生複數個第二向量,該處理單元更藉由對該第一向量及各該第二向量進行模二加法(modulo 2 addition)以產生複數個第三向量,各該第三向量包含複數個位元,該處理單元更計算各該第三向量中所包含之該等位元為1之一累計數目,且該處理單元更選取該第三向量所對應之該累計數目之最小且小於一計數門檻值者所對應之該位移位元數目作為該特定封包之一週期特性。
  3. 如請求項1所述之封包分析裝置,其中該特定群組所包含之該等封包界定複數個位元組位置,該特定群組所包含之各該封包具有一封包長度,該處理單元更根據一位元組數目及該等位元組位置中之一特定位元組 位置決定一特定欄位,該處理單元更對該特定群組所包含之各該封包執行以下運作:(a)根據該封包於該特定欄位之該等位元計算一評估長度,以及(b)將該封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值,其中該處理單元更計算該等差值小於一預設範圍之一數目,且判斷該數目大於一第三門檻值,其中該特定欄位為該特定群組之一長度指示欄位。
  4. 如請求項1所述之封包分析裝置,其中該處理單元更根據一互相關值計算長度決定各該封包之一數值序列,該處理單元係根據該等數值序列計算該等互相關值,其中各該互相關值為該等封包中之二個封包所對應之該二個數值序列之一向量內積值。
  5. 如請求項4所述之封包分析裝置,其中該互相關值計算長度為一預設長度。
  6. 如請求項1所述之封包分析裝置,其中各該至少一第一門檻值與該等互相關值之一子集相關。
  7. 如請求項1所述之封包分析裝置,其中針對各該位元位置,該處理單元更根據該位元位置所對應之該等位元計算一位元值機率。
  8. 如請求項7所述之封包分析裝置,其中針對各該位元位置,該處理單元更以0.5減去該位元值機率作為一位元值偏向程度。
  9. 一種封包分析方法,適用於一電子計算裝置,該封包分析方法包含下列步驟:計算複數個封包之複數個互相關值,其中該等封包所符合之一格式為未知;根據該等互相關值及至少一第一門檻值決定至少一群組,其中各該至少一群組包含該等封包之一子集,該至少一群組中之一特定群組所包 含之該等封包界定複數個位元位置,該特定群組所包含之各該封包包含複數個位元;計算各該位元位置所對應之該等位元之一變化程度;以及選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
  10. 如請求項9所述之封包分析方法,更包含下列步驟:針對該等封包中之一特定封包產生一第一向量,其中該第一向量包含複數個位元;藉由將該第一向量循環位移相異之複數個位移位元數目以產生複數個第二向量;藉由對該第一向量及各該第二向量進行模二加法以產生複數個第三向量,其中各該第三向量包含複數個位元;計算各該第三向量中所包含之該等位元為1之一累計數目;以及選取該第三向量所對應之該累計數目之最小且小於一計數門檻值者所對應之該位移位元數目作為該特定封包之一週期特性。
  11. 如請求項9所述之封包分析方法,其中該特定群組所包含之該等封包界定複數個位元組位置,該特定群組所包含之各該封包具有一封包長度,該封包分析方法更包含下列步驟:根據一位元組數目及該等位元組位置中之一特定位元組位置決定一特定欄位;對該特定群組所包含之各該封包執行以下步驟:根據該封包於該特定欄位之該等位元計算一評估長度;以及將該封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值; 計算該等差值小於一預設範圍之一數目;以及判斷該數目大於一第三門檻值;其中,該特定欄位為該特定群組之一長度指示欄位。
  12. 如請求項9所述之封包分析方法,更包含下列步驟:根據一互相關值計算長度決定各該封包之一數值序列;其中,計算該等互相關值之步驟係根據該等數值序列計算該等互相關值,其中各該互相關值為該等封包中之二個封包所對應之該二個數值序列之一向量內積值。
  13. 如請求項12所述之封包分析方法,其中該互相關值計算長度為一預設長度。
  14. 如請求項9所述之封包分析方法,其中各該至少一第一門檻值與該等互相關係數之一子集相關。
  15. 如請求項9所述之封包分析方法,更包含下列步驟:針對各該位元位置,根據該位元位置所對應之該等位元計算一位元值機率。
  16. 如請求項15所述之封包分析方法,更包含下列步驟:針對各該位元位置,以0.5減去該位元值機率作為一位元值偏向程度。
  17. 一種電腦程式產品,經由一電子計算裝置載入該電腦程式產品後,該電子計算裝置執行該電腦程式產品所包含之複數個程式指令,以執行一封包分析方法,該封包分析方法包含下列步驟:計算複數個封包之複數個互相關值,其中該等封包所符合之一格式為未知;根據該等互相關值及至少一第一門檻值決定至少一群組,其中各該 至少一群組包含該等封包之一子集,該至少一群組中之一特定群組所包含之該等封包界定複數個位元位置,該特定群組所包含之各該封包包含複數個位元;計算各該位元位置所對應之該等位元之一變化程度;以及選取該等變化程度中小於一第二門檻值者所對應之該至少一位元位置作為該特定群組之至少一欄位邊界。
  18. 如請求項17所述之電腦程式產品,其中該封包分析方法更包含下列步驟:針對該等封包中之一特定封包產生一第一向量,其中該第一向量包含複數個位元;藉由將該第一向量循環位移相異之複數個位移位元數目以產生複數個第二向量;藉由對該第一向量及各該第二向量進行模二加法以產生複數個第三向量,其中各該第三向量包含複數個位元;計算各該第三向量中所包含之該等位元為1之一累計數目;以及選取該第三向量所對應之該累計數目之最小且小於一計數門檻值者所對應之該位移位元數目作為該特定封包之一週期特性。
  19. 如請求項17所述之電腦程式產品,其中該特定群組所包含之該等封包界定複數個位元組位置,該特定群組所包含之各該封包具有一封包長度,該封包分析方法更包含下列步驟:根據一位元組數目及該等位元組位置中之一特定位元組位置決定一特定欄位;對該特定群組所包含之各該封包執行以下步驟:根據該封包於該特定欄位之該等位元計算一評估長度;以及 將該封包長度減去該評估長度、代表該特定位元組位置之一數值及該位元組數目以獲得一差值;計算該等差值小於一預設範圍之一數目;以及判斷該數目大於一第三門檻值;其中,該特定欄位為該特定群組之一長度指示欄位。
  20. 如請求項17所述之電腦程式產品,其中該封包分析方法更包含下列步驟:根據一互相關值計算長度決定各該封包之一數值序列;其中,計算該等互相關值之步驟係根據該等數值序列計算該等互相關值,其中各該互相關值為該等封包中之二個封包所對應之該二個數值序列之一向量內積值。
TW106107566A 2017-03-08 2017-03-08 封包分析裝置、方法及其電腦程式產品 TWI629886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106107566A TWI629886B (zh) 2017-03-08 2017-03-08 封包分析裝置、方法及其電腦程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106107566A TWI629886B (zh) 2017-03-08 2017-03-08 封包分析裝置、方法及其電腦程式產品

Publications (2)

Publication Number Publication Date
TWI629886B true TWI629886B (zh) 2018-07-11
TW201834427A TW201834427A (zh) 2018-09-16

Family

ID=63640686

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106107566A TWI629886B (zh) 2017-03-08 2017-03-08 封包分析裝置、方法及其電腦程式產品

Country Status (1)

Country Link
TW (1) TWI629886B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI704784B (zh) * 2018-12-25 2020-09-11 安華聯網科技股份有限公司 通聯監控裝置、通聯監控方法及其非暫態有形機器可讀介質

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5282194A (en) * 1992-08-17 1994-01-25 Loral Aerospace Corporation Interactive protocol analysis system
US6331976B1 (en) * 1997-12-10 2001-12-18 Texas Instruments Incorporated Circuits system and methods for synchronization word detection in bitstream communications apparatus
US20050152317A1 (en) * 2003-08-15 2005-07-14 Airgo Networks, Inc. Joint packet detection in wireless communication system with one or more receiver
US6993101B2 (en) * 2000-04-07 2006-01-31 Broadcom Corporation Method of determining a start of a transmitted frame in a frame-based communications network
US20090213947A1 (en) * 2008-02-25 2009-08-27 Xilinx, Inc. Block boundary detection for a wireless communication system
CN103248449A (zh) * 2012-02-02 2013-08-14 中兴通讯股份有限公司 并行数据的码元定界方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5282194A (en) * 1992-08-17 1994-01-25 Loral Aerospace Corporation Interactive protocol analysis system
US6331976B1 (en) * 1997-12-10 2001-12-18 Texas Instruments Incorporated Circuits system and methods for synchronization word detection in bitstream communications apparatus
US6993101B2 (en) * 2000-04-07 2006-01-31 Broadcom Corporation Method of determining a start of a transmitted frame in a frame-based communications network
US20050152317A1 (en) * 2003-08-15 2005-07-14 Airgo Networks, Inc. Joint packet detection in wireless communication system with one or more receiver
US20090213947A1 (en) * 2008-02-25 2009-08-27 Xilinx, Inc. Block boundary detection for a wireless communication system
CN103248449A (zh) * 2012-02-02 2013-08-14 中兴通讯股份有限公司 并行数据的码元定界方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI704784B (zh) * 2018-12-25 2020-09-11 安華聯網科技股份有限公司 通聯監控裝置、通聯監控方法及其非暫態有形機器可讀介質
US11429501B2 (en) 2018-12-25 2022-08-30 Onward Security Corporation Device, method and non-transitory tangible machine-readable medium for traffic monitoring

Also Published As

Publication number Publication date
TW201834427A (zh) 2018-09-16

Similar Documents

Publication Publication Date Title
US9798648B2 (en) Transitive source code violation matching and attribution
US9740591B2 (en) Aggregating source code metric values
US10042746B2 (en) Callpath finder
JP6110020B2 (ja) 参照カウンタ完全性チェック
WO2019200714A1 (zh) 服务器连接方法、计算机可读存储介质、终端设备及装置
CN107741986B (zh) 用户行为预测及相应信息推荐方法和装置
TWI670623B (zh) 獲取設備指紋的方法及裝置
US20160103881A1 (en) Partitioning log records based on term frequency and type for selective skipping during full-text searching
US10089411B2 (en) Method and apparatus and computer readable medium for computing string similarity metric
CN111512283A (zh) 数据库中的基数估算
WO2019237574A1 (zh) 一种数据库差异的识别方法及装置
WO2019119635A1 (zh) 种子用户拓展方法、电子设备及计算机可读存储介质
TWI629886B (zh) 封包分析裝置、方法及其電腦程式產品
CN111010387A (zh) 一种物联网设备非法替换检测方法、装置、设备及介质
US10341471B2 (en) Packet analysis apparatus, method, and non-transitory computer readable medium thereof
US11055458B1 (en) Functional coverage of designs using transition bins and cross coverage
JP6516781B2 (ja) パケット解析装置、方法、およびその非一時的コンピュータ可読媒体
CN108133136A (zh) 攻击节点侦测装置、方法及其计算机可读取储存媒体
US10318257B2 (en) Selective object sensitive points-to analysis
CN107608996B (zh) 用于数据和信息源可靠性估计的系统和方法
US20160070700A1 (en) Transaction support using intrusive hash tables
Qi et al. Fast generating a large number of gumbel-max variables
CN109190003A (zh) 用于确定列表页节点的方法与设备
KR101543855B1 (ko) 중복된 자료 개수의 근사치를 추정하는 방법 및 시스템
CN110704690B (zh) 一种数据处理方法、设备及存储介质