JP2018133774A - Packet analysis device, method and non-temporary computer readable medium therefor - Google Patents
Packet analysis device, method and non-temporary computer readable medium therefor Download PDFInfo
- Publication number
- JP2018133774A JP2018133774A JP2017027997A JP2017027997A JP2018133774A JP 2018133774 A JP2018133774 A JP 2018133774A JP 2017027997 A JP2017027997 A JP 2017027997A JP 2017027997 A JP2017027997 A JP 2017027997A JP 2018133774 A JP2018133774 A JP 2018133774A
- Authority
- JP
- Japan
- Prior art keywords
- packets
- packet
- specific
- bit
- bits
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 101
- 239000013598 vector Substances 0.000 claims description 56
- 238000004364 calculation method Methods 0.000 claims description 34
- 230000001186 cumulative effect Effects 0.000 claims description 15
- 238000011156 evaluation Methods 0.000 claims description 14
- 230000000737 periodic effect Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012360 testing method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明はパケット解析装置、方法、およびその非一時的コンピュータ可読媒体に関する。より具体的には、本発明は、フォーマットが未知のパケットを解析するための装置、方法、およびその非一時的コンピュータ可読媒体に関する。 The present invention relates to a packet analysis apparatus, method, and non-transitory computer-readable medium thereof. More specifically, the present invention relates to an apparatus, method, and non-transitory computer readable medium for analyzing packets of unknown format.
情報技術の急激な発展によって、様々な種類のパケットフォーマット(たとえば、様々な通信プロトコル、様々なデータ記憶フォーマット、および様々な画像フォーマットのパケットフォーマット)が、多くの情報産業技術者および研究機関によって、様々な必要性および様々な考慮に基づいて策定されてきた。それにもかかわらず、すべてのパケットフォーマットが国際規格を満たしているわけではない。 With the rapid development of information technology, various types of packet formats (eg, various communication protocols, various data storage formats, and various image format packet formats) have been developed by many information industry engineers and research institutions. It has been developed based on different needs and different considerations. Nevertheless, not all packet formats meet international standards.
多くのアプリケーション(たとえば、ファズテスト)を効率的に、および/または正しく実行するためには、パケットフォーマット(たとえば、フィールドの数および各フィールドの長さ)を予め知っていなければならない。現在、未知のフォーマットのパケットを解析できる技術がいくつかある。これらの技術では、フォーマットが未知のパケットの特徴を、フォーマットが既知のパケットの特徴と比較する。これらの技術の欠点は、類似する特徴が見つからない場合は、フォーマットが未知のパケットの同フォーマットを決定できないことである。したがって、フォーマットが未知であるパケットのフォーマットを解析できる技術に対する必要性が未だにある。 In order to perform many applications (eg, fuzz tests) efficiently and / or correctly, the packet format (eg, the number of fields and the length of each field) must be known in advance. Currently, there are several techniques that can analyze packets of unknown format. These techniques compare the characteristics of a packet with an unknown format with the characteristics of a packet with a known format. The disadvantage of these techniques is that if a similar feature is not found, the same format of a packet whose format is unknown cannot be determined. Therefore, there is still a need for a technique that can analyze the format of a packet whose format is unknown.
本発明の目的はパケット解析装置を提供することである。パケット解析装置は、各々のフォーマットが未知である複数のパケットを格納する記憶部と、前記記憶部に電気的に接続されて、前記複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも1つの第1の閾値にしたがって、各々が前記複数のパケットのサブセットを含む少なくとも1つのグループを決定する処理部と、を備える。前記処理部は、前記少なくとも1つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、前記特定のグループの少なくとも1つのフィールド境界として選択する。 An object of the present invention is to provide a packet analysis device. The packet analysis device is electrically connected to the storage unit storing a plurality of packets each having an unknown format, calculates a plurality of cross-correlation values of the plurality of packets, And a processing unit that determines at least one group each including a subset of the plurality of packets according to a cross-correlation value and at least one first threshold. The processor is configured to change a plurality of bits included in each of the plurality of packets corresponding to each of a plurality of bit positions defined by a plurality of packets included in the specific group of the at least one group. And the at least one bit position with a corresponding degree of variation less than the second threshold is selected as at least one field boundary of the particular group.
本発明の別の目的は、電子計算装置に適応されるパケット解析方法を提供することである。パケット解析方法は、以下のステップを含む。(a)各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、(b)各々が前記複数のパケットのサブセットを含む少なくとも1つのグループを前記相互相関値および少なくとも1つの第1の閾値にしたがって決定するステップと、(c)前記少なくとも1つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、(d)対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、前記特定のグループの少なくとも1つのフィールド境界として選択するステップと、である。 Another object of the present invention is to provide a packet analysis method adapted to an electronic computing device. The packet analysis method includes the following steps. (A) calculating a plurality of cross-correlation values for a plurality of packets whose respective formats are unknown; and (b) at least one group each including a subset of the plurality of packets as the cross-correlation values and at least one Determining according to a first threshold, and (c) the plurality of packets corresponding to each of a plurality of bit positions defined by a plurality of packets included in a particular group of the at least one group Calculating a degree of variation of a plurality of bits included in each of the plurality of bits, and (d) at least one bit position whose corresponding degree of variation is less than a second threshold, at least one field boundary of the particular group And selecting as a step.
本発明の別の目的は、コンピュータプログラムを格納した非一時的コンピュータ可読媒体を提供することである。コンピュータプログラムは、電子計算装置にロードされてから、前述のパケット解析方法を実行する。 Another object of the present invention is to provide a non-transitory computer readable medium storing a computer program. The computer program is loaded into the electronic computing device and then executes the packet analysis method described above.
一般に、本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)は、複数のパケットの中から相関関係にしたがって少なくとも1つのグループを決定し、次に、少なくとも1つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)提供されてもよい。
本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)はさらに、少なくとも1つのグループの各ビット位置の特性(たとえば、ビット値確率およびビット値バイアス度)を解析し、および/または少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかを判定してもよい。
本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)はさらに、パケットが周期的特性を有するかを解析してもよい。これらの様々な情報をすべてユーザのさらなる解析用に提供してもよい。
In general, the packet analysis techniques (including apparatus, methods, and non-transitory computer readable media) provided by the present invention determine at least one group according to a correlation among a plurality of packets, and then at least one Determine the field boundaries of packets in one group. These fields may be provided for user reference (eg, for reference when developing a fuzz testing policy).
The packet analysis techniques (including apparatus, methods, and non-transitory computer readable media) provided by the present invention further analyze the characteristics (eg, bit value probability and bit value bias degree) of each bit position in at least one group. And / or may determine whether packets included in at least one group have a length indication field.
The packet analysis techniques (including apparatus, methods, and non-transitory computer readable media) provided by the present invention may further analyze whether the packet has periodic characteristics. All of these various pieces of information may be provided for further analysis of the user.
主題となる発明に実装される詳細な技術および好ましい実施形態を当業者が理解できるように、添付図を伴って請求される発明の特徴を以下の段落で説明する。 In order that those skilled in the art may understand the detailed technology and preferred embodiments implemented in the subject invention, the features of the claimed invention are described in the following paragraphs with the accompanying figures.
以下の説明では、本発明によるパケット解析装置、方法、およびその非一時的コンピュータ可読媒体を、実施形態を参照して説明する。ただし、これらの実施形態は、同実施形態に記載されるいずれか特定の環境、アプリケーション、または具体的な実装に本発明を限定することを意図するものではない。したがって、これらの実施形態の説明は、本発明を限定するのではなく、例示することを目的とする。
以下の実施形態および添付図において、本発明に関連しない要素は説明から省略されることを理解されたい。さらに、個々の要素の寸法および添付図の個々の要素間の寸法的な関係は例示目的でのみ提示され、本発明の範囲を限定するものではない。
In the following description, a packet analysis device, method, and non-transitory computer-readable medium according to the present invention will be described with reference to embodiments. However, these embodiments are not intended to limit the invention to any particular environment, application, or specific implementation described in the embodiments. Accordingly, the description of these embodiments is not intended to limit the invention but to illustrate it.
In the following embodiments and the accompanying drawings, it should be understood that elements not related to the present invention are omitted from the description. Further, the dimensions of the individual elements and the dimensional relationships between the individual elements of the accompanying drawings are presented for illustrative purposes only and do not limit the scope of the invention.
本発明の第1の実施形態はパケット解析装置1であり、その構造概略図を図1Aに示す。パケット解析装置1は、記憶部11と、処理部13とを備える。記憶部11および処理部13は互いに電気的に接続する。記憶部11はメモリ、ユニバーサルシリアルバス(USB)ディスク、ハードディスク、コンパクトディスク(CD)、モバイルディスク、または同様の機能を有し、当業者に既知である任意の他の記憶媒体または回路であってもよい。処理部13は、様々なプロセッサのいずれか、中央演算処理部(CPU)、マイクロプロセッサ、または当業者に既知の他の計算装置、方法であってもよい。
The first embodiment of the present invention is a
記憶部11は複数のパケット10a、…、10bを格納する。パケット10a、…、10bの各々は複数のビットを含む。パケット10a、…、10bのフォーマット(たとえば、通信プロトコル)は未知である。つまり、複数のパケット10a、…、10bの各々における複数のフィールドの数および当該複数のフィールドの各々の長さは未知である。本実施形態では、パケット解析装置1は少なくとも1つのグループをパケット10a、…、10b間の相関関係にしたがって決定し、次に、決定した少なくとも1つのグループのうちの少なくとも1つに含まれるパケットのフィールドの境界を決定する。
The
まず、パケット解析装置1がパケット10a、…、10b間の相関関係を算出する方法を説明する。本実施形態では、処理部13は複数のパケット10a、…、10bの相互相関値を算出する。各相互相関値はパケット10a、…、10bのうち2つに関連する。具体的には、処理部13は、パケット10a、…、10bのうちいずれか2つによって形成される複数の組み合わせの各々の相互相関値を算出してもよい。
First, a method in which the
処理部13がまず、パケット10a、…、10bの各々の数列を相互相関値計算長にしたがって決定する実施形態であってもよい。相互相関値計算長は予め設定した長さでもよい。具体的には、パケット10a、…、10bの各々に対して、処理部13は、パケットに含まれるビットのサブセット(たとえば、第1のLビットであって、Lは相互相関値計算長であり正の整数)を相互相関値計算長にしたがって、パケットの数列とする。さらに、処理部13は、パケットのいずれか2つから形成される複数の組み合わせの各々に対応する数列の内積値(つまり、2つの数列の内積から得られる値)を算出し、内積値を相互相関値とする。各数列は長さ(つまり、数列内の数値/ビット数)を有し、数列の長さは同一である(つまり、すべての長さは相互相関値計算長と等しい)ことを理解されたい。
理解しやすいように、パケット10a、…、10bの数列および処理部13によって決定される相互相関値を以下の数学記号で表す。
i番目のパケットに対応する数列であり、i∈{0,1,…,M−1}、
j番目のパケットに対応する数列であり、j∈{0,1,…,M−1}、
i番目のパケットに対応する数列の長さ、
i番目のパケットのk番目のビット値であり、
i番目のパケットの数列のk番目の値であり、
Pi,jはi番目のパケットとj番目のパケット間の相互相関値であり、
である。
In an embodiment, the
For easy understanding, the numerical sequences of the
a sequence corresponding to the i-th packet, i∈ {0, 1,..., M−1},
a sequence corresponding to the jth packet, j∈ {0, 1,..., M−1},
the length of the sequence corresponding to the i th packet,
the k th bit value of the i th packet,
the k th value of the sequence of the i th packet,
P i, j is a cross-correlation value between the i-th packet and the j-th packet,
It is.
パケット10a、…、10bの数列を表す前述の数学記号に関し、パラメータMはパケット10a、…、10bの数を表す。内積値を相互相関値とするのは一例であり、本発明の範囲を限定するものではないことに留意されたい。各相互相関値は、相互相関値に対応する2つのパケット間の類似度(または相関度)を表すために用いるが、2つのパケット(または2つの数列)間の類似度(または相関度)を表すことが可能な他の数値も用いてもよい。
With respect to the aforementioned mathematical symbols representing the sequence of
理解しやすいように、前述の演算を特定の例を参照して詳細に説明するが、本発明の範囲を限定するものではない。
図1Bは、本例で用いる20パケットが例示される。図1Bでは、各行が1つのパケットを表す。各パケットに含まれるビット値は16進表記で表す。処理部13は、各パケットの数列を相互相関値計算長にしたがって決定する。数列は同じ長さである。次に、処理部13は内積値を、パケットのいずれか2つから形成される複数の組み合わせの各々に対応する2つの数列から算出する。内積値は相互相関値である。したがって、20パケットは0から19までであると想定される。
0番目のパケットを例にとると、処理部13が算出する相互相関値(つまり、0番目のパケットと任意の他のパケットとの間の相互相関値)は以下の値を含むと推定される。p0,1=0.595、p0,2=0.5725、p0,3=0.62、p0,4=0.79、p0,5=0.5725、p0,6=0.66、p0,7=0.585、p0,8=0.555、p0,9=0.56、p0,10=0.5425、p0,11=0.5925、p0,12=0.565、p0,13=0.6025、p0,14=0.4775、p0,15=0.4875、p0,16=0.53、p0,17=0.4975、p0,18=0.5125、およびp0,19=0.5025。
For ease of understanding, the operations described above will be described in detail with reference to specific examples, but are not intended to limit the scope of the present invention.
FIG. 1B illustrates 20 packets used in this example. In FIG. 1B, each row represents one packet. The bit value included in each packet is expressed in hexadecimal notation. The
Taking the 0th packet as an example, the cross-correlation value calculated by the processing unit 13 (that is, the cross-correlation value between the 0th packet and any other packet) is estimated to include the following values: . p 0,1 = 0.595, p 0,2 = 0.5725, p 0,3 = 0.62, p 0,4 = 0.79, p 0,5 = 0.5725, p 0,6 = 0.66, p 0,7 = 0.585, p 0,8 = 0.555,
次に、処理部13は、相互相関値および少なくとも1つの第1の閾値にしたがって少なくとも1つのグループを決定する。少なくとも1つのグループの各々は、パケット10a、…、10bのサブセットを備える。処理部13が、パケット10a、…、10bの各々の第1の閾値を決定し、パケットの第1の閾値にしたがってパケット10a、…、10bの各々のグループを決定する実施形態であってもよい。処理部13が1つの第1の閾値のみを決定し、次に、同じ第1の閾値にしたがってパケット10a、…、10bの各々のグループを決定する実施形態であってもよい。処理部13がパケット10a、…、10bの特定の1または複数の(全部ではない)グループを個別に生成し、処理部がグループを生成するために用いる第1の閾値は互いに同一または異なる実施形態であってもよい。
Next, the
理解しやすいように、前述の特定の例(つまり、図1Bに例示するパケットおよび関連データ)を参照して説明を続けるが、本発明の範囲を限定することを意図するものではない。この特定の例では、処理部13は少なくとも1つの第1の閾値を相互相関値のサブセットにしたがって決定する。
具体的には、0番目のパケットでは、処理部13は第1の閾値を0番目のパケットに関連する相互相関値にしたがって算出する。相互相関値は、つまり、p0,1、p0,2、p0,3、p0,4、p0,5、p0,6、p0,7、p0,8、p0,9、p0,10、p0,11、p0,12、p0,13、p0,14、p0,15、p0,16、p0,17、p0,18およびp0,19である。一例として、処理部13は、0番目のパケットに関する相互相関値の平均値(約0.569474)を算出してもよく、平均値を0番目のパケットの第1の閾値としてもよい。別の例として、処理部13は平均値と分散を0番目のパケットの第1の閾値としてもよい。したがって、0番目のパケットに関する相互相関値の平均値を、処理部13による0番目のパケットの第1の閾値とすることが想定される。この想定に基づいて、処理部13は0番目のパケットと、対応する相互相関値が第1の閾値よりも大きいパケットとを同じグループにグループ分けする。具体的には、相互相関値p0,1、p0,3、p0,4、p0,6、p0,7、p0,11、p0,13は第1の閾値より大きいため、処理部13は0番目、1番目、3番目、4番目、6番目、7番目、11番目、および13番目のパケットが1つのグループを形成すると決定する。この特定の例では、処理部13は、同じ手法を採用して、残りのパケットの各々の第1の閾値を個々に決定し、個々にグループ分けする。したがって、これ以上の詳細は本明細書では記載しない。
For ease of understanding, the description will continue with reference to the specific example described above (ie, the packet and associated data illustrated in FIG. 1B), but is not intended to limit the scope of the invention. In this particular example, the
Specifically, for the 0th packet, the
前述のように、処理部13が、第1の閾値を1つのみ決定し、次に、単一の第1の閾値にしたがって、0番目から19番目のパケットの各々のグループを個々に決定する実施形態であってもよい。処理部13が、パケット10a、…、10bの特定の1または複数の(全部ではない)グループを個別に(たとえば10番目のパケットのみに)生成する実施形態であってもよい。処理部がグループを生成するために用いる第1の閾値は互いに同一であっても、異なっていてもよい。処理部13がこれらの実施形態を実行する方法は、当業者には前述の説明を再考することによって理解されるであろう。そのため、これ以上本明細書では記載しない。
As described above, the
パケット10a、…、10bの少なくとも1つのグループを決定後、処理部13は、少なくとも1つのグループに含まれるパケットのフィールドの境界を決定する。つまり、処理部13は少なくとも1つのグループのうちの1つ、複数、またはすべてにおいて、パケットのフィールドの境界を決定してもよい。理解しやすいように、処理部13が処理するグループを特定のグループ(不図示)と呼ぶ。
特定のグループに含まれるパケットは複数のビット位置を画成する。具体的には、処理部13はパケットを、最も有意なビットに関して位置合わせをする(つまり、各パケットで最も有意なビットからビットに採番する)。ビット位置は整列済みのパケットによって画成される。たとえば、パケットの最も有意なビットはすべて、0番目のビット位置に対応するなどである。次に、処理部13は各ビット位置に対応するビットの変動の程度を算出し、変動の程度が第2の閾値よりも小さい少なくとも1つのビット位置を、特定のグループの少なくとも1つのフィールド境界として選択する。小さい変動の程度に対応するビット位置をフィールド境界とすることに関する主な懸念は、フィールド内でより有意なビットが通常はより小さい変動の程度を有するということである。
処理部13が変動の程度の平均値を算出し、平均値を第2の閾値とする実施形態であってもよい。処理部13が変動の程度の平均値を算出し、平均値に0から1までの値をかけて、第2の閾値とする実施形態であってもよい。
After determining at least one group of the
Packets included in a particular group define a plurality of bit positions. Specifically, the
An embodiment in which the
たとえば、処理部13は、各ビット位置に対応するビットの変動の程度を、以下の方程式(1)および方程式(2)にしたがって算出してもよい。方程式(1)および方程式(2)は本発明の範囲を限定することを意図するものではないことを理解されたい。
For example, the
(1)
(1)
前述の方程式(1)および方程式(2)では、パラメータMは特定のグループのパケットの数を表し、パラメータcijはビット位置jにおけるi番目のパケットのビット値を表し、cij∈{0,1}、E[Cj]はビット位置jでのビットの平均値を表し、Var[Cj]はビット位置jでのビットの分散を表す。この特定の例では、処理部13は分散Var[Cj]をビット位置jのビットの変動の程度とし適応する。この特定の例では、処理部13は、すべてのビット位置の分散Var[Cj]を得た後に、分散Var[Cj]が第2の閾値より小さいビット位置を、少なくとも1つのフィールド境界として選択してもよい。
In equations (1) and (2) above, the parameter M represents the number of packets in a particular group, the parameter c ij represents the bit value of the i th packet at bit position j, and c ij ε {0, 1}, E [C j ] represents the average value of bits at bit position j, and Var [C j ] represents the distribution of bits at bit position j. In this particular example, the
パケット解析装置1がさらに、少なくとも1つのグループの各ビット位置の特性をユーザの参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。つまり、処理部13は、少なくとも1つのグループのうちの1つ、複数、またはすべての各ビット位置の特性を解析してもよい。ここで、前述の特定のグループを例にとって、さらに説明する。特定のグループの各ビット位置では、処理部13は、少なくとも1つのビット値確率をビット位置に対応するビットにしたがって算出してもよい。たとえば、処理部13はビット値が1であるビット値確率を以下の方程式(3)にしたがって算出してもよく、ビット値が0であるビット値確率を以下の方程式(4)にしたがって算出してもよい。
The
(3)
(3)
方程式(3)および方程式(4)では、パラメータMは特定のグループのパケットの数を表し、パラメータcijはビット位置jにおけるi番目のパケットのビット値を表し、cij∈{0,1}、P(Cj=1)はビット値が1のビット値確率を表し、P(Cj=0)はビット値が0のビット値確率を表す。 In equations (3) and (4), parameter M represents the number of packets in a particular group, parameter c ij represents the bit value of the i-th packet at bit position j, and c ij ε {0, 1} , P (C j = 1) represents a bit value probability with a bit value of 1, and P (C j = 0) represents a bit value probability with a bit value of 0.
特定のグループの各ビット位置に対して、処理部13が、少なくとも1つのビット値確率の各々を0.5から引いた結果をビット値バイアス度とする実施形態であってもよい。たとえば、処理部13はビット値が0であるビット値バイアス度を以下の方程式(5)にしたがって算出してもよく、ビット値が1であるビット値バイアス度を以下の方程式(6)にしたがって算出してもよい。
For each bit position of a specific group, the
方程式(5)および方程式(6)では、P(Cj=0)はビット値が0のビット値確率を表し、P(Cj=1)はビット値が1のビット値確率を表し、β(Cj[0])はビット値が0のビット値バイアス度を表し、β(Cj[1])はビット値が1のビット値バイアス度を表す。 In equations (5) and (6), P (C j = 0) represents the bit value probability with a bit value of 0, P (C j = 1) represents the bit value probability with a bit value of 1, and β (C j [0]) represents a bit value bias degree having a bit value of 0, and β (C j [1]) represents a bit value bias degree having a bit value of 1.
処理部13がさらに、グループをより正確に得るために、すべてのビット位置のビット値バイアス度を解析し、パケット10a、…、10bの相互相関値を解析結果にしたがって再算出し、グループを再生成する実施形態であってもよい。具体的には、処理部13はビット位置の特定の領域が、ビット値が1であるビット値バイアス度の絶対値がすべて閾値より小さいという特性を有することを判定する。これは、ヘッダおよびペイロードの境界が特定の領域内に入る可能性が高いことを意味する。したがって、処理部13はこの特定の領域にしたがって相互相関値計算長を更新する。相互相関値計算長を更新後、処理部13は、更新された相互相関値計算長に再度したがって各パケット10a、…、10bの数列を決定し、パケット10a、…、10bの相互相関値を再度算出し、グループを再度生成する。処理部13がパケット10a、…、10bの相互相関を更新された相互相関値計算長にしたがって算出し、グループを再度生成する方法は、当業者には前述の説明から理解されるであろう。そのため、これ以上本明細書では記載しない。
Further, in order to obtain the group more accurately, the
相互相関値計算長の更新を理解しやすいように、図1Cに例示する特定の例を参照されたい。図1Cでは、横軸はビット位置を表し、縦軸はビット値が1であるビット値バイアス度の絶対値を表す。この特定の例では、処理部13は、ビット値が1であるビット値バイアス度の絶対値が閾値より小さい特定の領域(つまり、275番目のビット位置から325番目のビット位置まで)があると判定する。したがって、処理部13は、相互相関値計算およびグループ分けの次の段階で、[275/8]×8=272を相互相関値計算長とする。
For ease of understanding the update of the cross-correlation value calculation length, refer to the specific example illustrated in FIG. 1C. In FIG. 1C, the horizontal axis represents the bit position, and the vertical axis represents the absolute value of the bit value bias degree where the bit value is 1. In this specific example, when the
パケット解析装置1がさらに、少なくとも1つのグループに対して、グループに含まれるパケットが、長さ表示フィールド(つまり、パケットのペイロードの長さを示すフィールド)を有するかをユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)判定する実施形態であってもよい。つまり、少なくとも1つのグループのうちの1つ、複数、またはすべてに対して、処理部13は、グループに含まれるパケットが長さ表示フィールドを有するかどうかを判定してもよい。理解しやすいように、処理部13が処理するグループを特定のグループ(不図示)と呼ぶ。特定のグループに含まれるパケットは複数のバイト位置を画成し、特定のグループに含まれる各パケットはパケット長を有する。
The
具体的には、処理部13は、バイト数およびバイト位置内の特定のバイト位置にしたがって特定のフィールドを決定し、次に、特定のフィールドが長さ表示フィールドであるかを判定する。バイト数は(存在する場合は)長さ表示フィールドが占めるバイトの数を表す。バイト数は予め設定した値でもよく、またはユーザが入力インターフェース(不図示)から入力してもよい。
処理部13は、以下の演算を特定のグループに含まれる各パケットに実施する。(a)特定のフィールドのパケットのビットにしたがって評価長を算出し、(b)評価長と、特定のバイト位置を表す値と、バイト数とをパケットのパケット長から引いて差分値を得る。パケットでは、差分値が予め設定した範囲より小さい場合、特定のフィールドはパケットにおけるパケット長表示フィールドである可能性が高いことを意味する。前述の演算(a)および(b)を特定のグループのすべてのパケットに実施後に、処理部13は、予め設定した範囲より小さい差分値の数を算出し、数が第3の閾値より大きいかどうかを判定する。数が第3の閾値より大きい場合、処理部13は特定のフィールドを特定のグループのパケットにおけるパケット長表示フィールドと考える。処理部13がさらに、長さ表示フィールドの判定結果の精度を算出する実施形態であってもよい。具体的には、処理部13は、予め設定した範囲より小さい差分値の数を特定のグループのパケット数で割ることによって精度を得てもよい。
Specifically, the
The
理解しやすいように、図1Dを例にとって説明する。特定のグループが複数のパケットを含み、パケット10a、10bは特定のグループのパケットのうち2つであると想定する。
図1Dに示すように、パケット10a、10bに含まれるビットは16進表記で表され、およびパケット10a、10bのパケット長はそれぞれ46バイトおよび38バイトである。図1Dに示す特定の例では、バイト数(つまり、長さ表示フィールド(存在する場合は)が占めるバイト数)は2バイトであり、特定のバイト位置は(0番目のバイトから算出した)16番目のバイトである。処理部13は、パケット10a、10bそれぞれの特定のフィールド12a、12bを、バイト数および特定のバイト位置にしたがって決定する。パケット10aでは、処理部13は評価長(つまり、161×1+160×15=31)を特定のフィールド12aのパケット10aのビットにしたがって算出し、次に、評価長と、特定のバイト位置を表す数値と、バイト数とをパケット長から引いて、差分値(つまり、46−31−17−2=−4)を得る。
パケット10bでは、処理部13は評価長(つまり、161×1+160×7=23)を特定のフィールド12bのパケット10bのビットにしたがって算出し、次に、特定のバイト位置を表す数値と、バイト数とをパケット長から引いて、差分値(つまり、38−23−17−2=−4)を得る。同様に、処理部13は他のパケットの評価長を算出し、次に、差分値を算出する。特定のグループに含まれるすべてのパケットを処理後、処理部13は、予め設定した範囲より小さい(たとえば、−5〜+5)差分値の数(または割合)を算出し、次に、数(または割合)が第3の閾値より大きいかどうかを判定する。数(または割合)が第3の閾値より大きい場合、処理部13は特定のフィールドをこのパケットグループにおけるパケットのパケット長表示フィールドと見なす。
For easy understanding, FIG. 1D will be described as an example. Assume that a specific group includes a plurality of packets, and the
As shown in FIG. 1D, the bits included in the
In the
前述のバイト数、特定のバイト位置、および特定のフィールドをさらに説明する。一定の特定のグループの特定のフィールドを探すために、処理部13が0番目のバイト位置をテストする実施形態であってもよい(つまり、0番目のバイト位置を特定のバイト位置とし、特定のフィールドを特定のバイト位置およびバイト数にしたがって決定し、次に、前述の算出および判定を実施する)。次に、1番目のバイト位置などをテストする。
これらの実施形態では、処理部13は複数の様々なバイト位置をテストを受ける特定のバイト位置とするため、差分値が第3の閾値より大きいパケットの数(または割合)の複数のバイト位置がありえる。この状況が生じる場合は、処理部13はこのパケットグループにおけるパケットのパケット長表示フィールドとして、差分値が第3の閾値より大きいパケットの数(または割合)が最大となる特定のフィールドを選択してもよい。さらに、処理部13がバイト数を複数の様々な値に設定し、様々な値を個々に同じ手法で前述の計算および判定を実施する実施形態であってもよいが、本明細書ではこれ以上の詳細は記載しない。
The aforementioned number of bytes, specific byte position, and specific fields are further described. In order to search for a specific field of a specific group, the
In these embodiments, since the
前述のように、処理部13が特定グループ長表示フィールドを判定後、処理部13はさらに、長さ表示フィールドの判定結果の精度を算出してもよい。精度が高いということは、処理部13によるパケット10a、…、10bのグループ分けが、より正確であることを意味する。したがって、処理部13が前述の演算を繰り返して、より正確な解析のグループ分けの結果を生成する実施形態であってもよい。
As described above, after the
具体的には、処理部13が、特定のグループに含まれるパケットが長さ表示フィールドを有することを判定し、判定した長さ表示フィールドの精度を算出した後に、処理部13は相互相関値計算長を更新してもよく(たとえば、相互相関値計算長を増減してもよく)、パケット10a、…、10bの相互相関値を再度算出してもよく(たとえば、各パケット10a、…、10bの数列を相互相関値計算長にしたがって再度決定し、パケット10a、…、10bの相互相関値を数列にしたがって算出してもよく)、グループを再度生成してもよく、少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかを再度判定してもよく、長さ表示フィールドの判定結果の精度を再度算出してもよい(長さ表示フィールドがある場合)。
処理部13が更新された相互相関値計算長にしたがって前述の演算を繰り返す方法は、当業者には前述の説明によって理解されるであろう。そのため、詳細はここではさらに説明しない。処理部13は、精度が予め設定した条件(たとえば、閾値より高い)に到達するまで、または前述の演算が予め設定した回数だけ繰り返されるまで、前述の演算を繰り返してもよい。
Specifically, after the
A person skilled in the art will understand from the above description how the
パケット解析装置1がさらに、いずれかのパケットが周期的特性を有するかを、ユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。理解しやすいように、処理部13が処理するパケットを特定のパケット(不図示)と呼び、ベクトル形で記載する。各ベクトルの大きさは最長の特定のパケットのビット長である。処理部13はこの特定のパケットの第1のベクトルを生成する。第1のベクトルは複数のビットを含む。処理部13は次に、第1のベクトルを複数の様々なシフトビット数で循環シフトすることによって、複数の第2のベクトルを生成する。処理部13はさらに、モジュロ2加算を第1のベクトルおよび第2の各ベクトルに行うことによって、複数の第3のベクトルを生成する。第3の各ベクトルは複数のビットを含む。
処理部13は、第3の各ベクトルに対して、値が1に等しいビットの累積数を算出する。その後、処理部13は、最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択する(つまり、この間隔で離間するビットは同じビット値を有する)。理解しやすいように、処理部13が実施するモジュロ2加算は以下の方程式(7)で表される。
The
The
前述の方程式(7)では、
第1のベクトルを表し、
第2のベクトルを表し、
第3のベクトルを表す。処理部13は変数kを様々な値に設定することによって、様々な第2のベクトルを生成する。処理部13は、第3の各ベクトル(つまり、
のハミング重みを算出する(つまり、第3のベクトルの値が1に等しいビットの累積数を算出する)。第3のベクトルのハミング重みが低いということは、第3のベクトルを算出するために用いる第1のベクトルおよび第2のベクトルの互いの類似度が大きいということを意味する。したがって、処理部13は最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択してもよい。より正確な周期的特性を得るために、対応する累積数が累積数のうち最小であると同時に、計数閾値よりも小さい場合にのみ、シフトビット数が特定のパケットの周期的特性として機能可能である実施形態であってもよい。
In equation (7) above,
Represents the first vector,
Represents a second vector,
Represents a third vector. The
(That is, the cumulative number of bits in which the value of the third vector is equal to 1 is calculated). The low Hamming weight of the third vector means that the degree of similarity between the first vector and the second vector used to calculate the third vector is large. Therefore, the
前述の説明によれば、パケット解析装置1は、パケット10a、…、10b間の相関関係にしたがって少なくとも1つのグループを決定し、次に、少なくとも1つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザの参照用に(たとえば、ファズテストの方針を策定する際の参照用に)提供されてもよい。
パケット解析装置1はさらに、少なくとも1つのグループの各ビット位置の特性(たとえば、ビット値確率およびビット値バイアス度)を解析し、および/または少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかどうかを判定する。さらに、パケット解析装置1はまた、パケットが周期的特性を有するかどうかを解析してもよい。これらの様々な情報はすべて、さらに解析するためにユーザに提供されてもよい。
According to the above description, the
The
本発明の第2の実施形態は、図2Aに示すパケット解析方法およびフローチャートである。このパケット解析方法は電子計算装置、たとえば、第1の実施形態によるパケット解析装置1に適応される。
The second embodiment of the present invention is the packet analysis method and flowchart shown in FIG. 2A. This packet analysis method is applied to an electronic computing device, for example, the
ステップS201では、電子計算装置は、フォーマットが未知である複数のパケットの複数の相互相関値を算出する。ステップS201で算出された各相互相関値は、パケットのうち2つに関連する。具体的には、ステップS201では、パケットのいずれか2つから形成される組み合わせの各々に、相互相関値を算出してもよい。ステップS201の前に、パケット解析方法が、相互相関値計算長にしたがって、ステップを実行して各パケットの数列を決定する実施形態であってもよい。相互相関値計算長は予め設定した長さであってもよい。具体的には、各パケットの電子計算装置はパケットに含まれるビットのサブセット(たとえば、第1のLビットであって、Lは相互相関値計算長であり、正の整数)を、相互相関値計算長にしたがってパケットの数列としてもよい。このような実施形態では、各相互相関値は、パケットのうち2つに対応する2つの数列の内積値である。 In step S201, the electronic computer calculates a plurality of cross-correlation values of a plurality of packets whose formats are unknown. Each cross-correlation value calculated in step S201 relates to two of the packets. Specifically, in step S201, a cross-correlation value may be calculated for each combination formed from any two of the packets. Before step S201, the packet analysis method may be an embodiment in which steps are executed according to the cross-correlation value calculation length to determine the number sequence of each packet. The cross-correlation value calculation length may be a preset length. Specifically, the electronic computing device of each packet uses a subset of bits contained in the packet (eg, the first L bits, where L is the cross-correlation value calculation length, a positive integer), and the cross-correlation value. It is good also as a numerical sequence of a packet according to calculation length. In such an embodiment, each cross-correlation value is an inner product value of two sequences corresponding to two of the packets.
ステップS203では、電子計算装置は少なくとも1つのグループを相互相関値および少なくとも1つの第1の閾値にしたがって決定する。少なくとも1つのグループの各々は、パケットのサブセットを含む。少なくとも1つのグループ内の特定のグループに含まれるパケットは複数のビット位置を画成し、特定のグループに含まれる各パケットは複数のビットを含む。少なくとも1つの第1の閾値の各々が相互相関値のサブセットに関連する実施形態であってもよい。
次にステップS205において、電子計算装置は、各ビット位置に対応するビットの変動の程度を算出する。ステップS207では、電子計算装置は、対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、特定のグループの少なくとも1つのフィールド境界として選択する。
In step S203, the electronic computing device determines at least one group according to the cross-correlation value and at least one first threshold. Each of the at least one group includes a subset of the packets. Packets included in a specific group within at least one group define a plurality of bit positions, and each packet included in the specific group includes a plurality of bits. There may be embodiments in which each of the at least one first threshold is associated with a subset of cross-correlation values.
Next, in step S205, the electronic computing device calculates the degree of bit variation corresponding to each bit position. In step S207, the electronic computing device selects at least one bit position whose corresponding degree of variation is smaller than the second threshold as at least one field boundary of the specific group.
パケット解析方法がさらに、ステップS209およびステップS211を含み、少なくとも1つのグループの各ビット位置の特性をユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。ステップS209では、電子計算装置は、各ビット位置のビット値確率をビット位置に対応するビットにしたがって算出する。ステップS211では、電子計算装置は、ビット値確率を0.5から引いた結果を各ビット位置のビット値バイアス度とする。 In an embodiment, the packet analysis method further comprises steps S209 and S211 for analyzing the characteristics of each bit position of at least one group for user reference (eg, for reference when formulating a fuzz test policy). There may be. In step S209, the electronic calculator calculates the bit value probability of each bit position according to the bit corresponding to the bit position. In step S <b> 211, the electronic calculation apparatus sets a result of subtracting the bit value probability from 0.5 as the bit value bias degree of each bit position.
パケット解析方法がさらに、図2Bに示すステップを含み、少なくとも1つのグループに対して、そのグループに含まれるパケットが長さ表示フィールド(つまり、パケットのペイロードの長さを示すフィールド)を有するかをユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)判定する実施形態であってもよい。これらの実施形態では、特定のグループに含まれるパケットは複数のバイト位置を画成し、特定のグループに含まれる各パケットはパケット長を有する。 The packet analysis method further includes the steps shown in FIG. 2B, for at least one group, whether the packets included in the group have a length indication field (ie, a field indicating the length of the payload of the packet). The embodiment may be determined for user reference (for example, for reference when formulating a fuzz test policy). In these embodiments, packets included in a specific group define a plurality of byte positions, and each packet included in the specific group has a packet length.
ステップS221では、電子計算装置は、バイト数およびバイト位置内の特定のバイト位置にしたがって特定のフィールドを決定する。ステップS223では、電子計算装置は、解析されていないパケットを特定のグループから選択する。ステップS225では、電子計算装置は特定のフィールドのパケットのビットにしたがって評価長を算出する。ステップS227では、電子計算装置は評価長、特定のバイト位置を表す値、およびバイト数をパケット長から引いて、差分値を得る。次にステップS229では、電子計算装置は、特定のパケットにまだ未解析のパケットがあるかを判定する。ステップS229の判定結果が「はい」の場合は、ステップS223からS229までを繰り返す。ステップS229の判定結果が「いいえ」の場合は、電子計算装置は、予め設定した範囲より小さい差分値の数を算出する。次に、ステップS233では、数が第3の閾値より大きい場合、電子計算装置は特定のフィールドを特定のグループに含まれるパケットのパケット長表示フィールドとする。 In step S221, the electronic computing device determines a specific field according to the number of bytes and a specific byte position within the byte position. In step S223, the electronic computing device selects a packet that has not been analyzed from a specific group. In step S225, the electronic computing device calculates the evaluation length according to the bit of the packet in the specific field. In step S227, the electronic computing device obtains a difference value by subtracting the evaluation length, a value representing a specific byte position, and the number of bytes from the packet length. In step S229, the electronic computing device determines whether there is an unanalyzed packet in the specific packet. If the determination result in step S229 is “Yes”, steps S223 to S229 are repeated. When the determination result of step S229 is “No”, the electronic calculation device calculates the number of difference values smaller than a preset range. Next, in step S233, when the number is larger than the third threshold, the electronic computing device sets the specific field as a packet length display field for packets included in the specific group.
パケット解析方法がさらに、図2Cに示すステップを含み、いずれかのパケットが周期的特性を有するかを、ユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。
具体的には、ステップS241では、電子計算装置は、パケットの中から特定のパケットのために、第1のベクトルを生成する。第1のベクトルは複数のビットを含む。ステップS243では、電子計算装置は、第1のベクトルを複数の様々なシフトビット数で循環シフトすることによって、複数の第2のベクトルを生成する。ステップS245では、電子計算装置は、モジュロ2加算を第1のベクトルおよび第2の各ベクトルに行うことによって、複数の第3のベクトルを生成する。第3の各ベクトルは複数のビットを含む。ステップS247では、電子計算装置は、第3の各ベクトルに対して、値が1に等しいビットの累積数を算出する。ステップS249では、電子計算装置は、対応する累積数が累積数の中でも最小であり、計数閾値よりも小さいシフトビット数を特定のパケットの周期的特性として選択する。
The packet analysis method further includes the steps shown in FIG. 2C to analyze whether any of the packets has periodic characteristics for user reference (eg, for reference when developing a fuzz test policy). Form may be sufficient.
Specifically, in step S241, the electronic computing device generates a first vector for a specific packet from among the packets. The first vector includes a plurality of bits. In step S243, the electronic computing device generates a plurality of second vectors by cyclically shifting the first vector by a plurality of various shift bit numbers. In step S245, the electronic computing device generates a plurality of third vectors by performing modulo-2 addition on the first vector and the second vector. Each third vector includes a plurality of bits. In step S247, the electronic computing device calculates the cumulative number of bits whose value is equal to 1 for each third vector. In step S249, the electronic computing device selects the number of shift bits whose corresponding cumulative number is the smallest of the cumulative numbers and smaller than the count threshold as the periodic characteristic of the specific packet.
前述のステップに追加して、第2の実施形態はまた、第1の実施形態と同じく、すべての演算およびステップを実行でき、同じ機能を有し、同じ技術的効果を提供する。第2の実施形態がこれらの演算およびステップを実行する方法、同じ機能を有する方法、同じ技術的効果を提供する方法は、当業者には第1の実施形態から理解されるであろう。そのため、これ以上本明細書では記載しない。 In addition to the above steps, the second embodiment can also perform all operations and steps, have the same functions and provide the same technical effects as the first embodiment. A person skilled in the art will understand from the first embodiment how the second embodiment performs these operations and steps, how to have the same function, and how to provide the same technical effect. Therefore, it will not be described further in this specification.
第2の実施形態で記載するパケット解析方法は、複数のコードを備えるコンピュータプログラムによって実装されてもよい。コンピュータプログラムは非一時的コンピュータ可読記憶媒体に格納される。コンピュータプログラムに含まれるコードを電子計算装置(たとえば、第1の実施形態のパケット解析装置1)にロードすると、第2の実施形態に記載されたパケット解析方法が実行される。非一時的コンピュータ可読記憶媒体は電子製品であってもよく、たとえば、リードオンリーメモリ(ROM)、フラッシュメモリ、フロッピーディスク、ハードディスク、コンパクトディスク(CD)、モバイルディスク、磁気テープ、ネットワークにアクセス可能なデータベースまたは当業者に既知であり、同じ機能を有するいずれかの他の記憶媒体であってもよい。
The packet analysis method described in the second embodiment may be implemented by a computer program including a plurality of codes. The computer program is stored on a non-transitory computer readable storage medium. When the code included in the computer program is loaded into an electronic computing device (for example, the
本願明細書において、第1の閾値、第2の閾値、および第3の閾値で用いられる「第1の」「第2の」および「第3の」という用語は、閾値が異なる閾値であることを表すことのみを意図するものであることを理解されたい。第1のベクトル、第2のベクトル、および第3のベクトルで用いられる「第1の」「第2の」および「第3の」という用語は、ベクトルが異なるベクトルであることを表すことのみを意図するものである。 In the present specification, the terms “first”, “second”, and “third” used in the first threshold, the second threshold, and the third threshold are thresholds having different thresholds. It should be understood that it is intended only to represent. The terms “first”, “second”, and “third” used in the first vector, the second vector, and the third vector only represent that the vectors are different vectors. Intended.
前述の説明から分かるように、本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)は、複数のパケットの中から相関関係にしたがって少なくとも1つのグループを決定し、次に、少なくとも1つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)提供されてもよい。
本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)はさらに、少なくとも1つのグループの各ビット位置の特性(たとえば、ビット値確率およびビット値バイアス度)を解析し、および/または少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかを判定してもよい。本発明で提供するパケット解析技術(装置、方法、および非一時的コンピュータ可読媒体を含む)はさらに、パケットが周期的特性を有するかを解析してもよい。これらの様々な情報をすべてユーザの参照およびさらなる解析用に提供してもよい。
As can be seen from the above description, the packet analysis technique (including the apparatus, the method, and the non-transitory computer readable medium) provided by the present invention determines at least one group from a plurality of packets according to the correlation. Next, field boundaries of packets included in at least one group are determined. These fields may be provided for user reference (eg, for reference when developing a fuzz testing policy).
The packet analysis techniques (including apparatus, methods, and non-transitory computer readable media) provided by the present invention further analyze the characteristics (eg, bit value probability and bit value bias degree) of each bit position in at least one group. And / or may determine whether packets included in at least one group have a length indication field. The packet analysis techniques (including apparatus, methods, and non-transitory computer readable media) provided by the present invention may further analyze whether the packet has periodic characteristics. All of these various pieces of information may be provided for user reference and further analysis.
前述の開示は、詳細な技術的内容およびその発明的特徴に関する。当業者は本発明の特性から逸脱せずに本発明の開示および提示に基づいて、各種の修正および代替を行い得るであろう。そのような修正および代替が前述の説明に完全に開示されていない場合であっても、それらは以下の特許請求の範囲に実質的に網羅されている。 The foregoing disclosure relates to detailed technical contents and inventive features thereof. Those skilled in the art will be able to make various modifications and alternatives based on the disclosure and presentation of the present invention without departing from the characteristics of the present invention. Even if such modifications and alternatives are not fully disclosed in the foregoing description, they are substantially covered by the following claims.
前述のように、処理部13が特定のグループの長さ表示フィールドを判定後、処理部13はさらに、長さ表示フィールドの判定結果の精度を算出してもよい。精度が高いということは、処理部13によるパケット10a、…、10bのグループ分けが、より正確であることを意味する。したがって、処理部13が前述の演算を繰り返して、より正確な解析のグループ分けの結果を生成する実施形態であってもよい。
As described above, after the
Claims (20)
各々のフォーマットが未知である複数のパケットを格納する記憶部と、
前記記憶部に電気的に接続されて、前記複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも1つの第1の閾値にしたがって、各々が前記複数のパケットのサブセットを含む少なくとも1つのグループを決定する処理部と、
を備え、
前記処理部は、前記少なくとも1つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、
対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、前記特定のグループの少なくとも1つのフィールド境界として選択する
ことを特徴とするパケット解析装置。 A packet analyzer,
A storage unit for storing a plurality of packets each having an unknown format;
A plurality of cross-correlation values of the plurality of packets are electrically connected to the storage unit, and each is a subset of the plurality of packets according to the plurality of cross-correlation values and at least one first threshold A processing unit for determining at least one group including:
With
The processor is configured to change a plurality of bits included in each of the plurality of packets corresponding to each of a plurality of bit positions defined by a plurality of packets included in the specific group of the at least one group. Calculate the degree of
The packet analysis apparatus, wherein at least one bit position having a corresponding degree of variation smaller than a second threshold is selected as at least one field boundary of the specific group.
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第1のベクトルを生成し、
前記第1のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第2のベクトルを生成し、
前記第1のベクトルおよび前記複数の第2のベクトルの各々にモジュロ2加算を施して、各々が複数のビットを有する複数の第3のベクトルを生成し
前記複数の第3のベクトルの各々につき、値が1に等しい前記複数のビットの累積数を算出し、
対応する累積数が前記複数のビットの累積数の中で最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択する
ことを特徴とする請求項1に記載のパケット解析装置。 The processing unit further includes:
Generating a first vector having a plurality of bits for a particular packet of the plurality of packets;
Cyclically shifting the first vector by a plurality of different shift bit numbers to generate a plurality of second vectors;
Modulo-2 addition is performed on each of the first vector and the plurality of second vectors to generate a plurality of third vectors each having a plurality of bits, for each of the plurality of third vectors, Calculating a cumulative number of the plurality of bits having a value equal to 1;
Selecting a shift bit number corresponding to the smallest cumulative bit number of the plurality of bits and smaller than a count threshold value from among the plurality of different shift bit numbers as a periodic characteristic of the specific packet. The packet analysis device according to claim 1, wherein
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
前記処理部は、さらに、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定し、
前記特定のグループに含まれる前記複数のパケットの各々に対し、(a)前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、(b)前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施し、
前記差分値が予め設定した範囲より小さいパケット数を算出し、
前記パケット数が第3の閾値より大きいことを判定する
ことを特徴とする請求項1に記載のパケット解析装置。 The plurality of packets included in the specific group define a plurality of byte positions;
Each of the plurality of packets included in the specific group has a packet length;
The processing unit further includes:
Determining a specific field as the specific group length display field according to the number of bytes and a specific byte position of the plurality of byte positions;
For each of the plurality of packets included in the specific group, (a) calculating an evaluation length according to the bits of the packet in the specific field, and (b) calculating the evaluation length and the specific byte position. Subtract the value to represent and the number of bytes from the length of the packet to obtain a difference value,
Calculate the number of packets where the difference value is smaller than a preset range,
The packet analysis device according to claim 1, wherein it is determined that the number of packets is greater than a third threshold.
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定し、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの2つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出する
ことを特徴とする請求項1に記載のパケット解析装置。 The processing unit further includes:
Determining a sequence of each of the plurality of packets according to a cross-correlation value calculation length;
The plurality of cross-correlation values are calculated according to a plurality of sequences of the plurality of packets as inner product values of sequences corresponding to two packets of the plurality of packets, respectively. The packet analysis device according to 1.
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出することを特徴とする請求項1に記載のパケット解析装置。 The processor is
The packet analysis device according to claim 1, wherein a bit value probability is calculated for each of the plurality of bit positions according to the plurality of bits corresponding to the bit position.
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも1つのグループを前記相互相関値および少なくとも1つの第1の閾値にしたがって決定するステップと、
前記少なくとも1つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、前記特定のグループの少なくとも1つのフィールド境界として選択するステップと、
を備えたことを特徴とするパケット解析方法。 A packet analysis method applied to an electronic computing device,
Calculating a plurality of cross-correlation values of a plurality of packets each having an unknown format;
Determining at least one group each comprising a subset of the plurality of packets according to the cross-correlation value and at least one first threshold;
A degree of variation of a plurality of bits included in each of the plurality of packets corresponding to each of a plurality of bit positions defined by the plurality of packets included in the specific group of the at least one group is calculated. Steps,
Selecting at least one bit position with a corresponding degree of variation less than a second threshold as at least one field boundary of the particular group;
A packet analysis method comprising:
前記第1のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第2のベクトルを生成するステップと、
前記第1のベクトルおよび前記複数の第2のベクトルの各々にモジュロ2加算を施して、各々が複数のビットを有する複数の第3のベクトルを生成するステップと、
前記複数の第3のベクトルの各々につき、値が1に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、
をさらに備えたことを特徴とする請求項9に記載のパケット解析方法。 Generating a first vector having a plurality of bits for a particular packet of the plurality of packets;
Cyclically shifting the first vector with a plurality of different shift bit numbers to generate a plurality of second vectors;
Performing modulo-2 addition on each of the first vector and the plurality of second vectors to generate a plurality of third vectors each having a plurality of bits;
Calculating a cumulative number of the plurality of bits having a value equal to 1 for each of the plurality of third vectors;
Selecting a shift bit number corresponding to a minimum cumulative number of the plurality of bits and smaller than a count threshold among the different shift bit numbers as a periodic characteristic of the specific packet;
The packet analysis method according to claim 9, further comprising:
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第3の閾値より大きいことを判定するステップと、
を備えたことを特徴とする請求項9に記載のパケット解析方法。 The plurality of packets included in the specific group define a plurality of byte positions;
Each of the plurality of packets included in the specific group has a packet length;
Determining a specific field as the specific group length display field according to the number of bytes and a specific byte position of the plurality of byte positions;
For each of the plurality of packets included in the specific group, an evaluation length is calculated according to the bits of the packet in the specific field, and the value indicating the evaluation length, the specific byte position, and the number of bytes Subtracting from the length of the packet to obtain a difference value;
Calculating the number of packets where the difference value is smaller than a preset range;
Determining that the number of packets is greater than a third threshold;
The packet analysis method according to claim 9, further comprising:
前記複数の相互相関値を、その各々が前記複数のパケットのうちの2つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、
を備えたことを特徴とする請求項9に記載のパケット解析方法。 Determining a sequence of each of the plurality of packets according to a cross-correlation value calculation length;
Calculating the plurality of cross-correlation values according to a plurality of sequences of the plurality of packets, each of which is an inner product value of sequences corresponding to two packets of the plurality of packets;
The packet analysis method according to claim 9, further comprising:
当該パケット解析方法は、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも1つのグループを前記相互相関値および少なくとも1つの第1の閾値にしたがって決定するステップと、
前記少なくとも1つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第2の閾値より小さい少なくとも1つのビット位置を、前記特定のグループの少なくとも1つのフィールド境界として選択するステップと、を備えた
ことを特徴とする非一時的コンピュータ可読媒体。 A non-transitory computer-readable medium storing a computer program, the computer program being loaded into an electronic computing device to execute a packet analysis method,
The packet analysis method is
Calculating a plurality of cross-correlation values of a plurality of packets each having an unknown format;
Determining at least one group each comprising a subset of the plurality of packets according to the cross-correlation value and at least one first threshold;
A degree of variation of a plurality of bits included in each of the plurality of packets corresponding to each of a plurality of bit positions defined by the plurality of packets included in the specific group of the at least one group is calculated. Steps,
Selecting at least one bit position with a corresponding degree of variation less than a second threshold as at least one field boundary of the particular group.
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第1のベクトルを生成するステップと、
前記第1のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第2のベクトルを生成するステップと、
前記第1のベクトルおよび前記複数の第2のベクトルの各々にモジュロ2加算を施して、各々が複数のビットを有する複数の第3のベクトルを生成するステップと、
前記複数の第3のベクトルの各々につき、値が1に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、をさらに備えた
ことを特徴とする請求項17に記載の非一時的コンピュータ可読媒体。 The packet analysis method includes:
Generating a first vector having a plurality of bits for a particular packet of the plurality of packets;
Cyclically shifting the first vector with a plurality of different shift bit numbers to generate a plurality of second vectors;
Performing modulo-2 addition on each of the first vector and the plurality of second vectors to generate a plurality of third vectors each having a plurality of bits;
Calculating a cumulative number of the plurality of bits having a value equal to 1 for each of the plurality of third vectors;
Selecting a shift bit number corresponding to a minimum cumulative number of the plurality of bits and smaller than a count threshold among the different shift bit numbers as a periodic characteristic of the specific packet; The non-transitory computer-readable medium of claim 17, further comprising:
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第3の閾値より大きいことを判定するステップと、をさらに備えた
ことを特徴とする請求項17に記載の非一時的コンピュータ可読媒体。 The packet analysis method includes:
The plurality of packets included in the specific group define a plurality of byte positions;
Each of the plurality of packets included in the specific group has a packet length;
Determining a specific field as the specific group length display field according to the number of bytes and a specific byte position of the plurality of byte positions;
For each of the plurality of packets included in the specific group, an evaluation length is calculated according to the bits of the packet in the specific field, and the value indicating the evaluation length, the specific byte position, and the number of bytes Subtracting from the length of the packet to obtain a difference value;
Calculating the number of packets where the difference value is smaller than a preset range;
The non-transitory computer-readable medium of claim 17, further comprising: determining that the number of packets is greater than a third threshold.
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定するステップと、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの2つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、を備えた
ことを特徴とする請求項17に記載の非一時的コンピュータ可読媒体。 The packet analysis method includes:
Determining a sequence of each of the plurality of packets according to a cross-correlation value calculation length;
Calculating the plurality of cross-correlation values as inner product values of sequences corresponding to two packets of the plurality of packets, respectively, according to the plurality of sequences of the plurality of packets. The non-transitory computer-readable medium of claim 17.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017027997A JP6516781B2 (en) | 2017-02-17 | 2017-02-17 | Packet analysis device, method and non-transitory computer readable medium therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017027997A JP6516781B2 (en) | 2017-02-17 | 2017-02-17 | Packet analysis device, method and non-transitory computer readable medium therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018133774A true JP2018133774A (en) | 2018-08-23 |
JP6516781B2 JP6516781B2 (en) | 2019-05-22 |
Family
ID=63248730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017027997A Expired - Fee Related JP6516781B2 (en) | 2017-02-17 | 2017-02-17 | Packet analysis device, method and non-transitory computer readable medium therefor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6516781B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765244A (en) * | 2019-11-06 | 2021-05-07 | 财团法人资讯工业策进会 | Data interpretation device, method and computer storage medium thereof |
-
2017
- 2017-02-17 JP JP2017027997A patent/JP6516781B2/en not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
K. CHOI, ET AL.: "Dissecting Customized Protocols: Automatic Analysis for Customized Protocols based on IEEE 802.15.4", PROCEEDINGS OF THE 9TH ACM CONFERENCE ON SECURITY AND PRIVACY IN WIRELESS AND MOBILE NETWORKS, JPN6018011389, 18 July 2016 (2016-07-18), pages 183 - 193, ISSN: 0003926729 * |
M. MARKOVITZ AND A, WOOD: "Field Classification, Modeling and Anomaly Detection in Unknown CAN Bus Networks", PROCEEDINGS OF THE EMBEDDED SECURITY IN CARS CONFERENCE (ESCAR 2015), JPN6018011391, 13 October 2015 (2015-10-13), ISSN: 0003926731 * |
W. CUI, ET AL.: "Discoverer: Automatic Protocol Reverse Engineering from Network Traces", PROCEEDINGS OF THE 16TH USENIX SECURITY SYMPOSIUM, JPN6018011393, 2007, pages 199 - 212, ISSN: 0003768576 * |
櫻井 保志: "時系列データのためのストリームマイニング技術", 情報処理 第47巻 第7号, JPN6018011395, July 2006 (2006-07-01), JP, pages 755 - 761, ISSN: 0003926730 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765244A (en) * | 2019-11-06 | 2021-05-07 | 财团法人资讯工业策进会 | Data interpretation device, method and computer storage medium thereof |
Also Published As
Publication number | Publication date |
---|---|
JP6516781B2 (en) | 2019-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190166024A1 (en) | Network anomaly analysis apparatus, method, and non-transitory computer readable storage medium thereof | |
CN107194430B (en) | Sample screening method and device and electronic equipment | |
JP6183450B2 (en) | System analysis apparatus and system analysis method | |
CN114422267B (en) | Flow detection method, device, equipment and medium | |
CN106709318A (en) | Recognition method, device and calculation equipment for user equipment uniqueness | |
JP6183449B2 (en) | System analysis apparatus and system analysis method | |
CN114462613A (en) | Quantum computer performance characterization method and device, electronic device and medium | |
Kim et al. | Can one hear the shape of a population history? | |
CN111010387B (en) | Illegal replacement detection method, device, equipment and medium for Internet of things equipment | |
JP2019121376A (en) | System and method for obtaining optimal mother wavelets for facilitating machine learning tasks | |
CN110968802B (en) | Analysis method and analysis device for user characteristics and readable storage medium | |
Weine et al. | Application of equal local levels to improve QQ plot testing bands with R package qqconf | |
US10341471B2 (en) | Packet analysis apparatus, method, and non-transitory computer readable medium thereof | |
JP6516781B2 (en) | Packet analysis device, method and non-transitory computer readable medium therefor | |
CN115329972B (en) | Quantum computer performance determining method and device, electronic equipment and medium | |
CN108133234B (en) | Sparse subset selection algorithm-based community detection method, device and equipment | |
TWI629886B (en) | Packet analysis apparatus, method, and computer program product thereof | |
CN109815985A (en) | Evaluation method, device, storage medium and the electronic equipment of variable discretization | |
US11177018B2 (en) | Stable genes in comparative transcriptomics | |
CN111723247A (en) | Graph-based hypothetical computation | |
EP3850495A1 (en) | Computer-implemented method and electronic device for detecting influential components in a netlist representing an electrical circuit | |
US10521436B2 (en) | Systems and methods for data and information source reliability estimation | |
Stock et al. | Topological benchmarking of algorithms to infer gene regulatory networks from single-cell RNA-seq data | |
KR20160031588A (en) | Method and apparatus for malicious code classification | |
JP2015026218A (en) | Abnormal case detection apparatus, method, program, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180622 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190131 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20190207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190416 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6516781 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |