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 PDF

Info

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
Application number
JP2017027997A
Other languages
Japanese (ja)
Other versions
JP6516781B2 (en
Inventor
▲頼▼昭曄
Chao Yeh Lai
劉建宗
Chien Tsung Liu
李育杰
Yuh-Jye Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Onward Security Corp
Original Assignee
Onward Security Corp
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 Onward Security Corp filed Critical Onward Security Corp
Priority to JP2017027997A priority Critical patent/JP6516781B2/en
Publication of JP2018133774A publication Critical patent/JP2018133774A/en
Application granted granted Critical
Publication of JP6516781B2 publication Critical patent/JP6516781B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a packet analysis device, a method and a non-temporary computer readable medium therefor.SOLUTION: A packet analysis device 1 comprises a storage unit 11 and a processing unit 13. The storage unit stores therein multiple packets 10a-10b of which the formats are unknown. The processing unit is connected to the storage unit, calculates multiple mutual correlation values of the multiple packets and determines at least one group including a subset of multiple packets in accordance with the multiple mutual correlation values and at least one first threshold. The processing unit further calculates a degree of fluctuation of multiple bits included in each of multiple packets included in at least one specific group, corresponding to each of multiple bit positions defined by the multiple packets, and selects at least one bit position of which the correspondent degree of fluctuation is smaller than a second threshold, as at least one field boundary of the specific group.SELECTED DRAWING: Figure 1A

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.

第1の実施形態のパケット解析装置1の構造を例示する概略図である。It is the schematic which illustrates the structure of the packet analysis apparatus 1 of 1st Embodiment. 20個のパケットの一例を示す図である。It is a figure which shows an example of 20 packets. ビット位置およびビット値バイアス度の一例を示す図である。It is a figure which shows an example of a bit position and a bit value bias degree. 特定のフィールドの一例を示す図である。It is a figure which shows an example of a specific field. 第2の実施形態のパケット解析方法を例示するフローチャートである。It is a flowchart which illustrates the packet analysis method of 2nd Embodiment. 少なくとも1つのグループに含まれるパケットがパケット長表示フィールドを有するか否かを判定するプロセスを例示するフローチャートである。6 is a flowchart illustrating a process for determining whether a packet included in at least one group has a packet length indication field. いずれかのパケットが周期的特性を有するか否かを解析するためのプロセスを例示するフローチャートである。6 is a flowchart illustrating a process for analyzing whether any packet has periodic characteristics.

以下の説明では、本発明によるパケット解析装置、方法、およびその非一時的コンピュータ可読媒体を、実施形態を参照して説明する。ただし、これらの実施形態は、同実施形態に記載されるいずれか特定の環境、アプリケーション、または具体的な実装に本発明を限定することを意図するものではない。したがって、これらの実施形態の説明は、本発明を限定するのではなく、例示することを目的とする。
以下の実施形態および添付図において、本発明に関連しない要素は説明から省略されることを理解されたい。さらに、個々の要素の寸法および添付図の個々の要素間の寸法的な関係は例示目的でのみ提示され、本発明の範囲を限定するものではない。
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 packet analysis device 1, and its schematic structure is shown in FIG. 1A. The packet analysis device 1 includes a storage unit 11 and a processing unit 13. The storage unit 11 and the processing unit 13 are electrically connected to each other. The storage unit 11 is a memory, a universal serial bus (USB) disk, a hard disk, a compact disk (CD), a mobile disk, or any other storage medium or circuit that has a similar function and is known to those skilled in the art. Also good. The processing unit 13 may be any of various processors, a central processing unit (CPU), a microprocessor, or other computing device or method known to those skilled in the art.

記憶部11は複数のパケット10a、…、10bを格納する。パケット10a、…、10bの各々は複数のビットを含む。パケット10a、…、10bのフォーマット(たとえば、通信プロトコル)は未知である。つまり、複数のパケット10a、…、10bの各々における複数のフィールドの数および当該複数のフィールドの各々の長さは未知である。本実施形態では、パケット解析装置1は少なくとも1つのグループをパケット10a、…、10b間の相関関係にしたがって決定し、次に、決定した少なくとも1つのグループのうちの少なくとも1つに含まれるパケットのフィールドの境界を決定する。   The storage unit 11 stores a plurality of packets 10a, ..., 10b. Each of the packets 10a,..., 10b includes a plurality of bits. The format (eg, communication protocol) of the packets 10a,..., 10b is unknown. That is, the number of fields in each of the plurality of packets 10a,..., 10b and the lengths of the fields are unknown. In the present embodiment, the packet analysis device 1 determines at least one group according to the correlation between the packets 10a,..., 10b, and then the packet included in at least one of the determined at least one group. Determine field boundaries.

まず、パケット解析装置1がパケット10a、…、10b間の相関関係を算出する方法を説明する。本実施形態では、処理部13は複数のパケット10a、…、10bの相互相関値を算出する。各相互相関値はパケット10a、…、10bのうち2つに関連する。具体的には、処理部13は、パケット10a、…、10bのうちいずれか2つによって形成される複数の組み合わせの各々の相互相関値を算出してもよい。   First, a method in which the packet analysis device 1 calculates the correlation between the packets 10a,. In the present embodiment, the processing unit 13 calculates cross-correlation values of the plurality of packets 10a,. Each cross-correlation value is associated with two of the packets 10a,. Specifically, the processing unit 13 may calculate a cross-correlation value of each of a plurality of combinations formed by any two of the packets 10a, ..., 10b.

処理部13がまず、パケット10a、…、10bの各々の数列を相互相関値計算長にしたがって決定する実施形態であってもよい。相互相関値計算長は予め設定した長さでもよい。具体的には、パケット10a、…、10bの各々に対して、処理部13は、パケットに含まれるビットのサブセット(たとえば、第1のLビットであって、Lは相互相関値計算長であり正の整数)を相互相関値計算長にしたがって、パケットの数列とする。さらに、処理部13は、パケットのいずれか2つから形成される複数の組み合わせの各々に対応する数列の内積値(つまり、2つの数列の内積から得られる値)を算出し、内積値を相互相関値とする。各数列は長さ(つまり、数列内の数値/ビット数)を有し、数列の長さは同一である(つまり、すべての長さは相互相関値計算長と等しい)ことを理解されたい。
理解しやすいように、パケット10a、…、10bの数列および処理部13によって決定される相互相関値を以下の数学記号で表す。

Figure 2018133774
i番目のパケットに対応する数列であり、i∈{0,1,…,M−1}、
Figure 2018133774
j番目のパケットに対応する数列であり、j∈{0,1,…,M−1}、
Figure 2018133774
i番目のパケットに対応する数列の長さ、
Figure 2018133774
i番目のパケットのk番目のビット値であり、
Figure 2018133774

Figure 2018133774
i番目のパケットの数列のk番目の値であり、
Figure 2018133774
i,jはi番目のパケットとj番目のパケット間の相互相関値であり、
Figure 2018133774
である。 In an embodiment, the processing unit 13 may first determine the number sequence of each of the packets 10a,..., 10b according to the cross-correlation value calculation length. The cross-correlation value calculation length may be a preset length. Specifically, for each of the packets 10a,..., 10b, the processing unit 13 sets a subset of bits included in the packet (for example, the first L bits, where L is the cross-correlation value calculation length). A positive integer) is used as a packet sequence according to the cross-correlation value calculation length. Further, the processing unit 13 calculates an inner product value of a number sequence corresponding to each of a plurality of combinations formed from any two of the packets (that is, a value obtained from the inner product of the two number sequences), and calculates the inner product value to each other. Correlation value. It should be understood that each sequence has a length (ie, the number / number of bits in the sequence) and the length of the sequence is the same (ie, all lengths are equal to the cross-correlation value calculation length).
For easy understanding, the numerical sequences of the packets 10a,...
Figure 2018133774
a sequence corresponding to the i-th packet, i∈ {0, 1,..., M−1},
Figure 2018133774
a sequence corresponding to the jth packet, j∈ {0, 1,..., M−1},
Figure 2018133774
the length of the sequence corresponding to the i th packet,
Figure 2018133774
the k th bit value of the i th packet,
Figure 2018133774

