JP2021129203A - Communication analysis device, communication analysis program, and communication analysis method - Google Patents
Communication analysis device, communication analysis program, and communication analysis method Download PDFInfo
- Publication number
- JP2021129203A JP2021129203A JP2020022363A JP2020022363A JP2021129203A JP 2021129203 A JP2021129203 A JP 2021129203A JP 2020022363 A JP2020022363 A JP 2020022363A JP 2020022363 A JP2020022363 A JP 2020022363A JP 2021129203 A JP2021129203 A JP 2021129203A
- Authority
- JP
- Japan
- Prior art keywords
- flow
- code string
- character string
- label
- data
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
この発明は、通信解析装置、通信解析プログラム及び通信解析方法に関し、例えば、通信内容から異常及びその異常の種別を分析する処理に適用し得る。 The present invention relates to a communication analysis device, a communication analysis program, and a communication analysis method, and can be applied to, for example, a process of analyzing an abnormality and the type of the abnormality from the communication content.
一般に、通信障害を特定するには、通信のパケットダンプ等の詳細な情報を元にして、ベンダ拡張やプロトコルの実装揺らぎのような機種依存の知見を元にして、技術者の経験を頼りに解析することが多かった。一方で、昨今、AIなどの機械学習器を用いて、過去に発生した事象とのパターン認識による合致などによる技術革新が進んでいるが、機械学習では従来発生した事象のデータの網羅性が重要であることが知られている。 In general, to identify a communication failure, rely on the experience of engineers based on detailed information such as communication packet dumps and model-dependent knowledge such as vendor expansion and protocol implementation fluctuations. It was often analyzed. On the other hand, in recent years, technological innovations such as matching with events that have occurred in the past by pattern recognition using machine learning devices such as AI are progressing, but in machine learning, completeness of data of events that have occurred in the past is important. Is known to be.
ところで、ベンダ依存の実装ゆらぎに由来する手順が含まれるプロトコルでは、典型的な正常系シーケンスについては機械学習可能であるが、セッションを維持・確認する場合やエラーやWarning(警告)等を通知する場合に当該通知に応じたメッセージが適宜挿入されることがあり、予め機械学習することが困難である。また、実際の通信においてエラーが起きた際には、想定外の様々なパターンのシーケンスが発生するため、従来、正常系/異常系の全てのパターンのデータを収集して機械学習することが困難であるという課題があった。 By the way, in a protocol that includes a procedure derived from vendor-dependent implementation fluctuations, machine learning is possible for a typical normal sequence, but when maintaining / confirming a session or notifying an error or warning. In some cases, a message corresponding to the notification may be inserted as appropriate, and it is difficult to perform machine learning in advance. In addition, when an error occurs in actual communication, a sequence of various unexpected patterns occurs, so it is difficult to collect data of all patterns of normal system / abnormal system and perform machine learning in the past. There was a problem that it was.
例えば、TCP(Transport Control Protocol)のシーケンスでは、第1の端末から第2の端末へデータ転送が行われる場合、TCPのセッション生成成功の後、転送するデータの量に応じて、第1の端末からの「PSH+ACK」と第2の端末からの「ACK」のメッセージが繰り返される場合があり、これには回数に関する規定がない。また、TCPでは、Selective ACK(選択確認応答)等のように、正常系の通信における例外的な拡張手順も存在するため、正常系にもバリエーションが多い。さらに、TCPの通信では、パケットロス等のエラーにより突如RSTが発生したり、正常にデータ転送が終了したのにFINによる切断をしないなど、異常系のバリエーションは多々存在する。 For example, in the TCP (Transport Control Protocol) sequence, when data is transferred from the first terminal to the second terminal, after successful TCP session generation, the first terminal depends on the amount of data to be transferred. The message "PSH + ACK" from and "ACK" from the second terminal may be repeated, and there is no regulation regarding the number of times. Further, in TCP, since there is an exceptional extension procedure in the communication of the normal system such as Selective ACK (selection acknowledgment), there are many variations in the normal system. Further, in TCP communication, there are many variations of an abnormal system, such as sudden occurrence of RST due to an error such as packet loss, or disconnection by FIN even though data transfer is completed normally.
同様のことは別のプロトコルでも存在する。例えば、VoIPの呼制御のためのSIP(Session Initiation Protocol)を考えた場合も、TCPと同様に開始メッセージであるINVITEを受けた後に100Trying、180Ringing、200OKと続き、それに対してACKを返すような典型的なシーケンスがある。この場合においても、ベンダによっては、PRACKメッセージが不定期に挿入されるなどの揺らぎによって、正常なシーケンスを異常と判定してしまう場合などが発生しうる。 The same thing exists in other protocols. For example, when considering SIP (Session Initiation Protocol) for VoIP call control, 100 Triing, 180 Ring, 200 OK are continued after receiving INVITE, which is a start message, as in TCP, and ACK is returned for it. There is a typical sequence. Even in this case, depending on the vendor, the normal sequence may be determined to be abnormal due to fluctuations such as the PRACK message being inserted irregularly.
このような課題への従来技術として、例えば、特許文献1の記載技術が存在する。
As a conventional technique for solving such a problem, for example, there is a description technique of
特許文献1には、パケットのヘッダ情報に基づいて、通信が攻撃(スキャン)であるか通常動作かを判定する手法について記載されている。特許文献1では、主として統計的な値に関する閾値などを用いた判別手法が用いられているが、ネットワーク的な距離をIPアドレスのレーベンシュタイン距離を用いて判定するという特徴的な手法についても開示している。
ところで、特許文献1に記載された手法を、通信のフローにエラー(異常)が発生した際に、どのエラー種別なのか(エラー原因)を識別するために用いる場合を想定する。この場合、特許文献1に記載された手法では、一定時間におけるカウンター値の変化を元にパケット数を数えて、正常かどうかの判定のために、副次的な情報を用いている。したがって、特許文献1に記載された手法は、真のエラーか気にしなくても良いエラーかの判別には適用できるが、エラー種別を特定して対策するという用途には利用できないという課題が残る。
By the way, it is assumed that the method described in
従来技術を用いた場合、上記のような課題が存在しながらもエラー(異常)が発生したことを検出すること自体は可能であるが、実際の環境では、典型的な正常系シーケンスで処理が完結するのは稀であり、正常系異常系問わず多種多様な通信シーケンスのパターンが存在する。そのため、従来技術を用いたとしても、接続に不具合が出る場合等に、機械学習などを用いたパターン学習により原因究明をすることが困難であるという課題が依然として存在する。 When the conventional technology is used, it is possible to detect that an error (abnormality) has occurred in spite of the above-mentioned problems, but in an actual environment, processing is performed by a typical normal sequence. It is rarely completed, and there are a wide variety of communication sequence patterns regardless of whether they are normal or abnormal. Therefore, even if the conventional technique is used, there is still a problem that it is difficult to investigate the cause by pattern learning using machine learning or the like when a connection problem occurs.
以上のような問題に鑑みて、効率的且つ詳細に通信の異常を分析することができる通信解析装置、通信解析プログラム及び通信解析方法が望まれている。 In view of the above problems, a communication analysis device, a communication analysis program, and a communication analysis method capable of efficiently and in detail analyzing communication abnormalities are desired.
第1の本発明の通信解析装置は、(1)解析対象となるトラフィックのデータをフローごとに分割してフローデータを取得するとともに、フローデータに示された通信の各信号を、用いられたプロトコルに応じた符号に変換する符号化処理を行いフロー符号列を生成する符号化処理手段と、(2)前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与するラベル付与手段と、(3)前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行う出力手段とを有することを特徴とする。 In the first communication analysis device of the present invention, (1) the data of the traffic to be analyzed was divided for each flow to acquire the flow data, and each communication signal shown in the flow data was used. The coding processing means for generating a flow code string by performing the coding process for converting to a code according to the protocol, and (2) the flow code string or the code string based on the flow code string are similar from a plurality of teacher data. Labeling means for assigning a label corresponding to the object, and (3) an output means for outputting a predetermined output according to the label with respect to the flow code string or the code string based on the flow code string to which the label is attached. It is characterized by having and.
第2の本発明の通信解析プログラムは、コンピュータを、(1)解析対象となるトラフィックのデータをフローごとに分割してフローデータを取得するとともに、フローデータに示された通信の各信号を、用いられたプロトコルに応じた符号に変換する符号化処理を行いフロー符号列を生成する符号化処理手段と、(2)前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与するラベル付与手段と、(3)前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行う出力手段として機能させることを特徴とする。 The second communication analysis program of the present invention acquires flow data by dividing the data of the traffic to be analyzed into (1) for each flow, and obtains the flow data, and obtains each communication signal shown in the flow data. A plurality of teacher data for the coding processing means for generating a flow code string by performing the coding process for converting to a code according to the protocol used, and (2) the flow code string or the code string based on the flow code string. (3) For the flow code string or the code string based on the flow code string to which the label is attached, a predetermined output corresponding to the label is output. It is characterized in that it functions as an output means to be performed.
第3の本発明は、通信解析装置が行う通信解析方法において、(1)符号化処理手段、ラベル付与手段、及び出力手段を備え、(2)前記符号化処理手段は、解析対象となるトラフィックのデータをフローごとに分割してフローデータを取得するとともに、フローデータに示された通信の各信号を、用いられたプロトコルに応じた符号に変換する符号化処理を行いフロー符号列を生成し、(3)前記ラベル付与手段は、前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与し、(4)前記出力手段は、前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行うことを特徴とする。 A third aspect of the present invention is a communication analysis method performed by a communication analysis apparatus, which includes (1) a coding processing means, a labeling means, and an output means, and (2) the coding processing means is a traffic to be analyzed. Data is divided for each flow to acquire flow data, and each communication signal shown in the flow data is coded to be converted into a code according to the protocol used to generate a flow code string. , (3) The labeling means assigns a label corresponding to a plurality of teacher data to the flow code string or a code string based on the flow code string, and (4) the output means said. It is characterized in that a predetermined output corresponding to the label is performed on the flow code string or the code string based on the flow code string to which the label is attached.
本発明によれば、効率的且つ詳細に通信の異常を分析する通信解析装置、通信解析プログラム及び通信解析方法を提供することができる。 According to the present invention, it is possible to provide a communication analysis device, a communication analysis program, and a communication analysis method for efficiently and in detail analyzing communication abnormalities.
(A)第1の実施形態
以下、本発明による通信解析装置、通信解析プログラム及び通信解析方法の第1の実施形態を、図面を参照しながら詳述する。この実施形態では、本発明の通信解析装置、通信解析プログラム及び通信解析方法をエラー原因解析装置及びエラー原因解析プログラムに適用する例について説明する。
(A) First Embodiment Hereinafter, the first embodiment of the communication analysis device, the communication analysis program, and the communication analysis method according to the present invention will be described in detail with reference to the drawings. In this embodiment, an example in which the communication analyzer, the communication analysis program, and the communication analysis method of the present invention are applied to the error cause analysis device and the error cause analysis program will be described.
(A−1)第1の実施形態の構成
図1は、第1の実施形態に関係する装置の接続構成について示したブロック図である。なお、図1において括弧内の符号は後述する第2の実施形態において用いられる符号である。
(A-1) Configuration of First Embodiment FIG. 1 is a block diagram showing a connection configuration of devices related to the first embodiment. The reference numerals in parentheses in FIG. 1 are the reference numerals used in the second embodiment described later.
図2は、第1の実施形態に係るエラー原因解析装置10の接続構成の例について示した説明図である。
FIG. 2 is an explanatory diagram showing an example of a connection configuration of the error
エラー原因解析装置10は、ネットワークNの通信の状況を監視し、エラー(異常)の検知及び検知したエラーの原因解析を含む処理(以下、「通信解析処理」と呼ぶ)を行う装置である。
The error
第1の実施形態の例では、エラー原因解析装置10による解析対象のネットワークNには、少なくともPC端末20及びサーバ30が接続されているものとする。
In the example of the first embodiment, it is assumed that at least the
PC端末20は、例えば、ネットワークNに接続するユーザ(加入者)が利用する端末である。
The
サーバ30は、PC端末20と通信して所定のサービスを提供する装置である。サーバ30の構成については限定されないものであるが、例えば、PC端末20に対して種々のサービス(例えば、Webサービスやデータベースサービス等)を提供するサーバ(コンピュータ)等が該当する。
The
この実施形態では、説明を簡易とするために、エラー原因解析装置10は、PC端末20とサーバ30との間の通信について解析する例を説明するが、ネットワークNの構成やネットワークNに接続する端末やサーバの数や種類(機能)等の属性については限定されないものである。
In this embodiment, for the sake of simplicity, the error
次に、エラー原因解析装置10の内部構成について図1を用いて説明する。
Next, the internal configuration of the error
エラー原因解析装置10は、受信部11、プロトコル分析・文字列化処理部12、繰返し文字列削除部13、ラベル付与処理部14、原因出力部15、教師データ保持部16、及び繰返し文字列保持部17を有している。
The error
エラー原因解析装置10は、例えば、プロセッサ及びメモリを有するコンピュータに、プログラム(実施形態に係る通信解析プログラムを含む)をインストールすることにより実現するようにしてもよい。また、エラー原因解析装置10において、一部又は全部の処理をハードウェア(例えば、専用の半導体チップ等)により実現するようにしてもよい。
The error
受信部11は、ネットワークNを流れるトラフィックの各フローに関する情報(以下、「フローデータ」と呼ぶ)を取得する機能を担っている。この実施形態の例において、受信部11が取得するフローデータには、少なくともPC端末20とサーバ30との間を流れるトラフィックに関するフローデータが含まれるものとする。受信部11がフローデータを取得する構成については限定されないものであり種々の構成を適用することができる。例えば、PC端末20とサーバ30との間の経路上に配置された図示しないゲートウェイ装置(例えば、ルータやプロキシ等のネットワーク装置)からフローデータをオンラインでリアルタイムに収集するようにしてもよいし、上記の図示しないゲートウェイで取得されたフローデータをオフラインで取得(例えば、ストレージに記録されたデータを取得)するようにしてもよい。
The receiving
プロトコル分析・文字列化処理部12は、受信部11が受信したフローデータをフロー毎に分類し、フロー毎に該当するプロトコルを分析する。そして、プロトコル分析・文字列化処理部12は、各フローのフローデータから当該フローに含まれる通信のシーケンス(時系列ごとの信号(通信手順)の列)を、当該フローのプロトコルに対応する文字列(以下、この文字列を「フロー文字列」と呼ぶ)に変換する処理(以下、「文字列化処理」と呼ぶ)を行う。言い換えると、プロトコル分析・文字列化処理部12は、通信のシーケンスを構成する各信号(手順)を対応する文字に置換えてシーケンス全体を文字列化する処理を行う。プロトコル分析・文字列化処理部12が行う処理の詳細については後述する。なお、文字列化処理で用いられる文字の体系(コード体系)は限定しないものであるが、例えば、ASCIIコードやユニコード等のコードで記述可能な文字を適用するようにしてもよい。なお、本明細書において、「文字」の概念には、記号や数字等、種々の文字コード(例えば、ASCIIコード等)で記述可能なすべての文字が含まれるものとして説明する。
The protocol analysis / character
繰返し文字列削除部13は、繰返し文字列保持部17に登録されたデータに基づき、プロトコル分析・文字列化処理部12により文字列処理化されたフロー文字列から、繰返し発生(冗長的に発生;循環的に発生)する文字列(以下、「繰返し文字列」と呼ぶ)を削除する処理(以下、「繰返し文字列削除処理」と呼ぶ)を行う。さらに、繰返し文字列削除部13は、新規に表れた削除可能な文字列を繰返し文字列保持部17に供給して登録させるようにしてもよい。以下では、繰返し文字列削除部13が、削除処理したフロー文字列を「削除処理済フロー文字列」と呼ぶものとする。繰返し文字列削除部13の処理詳細については後述する。
The repeating character
繰返し文字列保持部17は、繰返し文字列削除処理で用いられる繰返し文字列のリスト(一覧)を保持して、繰返し文字列削除部13に提供する機能を担っている。繰返し文字列保持部17では、プロトコルごとに分類して繰返し文字列を管理するようにしてもよい。
The repeating character
ラベル付与処理部14は、各削除処理済フロー文字列について、教師データ保持部16の保持する教師用の文字列(以下、「教師用文字列」と呼ぶ)との類似度合を示すパラメータを計算する。ここでは、ラベル付与処理部14は、削除処理済フロー文字列と教師用文字列との類似度合を示すパラメータとして編集距離を計算する処理(以下、「編集距離計算処理」と呼ぶ)を行うものとする。編集距離とは、挿入・削除などの文字列編集を何回繰り返すと該当する文字列になるかを数値化したものであり、文章の盗用検知などにも利用される技術である。言い換えると、編集距離とは、1文字の挿入・削除・置換によって、一方の文字列をもう一方の文字列に変形するのに必要な手順の最小回数を示すパラメータである。すなわち、編集距離とは、元の文字列の並びがあった場合に、挿入・削除などの文字列編集を何回繰り返すと該当する文字列になるかを数値化したものといえる。この実施形態の例では、編集距離として、レーベンシュタイン距離を用いるものとする。
The label
そして、ラベル付与処理部14は、編集距離が近く尤もらしい教師用文字列を選択し、当該教師用文字列に応じたラベルを当該削除処理済フロー文字列に付与する処理(以下、「ラベル付与処理」と呼ぶ)を行う。ここでは、ラベルとは、解析対象のプロトコルにおいて、文字列(削除処理済フロー文字列や教師用文字列)が示す通信の内容(例えば、正常/異常のいずれの通信となるかや、異常な通信の原因等)を表示するものであるものとする。
Then, the label
ラベル付与処理部14は、例えば、削除処理済フロー文字列と最も編集距離の少ない教師用文字列を選択するようにしてもよい。なお、削除処理済フロー文字列は、1つの削除処理済フロー文字列に対して複数の教師用文字列を選択し、選択した複数の教師用文字列のラベルを、当該削除処理済フロー文字列に付与するようにしてもよい。例えば、ラベル付与処理部14は、削除処理済フロー文字列と最も同じ編集距離の近い教師文字列が複数ある場合は、それらの教師文字列のラベルを全て選択するようにしてもよい。また、例えば、ラベル付与処理部14は、削除処理済フロー文字列と、編集距離が閾値以下の教師文字列を全て選択するようにしてもよい。ラベル付与処理部14の処理詳細については後述する。
For example, the
教師データ保持部16は、ラベル付与処理部14に供給する教師用文字列に、ラベル(正解に対応するラベル)が対応付けられたデータ(以下、「教師データ」と呼ぶ)が保持されている。教師データ保持部16に保持される教師データは、例えば、予めフローデータ等により取得された削除処理済フロー文字列と、当該削除処理済フロー文字列に対して人間(例えば、オペレータや設計者等)が付与した正解のデータを適用するようにしてもよい。教師データ保持部16では、プロトコルごとに分類して複数の教師データを保持するようにしてもよい。
The teacher
原因出力部15は、各削除処理済フロー文字列に付与されたラベルを参照し、参照したラベルに応じた出力処理を行う。例えば、原因出力部15は、各削除処理済フロー文字列について、付与されたラベルを付加して(対応付けて)出力するようにしてもよい。また、その際、原因出力部15は、各削除処理済フロー文字列に係るフローが発生した日時(タイムスタンプ)や、当該フローの送信元及び又は送信先のホスト(例えば、端末名やIPアドレス)や、当該フローのプロトコル等の情報を付加するようにしてもよい。原因出力部15の処理の詳細については後述する。
The
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のエラー原因解析装置10の動作を説明する。
(A-2) Operation of First Embodiment Next, the operation of the error
受信部11は、フローデータを受け取ると、当該フローデータをプロトコル分析・文字列化処理部12に供給する。
When the receiving
プロトコル分析・文字列化処理部12は、フローデータが供給されると、そのフローデータをフロー毎に分離(分類)し、フロー毎のプロトコルを判別する。プロトコル分析・文字列化処理部12がトラフィックのデータをフロー毎に分離する処理については、種々の分離手法(分類手法)を適用することができる。例えば、プロトコル分析・文字列化処理部12は、いわゆる5−tuples(送信元アドレスとポート、あて先アドレスとポート、及びプロトコル番号の組み合わせ)をキーとしてフローを分割するようにしてもよい。
When the flow data is supplied, the protocol analysis / character
そして、プロトコル分析・文字列化処理部12は、分類したフロー毎のフローデータについて、プロトコルを判別する。プロトコル分析・文字列化処理部12が各フローのプロトコルを判別する方法は限定されないものであり、種々の方法を適用することができる。プロトコル分析・文字列化処理部12は、例えば、フローデータから当該フローを構成するパケットのプロトコル番号やポート番号等に基づいてフロー毎のプロトコルを判別するようにしてもよい。
Then, the protocol analysis / character
そして、プロトコル分析・文字列化処理部12は、フロー毎のシーケンス(フローデータに含まれる通信のシーケンス)を構成する各信号(メッセージ)について、当該プロトコル内で、どのような意味を持つものであるかを分析し、フロー毎に判別したプロトコルに応じた文字に置換える文字列化処理を行う。
Then, the protocol analysis / character
ところで、TCPのパケットには、TCPヘッダの制御ビットにより、当該パケットの持つ意味(処理/機能)が示される。例えば、TCPヘッダの制御ビットには、緊急ポインタ・フィールドが有効であることを示す「URG」、確認応答番号フィールドが有効であることを示す「ACK」、バッファに蓄えたデータを出力(プッシュ)することを依頼する「PSH」、コネクションのリセットを要求する「RST」、シーケンス番号の同期を依頼する「SYN」、送信終了を示す「FIN」のそれぞれに対応するフラグ(ビット)が設けられている。TCPパケットでは上述のようなTCPヘッダの制御ビットの組み合わせにより、当該パケットの持つ意味(処理内容や機能)が示される。以下では、各TCPパケットにセットされたフラグに応じた名称(メッセージ)で示すものとする。例えば、SYNのフラグがセット(1に設定)されたTCPパケットを「SYN」となる。 By the way, in a TCP packet, the meaning (processing / function) of the packet is indicated by the control bit of the TCP header. For example, for the control bit of the TCP header, "URG" indicating that the emergency pointer field is valid, "ACK" indicating that the acknowledgment number field is valid, and the data stored in the buffer are output (pushed). Flags (bits) corresponding to each of "PSH" requesting the operation, "RST" requesting the reset of the connection, "SYN" requesting the synchronization of the sequence number, and "FIN" indicating the end of transmission are provided. There is. In a TCP packet, the meaning (processing content and function) of the packet is indicated by the combination of the control bits of the TCP header as described above. In the following, it is assumed that the name (message) corresponding to the flag set in each TCP packet is used. For example, a TCP packet in which the SYN flag is set (set to 1) becomes "SYN".
言い換えると、プロトコル分析・文字列化処理部12は、TCPのプロトコルのフロー(シーケンス)について分析する場合、セッションの開始(SYN)なのか、応答(ACK)なのか、データ送出(PSH)なのかという情報にマッピングする。さらに、プロトコル分析・文字列化処理部12は、文字列化処理として、意味合い毎に1文字ずつの置換え文字を定義(辞書により定義)して、時系列的に発生する通信(シーケンス)の文字列化を行う。すなわち、プロトコル分析・文字列化処理部12は、文字列化処理として、通信のフローを元に意味のある文字列の並びに変換する。
In other words, when the protocol analysis /
次に、例として、あるフローについて判別したプロトコルがTCPであった場合における文字列化処理の具体例について図3〜図5を用いて説明する。 Next, as an example, a specific example of the character string conversion process when the protocol determined for a certain flow is TCP will be described with reference to FIGS. 3 to 5.
ここでは、プロトコル分析・文字列化処理部12には、文字列化処理対象のプロトコルについて、元の信号(メッセージ)の名称(種類)ごとに置換える文字(以下、単に「置換え文字」とも呼ぶ)を定義した情報(以下、「置換文字定義情報」と呼ぶ)が保持されているものとする。
Here, in the protocol analysis / character string
図3は、TCPに関する置換文字定義情報の例について示した図である。 FIG. 3 is a diagram showing an example of substitution character definition information regarding TCP.
図3に示すように、置換文字定義情報には元の信号(メッセージ)の名称(種類)ごとに置換え文字が定義(記述)されている。具体的には、図3に示すTCPの置換文字定義情報では、「SYN」に対して「S」、「SYN+ACK」に対して「T」、「ACK」に対して「A」、「PSH+ACK」に対して「P」、「FIN」に対して「F」、「RST」に対して「R」、「URG」に対して「U」・・・が、それぞれ置換え文字として定義されているものとする。 As shown in FIG. 3, the replacement character definition information defines (describes) a replacement character for each name (type) of the original signal (message). Specifically, in the TCP replacement character definition information shown in FIG. 3, "S" is used for "SYN", "T" is used for "SYN + ACK", "A" is used for "ACK", and "PSH + ACK" is used for "ACK". "P" for "P", "F" for "FIN", "R" for "RST", "U" for "URG", and so on are defined as replacement characters. And.
図4は、PC端末20とサーバ30との間のTCPのシーケンスで送受信される一連のパケットについて示したシーケンス図である。図4に示すように、当該フローでは、PC端末20とサーバ30との間で、TCPパケットP101〜P105、・・・P201〜P204が流れている。図4に示すように、P101〜P105のTCPパケットは、それぞれ「SYN」、「SYN+ACK」、「ACK」、「PSH+ACK」、「ACK」のメッセージを示している。また、図4に示すように、P201〜P204のTCPパケットは、それぞれ「FIN」、「ACK」、「FIN」、「ACK」のメッセージを示している。
FIG. 4 is a sequence diagram showing a series of packets transmitted / received in a TCP sequence between the
図5は、図4のシーケンスで示されるフローについて、図3に示す置換文字定義情報に基づいて文字列化処理する過程について示した図である。 FIG. 5 is a diagram showing a process of character stringizing the flow shown in the sequence of FIG. 4 based on the replacement character definition information shown in FIG.
図5(a)は、図4のシーケンスにおける各TCPパケットのメッセージを時系列順に並べたリストである。そして、図5(b)は、図5(a)に示すメッセージのリストを文字列化処理したフロー文字列を示している。 FIG. 5A is a list in which the messages of each TCP packet in the sequence of FIG. 4 are arranged in chronological order. Then, FIG. 5B shows a flow character string obtained by converting the list of messages shown in FIG. 5A into a character string.
図5(b)に示すように、TCPパケットP101〜P105、・・・P201〜P204を文字列化すると、「STAPA・・・FAFA」となる。 As shown in FIG. 5B, when the TCP packets P101 to P105, ... P201 to P204 are converted into character strings, it becomes "STAPA ... FAFA".
次に、例として判別したプロトコルがSIPであった場合における文字列化処理の具体例について図6〜図8を用いて説明する。 Next, a specific example of the character string conversion process when the protocol determined as an example is SIP will be described with reference to FIGS. 6 to 8.
通常、SIPのメッセージが設定されるパケットには、UDP(User Datagram Protocol)の所定のポート番号(標準では5060)が設定されている。例えば、プロトコル分析・文字列化処理部12では、予めネットワークN上で用いられるSIP用のポート番号が登録されていれば、SIPのフローを判別することができる。また、プロトコル分析・文字列化処理部12は、SIPのメッセージのヘッダ部分を参照してメッセージの種類(名称)を認識するようにしてもよい。
Normally, a predetermined port number (standard: 5060) of UDP (User Datagram Protocol) is set in the packet in which the SIP message is set. For example, in the protocol analysis / character
図6は、SIPに関する置換文字定義情報の例について示した図である。 FIG. 6 is a diagram showing an example of substitution character definition information regarding SIP.
図6に示すように、置換文字定義情報には元のメッセージの種類(名称)ごとに置換え文字が定義(記述)されている。図6に示すSIPの置換文字定義情報では、「INVITE」に対して「I」、「BYE」に対して「B」、「ACK」に対して「A」、「PRACK」に対して「P」、「CANCEL」に対して「C」、「INFO」に対して「J」、「MESSAGE」に対して「M」、「REGISTER」に対して「E」、「100 Trying」に対して「T」、「180 Ringing」に対して「R」、「200 OK」に対して「O」、・・・が、それぞれ置換え文字として定義されている。 As shown in FIG. 6, replacement characters are defined (description) for each type (name) of the original message in the replacement character definition information. In the SIP replacement character definition information shown in FIG. 6, "I" is used for "INVITE", "B" is used for "BYE", "A" is used for "ACK", and "P" is used for "PRACK". , "C" for "CANCEL", "J" for "INFO", "M" for "MESSAGE", "E" for "REGISTER", "100 Trying" for "100 Trying" "R" for "T" and "180 Ringing", "O" for "200 OK", ... Are defined as replacement characters, respectively.
図7は、PC端末20とサーバ30との間で送受信される一連のSIPメッセージ(SIPのメッセージが設定されたパケット)の流れについて示したシーケンス図である。図7に示すように、当該シーケンスでは、PC端末20とサーバ30との間で、SIPメッセージのパケットP301〜P305、・・・P401、P402が流れている。図7に示すように、P301〜P305のパケット(SIPメッセージ)は、それぞれ「INVITE」、「100 Trying」、「180 Ringing」、「200 OK」、「ACK」のメッセージを示している。また、図7に示すように、P401、P402のパケット(SIPメッセージ)は、それぞれ「BYE」、「200 OK」のメッセージを示している。
FIG. 7 is a sequence diagram showing a flow of a series of SIP messages (packets in which SIP messages are set) transmitted and received between the
図8は、図7のシーケンスで示されるフローについて、図6に示す置換文字定義情報に基づいて文字列化処理する過程について示した図である。 FIG. 8 is a diagram showing a process of character stringizing the flow shown in the sequence of FIG. 7 based on the replacement character definition information shown in FIG.
図8(a)は、図7のシーケンスにおける各SIPメッセージを時系列順に並べたリストである。そして、図8(b)は、図8(a)に示すSIPメッセージのリストを文字列化処理したフロー文字列を示している。 FIG. 8A is a list in which each SIP message in the sequence of FIG. 7 is arranged in chronological order. Then, FIG. 8B shows a flow character string obtained by converting the list of SIP messages shown in FIG. 8A into a character string.
図8(b)に示すように、パケットP301〜P305、・・・P401、P402を文字列化すると、「ITROA・・・BO」となる。 As shown in FIG. 8B, when the packets P301 to P305, ... P401, and P402 are converted into character strings, they become "ITROA ... BO".
以上のように、プロトコル分析・文字列化処理部12は、分離した各フローについて通信のシーケンスを文字列化処理したフロー文字列を生成する。
As described above, the protocol analysis / character
次に、繰返し文字列削除部13は、フロー文字列から冗長な部分(繰返し文字列)を削除する処理(繰返し文字列削除処理)を行う。
Next, the repeating character
例えばTCPのシーケンスについて文字列化処理した場合、通信すべきデータ量に応じてPSH+ACK(データの送信)とACK(データ受信応答)を任意の回数繰り返すなどの伝送するコンテンツ(データ)の量等に依存する冗長な文字列が含まれる場合がある。他にも、SIPのシーケンスについて文字列化処理した場合、通信フローを安定化されるため等の要因でPRACK(暫定応答確認)を適宜挿入して通信することがあり、このPRACKにより発生する文字列が冗長となる場合がある。繰返し文字列削除部13は、フロー文字列からこのような冗長な文字列を「繰返し文字列」として削除する処理を行う。
For example, when a TCP sequence is converted into a character string, the amount of content (data) to be transmitted, such as repeating PSH + ACK (data transmission) and ACK (data reception response) an arbitrary number of times according to the amount of data to be communicated, etc. May contain dependent redundant strings. In addition, when the SIP sequence is processed into a character string, PRACK (provisional response confirmation) may be inserted as appropriate for communication due to factors such as stabilizing the communication flow, and the characters generated by this PRACK may be inserted. Columns may be redundant. The repeating character
上述の通り、繰返し文字列削除部13で繰返し文字列削除処理の際に参照される繰返し文字列は、繰返し文字列保持部17に保持(登録)されている。繰返し文字列保持部17に保持させる繰返し文字列は、例えば、予め人間(例えば、オペレータや設計者)が作成して設定したものでもよい。しかしながら、繰返し文字列のバリエーションは、増える可能性があるため、繰返し文字列削除部13が、供給されるフロー文字列から新規に出現した繰返し文字を検出して繰返し文字列保持部17に登録するようにしてもよい。
As described above, the repeated character string referred to in the repeated character string deletion process in the repeated character
繰返し文字列削除部13が、供給されるフロー文字列から新規の繰返し文字を検出する方法は限定されないものであるが、任意の列に出現する循環(繰返し)を検出する種々のアルゴリズムを用いることができる。例えば、繰返し文字列削除部13では、フロイドの循環検出法を用いるようにしてもよい。
The method by which the repeating character
図9は、繰返し文字列削除部13が入力されたフロー文字列について、繰返し文字の検出処理及び繰返し文字列削除処理を行う際の例について示した図である。
FIG. 9 is a diagram showing an example of performing a repeat character detection process and a repeat character string deletion process on a flow character string in which the repeat character
図9では、「ITRiAIiAaIiAaIiAaIiAaIiAaIiAaIiAiABb」、「ITSiAIiAIiAIiABb」、「ITRiAITiAITiABb」、「ITRiAJjJjJjJjBb」という4つのフロー文字列について、それぞれ繰返し文字の検出処理及び繰返し文字列削除処理を行う際の例について示している。 9.
ここでは、繰返し文字列削除部13は、フロイドの循環検出法を用いて、単純に複数回(2回以上)出現する文字列(循環)をすべて検出するものとする。そうすると、図9に示すように、繰返し文字列削除部13は、「ITRiAIiAaIiAaIiAaIiAaIiAaIiAaIiAiABb」、「ITSiAIiAIiAIiABb」、「ITRiAITiAITiABb」、「ITRiAJjJjJjJjBb」について、それぞれ「iAI」、「iAI」、「iAIT」、「Jj」という繰返し文字列を検出することになる。なお、このとき、繰返し文字列削除部13では、繰返し文字の検出にあたって、N回(Nは2以上の整数)以上出現する文字列(循環)のみを検出することや、M文字以上(Mは1以上の整数)の文字列(循環)のみを検出することや、J文字以下(循環)の文字列のみを検出すること等の制限を設定してもよい。なお、繰返し文字列削除部13では、複数の制限を同時に設定してもよい。また、繰返し文字列削除部13は、繰返し文字列をすべて削除せずに1つだけ残す(冗長部分のみ削除する)ようにしてもよい。繰り返し文字列削除部はフロイドの循環検出法に限定されない。
Here, it is assumed that the repeating character
図9に示すように、繰返し文字列削除部13は、「ITRiAIiAaIiAaIiAaIiAaIiAaIiAaIiAiABb」というフロー文字列が入力されると、当該フロー文字列から「iAI」という繰返し文字列をすべて削除し、「ITRiABb」という削除処理済フロー文字列を出力する。同様に、繰返し文字列削除部13は、「ITSiAIiAIiAIiABb」、「ITRiAITiAITiABb」、「ITRiAJjJjJjJjBb」についてもそれぞれ、「iAI」、「iAIT」、「Jj」という繰返し文字列を用いて繰返し文字列削除処理を行い、「ITSiABb」、「ITRiABb」、「ITRiABb」という削除処理済フロー文字列を出力することになる。
As shown in FIG. 9, when the flow character string "ITRiAIiAaIiAaIiAaIiAaIiAaIiAaIiAiABb" is input, the repeat character
以上のように、繰返し文字列削除部13は、各フロー文字列について繰返し文字列削除処理を行う。
As described above, the repetitive character
次に、ラベル付与処理部14は、削除処理済フロー文字列について、教師データ保持部16の保持する教師用文字列(教師用データ)との編集距離を計算し、編集距離が近く尤もらしい教師用文字列を選択して、当該教師用文字列のラベルを当該削除処理済フロー文字列に付与する。
Next, the
上述の通り、この実施形態の例において、ラベル付与処理部14は、削除処理済フロー文字列と教師用文字列(教師用データ)との編集距離についてレーベンシュタイン距離を適用するものとして説明する。
As described above, in the example of this embodiment, the
図10は、複数の教師用文字列(正解データ)と、入力された複数の削除処理済フロー文字列(サンプルデータ)との編集距離を示す表である。 FIG. 10 is a table showing the editing distance between the plurality of teacher character strings (correct answer data) and the plurality of input deleted flow processed flow character strings (sample data).
図10では、教師用文字列については列方向にラベル(図中では「疑似網ラベル」)で図示しており、削除処理済フロー文字列については行方向に実際の種別(図中では「実網ラベル」と図示)で図示している。 In FIG. 10, the teacher character string is shown by a label in the column direction (“pseudo-net label” in the figure), and the deleted flow character string is shown by the actual type in the row direction (“actual” in the figure). It is illustrated as "net label").
図10では、実網ラベル(削除処理済フロー文字列)として、SIPにおける「正常(eary dialog)」、「正常」、「Busyエラー」、「CANCEL」、「Message,200OK」が示されている。また、図10では、疑似網ラベル(教師用文字列)として、「0」、「1」、「2」、「3」、「4」、「51」、「52」、「6」、「7」、「81」、「82」、「83」が示されている。図10における疑似網ラベルのうち「0」のみが正常であることを示し、それ以外は異常(エラー)であることを示すものとする。なお「51」、「52」等、添え字(下付き文字)が付記されたラベルは、同じ原因であるが添え字に応じて教師用文字列のパターンが異なることを示しているものとする。なお、ラベルの表示形式は上記のような形式に限定されないものであり、各ラベルがユニークとなる形式であればよい。また、図10では、説明を簡易とするため、疑似網ラベルにおいて正常なものが「0」と1つのみになっているが複数設定(例えば、「01」、「02」、・・・と複数設定)しても良いことは当然である。 In FIG. 10, as the real network label (deleted flow character string), "normal (early dialog)", "normal", "Busy error", "CANCEL", and "Message, 200OK" in SIP are shown. .. Further, in FIG. 10, as a pseudo network labels (teacher character string), "0", "1", "2", "3", "4", "5 1", "5 2", "6" , "7", "8 1", "8 2" are shown "8 3". Of the pseudo-net labels in FIG. 10, only "0" indicates that it is normal, and the others indicate that it is abnormal (error). Note "5 1", "5 2", etc., labels subscript (subscript) is appended is intended the same cause of the pattern of the teacher string in response to but subscript shows different And. The label display format is not limited to the above format, and any format may be used as long as each label is unique. Further, in FIG. 10, in order to simplify the explanation, those normal in pseudo network label is in only one "0" MULTI (e.g., "0 1", "0 2", ...・ It is natural that multiple settings may be made.
図10の表において、判定が必要な各実網ラベルと各疑似網ラベルとの距離を俯瞰すると、比較的距離が近いと判断できるのは編集距離が4未満と推定できる。つまり、ラベル付与処理部14は、各削除処理済フロー文字列(実網ラベル)に対して、該当する可能性があるものとして編集距離を所定の閾値Th以下の疑似網ラベルを付与するように構成してもよい。図10の例では、上述の通り、Th=4とすることが妥当と推定可能である。閾値Thについては、例えば、予め繰返し文字列削除部13に設定しておくようにしてもよい。
In the table of FIG. 10, when the distance between each real net label and each pseudo net label that needs to be determined is overlooked, it can be estimated that the editing distance is less than 4 when it can be judged that the distance is relatively short. That is, the label assigning
例えば、図10の表の行(実網ラベル)を上から見ていくと、1番上の行の入力「正常(eary dialog)」では、最も編集距離が小さい値は2で正常のラベル(0)がついているものであり、その他の疑似網ラベルはすべて4より編集距離が大きい。また、上から2番の行の入力「正常」では、最も小さい編集距離の値は4であり正常ラベル(0)であり、その他の疑似網ラベルはすべて4より編集距離が大きい。さらに、上から3番目の入力「Busyエラー」は小さい距離として2と3が多数発生している。このような状態場合、これらの距離が小さいもののうち、いずれかのエラー(異常の疑似ラベル)と近いという可能性が複数見つかった状態であり、ラベル付けとしては、該当する可能性のあるものを複数付与するのが妥当である。次に、上から4番目の入力「CANCEL」では、最も小さい距離の値は2だけであるため、疑似網ラベル6のエラー(異常)と特定できる。
For example, looking at the row (real net label) of the table in FIG. 10 from above, in the input "normal (eary dialog)" of the top row, the value with the smallest editing distance is 2 and the label is normal (the label is normal. 0) is attached, and all other pseudo-net labels have a larger editing distance than 4. Further, in the input "normal" of the second line from the top, the value of the smallest edit distance is 4, which is the normal label (0), and all the other pseudo-net labels have a larger edit distance than 4. Further, the third input "Busy error" from the top has a large number of 2 and 3 as a small distance. In such a state, among those with a small distance, there are multiple possibilities that it is close to one of the errors (pseudo-label of abnormality), and the labeling is the one that may be applicable. It is appropriate to give more than one. Next, in the fourth input "CANCEL" from the top, since the value of the smallest distance is only 2, it can be identified as an error (abnormality) of the
最後に、上から5番目の入力「Message 200OK」では編集距離が近いもの(例えば、閾値TH=4以下のもの)が見つからず、現在教師データとして持っている疑似網ラベルのいずれにも近くないと判定できる。この場合、ラベル付与処理部14は、当該入力(5番目の入力「Message 200OK」)については、いずれの教師データのラベルも付与せずに原因出力部15に供給する。これにより、原因出力部15では、当該入力については、いずれの教師データにも該当しないため未知のエラーであるという旨の出力を行うことが可能となる。また、同様の処理として、削除済みフロー文字列の中で大きく意味合いの異なる可能性のある4番目の距離の編集については、編集距離を大きくする処理が可能である。
Finally, in the fifth input "Message 200OK" from the top, no edit distance is found (for example, threshold TH = 4 or less), and it is not close to any of the pseudo-net labels currently held as teacher data. Can be determined. In this case, the label
以上のように、ラベル付与処理部14では、実網ラベル(削除処理済フロー文字列)と各疑似網ラベル(教師用文字列)との編集距離の算出結果に応じて、実網ラベル(削除処理済フロー文字列)に疑似網ラベル(教師用文字列のラベル)を付与して、原因出力部15に供給する。
As described above, in the label assigning
そして、原因出力部15は、供給された削除処理済フロー文字列のラベルを参照し、そのラベルの内容に応じた出力処理を行う。例えば、異常(エラー)のラベルが付与された削除処理済フロー文字列が発生した場合、当該異常(エラー)を示す情報(例えば、ラベルに対応するコードや詳細を示す文字列)と、当該削除処理済フロー文字列に対応するフローを特定する情報(例えば、当該フローの送信元と送信先のIPアドレスやプロトコル名等)を出力(例えば、オペレータや通信障害対応者に対して情報提供するための出力)するようにしてもよい。原因出力部15が出力する際の形式については限定されないものであり、例えば、通信により出力(例えば、電子メール送信、所定のプロトコルに基づく電文送信や、チャットアプリケーションを用いたメッセージ送信等)するようにしてもよいし、図示しない表示装置に表示出力したり表音装置(スピーカ)から表音出力するようにしてもよい。
Then, the
(A−3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
(A-3) Effect of First Embodiment According to the first embodiment, the following effects can be obtained.
第1の実施形態のエラー原因解析装置10では、フローデータについて文字列化して、類似する教師用文字列のラベルを付与して出力するため、通信の異常(エラー)が発生した際の原因を特定した情報を自動的に出力することができる。これにより、第1の実施形態では、従来、通信サービス毎に利用するプロトコルが違い、さらにベンダや組み合わせによって無数にエラーのバリエーションがあったにも関わらず、熟練した人手によって通信障害の解析をしていたものが、自動化できるという効果が得られる。
In the error
また、第1の実施形態のエラー原因解析装置10では、編集距離が閾値以下の教師データのラベル(エラー)だけを付与する処理が可能である。これにより、第1の実施形態のエラー原因解析装置10では、似たエラーが存在する場合でもエラーの候補を出力することができ、未知のエラーが発生した場合(どの教師データとも距離が閾値異常の場合)には未知のエラーとして出力(類似する教師データが存在しない結果を出力)することができるので、人間による解析が本当に必要な部分のみに人手をかけることができる。すなわち、第1の実施形態のエラー原因解析装置10は、効率的な解析補助ツールとして利用することができる。
Further, in the error
さらに、第1の実施形態のエラー原因解析装置10では、フロー文字列から冗長的な繰返し文字を削除を削除したものを用いて評価を行うため、エラーの原因解析の精度向上に必要となる教師データのバリエーションの数を低減することができる。言い換えると、第1の実施形態のエラー原因解析装置10では、フロー文字列から冗長的な情報を削除して評価しているので、より少ない教師データで網羅性を担保することが可能となる。
Further, since the error
(B)第2の実施形態
以下、本発明による通信解析装置、通信解析プログラム及び通信解析方法の第2の実施形態を、図面を参照しながら詳述する。この実施形態では、本発明の通信解析装置、通信解析プログラム及び通信解析方法をエラー原因解析装置及びエラー原因解析プログラムに適用する例について説明する。
(B) Second Embodiment Hereinafter, a second embodiment of the communication analysis device, the communication analysis program, and the communication analysis method according to the present invention will be described in detail with reference to the drawings. In this embodiment, an example in which the communication analyzer, the communication analysis program, and the communication analysis method of the present invention are applied to the error cause analysis device and the error cause analysis program will be described.
(B−1)第2の実施形態の構成及び動作
第2の実施形態に関係する装置の接続構成についても図1を用いて示すことができる。なお、図1において括弧内の符号は後述する第2の実施形態において用いられる符号である。
(B-1) Configuration and operation of the second embodiment The connection configuration of the device related to the second embodiment can also be shown with reference to FIG. The reference numerals in parentheses in FIG. 1 are the reference numerals used in the second embodiment described later.
図1に示すように第2の実施形態では、エラー原因解析装置10がエラー原因解析装置10Aに置き換わっている点で第1の実施形態と異なっている。
As shown in FIG. 1, the second embodiment is different from the first embodiment in that the error
また、第2の実施形態のエラー原因解析装置10Aでは、ラベル付与処理部14と教師データ保持部16が、ラベル付与処理部14Aに置き換わっている点で第1の実施形態と異なっている。
Further, the error
第1の実施形態のラベル付与処理部14では、削除処理済フロー文字列との編集距離に応じた教師データ(教師用文字列)を選択し、選択した教師データのラベルを付与していた。これに対して、第2の実施形態のラベル付与処理部14Aでは、予め機械学習により学習した学習モデルを適用した識別器141を用いて、削除処理済フロー文字列に類似する教師データ(教師用文字列)を選択し、選択した教師データのラベルを付与する処理を行う。
The label
識別器141は、削除処理済フロー文字列を入力すると対応するラベル(疑似網ラベル)を識別して出力する手段である。識別器141は、予め設定された学習モデル(学習済みのパターン認識モデル)に基づき、入力された削除処理済フロー文字列が、どの教師用文字列に一番類似するかを自動的に判断する処理を行う。
The
識別器141は、例えば、予め図示しない学習器により、教師用文字列とラベル(正解データとなる疑似網ラベル)の組を含む教師データにより機械学習した結果得られる学習モデルを適用した識別手段である。上述の学習器に適用される教師用データは、例えば、第1の実施形態における教師データ保持部16に保持される教師データを適用することができる。なお、ラベル付与処理部14Aにおいて、機械学習により識別器141に適用する学習モデルを生成する学習器をさらに搭載するようにしてもよい。ラベル付与処理部14Aにおいて、学習モデルを生成する方式や学習モデルに基づいて識別処理を行う方式自体については、種々のAIのシステムを適用することができるので詳しい説明を省略する。
The
(B−2)第2の実施形態の効果
第2の実施形態によれば、第1の実施形態と比較して以下のような効果を奏することができる。
(B-2) Effect of Second Embodiment According to the second embodiment, the following effects can be obtained as compared with the first embodiment.
第2の実施形態のエラー原因解析装置10Aでは、第1の実施形態とは異なり、既知のいずれかのラベル(教師用データ)が1つ付与されるため、エラー原因が明らかであるため、対策に関して熟練した人手を介さずに対処が可能であるという効果を奏する。
In the error
(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(C) Other Embodiments The present invention is not limited to each of the above embodiments, and modified embodiments as illustrated below can also be mentioned.
(C−1)第1の実施形態において、ラベル付与処理部14は、レーベンシュタイン距離を計算しているが、レーベンシュタイン距離で計算される編集距離は重みがついていない為、意味の逆となる文字列との編集距離が短いという課題がある。例えば、通信の開始を示す文字を「S」、通信の終了を示す文字を「E」、処理の成功を示す文字を「O」、処理の失敗を示す文字を「X」とした際、「SOE」と「SXE」の編集距離は2であり、非常に近い距離に位置するが、意味合いは大きく変わってしまうことになる。
(C-1) In the first embodiment, the
そこで、ラベル付与処理部14において、教師用文字列との編集距離を計算する際に、文字列の持つ意味合いが変わるような編集(編集前後の文字が所定のパターンに該当する編集)については重みづけを大きくして最終的に算出される編集距離を大きくするようにしてもよい。
Therefore, when the label
例えば、ラベル付与処理部14において、予め重みづけを大きくする編集のパターンを登録しておくようにしてもよい。例えば、上述の図3〜図5のような形式のTCPのフロー文字列の場合、正常系を示すA(ACK)が、R(RST)やU(URG)に編集される場合には通常の5倍程度の重みの編集距離が発生するように設定してもよい。例えば、上述の図3〜図5のような形式のTCPのフロー文字列において「STAPA・・・FAFA」と「STAPA・・・FAFU」のように、末尾の1文字だけ異なる場合でも「A」が「U」に変わっているため他の文字の5文字分(通常の5倍)と大きな重みの編集距離が発生するようにしてもよい。
For example, the
また、一般的に、通信のシーケンスでは、「開始→処理1→処理2→・・・→終了」のように変化する為、最初と最後の定型処理と中盤の変化では位置づけが異なる。この場合、フロー文字列においても同様に、最初と最後の文字と、中盤の文字では意味合いが異なることになる。そのため、ラベル付与処理部14は、編集距離を計算する際に、フロー文字列において両端の文字(最初の文字と最後の文字)が編集される場合の重みを中盤の文字よりも重くするような設定(例えば、フロー文字列について先頭から2次曲線的に重みを変化させる設定)としてもよい。
Further, in general, in the communication sequence, the position changes as "start-> process 1-> process 2-> ...-> end", so that the position is different between the first and last routine processes and the change in the middle stage. In this case, similarly, in the flow character string, the meanings of the first and last characters and the characters in the middle stage are different. Therefore, when calculating the editing distance, the
以上のように、ラベル付与処理部14では、編集前後の文字のパターンや、編集される文字の位置に応じて、編集距離の重みを変動させるようにしてもよい。
As described above, the
(C−2)上記の各実施形態では、プロトコル分析・文字列化処理部12が、フロー(シーケンス)を文字列化する際に、アルファベット等の文字列に置換える例について説明したが、文字列に限らず数値・記号などを含む符号(以下、これらを総称して「符号列」と呼ぶ)への変換でも良く、処理しやすい符号を適宜選ぶことで、バリエーションが多いプロトコルにも適応するようにしてもよい。
(C-2) In each of the above embodiments, an example in which the protocol analysis / character
10…エラー原因解析装置、11…受信部、12…プロトコル分析・文字列化処理部、13…繰返し文字列削除部、14…ラベル付与処理部、15…原因出力部、16…教師データ保持部、17…繰返し文字列保持部。 10 ... Error cause analysis device, 11 ... Receiver unit, 12 ... Protocol analysis / string conversion processing unit, 13 ... Repeated character string deletion unit, 14 ... Labeling processing unit, 15 ... Cause output unit, 16 ... Teacher data holding unit , 17 ... Repeated character string holding unit.
Claims (9)
前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与するラベル付与手段と、
前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行う出力手段と
を有することを特徴とする通信解析装置。 The data of the traffic to be analyzed is divided for each flow to acquire the flow data, and each communication signal shown in the flow data is coded to be converted into a code according to the protocol used. Coding processing means for generating a code string and
Labeling means for assigning labels corresponding to similar ones from a plurality of teacher data with respect to the flow code string or a code string based on the flow code string.
A communication analysis apparatus comprising: an output means for outputting a predetermined output according to the label with respect to the flow code string or the code string based on the flow code string to which the label is attached.
前記ラベル付与手段は、前記繰返し削除済符号列について、複数の教師データから類似するものに対応したラベルを付与する
ことを特徴とする請求項1に記載の通信解析装置。 The coding processing means further includes a repeating code string deleting means that deletes a repeating code string that is repeated a plurality of times from the encoded flow code string to generate a repeatedly deleted code string.
The communication analysis device according to claim 1, wherein the label-imparting means assigns a label corresponding to a similar one from a plurality of teacher data to the repeatedly deleted code string.
解析対象となるトラフィックのデータをフローごとに分割してフローデータを取得するとともに、フローデータに示された通信の各信号を、用いられたプロトコルに応じた符号に変換する符号化処理を行いフロー符号列を生成する符号化処理手段と、
前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与するラベル付与手段と、
前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行う出力手段と
して機能させることを特徴とする通信解析プログラム。 Computer,
The data of the traffic to be analyzed is divided for each flow to acquire the flow data, and each communication signal shown in the flow data is coded to be converted into a code according to the protocol used. Coding processing means for generating a code string and
Labeling means for assigning labels corresponding to similar ones from a plurality of teacher data with respect to the flow code string or a code string based on the flow code string.
A communication analysis program characterized in that the flow code string to which the label is attached or a code string based on the flow code string is made to function as an output means for performing a predetermined output according to the label.
符号化処理手段、ラベル付与手段、及び出力手段を備え、
前記符号化処理手段は、解析対象となるトラフィックのデータをフローごとに分割してフローデータを取得するとともに、フローデータに示された通信の各信号を、用いられたプロトコルに応じた符号に変換する符号化処理を行いフロー符号列を生成し、
前記ラベル付与手段は、前記フロー符号列又は前記フロー符号列に基づく符号列について、複数の教師データから類似するものに対応したラベルを付与し、
前記出力手段は、前記ラベルが付与された、前記フロー符号列又は前記フロー符号列に基づく符号列について、前記ラベルに応じた所定の出力を行う
ことを特徴とする通信解析方法。 In the communication analysis method performed by the communication analysis device,
A coding processing means, a labeling means, and an output means are provided.
The coding processing means divides the data of the traffic to be analyzed for each flow to acquire the flow data, and converts each communication signal shown in the flow data into a code according to the protocol used. The flow code string is generated by performing the coding process to be performed.
The labeling means assigns a label corresponding to a similar one from a plurality of teacher data to the flow code string or a code string based on the flow code string.
The output means is a communication analysis method, characterized in that a predetermined output according to the label is performed on the flow code string or the code string based on the flow code string to which the label is attached.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020022363A JP2021129203A (en) | 2020-02-13 | 2020-02-13 | Communication analysis device, communication analysis program, and communication analysis method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020022363A JP2021129203A (en) | 2020-02-13 | 2020-02-13 | Communication analysis device, communication analysis program, and communication analysis method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021129203A true JP2021129203A (en) | 2021-09-02 |
Family
ID=77489027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020022363A Pending JP2021129203A (en) | 2020-02-13 | 2020-02-13 | Communication analysis device, communication analysis program, and communication analysis method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021129203A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112256A (en) * | 2023-02-08 | 2023-05-12 | 电子科技大学 | Data processing method for application encryption traffic identification |
-
2020
- 2020-02-13 JP JP2020022363A patent/JP2021129203A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112256A (en) * | 2023-02-08 | 2023-05-12 | 电子科技大学 | Data processing method for application encryption traffic identification |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597734B (en) | Fuzzy test case generation method suitable for industrial control private protocol | |
JP6055548B2 (en) | Apparatus, method, and network server for detecting data pattern in data stream | |
JP5462905B2 (en) | Protocol emulator | |
US10547523B2 (en) | Systems and methods for extracting media from network traffic having unknown protocols | |
EP0788267A2 (en) | User-extensible interactive network packet language | |
CN110635914B (en) | Weak password detection method | |
JP2008104027A (en) | Apparatus and program for collecting packet information | |
CN102123058A (en) | Test equipment and method for testing network protocol decoder | |
JP2009017298A (en) | Data analysis apparatus | |
AU2012200642A1 (en) | A method and apparatus for communications analysis | |
JP2021129203A (en) | Communication analysis device, communication analysis program, and communication analysis method | |
KR102069142B1 (en) | Apparatus and method for automatic extraction of accurate protocol specifications | |
CN115065623A (en) | Active and passive combined reverse analysis method for private industrial control protocol | |
EP1780946A1 (en) | Consensus testing of electronic system | |
CN108920377B (en) | Log playback test method, system and device and readable storage medium | |
US8429458B2 (en) | Method and apparatus for system analysis | |
WO2020240680A1 (en) | Failure estimation support device, failure estimation support method, and failure estimation support program | |
CN111177595B (en) | Method for extracting asset information by templating HTTP protocol | |
CN111818096B (en) | Network protocol analysis method and device | |
CN113835981A (en) | Log format adapting method, system, device and computer readable storage medium | |
JP2006190033A (en) | Information processing system and processing method for communication reproduction | |
CN115174414A (en) | Method, system and electronic device for automatically identifying devices and device paths in session | |
WO2021103589A1 (en) | Signaling analysis method and related apparatus | |
US20220129337A1 (en) | Training a Model for Use with a Software Installation Process | |
CN112348202B (en) | Method for establishing rule model in machine learning |