Figure 2018133774
the k th value of the sequence of the i th packet,
Figure 2018133774
P i, j is a cross-correlation value between the i-th packet and the j-th packet,
Figure 2018133774
It is.

パケット10a、…、10bの数列を表す前述の数学記号に関し、パラメータMはパケット10a、…、10bの数を表す。内積値を相互相関値とするのは一例であり、本発明の範囲を限定するものではないことに留意されたい。各相互相関値は、相互相関値に対応する2つのパケット間の類似度(または相関度)を表すために用いるが、2つのパケット(または2つの数列)間の類似度(または相関度)を表すことが可能な他の数値も用いてもよい。   With respect to the aforementioned mathematical symbols representing the sequence of packets 10a,..., 10b, the parameter M represents the number of packets 10a,. It should be noted that the inner product value is a cross-correlation value, and is not intended to limit the scope of the present invention. Each cross-correlation value is used to express the similarity (or correlation) between two packets corresponding to the cross-correlation value, but the similarity (or correlation) between two packets (or two sequences) is used. Other numerical values that can be represented may also be used.

理解しやすいように、前述の演算を特定の例を参照して詳細に説明するが、本発明の範囲を限定するものではない。
図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 processing unit 13 determines the number sequence of each packet according to the cross-correlation value calculation length. The sequences are the same length. Next, the processing unit 13 calculates the inner product value from two number sequences corresponding to each of a plurality of combinations formed from any two of the packets. The inner product value is a cross-correlation value. Therefore, 20 packets are assumed to be from 0 to 19.
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, p 0,9 = 0.56, p 0,10 = 0.5425, p 0,11 = 0.5925, p 0,12 = 0.565, p 0,13 = 0.6025 , p 0,14 = 0.4775, p 0,15 = 0.4875, p 0,16 = 0.53, p 0,17 = 0 4975, p 0,18 = 0.5125, and p 0,19 = 0.5025.

次に、処理部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 processing unit 13 determines at least one group according to the cross-correlation value and at least one first threshold value. Each of the at least one group comprises a subset of the packets 10a, ..., 10b. An embodiment in which the processing unit 13 determines a first threshold value of each of the packets 10a,..., 10b and determines each group of the packets 10a,. . There may be an embodiment in which the processing unit 13 determines only one first threshold and then determines each group of packets 10a,..., 10b according to the same first threshold. Embodiments in which the processing unit 13 individually generates one or more (not all) specific groups of the packets 10a,..., 10b, and the first threshold used by the processing unit to generate the groups is the same or different from each other. It may be.

理解しやすいように、前述の特定の例(つまり、図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 processing unit 13 determines at least one first threshold according to the subset of cross-correlation values.
Specifically, for the 0th packet, the processing unit 13 calculates the first threshold according to the cross-correlation value associated with the 0th packet. The cross-correlation values are p 0,1 , p 0,2 , p 0,3 , p 0,4 , p 0,5 , p 0,6 , p 0,7 , p 0,8 , p 0, 9, p 0,10, p 0,11, p 0,12, p 0,13, p 0,14, p 0,15, p 0,16, p 0,17, p 0,18 and p 0, 19 . As an example, the processing unit 13 may calculate an average value (about 0.569474) of cross-correlation values for the 0th packet, and may use the average value as the first threshold value for the 0th packet. As another example, the processing unit 13 may use the average value and the variance as the first threshold value of the 0th packet. Therefore, it is assumed that the average value of the cross-correlation values regarding the 0th packet is set as the first threshold value of the 0th packet by the processing unit 13. Based on this assumption, the processing unit 13 groups the 0th packet and a packet having a corresponding cross-correlation value larger than the first threshold into the same group. Specifically, the cross-correlation value p 0,1, p 0,3, p 0,4 , p 0,6, p 0,7, p 0,11, p 0,13 since greater than the first threshold value The processing unit 13 determines that the 0th, 1st, 3rd, 4th, 6th, 7th, 11th, and 13th packets form one group. In this specific example, the processing unit 13 adopts the same method, individually determines the first threshold value of each of the remaining packets, and groups them individually. Accordingly, no further details are described herein.

前述のように、処理部13が、第1の閾値を1つのみ決定し、次に、単一の第1の閾値にしたがって、0番目から19番目のパケットの各々のグループを個々に決定する実施形態であってもよい。処理部13が、パケット10a、…、10bの特定の1または複数の(全部ではない)グループを個別に(たとえば10番目のパケットのみに)生成する実施形態であってもよい。処理部がグループを生成するために用いる第1の閾値は互いに同一であっても、異なっていてもよい。処理部13がこれらの実施形態を実行する方法は、当業者には前述の説明を再考することによって理解されるであろう。そのため、これ以上本明細書では記載しない。   As described above, the processing unit 13 determines only one first threshold value, and then individually determines each group of the 0th to 19th packets according to the single first threshold value. It may be an embodiment. An embodiment in which the processing unit 13 generates specific one or a plurality (not all) of the packets 10a,..., 10b individually (for example, only for the 10th packet) may be possible. The first threshold values used by the processing unit to generate a group may be the same as or different from each other. The manner in which the processing unit 13 performs these embodiments will be understood by those skilled in the art by reviewing the foregoing description. Therefore, it will not be described further in this specification.

パケット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 10a,..., 10b, the processing unit 13 determines the boundaries of the fields of the packets included in the at least one group. That is, the processing unit 13 may determine the field boundaries of the packet in one, a plurality, or all of at least one group. For easy understanding, a group processed by the processing unit 13 is called a specific group (not shown).
Packets included in a particular group define a plurality of bit positions. Specifically, the processing unit 13 aligns the packet with respect to the most significant bit (that is, assigns the bit from the most significant bit to the bit in each packet). Bit positions are defined by the aligned packets. For example, all the most significant bits of the packet correspond to the 0th bit position, and so on. Next, the processing unit 13 calculates the degree of fluctuation of the bit corresponding to each bit position, and uses at least one bit position whose degree of fluctuation is smaller than the second threshold as at least one field boundary of a specific group. select. The main concern with field positions being bit positions that correspond to a small degree of variation is that the more significant bits within the field usually have a smaller degree of variation.
An embodiment in which the processing unit 13 calculates an average value of the degree of fluctuation and uses the average value as a second threshold value may be possible. In the embodiment, the processing unit 13 may calculate an average value of the degree of variation, and multiply the average value by a value from 0 to 1 to obtain the second threshold value.

たとえば、処理部13は、各ビット位置に対応するビットの変動の程度を、以下の方程式(1)および方程式(2)にしたがって算出してもよい。方程式(1)および方程式(2)は本発明の範囲を限定することを意図するものではないことを理解されたい。   For example, the processing unit 13 may calculate the degree of fluctuation of the bit corresponding to each bit position according to the following equations (1) and (2). It should be understood that equations (1) and (2) are not intended to limit the scope of the present invention.

Figure 2018133774

(1)
Figure 2018133774

(1)

Figure 2018133774
(2)
Figure 2018133774
(2)

前述の方程式(1)および方程式(2)では、パラメータMは特定のグループのパケットの数を表し、パラメータcijはビット位置jにおけるi番目のパケットのビット値を表し、cij∈{0,1}、E[C]はビット位置jでのビットの平均値を表し、Var[C]はビット位置jでのビットの分散を表す。この特定の例では、処理部13は分散Var[C]をビット位置jのビットの変動の程度とし適応する。この特定の例では、処理部13は、すべてのビット位置の分散Var[C]を得た後に、分散Var[C]が第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 processing unit 13 adapts the variance Var [C j ] as the degree of variation of the bit at bit position j. In this specific example, after obtaining the variance Var [C j ] of all the bit positions, the processing unit 13 sets a bit position where the variance Var [C j ] is smaller than the second threshold as at least one field boundary. You may choose.

パケット解析装置1がさらに、少なくとも1つのグループの各ビット位置の特性をユーザの参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。つまり、処理部13は、少なくとも1つのグループのうちの1つ、複数、またはすべての各ビット位置の特性を解析してもよい。ここで、前述の特定のグループを例にとって、さらに説明する。特定のグループの各ビット位置では、処理部13は、少なくとも1つのビット値確率をビット位置に対応するビットにしたがって算出してもよい。たとえば、処理部13はビット値が1であるビット値確率を以下の方程式(3)にしたがって算出してもよく、ビット値が0であるビット値確率を以下の方程式(4)にしたがって算出してもよい。   The packet analysis device 1 may further be an embodiment that analyzes the characteristics of each bit position of at least one group for user reference (for example, for reference when formulating a fuzz test policy). That is, the processing unit 13 may analyze the characteristics of one, plural, or all of the bit positions in at least one group. Here, the specific group described above will be further described as an example. At each bit position of the specific group, the processing unit 13 may calculate at least one bit value probability according to the bit corresponding to the bit position. For example, the processing unit 13 may calculate the bit value probability that the bit value is 1 according to the following equation (3), and calculate the bit value probability that the bit value is 0 according to the following equation (4). May be.

Figure 2018133774

(3)
Figure 2018133774

(3)

Figure 2018133774
Figure 2018133774

方程式(3)および方程式(4)では、パラメータMは特定のグループのパケットの数を表し、パラメータcijはビット位置jにおけるi番目のパケットのビット値を表し、cij∈{0,1}、P(C=1)はビット値が1のビット値確率を表し、P(C=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 processing unit 13 may use a result obtained by subtracting each of at least one bit value probability from 0.5 as a bit value bias degree. For example, the processing unit 13 may calculate a bit value bias degree with a bit value of 0 according to the following equation (5), and a bit value bias degree with a bit value of 1 according to the following equation (6). It may be calculated.

Figure 2018133774
Figure 2018133774

Figure 2018133774
Figure 2018133774

方程式(5)および方程式(6)では、P(C=0)はビット値が0のビット値確率を表し、P(C=1)はビット値が1のビット値確率を表し、β(C[0])はビット値が0のビット値バイアス度を表し、β(C[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 processing unit 13 analyzes the bit value bias degrees of all the bit positions, recalculates the cross-correlation values of the packets 10a,..., 10b according to the analysis result, and reproduces the group It may be an embodiment. Specifically, the processing unit 13 determines that the specific region of the bit position has a characteristic that the absolute values of the bit value bias degrees having the bit value of 1 are all smaller than the threshold value. This means that the header and payload boundaries are likely to fall within a particular area. Therefore, the processing unit 13 updates the cross-correlation value calculation length according to this specific area. After updating the cross-correlation value calculation length, the processing unit 13 again determines the sequence of the packets 10a,. Calculate and generate the group again. Those skilled in the art will understand from the foregoing description how the processing unit 13 calculates the cross-correlation of the packets 10a,..., 10b according to the updated cross-correlation value calculation length and generates the group again. Therefore, it will not be described further in this specification.

相互相関値計算長の更新を理解しやすいように、図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 processing unit 13 has a specific area (that is, from the 275th bit position to the 325th bit position), the absolute value of the bit value bias degree having a bit value of 1 is smaller than the threshold value. judge. Therefore, the processing unit 13 sets [275/8] × 8 = 272 as the cross-correlation value calculation length at the next stage of the cross-correlation value calculation and grouping.

パケット解析装置1がさらに、少なくとも1つのグループに対して、グループに含まれるパケットが、長さ表示フィールド(つまり、パケットのペイロードの長さを示すフィールド)を有するかをユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)判定する実施形態であってもよい。つまり、少なくとも1つのグループのうちの1つ、複数、またはすべてに対して、処理部13は、グループに含まれるパケットが長さ表示フィールドを有するかどうかを判定してもよい。理解しやすいように、処理部13が処理するグループを特定のグループ(不図示)と呼ぶ。特定のグループに含まれるパケットは複数のバイト位置を画成し、特定のグループに含まれる各パケットはパケット長を有する。   The packet analysis device 1 further determines, for at least one group, whether a packet included in the group has a length display field (that is, a field indicating the length of the payload of the packet) for user reference (for example, It may be an embodiment that determines (for reference when developing a fuzz testing policy). That is, for one, a plurality, or all of at least one group, the processing unit 13 may determine whether or not a packet included in the group has a length display field. For easy understanding, a group processed by the processing unit 13 is called a specific group (not shown). Packets included in a specific group define a plurality of byte positions, and each packet included in the specific group has a packet length.

具体的には、処理部13は、バイト数およびバイト位置内の特定のバイト位置にしたがって特定のフィールドを決定し、次に、特定のフィールドが長さ表示フィールドであるかを判定する。バイト数は(存在する場合は)長さ表示フィールドが占めるバイトの数を表す。バイト数は予め設定した値でもよく、またはユーザが入力インターフェース(不図示)から入力してもよい。
処理部13は、以下の演算を特定のグループに含まれる各パケットに実施する。(a)特定のフィールドのパケットのビットにしたがって評価長を算出し、(b)評価長と、特定のバイト位置を表す値と、バイト数とをパケットのパケット長から引いて差分値を得る。パケットでは、差分値が予め設定した範囲より小さい場合、特定のフィールドはパケットにおけるパケット長表示フィールドである可能性が高いことを意味する。前述の演算(a)および(b)を特定のグループのすべてのパケットに実施後に、処理部13は、予め設定した範囲より小さい差分値の数を算出し、数が第3の閾値より大きいかどうかを判定する。数が第3の閾値より大きい場合、処理部13は特定のフィールドを特定のグループのパケットにおけるパケット長表示フィールドと考える。処理部13がさらに、長さ表示フィールドの判定結果の精度を算出する実施形態であってもよい。具体的には、処理部13は、予め設定した範囲より小さい差分値の数を特定のグループのパケット数で割ることによって精度を得てもよい。
Specifically, the processing unit 13 determines a specific field according to the number of bytes and a specific byte position in the byte position, and then determines whether the specific field is a length display field. The number of bytes represents the number of bytes occupied by the length display field (if any). The number of bytes may be a preset value or may be input by a user from an input interface (not shown).
The processing unit 13 performs the following calculation on each packet included in the specific group. (A) The evaluation length is calculated according to the bit of the packet in the specific field, and (b) a difference value is obtained by subtracting the evaluation length, a value representing a specific byte position, and the number of bytes from the packet length of the packet. In a packet, if the difference value is smaller than a preset range, it means that there is a high possibility that the specific field is a packet length display field in the packet. After performing the above operations (a) and (b) for all packets of a specific group, the processing unit 13 calculates the number of difference values smaller than a preset range, and whether the number is larger than the third threshold value. Determine if. When the number is larger than the third threshold, the processing unit 13 considers the specific field as a packet length display field in a specific group of packets. The processing unit 13 may further calculate the accuracy of the determination result of the length display field. Specifically, the processing unit 13 may obtain accuracy by dividing the number of difference values smaller than a preset range by the number of packets in a specific group.

理解しやすいように、図1Dを例にとって説明する。特定のグループが複数のパケットを含み、パケット10a、10bは特定のグループのパケットのうち2つであると想定する。
図1Dに示すように、パケット10a、10bに含まれるビットは16進表記で表され、およびパケット10a、10bのパケット長はそれぞれ46バイトおよび38バイトである。図1Dに示す特定の例では、バイト数(つまり、長さ表示フィールド(存在する場合は)が占めるバイト数)は2バイトであり、特定のバイト位置は(0番目のバイトから算出した)16番目のバイトである。処理部13は、パケット10a、10bそれぞれの特定のフィールド12a、12bを、バイト数および特定のバイト位置にしたがって決定する。パケット10aでは、処理部13は評価長(つまり、16×1+16×15=31)を特定のフィールド12aのパケット10aのビットにしたがって算出し、次に、評価長と、特定のバイト位置を表す数値と、バイト数とをパケット長から引いて、差分値(つまり、46−31−17−2=−4)を得る。
パケット10bでは、処理部13は評価長(つまり、16×1+16×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 packets 10a and 10b are two of the packets of the specific group.
As shown in FIG. 1D, the bits included in the packets 10a and 10b are expressed in hexadecimal notation, and the packet lengths of the packets 10a and 10b are 46 bytes and 38 bytes, respectively. In the specific example shown in FIG. 1D, the number of bytes (ie, the number of bytes occupied by the length display field (if any)) is 2 bytes, and the specific byte position is 16 (calculated from the 0th byte). Is the second byte. The processing unit 13 determines the specific fields 12a and 12b of the packets 10a and 10b according to the number of bytes and the specific byte position. In the packet 10a, the processing unit 13 calculates the evaluation length (that is, 16 1 × 1 + 16 0 × 15 = 31) according to the bit of the packet 10a in the specific field 12a, and then calculates the evaluation length and the specific byte position. The numerical value to be represented and the number of bytes are subtracted from the packet length to obtain a difference value (that is, 46-31-17-2 = -4).
In the packet 10b, the processing unit 13 calculates the evaluation length (that is, 16 1 × 1 + 16 0 × 7 = 23) according to the bits of the packet 10b of the specific field 12b, and then a numerical value indicating a specific byte position, The number of bytes is subtracted from the packet length to obtain a difference value (ie, 38-23-17-2 = -4). Similarly, the processing unit 13 calculates an evaluation length of another packet, and then calculates a difference value. After processing all the packets included in the specific group, the processing unit 13 calculates the number (or ratio) of difference values smaller than a preset range (for example, −5 to +5), and then calculates the number (or It is determined whether the ratio is greater than the third threshold. When the number (or ratio) is larger than the third threshold, the processing unit 13 regards the specific field as the packet length display field of the packet in this packet group.

前述のバイト数、特定のバイト位置、および特定のフィールドをさらに説明する。一定の特定のグループの特定のフィールドを探すために、処理部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 processing unit 13 may test the 0th byte position (that is, the 0th byte position is a specific byte position, The field is determined according to the specific byte position and number of bytes, and then the above calculations and determinations are performed). Next, the first byte position is tested.
In these embodiments, since the processing unit 13 sets a plurality of various byte positions as the specific byte positions to be tested, a plurality of byte positions corresponding to the number (or ratio) of packets whose difference value is greater than the third threshold value are included. It is possible. When this situation occurs, the processing unit 13 selects a specific field that maximizes the number (or ratio) of packets whose difference value is larger than the third threshold as the packet length display field of the packet in this packet group. Also good. Furthermore, an embodiment in which the processing unit 13 sets the number of bytes to a plurality of various values and performs the above-described calculation and determination using the same method for each of the various values may be used. Details of are not described.

前述のように、処理部13が特定グループ長表示フィールドを判定後、処理部13はさらに、長さ表示フィールドの判定結果の精度を算出してもよい。精度が高いということは、処理部13によるパケット10a、…、10bのグループ分けが、より正確であることを意味する。したがって、処理部13が前述の演算を繰り返して、より正確な解析のグループ分けの結果を生成する実施形態であってもよい。   As described above, after the processing unit 13 determines the specific group length display field, the processing unit 13 may further calculate the accuracy of the determination result of the length display field. High accuracy means that the grouping of the packets 10a,..., 10b by the processing unit 13 is more accurate. Therefore, the embodiment may be such that the processing unit 13 repeats the above-described calculation to generate a more accurate analysis grouping result.

具体的には、処理部13が、特定のグループに含まれるパケットが長さ表示フィールドを有することを判定し、判定した長さ表示フィールドの精度を算出した後に、処理部13は相互相関値計算長を更新してもよく(たとえば、相互相関値計算長を増減してもよく)、パケット10a、…、10bの相互相関値を再度算出してもよく(たとえば、各パケット10a、…、10bの数列を相互相関値計算長にしたがって再度決定し、パケット10a、…、10bの相互相関値を数列にしたがって算出してもよく)、グループを再度生成してもよく、少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかを再度判定してもよく、長さ表示フィールドの判定結果の精度を再度算出してもよい(長さ表示フィールドがある場合)。
処理部13が更新された相互相関値計算長にしたがって前述の演算を繰り返す方法は、当業者には前述の説明によって理解されるであろう。そのため、詳細はここではさらに説明しない。処理部13は、精度が予め設定した条件(たとえば、閾値より高い)に到達するまで、または前述の演算が予め設定した回数だけ繰り返されるまで、前述の演算を繰り返してもよい。
Specifically, after the processing unit 13 determines that a packet included in a specific group has a length display field and calculates the accuracy of the determined length display field, the processing unit 13 calculates the cross-correlation value. The length may be updated (eg, the cross-correlation value calculation length may be increased or decreased), and the cross-correlation values of the packets 10a,..., 10b may be calculated again (eg, each packet 10a,..., 10b). The sequence may be re-determined according to the cross-correlation value calculation length, and the cross-correlation values of the packets 10a,..., 10b may be calculated according to the sequence). It may be determined again whether the packet has a length display field, and the accuracy of the determination result of the length display field may be calculated again (if there is a length display field) ).
A person skilled in the art will understand from the above description how the processing unit 13 repeats the above calculation according to the updated cross correlation value calculation length. Therefore, details are not further described here. The processing unit 13 may repeat the above-described calculation until the accuracy reaches a preset condition (for example, higher than a threshold) or until the above-described calculation is repeated a preset number of times.

パケット解析装置1がさらに、いずれかのパケットが周期的特性を有するかを、ユーザ参照用に(たとえば、ファズテストの方針を策定する際の参照用に)解析する実施形態であってもよい。理解しやすいように、処理部13が処理するパケットを特定のパケット(不図示)と呼び、ベクトル形で記載する。各ベクトルの大きさは最長の特定のパケットのビット長である。処理部13はこの特定のパケットの第1のベクトルを生成する。第1のベクトルは複数のビットを含む。処理部13は次に、第1のベクトルを複数の様々なシフトビット数で循環シフトすることによって、複数の第2のベクトルを生成する。処理部13はさらに、モジュロ2加算を第1のベクトルおよび第2の各ベクトルに行うことによって、複数の第3のベクトルを生成する。第3の各ベクトルは複数のビットを含む。
処理部13は、第3の各ベクトルに対して、値が1に等しいビットの累積数を算出する。その後、処理部13は、最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択する(つまり、この間隔で離間するビットは同じビット値を有する)。理解しやすいように、処理部13が実施するモジュロ2加算は以下の方程式(7)で表される。
The packet analysis apparatus 1 may further be an embodiment that analyzes whether any packet has a periodic characteristic for user reference (for example, for reference when formulating a fuzz test policy). For easy understanding, a packet processed by the processing unit 13 is called a specific packet (not shown) and is described in a vector form. The magnitude of each vector is the bit length of the longest specific packet. The processing unit 13 generates a first vector of this specific packet. The first vector includes a plurality of bits. Next, the processing unit 13 generates a plurality of second vectors by cyclically shifting the first vector by a plurality of various shift bit numbers. The processing unit 13 further generates a plurality of third vectors by performing modulo-2 addition on the first vector and each second vector. Each third vector includes a plurality of bits.
The processing unit 13 calculates the cumulative number of bits having a value equal to 1 for each third vector. Thereafter, the processing unit 13 selects the number of shift bits corresponding to the minimum cumulative number as a periodic characteristic of a specific packet (that is, bits separated by this interval have the same bit value). For easy understanding, the modulo-2 addition performed by the processing unit 13 is expressed by the following equation (7).

Figure 2018133774
(7)
Figure 2018133774
(7)

前述の方程式(7)では、

Figure 2018133774
第1のベクトルを表し、
Figure 2018133774
第2のベクトルを表し、
Figure 2018133774
第3のベクトルを表す。処理部13は変数kを様々な値に設定することによって、様々な第2のベクトルを生成する。処理部13は、第3の各ベクトル(つまり、
Figure 2018133774
のハミング重みを算出する(つまり、第3のベクトルの値が1に等しいビットの累積数を算出する)。第3のベクトルのハミング重みが低いということは、第3のベクトルを算出するために用いる第1のベクトルおよび第2のベクトルの互いの類似度が大きいということを意味する。したがって、処理部13は最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択してもよい。より正確な周期的特性を得るために、対応する累積数が累積数のうち最小であると同時に、計数閾値よりも小さい場合にのみ、シフトビット数が特定のパケットの周期的特性として機能可能である実施形態であってもよい。 In equation (7) above,
Figure 2018133774
Represents the first vector,
Figure 2018133774
Represents a second vector,
Figure 2018133774
Represents a third vector. The processing unit 13 generates various second vectors by setting the variable k to various values. The processing unit 13 obtains a third vector (i.e.,
Figure 2018133774
(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 processing unit 13 may select the number of shift bits corresponding to the minimum cumulative number as the periodic characteristic of a specific packet. In order to obtain a more accurate periodic characteristic, the shift bit number can only function as a periodic characteristic of a particular packet only if the corresponding cumulative number is the smallest of the cumulative numbers and at the same time smaller than the counting threshold. There may be an embodiment.

前述の説明によれば、パケット解析装置1は、パケット10a、…、10b間の相関関係にしたがって少なくとも1つのグループを決定し、次に、少なくとも1つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザの参照用に(たとえば、ファズテストの方針を策定する際の参照用に)提供されてもよい。
パケット解析装置1はさらに、少なくとも1つのグループの各ビット位置の特性(たとえば、ビット値確率およびビット値バイアス度)を解析し、および/または少なくとも1つのグループに含まれるパケットが長さ表示フィールドを有するかどうかを判定する。さらに、パケット解析装置1はまた、パケットが周期的特性を有するかどうかを解析してもよい。これらの様々な情報はすべて、さらに解析するためにユーザに提供されてもよい。
According to the above description, the packet analysis device 1 determines at least one group according to the correlation between the packets 10a,..., 10b, and then determines the field boundaries of the packets included in the at least one group. . These fields may be provided for user reference (eg, for reference in developing a fuzz testing policy).
The packet analysis device 1 further analyzes the characteristics (eg, bit value probability and bit value bias degree) of each bit position of at least one group, and / or packets included in at least one group have a length display field. Determine if you have. Further, the packet analysis device 1 may also analyze whether the packet has periodic characteristics. All of these various information may be provided to the user for further analysis.

本発明の第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 packet analysis device 1 according to the first embodiment.

ステップ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 packet analysis device 1 of the first embodiment), the packet analysis method described in the second embodiment is executed. The non-transitory computer readable storage medium may be an electronic product, eg, read-only memory (ROM), flash memory, floppy disk, hard disk, compact disk (CD), mobile disk, magnetic tape, network accessible It may be a database or any other storage medium known to those skilled in the art and having the same function.

本願明細書において、第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 determination processing unit 13 is a length indicator field of a particular group, the processing unit 13 may further calculate the accuracy of the length indicator field of the determination result. High accuracy means that the grouping of the packets 10a,..., 10b by the processing unit 13 is more accurate. Therefore, the embodiment may be such that the processing unit 13 repeats the above-described calculation to generate a more accurate analysis grouping result.

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.
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項4に記載のパケット解析装置。   The packet analysis apparatus according to claim 4, wherein the cross-correlation value calculation length is a preset length. 前記少なくとも1つの第1の閾値の各々は、前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項1に記載のパケット解析装置。   The packet analysis apparatus according to claim 1, wherein each of the at least one first threshold is associated with a subset of each of the plurality of cross-correlation values. 前記処理部は、
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出することを特徴とする請求項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.
前記処理部は、さらに、前記ビット値確率を0.5から引いた結果をビット値バイアス度とすることを特徴とする請求項7に記載のパケット解析装置。   The packet analysis device according to claim 7, wherein the processing unit further sets a bit value bias degree as a result of subtracting the bit value probability from 0.5. 電子計算装置に適用されるパケット解析方法であって、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも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のベクトルを生成するステップと、
前記第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:
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項12に記載のパケット解析方法。   The packet analysis method according to claim 12, wherein the cross-correlation value calculation length is a preset length. 前記少なくとも1つの第1の閾値の各々は前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項9に記載のパケット解析方法。   The method of claim 9, wherein each of the at least one first threshold is associated with a subset of each of the plurality of cross-correlation values. 前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出するステップをさらに備えたことを特徴とする請求項9に記載のパケット解析方法。   The packet analysis method according to claim 9, further comprising: calculating a bit value probability for each of the plurality of bit positions according to the plurality of bits corresponding to the bit position. 前記ビット値確率を0.5から引いた結果をビット値バイアス度とするステップをさらに備えたことを特徴とする請求項15に記載のパケット解析方法。   The packet analysis method according to claim 15, further comprising a step of setting a bit value bias degree as a result of subtracting the bit value probability from 0.5. コンピュータプログラムを記憶した非一時的コンピュータ可読媒体であって、当該コンピュータプログラムは電子計算装置にロードされてパケット解析方法を実行し、
当該パケット解析方法は、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも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.
JP2017027997A 2017-02-17 2017-02-17 Packet analysis device, method and non-transitory computer readable medium therefor Expired - Fee Related JP6516781B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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