(57)【要約】【課題】フォーマットによらず、入力されたトンネルパケットを、解析ツールが解析可能であるフォーマットに変換できる。【解決手段】フォーマット変換装置１０は、パケットを解析する解析装置の前段に設けられたフォーマット変換装置であって、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットの入力を受け付けるパケット入力部１１と、予め作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別するプロトコルスタック判別部１２と、プロトコルスタックパターンを基にパケットのフォーマットを、解析装置の解析対象以外のプロトコルヘッダを除外したフォーマットに変換するパケットフォーマット変換部１３と、フォーマット変換後のパケットを解析装置に出力するパケット出力部１４とを有する。【選択図】図２
2019097069.tif 000002
【特許請求の範囲】
【請求項１】
パケットを解析する解析装置の前段に設けられたフォーマット変換装置であって、
トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットの入力を受け付ける入力部と、
予め作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する判別部と、
前記判別部によって判別されたプロトコルスタックパターンを基に、前記パケットのフォーマットを、前記解析装置の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する変換部と、
前記変換部がフォーマットを変換したパケットを前記解析装置に出力する出力部と、
を有することを特徴とするフォーマット変換装置。
【請求項２】
前記判別部は、プロトコルスタックパターンが既知のパケットを下位ヘッダから順次捜査して作成されたプロトコルスタックパターンを判別する判別木、プロトコルスタックパターンが既知のパケットの内部の特定bit列を基に作成されたプロトコルスタックパターンを判別する判別論理式、または、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルを用いて、入力されたパケットのプロトコルスタックパターンを判別することを特徴とする請求項１に記載のフォーマット変換装置。
【請求項３】
前記入力部によって入力されたパケットにおける各プロトコルヘッダのテキスト情報を、該パケットのプロトコルヘッダの配置情報に対応付けて記憶する記憶部と、
前記記憶部に対し、任意のプロトコルヘッダ情報を照合情報とし、前記プロトコルヘッダを含むパケットのプロトコルヘッダの配置情報を検索する検索部と、
をさらに有することを特徴とする請求項１または２に記載のフォーマット変換装置。
【請求項４】
パケットを解析する解析装置の前段に設けられたフォーマット変換装置であって、
トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットの入力を受け付ける入力部と、
入力されたパケットについてプロトコルconfigファイルを用いて学習し、パケットのプロトコルスタックパターンを判別する判別ルールを作成する学習部と、
前記学習部によって作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する第１の判別部と、
前記第１の判別部によって判別されたプロトコルスタックパターンを基に、前記パケットのフォーマットを、前記解析装置の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する変換部と、
前記変換部がフォーマットを変換したパケットを前記解析装置に出力する出力部と、
を有することを特徴とするフォーマット変換装置。
【請求項５】
前記学習部は、前記プロトコルconfigファイルを用いてパケットの下位ヘッダから順次捜査してプロトコルスタックパターンを解析し、解析結果を基にパケット内の特定bit列を基にプロトコルスタックパターンを判別する判別木または判別論理式を作成することを特徴とする請求項４に記載のフォーマット変換装置。
【請求項６】
前記学習部による学習前のパケットが入力された場合に、前記プロトコルconfigファイルを用いて該パケットの下位ヘッダから順次解析してプロトコルスタックパターンを判別する第２の判別部をさらに有することを特徴とする請求項４または５に記載のフォーマット変換装置。
【請求項７】
前記入力部によって入力されたパケットにおける各プロトコルヘッダのテキスト情報を、該パケットのプロトコルヘッダの配置情報に対応付けて記憶する記憶部と、
前記記憶部に対し、任意のプロトコルヘッダ情報を照合情報とし、前記プロトコルヘッダを含むパケットのプロトコルヘッダの配置情報を検索する検索部と、
をさらに有することを特徴とする請求項４〜６のいずれか一つに記載のフォーマット変換装置。
【請求項８】
コンピュータを、請求項１〜７のいずれか一つに記載のフォーマット変換装置として機能させるためのフォーマット変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォーマット変換装置及びフォーマット変換プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの普及に伴い、ＤＤｏＳ攻撃が急増している。このような攻撃に対する解析ツールとして、Mitigation装置やＩＤＳ(Intrusion  Detection  System)やＷＡＦ(Web  Application  Firewall)等の解析ツールが使用される。
【０００３】
この一般の解析ツールでは、パケット転送においてトンネリングを行っているネットワークに対し、トンネルプロトコルをサポートしていない場合があった。そこで、従来、トンネルプロトコルをサポートしていない解析ツールでもパケットを解析できるようにするために、パケットのトンネルプロトコルを検知してプロトコルヘッダ部分を削除し、パケットフォーマットを変換する技術が提案されている（例えば、非特許文献１，２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ixia，“Vision  ONE”，［平成２９年１０月２６日検索］，インターネット＜ＵＲＬ：https://www.ixiacom.com/ja/products/vision-one＞
【非特許文献２】Ixia，“Vision  ONE  DATA  SHEET”，［平成２９年１０月２６日検索］，インターネット＜ＵＲＬ：https://www.ixiacom.com/sites/default/files/2017-07/915-6691-01-V-DS-Vision-ONE.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図４８は、従来技術に係るフォーマット変換装置の処理を説明する図である。図４８に示すように、例えば、ネットワークからは、トンネリングのためにEtherヘッダ以降に任意のプロトコルヘッダがスタックされたパケットが入力される。そして、解析ツール２０Ｐの解析対象がインナーパケット（IPv4）Ｐａ，Ｐｂである場合には、インナーパケット（IPv4）以外のプロトコルヘッダが削除されたパケットを解析ツール２０Ｐに入力する必要がある。
【０００６】
しかしながら、従来技術に係るフォーマット変換装置１０Ｐは、変換可能なトンネルパケットが限定されていた（図４８の（１）参照）。具体的には、フォーマット変換装置１０Ｐでは、削除可能なプロトコルヘッダの種類が限定されていた。このため、フォーマット変換装置１０Ｐは、変換対象ではないパケットＣ１が入力されると、パケットＣ１のフォーマットを変換できずにそのまま解析ツール２０Ｐに出力していた。この場合、解析ツール２０Ｐでは、このパケットＣ１については、解析不能となっていた（図４８の（２）参照）。
【０００７】
また、従来技術に係るフォーマット変換装置１０Ｐは、多段でカプセル化されているパケットの場合は一段のみしかプロトコルヘッダが削除できなかった（図４８の（３）参照）。例えば、フォーマット変換装置１０Ｐは、多段のパケットＣ２が入力されると、プロトコルヘッダのうちカプセルヘッダ（MPLS）一段しか削除できなかった。この場合、解析ツール２０Ｐでは、フォーマット変換装置１０Ｐから出力されたパケットＣ２Ｐ´については、カプセルヘッダ（IPv6）が残存しているため、解析不能となる（図４８の（２）参照）。
【０００８】
このように、従来のフォーマット変換装置１０Ｐは、入力されたトンネルパケットによっては、解析ツール２０Ｐが解析可能であるフォーマットに変換することができない場合があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、フォーマットによらず、入力されたトンネルパケットを、解析ツールが解析可能であるフォーマットに変換することができるフォーマット変換装置及びフォーマット変換プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明に係るフォーマット変換装置は、パケットを解析する解析装置の前段に設けられたフォーマット変換装置であって、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットの入力を受け付ける入力部と、予め作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する判別部と、判別部によって判別されたプロトコルスタックパターンを基に、パケットのフォーマットを、解析装置の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する変換部と、変換部がフォーマットを変換したパケットを解析装置に出力する出力部と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、フォーマットによらず、入力されたトンネルパケットを、解析ツールが解析可能であるフォーマットに変換することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る通信システムの構成の一例を示す図である。
【図２】図２は、図１に示すフォーマット変換装置の構成の一例を示す図である。
【図３】図３は、図２に示すフォーマット変換装置の処理の流れを説明する図である。
【図４】図４は、判別木の構成を説明する図である。
【図５】図５は、図２に示すプロトコルスタック判別部の処理を説明する図である。
【図６】図６は、図２に示すパケットフォーマット変換部の処理を説明する図である。
【図７】図７は、図２に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図８】図８は、図２に示すフォーマット変換装置によるフォーマット変換後のパケットを具体的に説明する図である。
【図９】図９は、実施の形態２に係るフォーマット変換装置の構成の一例を示す図である。
【図１０】図１０は、図９に示すフォーマット変換装置の処理の流れを説明する図である。
【図１１】図１１は、判別論理式の構成を説明する図である。
【図１２】図１２は、図９に示すプロトコルスタック判別部の処理を説明する図である。
【図１３】図１３は、図９に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図１４】図１４は、実施の形態３に係るフォーマット変換装置の構成の一例を示す図である。
【図１５】図１５は、プロトコルconfigファイルの一例を示す図である。
【図１６】図１６は、プロトコルconfigファイルの一例を示す図である。
【図１７】図１７は、図１４に示すフォーマット変換装置の処理の流れを説明する図である。
【図１８】図１８は、図１４に示すプロトコルスタック判別部の処理を説明する図である。
【図１９】図１９は、図１４に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図２０】図２０は、実施の形態４に係るフォーマット変換装置の構成の一例を示す図である。
【図２１】図２１は、図２０に示す学習部の処理の流れ（学習時）を説明する図である。
【図２２】図２２は、図２０に示すフォーマット変換部の処理の流れ（変換時）を説明する図である。
【図２３】図２３は、図２０に示すプロトコルスタック解析部の処理を説明する図である。
【図２４】図２４は、図２０に示すパターン分布格納部の処理を説明する図である。
【図２５】図２５は、図２０に示す判別木作成部の処理を説明する図である。
【図２６】図２６は、図２０に示すプロトコルスタック判別部の処理を説明する図である。
【図２７】図２７は、図２０に示すフォーマット変換装置による学習処理の手順を示すフローチャートである。
【図２８】図２８は、図２０に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図２９】図２９は、実施の形態５に係るフォーマット変換装置の構成の一例を示す図である。
【図３０】図３０は、図２９に示す学習部の処理の流れを説明する図である。
【図３１】図３１は、図２９に示すフォーマット変換部の処理の流れを説明する図である。
【図３２】図３２は、図２９に示すプロトコルスタック解析部の処理を説明する図である。
【図３３】図３３は、図２９に示すパターン格納部の処理を説明する図である。
【図３４】図３４は、図２９に示す判別論理式作成部の処理を説明する図である。
【図３５】図３５は、図２９に示すプロトコルスタック判別部の処理を説明する図である。
【図３６】図３６は、図２９に示すフォーマット変換装置による学習処理の手順を示すフローチャートである。
【図３７】図３７は、図２９に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図３８】図３８は、実施の形態６に係るフォーマット変換装置の構成の一例を示す図である。
【図３９】図３９は、図３８に示すフォーマット変換部の処理の流れを説明する図である。
【図４０】図４０は、図３８に示すフォーマット変換装置によるフォーマット変換処理の手順を示すフローチャートである。
【図４１】図４１は、実施の形態７に係るフォーマット変換装置の構成の一例を示す図である。
【図４２】図４２は、図４１に示す対応付部の構成の一例を示す図である。
【図４３】図４３は、図４２に示すデータベース（ＤＢ）が保持するデータの一例を示す図である。
【図４４】図４４は、図４２に示す対応付部の処理の流れを説明する図である。
【図４５】図４５は、図４２に示す対応付部による情報の対応付け処理の処理手順を示すフローチャートである。
【図４６】図４６は、図４２に示す対応付部の対応付け機能を説明する図である。
【図４７】図４７は、プログラムが実行されることにより、フォーマット変換装置が実現されるコンピュータの一例を示す図である。
【図４８】図４８は、従来技術に係るフォーマット変換装置の処理を説明する図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１４】
［実施の形態１］
［通信システムの概要］
まず、図１を用いて、実施の形態１に係る通信システムの構成について説明する。図１は、実施の形態に係る通信システムの構成の一例を示す図である。
【００１５】
図１に示すように、通信システム１は、ネットワークＮと、解析装置２０との間に、フォーマット変換装置１０が設けられた構成を有する。
【００１６】
解析装置２０は、ＩＤＳ、ＷＡＦ等の攻撃に対する解析ツールを有する装置である。本実施の形態１では、解析装置２０は、トンネルプロトコルをサポートしていない解析ツールを有する場合を例に説明する。
【００１７】
フォーマット変換装置１０は、解析装置２０の前段に設けられる。フォーマット変換装置１０は、ネットワークＮを介して入力されたトンネルパケットを、フォーマットによらず、解析装置２０が解析可能であるフォーマットに変換する。そして、フォーマット変換装置１０は、変換後のパケットを解析装置２０に出力することで、トンネルプロトコルをサポートしていない解析装置２０でもパケットを解析できるようにしている。具体的には、フォーマット変換装置１０は、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットから、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する。
【００１８】
ネットワークＮは、例えば、有線又は無線のＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）及びＶＰＮ（Virtual  Private  Network）等の任意の種類のネットワークである。
【００１９】
［フォーマット変換装置の構成］
次に、フォーマット変換装置１０の構成について説明する。図２は、図１に示すフォーマット変換装置１０の構成の一例を示す図である。フォーマット変換装置１０は、図２に示すように、パケット入力部１１（入力部）、プロトコルスタック判別部１２（判別部）、パケットフォーマット変換部１３（変換部）及びパケット出力部１４（出力部）を有する。
【００２０】
なお、フォーマット変換装置１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。また、フォーマット変換装置１０は、ネットワークＮ等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースを有する。例えば、フォーマット変換装置１０は、ＮＩＣ（Network  Interface  Card）等を有し、ＬＡＮやインターネットなどの電気通信回線を介した他の装置との間の通信を行う。
【００２１】
パケット入力部１１は、ネットワークＮを介して送信されたパケットの入力を受付ける。これらのパケットは、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットである。言い換えると、これらのパケットは、Etherヘッダと、インナーパケットとの間に、任意のプロトコルヘッダが、任意にスタックされている。なお、本実施の形態１では、インナーパケットが解析装置２０の解析対象となる例について説明する。したがって、本フォーマット変換装置１０は、入力を受付けたパケットからEtherヘッダとインナーパケットとの間のプロトコルヘッダを除外したフォーマットに変換する。
【００２２】
プロトコルスタック判別部１２は、予め作成された判別ルールにしたがって、入力されたパケットの各プロトコルヘッダの種別と配置とを示すプロトコルスタックパターンを判別する。判別ルールは、例えば、他の装置で予め作成され、このプロトコルスタック判別部１２に事前設定される。
【００２３】
プロトコルスタック判別部１２は、判別ルールとして判別木を用いて、入力されたパケットのプロトコルスタックパターンを判別する。判別木は、プロトコルスタックパターンが既知のパケットを下位ヘッダから順次捜査して作成される。また、プロトコルスタック判別部１２は、判別木を用いて、入力されたパケットから除外するプロトコルヘッダ箇所も判別する。以降、パケットから除外するプロトコルヘッダ箇所を示す情報を、ヘッダストリップ箇所として、説明を行う。なお、プロトコルスタック判別部１２は、各種のプロトコルスタックパターンのパケットを判別できるように、複数の判別木が事前設定される。
【００２４】
パケットフォーマット変換部１３は、プロトコルスタック判別部１２によって判別されたプロトコルスタックパターンを基に、パケットのフォーマットを、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する。パケットフォーマット変換部１３は、プロトコルスタックパターンとともにヘッダストリップ箇所も用いて、フォーマット変換を行う。
【００２５】
パケット出力部１４は、パケットフォーマット変換部１３がフォーマットを変換したパケットを解析装置２０に出力する。
【００２６】
［フォーマット変換装置の処理の流れ］
次に、フォーマット変換装置１０の処理の流れについて説明する。図３は、図２に示すフォーマット変換装置１０の処理の流れを説明する図である。
【００２７】
図３に示すように、プロトコルスタック判別部１２には、事前に、予め作成された判別木３０が設定される。そして、パケット入力部１１がパケットの入力を受付けると、プロトコルスタック判別部１２は、判別木３０を用いて、到着したパケットのプロトコルスタックパターンを判別する（図３の（１）参照）。プロトコルスタック判別部１２は、判別結果として、到着したパケット自身に加え、このパケットのプロトコルスタックパターン、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【００２８】
パケットフォーマット変換部１３は、プロトコルスタック判別部１２の判別結果を基に、フォーマット変換を実行する（図３の（２）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。
【００２９】
［判別木の構成］
次に、プロトコルスタック判別部１２に設定される判別木の構成について説明する。図４は、判別木の構成を説明する図である。図４の（ａ）は、判別木の作成に使用するプロトコルスタックパターンが既知であるパケットの一例を示す図である。図４の（ａ）では、各パケットは、左から右に向かって下位ヘッダから上位ヘッダを配置する。図４の（ｂ）は、図４の（ａ）に示すパケットから作成された判別木の一例を示す図である。
【００３０】
図４の（ａ）の枠Ｕ１内に示すように、既知情報として、パケットＡ〜Ｃが使用される。既知情報として、各プロトコルスタックパターンにおける各ヘッダの上位ヘッダを特定するための情報（各ヘッダの上位ヘッダの位置及び値）が示される。また、既知情報として、各プロトコルスタックパターンにおけるヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号が設定されている。
【００３１】
例えば、プロトコルスタックパターンがパターンＡのパケットの場合、図示するように４段のヘッダＨ１〜Ｈ４のうちヘッダＨ１〜Ｈ３の上位ヘッダの位置及び値、ヘッダストリップ箇所ａ１〜ａ２byte、変換後Ethertypeに指定するプロトコル番号ｍが設定されている。また、プロトコルスタックパターンがパターンＢのパケットの場合、６段の各ヘッダＨ１〜Ｈ３，Ｈ５，Ｈ６，Ｈ４のうちヘッダＨ１〜Ｈ３，Ｈ５，Ｈ６の上位ヘッダの位置及び値、ヘッダストリップ箇所ｂ１〜ｂ２byte、変換後Ethertypeに指定するプロトコル番号ｌが設定されている。また、プロトコルスタックパターンがパターンＣのパケットの場合、４段の各ヘッダＨ１，Ｈ２，Ｈ７，Ｈ４のうちＨ１，Ｈ２，Ｈ７の上位ヘッダの位置及び値、ヘッダストリップ箇所ｃ１〜ｃ２byte、変換後Ethertypeに指定するプロトコル番号ｎが設定されている。
【００３２】
そして、パターンＡ〜Ｃを判別するための判別木を作成する場合には、図４の（ｂ）に示すように、既知である各パターンの下位ヘッダから分岐を作成し、マッチするパターンを絞り込んでいく。例えば、図４の（ａ）に示すように、各パターンＡ〜Ｃの下位ヘッダはＨ１である。このため、判別対象のパターンがパターンＡ〜Ｃに含まれるか否かを判別するために、最上位のノードＮ１（図４の（ｂ）参照）は「ヘッダＨ１の上位ヘッダは？」と設定される。そして、パターンＡ〜Ｃのいずれについても、ヘッダＨ１の上位ヘッダはヘッダＨ２である。このため、ヘッダＨ１の上位ヘッダがヘッダＨ２である場合、判別対象のパターンは、パターンＡ〜Ｃにマッチする（エッジＥ１）。
【００３３】
続いて、判別対象のパターンがパターンＡ〜Ｃのいずれにマッチするかを判別するために、次のノードＮ２は「ヘッダＨ２の上位ヘッダは？」と設定される。ヘッダＨ２の上位ヘッダがヘッダＨ７である場合には、パターンＣとマッチし（エッジＥ３）、判別対象のパケットのプロトコルスタックパターンは、パターンＣであると判別される（ノードＮ３）。
【００３４】
一方、ヘッダＨ２の上位ヘッダがヘッダＨ３である場合には、パターンＡ，Ｂとマッチする（エッジＥ２）。次のノードＮ４は、判別対象のパターンがパターンＡ，Ｂのいずれであるかを判別するために、「ヘッダＨ３の上位ヘッダは？」に設定される。この際、ヘッダＨ３の上位ヘッダがヘッダＨ４である場合には、パターンＡとマッチし（エッジＥ４）、判別対象のパケットのプロトコルスタックパターンは、パターンＡであると判別される（ノードＮ５）。これに対し、ヘッダＨ３の上位ヘッダがヘッダＨ５である場合には、パターンＢとマッチし（エッジＥ５）、判別対象のパケットのプロトコルスタックパターンは、パターンＢであると判別される（ノードＮ６）。
【００３５】
このように、パターンＡ〜Ｃについて一意に特定可能な判別木Ｔ１を作成した段階で、判別木の作成は終了となる。このような判別木は、各種のプロトコルスタックパターンに対応できるよう複数作成される。
【００３６】
［プロトコルスタック判別部の処理］
次に、プロトコルスタック判別部１２の処理について説明する。図５は、図２に示すプロトコルスタック判別部１２の処理を説明する図である。
【００３７】
図５に示すように、プロトコルスタック判別部１２は、例えば判別木Ｔ１を事前設定される（図５の（１）参照）。プロトコルスタック判別部１２は、この判別木Ｔ１を用いて、パケットのプロトコルスタックパターンを判別する（図５の（２）参照）。具体的には、プロトコルスタック判別部１２は、判別木Ｔ１を基に、入力されたパケットの下位ヘッダからヘッダを上位に向かって各ヘッダを順次特定していき、プロトコルスタックパターンを判別する。
【００３８】
例えば、プロトコルスタック判別部１２は、パケットＣａが入力された場合、判別木Ｔ１を用いて、パケットＣａが、ヘッダＨ１〜Ｈ４を有するパターンＡのプロトコルスタックパターンであることを判別する。パターンＡのパケットのヘッダストリップ箇所はａ１〜ａ２byteであり、変換後Ethertypeに指定するプロトコル番号としてｍが設定されている。このため、プロトコルスタック判別部１２は、パケットＣａとともに、このパケットＣａのパターン「Ａ」、ヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を出力する。
【００３９】
［パケットフォーマット変換部の処理］
次に、パケットフォーマット変換部１３の処理について説明する。図６は、図２に示すパケットフォーマット変換部１３の処理を説明する図である。
【００４０】
図６に示すように、パケットフォーマット変換部１３に、プロトコルスタック判別部１２の判別結果として、パケットＣａ、このパケットＣａのパターン「Ａ」、ヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」が入力された場合を例に説明する。パケットフォーマット変換部１３は、この判別結果を受けて、ポインタを設定する（図６の枠Ｗ１の（１）参照）。
【００４１】
例えば、ポインタとして、先頭ポインタ、ヘッダストリップ開始ポインタ、ヘッダストリップ終了ポインタがある。このため、パケットフォーマット変換部１３は、パケットＣａに対し、下位ヘッダＨ１の先頭に先頭ポインタを設定する。そして、パケットフォーマット変換部１３は、パケットＣａに対し、ヘッダＨ２の先頭にヘッダストリップ開始ポインタａ１を設定し、ヘッダＨ４の先頭にヘッダストリップ終了ポインタａ２を設定する。
【００４２】
次に、パケットフォーマット変換部１３は、先頭ポインタからヘッダストリップ開始ポインタａ１までの部分を上位側にずらし、ヘッダストリップ開始ポインタａ１がヘッダストリップ終了ポインタａ２に重なるようにヘッダＨ１を上書きする（図６の（２）参照）。
【００４３】
そして、パケットフォーマット変換部１３は、先頭ポインタを、上書きしたヘッダＨ１の先頭に移動する（図６の（３）参照）。続いて、パケットフォーマット変換部１３は、Ethertype情報を書き換え（図６の（４）参照）、先頭ポインタ以降のヘッダＨ１，Ｈ４を有するパケットを、フォーマット変換後のパケットＣａ´として出力する（図６の（５）参照）。
【００４４】
このように、パケットフォーマット変換部１３は、先頭から、ヘッダストリップ対象外の箇所をヘッダストリップ箇所に上書きをし、先頭ポインタをずらす。そして、パケットフォーマット変換部１３は、上位ヘッダを特定する情報を書き換え、先頭ポインタ以降を出力することで、フォーマットの変換を行う。
【００４５】
［フォーマット変換装置による処理の手順］
次に、フォーマット変換装置１０による処理の手順について説明する。図７は、図２に示すフォーマット変換装置１０によるフォーマット変換処理の手順を示すフローチャートである。
【００４６】
図７に示すように、パケット入力部１１が、パケットの入力を受け付けると（ステップＳ１１）、プロトコルスタック判別部１２は、予め作成された判別木にしたがって、入力されたパケットのプロトコルスタックパターンを判別するプロトコルスタック判別処理を行う（ステップＳ１２）。
【００４７】
続いて、パケットフォーマット変換部１３は、プロトコルスタック判別部１２によって判別されたプロトコルスタックパターンを基に、パケットのフォーマットを、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換するパケットフォーマット変換処理を行う（ステップＳ１３）。そして、パケット出力部１４は、パケットフォーマット変換部１４がフォーマットを変換したパケットを解析装置２０に出力して（ステップＳ１４）、処理を終了する。
【００４８】
［実施の形態１の効果］
このように、実施の形態１では、予め作成された判別木にしたがって、入力されたパケットのプロトコルスタックパターンを判別し、パケットのフォーマットを、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換する。すなわち、このフォーマット変換装置１０によれば、トンネリングを行うためにEtherヘッダ以降に付加された任意のプロトコルヘッダがスタックされたパケットに対しパケットストリッピングが可能となる。このため、このフォーマット変換装置１０を解析装置２０の前段に設けることによって、トンネルプロトコルをサポートしていない解析装置２０を活用することができる。
【００４９】
図８は、図２に示すフォーマット変換装置１０によるフォーマット変換後のパケットを具体的に説明する図である。例えば、フォーマット変換装置１０に、パケットＣ１，Ｃ２が入力された場合について説明する。
【００５０】
この場合、フォーマット変換装置１０は、予め作成された判別木にしたがって、パケットＣ１が、Etherヘッダ以降に、カプセルヘッダ（IPv4）、カプセルヘッダ（UDP）、カプセルヘッダ（L2TP）、カプセルヘッダ（PPP）、インナーパケット（IPv4）Ｐａがスタックされたプロトコルスタックパターンを有することを判別する。このため、フォーマット変換装置１０は、パケットＣ１のフォーマットを、解析装置２０の解析対象のインナーパケット（IPv4）Ｐａ以外のプロトコルヘッダを除外したフォーマットに変換する。すなわち、フォーマット変換装置１０は、パケットＣ１を、Etherヘッダの次にインナーパケット（IPv4）Ｐａが配置するパケットＣ１´に変換する。この結果、解析装置２０では、このパケットＣ１´についての解析が可能になる。
【００５１】
また、フォーマット変換装置１０は、予め作成された判別木にしたがって、パケットＣ２が、Etherヘッダ以降に、カプセルヘッダ（MPLS）、カプセルヘッダ（IPv6）、インナーパケット（IPV4）Ｐｂがスタックされたプロトコルスタックパターンを有することを判別する。このため、フォーマット変換装置１０は、パケットＣ２のフォーマットを、解析装置２０の解析対象のインナーパケット（IPV4）Ｐｂ以外のプロトコルヘッダを除外したフォーマットに変換する。すなわち、フォーマット変換装置１０は、パケットＣ２を、Etherヘッダの次にインナーパケット（IPV4）Ｐｂが配置するパケットＣ２´に変換する。この結果、解析装置２０では、このパケットＣ２´についての解析が可能になる。
【００５２】
このように、本実施の形態１に係るフォーマット変換装置１０によれば、フォーマットによらず、入力されたトンネルパケットを、解析装置２０が解析可能であるフォーマットに変換することができる。
【００５３】
［実施の形態２］
次に、実施の形態２について説明する。図９は、実施の形態２に係るフォーマット変換装置の構成の一例を示す図である。図９に示すように、フォーマット変換装置２１０は、図２に示すフォーマット変換装置１０と比して、プロトコルスタック判別部１２に代えて、プロトコルスタック判別部２１２を有する。
【００５４】
プロトコルスタック判別部２１２は、プロトコルスタックパターンが既知のパケットの内部の特定bit列を基に作成されたプロトコルスタックパターンを判別する判別論理式を用いて、入力されたパケットのプロトコルスタックパターンを判別する。そして、プロトコルスタック判別部２１２は、判別論理式を用いて、入力されたパケットから除外するプロトコルヘッダ箇所も判別する。判別論理式は、例えば、他の装置で予め作成され、このプロトコルスタック判別部２１２に事前設定される。なお、プロトコルスタック判別部２１２は、各種のプロトコルスタックパターンのパケットを判別できるように、複数の判別論理式が事前設定される。
【００５５】
［フォーマット変換装置の処理の流れ］
次に、フォーマット変換装置２１０の処理の流れについて説明する。図１０は、図９に示すフォーマット変換装置２１０の処理の流れを説明する図である。
【００５６】
図１０に示すように、プロトコルスタック判別部２１２には、事前に、予め作成された判別論理式２３０が設定される。そして、パケット入力部１１がパケットの入力を受付けると、プロトコルスタック判別部２１２は、判別論理式２３０を用いて、到着したパケットのプロトコルスタックパターンを判別する（図１０の（１）参照）。プロトコルスタック判別部２１２は、判別結果として、到着したパケット自身に加え、このパケットのヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【００５７】
そして、パケットフォーマット変換部１３は、プロトコルスタック判別部２１２の判別結果を基に、フォーマット変換を実行する（図１０の（２）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。
【００５８】
［判別論理式の構成］
次に、図１１を参照して、プロトコルスタック判別部２１２に設定される判別論理式の構成について説明する。図１１は、判別論理式の構成を説明する図である。図１１の（ａ）は、判別論理式の作成に使用するプロトコルスタックパターンが既知であるパケットの一例を示す図である。図１１の（ａ）に示すパターンＡ〜Ｃは、図４の（ａ）に示すパターンＡ〜Ｃと同様である。図１１の（ｂ）は、真理値表を例示する図である。図１１の（ｃ）は、図１１の（ｂ）に示す真理値表を基に作成された判別論理式を示す図である。
【００５９】
判別論理式を作成する場合、まず、各パターンの上位ヘッダを特定する情報の位置及び値を基に真理値表を作成する。パターンＡ〜Ｃについては、上位ヘッダを特定する情報のbyte位置及び値を参照する。具体的には、図１１の（ｂ）のグラフＧ１に示すように、パターンＡについては、ヘッダＨ１，Ｈ２，Ｈ３の上位ヘッダを特定する各情報は［（a,1010），（b,1111），（d,0101）]（なお、各情報の配置は［（byte位置,値）］である）である。この結果から、inputが（a,b,c,d,e,f）＝（1010,1111,＊,0101,＊／｛1111｝,＊／｛1011｝）である場合には、outputが、パターンＡに対応する（x,y,z）＝(0,0,0)となる組み合わせが、真理値表Ｌ１の１行目に設定される。
【００６０】
また、パターンＢについては、ヘッダＨ１，Ｈ２，Ｈ３，Ｈ５，Ｈ６の上位ヘッダを特定する各情報が［（a,1010），（b,1111），（d,0101），(e,1111)，（f,1011）]である。このため、inputが（a,b,c,d,e,f）＝（1010,1111,＊,0101,1111,1011｝）である場合には、outputが、パターンＢに対応する（x,y,z）＝(0,0,1)となる組み合わせが、真理値表Ｌ１の２行目に設定される。そして、パターンＣについては、ヘッダＨ１，Ｈ２，Ｈ７の上位ヘッダを特定する各情報が［（a,1010），（b,1101），(c,1110)]である。このため、inputが（a,b,c,d,e,f）＝（1010,1101,1110,＊,＊,＊）である場合には、outputが、パターンＣに対応する（x,y,z）＝(0,1,1)となる組み合わせが、真理値表Ｌ１の３行目に設定される。
【００６１】
そして、この真理値表Ｌ１を基に、Quine-McCluskey法等を使用して、プロトコルスタックパターン判別用の判別論理式２３０−１（図１１の（ｃ）参照）が作成される。この判別論理式２３０−１は、output(0,0,0)，(0,0,1)，(0,1,1)のそれぞれに、対応するパターンの種別、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号が対応付けられている。
【００６２】
［プロトコルスタック判別部の処理］
次に、プロトコルスタック判別部２１２の処理について説明する。図１２は、図９に示すプロトコルスタック判別部２１２の処理を説明する図である。
【００６３】
図１２に示すように、プロトコルスタック判別部２１２は、例えば判別論理式２３０−１を事前設定される（図１２の（１）参照）。プロトコルスタック判別部２１２は、この判別論理式２３０−１を用いて、パケットのプロトコルスタックパターンを判別する（図１２の（２）参照）。具体的には、プロトコルスタック判別部２１２は、判別論理式２３０−１に、判別のために必要なbit列をパケットから抽出する。すなわち、プロトコルスタック判別部２１２は、判別対象のパケットから、（a,b,c,d,e,f）に対応するbit列を抽出し、抽出した（a,b,c,d,e,f）を判別論理式２３０−１に入力する。そして、プロトコルスタック判別部２１２は、判別論理式２３０−１のoutputに対応するパケットのパターンの種別、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を、パケットとともに出力する。
【００６４】
例えば、パケットＣａが入力された場合を例に説明する。プロトコルスタック判別部２１２は、パケットＣａから、（a,b,c,d,e,f）に対応するbit列を抽出し、判別論理式２３０−１を入力する。この結果、判別論理式２３０−１のoutputとして(0,0,0)が得られた場合には、プロトコルスタック判別部２１２は、パケットＣａとともに、このパケットＣａのパターン「Ａ」、ヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を出力する。
【００６５】
［フォーマット変換装置による処理の手順］
次に、フォーマット変換装置２１０による処理の手順について説明する。図１３は、図９に示すフォーマット変換装置２１０によるフォーマット変換処理の手順を示すフローチャートである。
【００６６】
図１３に示すように、パケット入力部１１が、パケットの入力を受け付けると（ステップＳ２１）、プロトコルスタック判別部２１２は、予め作成された判別論理式を用いて、入力されたパケットのプロトコルスタックパターンを判別するプロトコルスタック判別処理を行う（ステップＳ２２）。図１３に示すステップＳ２３，Ｓ２４は、図７に示すステップＳ１３，Ｓ１４と同様の処理を行う。
【００６７】
［実施の形態２の効果］
このように、実施の形態２では、予め作成された判別論理式を用いて、入力されたパケットのプロトコルスタックパターンを判別し、パケットのフォーマットを、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換するため、実施の形態１と同様の効果を奏する。
【００６８】
［実施の形態３］
次に、実施の形態３について説明する。図１４は、実施の形態３に係るフォーマット変換装置の構成の一例を示す図である。図１４に示すように、フォーマット変換装置３１０は、図２に示すフォーマット変換装置１０と比して、プロトコルスタック判別部１２に代えて、プロトコルスタック判別部３１２を有する。
【００６９】
プロトコルスタック判別部３１２は、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルを用いて、入力されたパケットのプロトコルスタックパターンを判別する。そして、プロトコルスタック判別部３１２は、プロトコルconfigファイルを用いて、入力されたパケットから除外するプロトコルヘッダ箇所も判別する。
【００７０】
［プロトコルconfigファイルの一例］
プロトコルconfigファイルは、一般的に使用される各プロトコルヘッダ情報が記載されたファイルである。プロトコルconfigファイルは、例えば、プロトコルヘッダ情報として、標準化されたプロトコルのヘッダのヘッダ長、上位プロトコルのヘッダを示すフィールド位置等が記載される。
【００７１】
図１５は、プロトコルconfigファイルの一例を示す図である。図１５に示す表Ｌ３１は、Etherヘッダのプロトコルconfigファイルである。表Ｌ３１に示すように、要素名及び概要が項目として示されている。例えば、１行目には、要素名「eth_continue」の概要が「上位探索を続けるEtherytpeを指定（ネットワークバイトオーダー）」であることが登録される。２行目には、要素名「eth_destruct」の概要が「破棄するEthertypeを指定（ネットワークバイトオーダー）」であることが登録される。
【００７２】
図１６は、プロトコルconfigファイルの一例を示す図である。図１６に示す表Ｌ３２は、プロトコルヘッダのプロトコルconfigファイルである。表Ｌ３２に示すように、要素名及び概要が項目として示されている。例えば、１行目には、要素名「1_proto_index」の概要が「設定するプロトコル情報群を表すｉｄ」であることが登録される。２行目には、要素名「2_proto_num」の概要が「プロトコルの通番」であることが登録される。また、３行目には要素名「3_proto_next」の概要が「上位プロトコルを示すフィールドの位置情報」であることが登録される。４行目には、要素名「4_proto_next_len」の概要が「上位プロトコルを示すフィールドの長さ」であることが登録される。
【００７３】
このように、プロトコルconfigファイルは、標準化された各プロトコルのヘッダ情報として、プロトコル名、プロトコルのヘッダのヘッダ長、ヘッダ長が固定または可変であるか、上位プロトコルを示すフィールド位置、上位ヘッダがストリップ対象か否か、変換後Ethertypeに指定するプロトコル番号等の各項目が記載される。
【００７４】
［フォーマット変換装置の処理の流れ］
次に、フォーマット変換装置３１０の処理の流れについて説明する。図１７は、図１４に示すフォーマット変換装置３１０の処理の流れを説明する図である。
【００７５】
図１７に示すように、プロトコルスタック判別部３１２には、事前に、予め作成されたプロトコルconfigファイル３３０が設定される。そして、パケット入力部１１がパケットの入力を受付けると、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を用いて、到着したパケットのプロトコルスタックパターンを判別する（図１７の（１）参照）。プロトコルスタック判別部３１２は、判別結果として、到着したパケット自身に加え、このパケットのプロトコルスタックパターン、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【００７６】
そして、パケットフォーマット変換部１３は、プロトコルスタック判別部３１２の判別結果を基に、フォーマット変換を実行する（図１７の（２）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。
【００７７】
［プロトコルスタック判別部の処理］
次に、プロトコルスタック判別部３１２の処理について説明する。図１８は、図１４に示すプロトコルスタック判別部３１２の処理を説明する図である。
【００７８】
図１８に示すように、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を事前設定される（図１８の（１）参照）。プロトコルスタック判別部３１２は、このプロトコルconfigファイル３３０を参照し、判別対象のパケットの下位からヘッダを順次特定して、このパケットのプロトコルスタックパターン、ストリップ領域、変換後Ethertypeに指定するプロトコル番号を特定する（図１８の（２）参照）。具体的には、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を参照し、下位のヘッダから順に、各ヘッダの各要素の概要を判別することで、パケットのプロトコルスタックパターンを判別する。そして、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を参照し、各ヘッダのうちストリップ対象のヘッダを特定する。これによって、プロトコルスタック判別部３１２は、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を特定する。
【００７９】
例えば、プロトコルスタック判別部３１２は、パケットＣａが入力された場合、プロトコルconfigファイル３３０を参照して、パケットＣａが、ヘッダが、下位から、Ｈ１，Ｈ２，Ｈ３，Ｈ４であることを特定する。そして、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を参照して、パケットＣａにおけるストリップ対象のヘッダＨ２，Ｈ３を特定する。そして、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を参照して、パケットＣａの、ヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を判別後、出力する。
【００８０】
［フォーマット変換装置による処理の手順］
次にフォーマット変換装置３１０による処理の手順について説明する。図１９は、図１４に示すフォーマット変換装置３１０によるフォーマット変換処理の手順を示すフローチャートである。
【００８１】
図１９に示すように、パケット入力部１１が、パケットの入力を受け付けると（ステップＳ３１）、プロトコルスタック判別部３１２は、プロトコルconfigファイル３３０を参照して、入力されたパケットのプロトコルスタックパターンを判別するプロトコルスタック判別処理を行う（ステップＳ３２）。図１９に示すステップＳ３３，Ｓ３４は、図７に示すステップＳ１３，Ｓ１４と同様の処理を行う。
【００８２】
［実施の形態３の効果］
このように、実施の形態３では、予め作成されたプロトコルconfigファイル３３０を用いて、入力されたパケットのプロトコルスタックパターンを判別し、パケットのフォーマットを、解析装置２０の解析対象以外のプロトコルヘッダを除外したフォーマットに変換するため、実施の形態１と同様の効果を奏する。
【００８３】
［実施の形態４］
次に、実施の形態４について説明する。実施の形態１〜３に係るフォーマット変換装置１０，２１０，３１０は、他の装置等において予め作成された判別ルールを用いるのに対し、実施の形態４に係るフォーマット変換装置は、自装置において判別ルールを作成する。
【００８４】
具体的には、実施の形態４に係るフォーマット変換装置は、一定期間、入力されたパケットに対しプロトコルconfigファイルを用いて学習することによって、判別ルールを作成する。そして、実施の形態４に係るフォーマット変換装置は、学習処理において作成された判別ルールにしたがって、プロトコルスタックパターンを判別してパケットのフォーマットを変換する。
【００８５】
［フォーマット変換装置の構成］
まず、実施の形態４に係るフォーマット変換装置の構成について説明する。図２０は、実施の形態４に係るフォーマット変換装置の構成の一例を示す図である。図２０に示すように、フォーマット変換装置４１０は、パケット入力部１１、ミラー部４１２、パケットキャプチャ部４１３、学習部４１４、フォーマット変換部４１５及びパケット出力部１４を有する。
【００８６】
ミラー部４１２は、パケット入力部１１が受け付けたパケットを、パケットキャプチャ部４１３、または、パケットキャプチャ部４１３及びフォーマット変換部４１５、に出力する。ミラー部４１２は、学習部４１４による学習処理時には、パケットをパケットキャプチャ部４１３に出力する。一方、ミラー部４１２は、フォーマット変換部４１５によるフォーマット変換処理時には、パケットをパケットキャプチャ部４１３及びフォーマット変換部４１５の双方に出力する。
【００８７】
パケットキャプチャ部４１３は、入力されたパケットをバッファリングし、バッファリングしたパケットを、所定タイミングにしたがって、順次、学習部４１４に出力する。
【００８８】
学習部４１４は、入力されたパケットに対しプロトコルconfigファイルを用いて学習することによって判別ルールを作成し、作成した判定ルールをフォーマット変換部４１５に出力する。学習部４１４は、判別ルールとして、パケット内の特定bit列を基にプロトコルスタックパターンを判別する判別木を作成する。学習部４１４は、プロトコルスタック解析部４１４１、パターン分布格納部４１４２、判別木作成部４１４３及びパターン分布ＤＢ４１４４を有する。なお、学習部４１４は、各種のプロトコルスタックパターンのパケットを判別できるように、複数の判別木を作成する。
【００８９】
プロトコルスタック解析部４１４１は、プロトコルconfigファイルを用いて、入力された各パケットを下位ヘッダから順次解析して、それぞれのプロトコルスタックパターンを特定する。
【００９０】
パターン分布格納部４１４２は、入力されたパケットのプロトコルスタックパターンの分布を作成し、判別木作成部４１４３に出力するとともに、パターン分布ＤＢ４１４４に格納する。
【００９１】
判別木作成部４１４３は、入力されたパケットのプロトコルスタックパターン及びプロトコルスタックパターンの分布を基に、プロトコルスタックパターンを判別する判別木を作成する。判別木作成部４１４３は、パケット内の特定bit列を基にプロトコルスタックパターンを判別する判別木を作成する。
【００９２】
パターン分布ＤＢ４１４４は、学習部４１４が学習したパケットのプロトコルスタックパターン及びプロトコルスタックパターンの分布を記憶する。パターン分布ＤＢ４１４４が記憶するプロトコルスタックパターン及びプロトコルスタックパターンの分布は、パターン分布格納部４１４２によって更新される。
【００９３】
フォーマット変換部４１５は、学習部４１４が作成した判別木を用いて、パケットのプロトコルパターンを判別し、フォーマット変換を行う。フォーマット変換部４１５は、プロトコルスタック判別部４１５１及びパケットフォーマット変換部１３を有する。
【００９４】
プロトコルスタック判別部４１５１は、学習部４１４が作成した判別木を用いて、入力されたパケットのプロトコルスタックパターンを判別する。そして、プロトコルスタック判別部４１５１は、この判別木を用いて、入力されたパケットから除外するプロトコルヘッダ箇所も判別する。
【００９５】
［学習部の処理の流れ］
次に、学習部４１４の処理の流れについて説明する。図２１は、図２０に示す学習部４１４の処理の流れ（学習時）を説明する図である。学習部４１４では、まず、プロトコルスタック解析部４１４１に、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルが事前に設定される。このプロトコルconfigファイルは、図１５，１６に例示したデータ構成を有し、事前に作成されたものである。
【００９６】
そして、図２１に示すように、学習部４１４のプロトコルスタック解析部４１４１には、パケットキャプチャ部４１３によってキャプチャされたキャプチャパケットが入力される。プロトコルスタック解析部４１４１は、プロトコルconfigファイルを参照し、キャプチャパケットの下位ヘッダから順次解析し、入力された各パケットのプロトコルスタックパターンを特定する（図２１の（１）参照）。ここで、プロトコルスタック解析部４１４１は、各パケットのプロトコルスタックパターンに加え、プロトコルスタックパターンの分布を出力する。パターン分布格納部４１４２は、入力されたパケットのプロトコルスタックパターンの分布を作成し、パターン分布ＤＢ４１４４に格納することでＤＢ化を行う（図２１の（２）参照）。
【００９７】
続いて、判別木作成部４１４３は、入力されたパケットのプロトコルスタックパターン及び分布情報から、入力されたパケットを判別するために最適な判別木を作成する（図２１の（３）参照）。そして、判別木作成部４１４３は、作成した判別木をプロトコルスタック判別部４１５１に出力する。この学習部４１４における学習処理は、フォーマット変換部４１５におけるフォーマット変換処理前に一定期間実行された後は、例えば、定期的に実行される。なお、学習処理では、ミラー部４１２からフォーマット変換部４５１にパケットが入力されないため、フォーマット変換部４５１によるフォーマット変換処理は実行されない。
【００９８】
［フォーマット変換部の処理の流れ］
次に、フォーマット変換部４１５の処理の流れについて説明する。図２２は、図２０に示すフォーマット変換部４１５の処理の流れ（変換時）を説明する図である。
【００９９】
プロトコルスタック判別部４１５１には、学習部４１４が作成した判別木が設定される。そして、図２２に示すように、ミラー部４１２からパケットが入力されると、プロトコルスタック判別部４１５１は、入力されたパケットのプロトコルスタックパターンを、学習部４１４が作成した判別木を用いて判別する（図２２の（１）参照）。この際、プロトコルスタック判別部４１５１は、判別結果として、到着したパケット自身に加え、このパケットのプロトコルスタックパターン、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【０１００】
そして、パケットフォーマット変換部１３は、プロトコルスタック判別部４１５１の判別結果を基に、フォーマット変換を実行する（図２２の（２）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。なお、フォーマット変換処理中も、学習部４１４は、キャプチャパケットを受け取り、プロトコルスタック解析及びパターン分布の格納を行い、データを蓄積している。
【０１０１】
［プロトコルスタック解析部の処理］
次に、プロトコルスタック解析部４１４１の処理について説明する。図２３は、図２０に示すプロトコルスタック解析部４１４１の処理を説明する図である。
【０１０２】
まず、図２３に示すように、プロトコルスタック解析部４１４１には、事前に、予め作成されたプロトコルconfigファイル３３０が設定される（図２３の（１）参照）。プロトコルconfigファイル３３０は、標準化された各プロトコルのヘッダ情報として、プロトコル名、プロトコルのヘッダのヘッダ長、ヘッダ長が固定または可変であるか、上位プロトコルを示すフィールド位置、上位ヘッダがストリップ対象か否か、変換後Ethertypeに指定するプロトコル番号等が記載される。
【０１０３】
そして、プロトコルスタック解析部４１４１は、入力されたキャプチャパケットの下位ヘッダから捜査を開始し、プロトコルconfigファイル３３０を用いてプロトコルスタックパターンを特定する。プロトコルスタック解析部４１４１は、プロトコルスタックパターン情報、パケットのヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号、及び、各パターンの出現頻度を解析して、送出する（図２３の（２）参照）。
【０１０４】
具体的には、枠Ｗ４１のパターン図Ｇ４１に示すように、例えば、４つのパケットがキャプチャパケットとして入力された場合について説明する。この場合、プロトコルスタック解析部４１４１は、プロトコルconfigファイル３３０を用いて、入力された各キャプチャパケットの下位ヘッダから捜査を開始する。
【０１０５】
この結果、プロトコルスタック解析部４１４１は、１段目のパケットのプロトコルスタックパターンが「Ａ」であることを判別する。そして、プロトコルスタック解析部４１４１は、１段目のパケットのヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を判別する。そして、プロトコルスタック解析部４１４１は、２段目のパケットのプロトコルスタックパターンが「Ｂ」であり、パケットのヘッダストリップ箇所「ｂ１〜ｂ２byte」、変換後Ethertypeに指定するプロトコル番号「ｌ」を判別する。
【０１０６】
そして、プロトコルスタック解析部４１４１は、３段目のパケットのプロトコルスタックパターンが「Ａ」であり、パケットのヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を判別する。そして、プロトコルスタック解析部４１４１は、４段目のパケットのプロトコルスタックパターンが「Ｃ」であり、パケットのヘッダストリップ箇所「ｃ１〜ｃ２byte」、変換後Ethertypeに指定するプロトコル番号「ｎ」を判別する。
【０１０７】
この解析によって、プロトコルスタック解析部４１４１は、各プロトコルスタックパターンの出現頻度を求めることができる。例えば、図２３に示す例では、キャプチャパケットのうち、パターンＡが２回、パターンＢが１回、パターンＣが１回出現している。プロトコルスタック解析部４１４１は、この出現頻度を基に求めた各パターンの分布情報を、プロトコルスタックパターンとともに出力する。
【０１０８】
さらに、プロトコルスタック解析部４１４１は、各パケットにおけるパターンＡ〜Ｃについて、上位ヘッダを特定する情報のbyte位置及び値を取得する。具体的には、プロトコルスタック解析部４１４１は、枠Ｗ４１のグラフＧ１に示すように、パターンＡについては、上位ヘッダを特定する各情報として［（a,1010），（b,1111），（d,0101）]を取得する。同様に、プロトコルスタック解析部４１４１は、パターンＢについては、上位ヘッダを特定する各情報として、［（a,1010），（b,1111），（d,0101），(e,1111)，（f,1011）]を取得する。また、プロトコルスタック解析部４１４１は、パターンＣについては、上位ヘッダを特定する各情報として［（a,1010），（b,1101），  (c,1110)]を取得する。プロトコルスタック解析部４１４１は、取得した上位ヘッダを特定する情報のbyte位置及び値も、各プロトコルスタックパターンに対応付けて出力する。
【０１０９】
［パターン分布格納部の処理］
次に、パターン分布格納部４１４２の処理について説明する。図２４は、図２０に示すパターン分布格納部４１４２の処理を説明する図である。
【０１１０】
図２４に示すように、パターン分布格納部４１４２は、プロトコルスタック解析部４１４１から出力されたプロトコルスタックパターンの分布情報を基に、パターン分布ＤＢ４１４４のプロトコルスタックパターンの分布情報を更新する（図２４の（１）参照）。例えば、枠Ｗ４２のグラフＧ４３に示すように、プロトコルスタック解析部４１４１による解析結果では、パターンＡが２回、パターンＢが１回、パターンＣが１回出現していた。このため、パターン分布格納部４１４２は、各パターンの出現回数をパターンごとに対応付けたグラフＧ４３の内容を基に、パターン分布ＤＢ４１４４のプロトコルスタックパターンの分布情報を更新する。
【０１１１】
そして、パターン分布格納部４１４２は、プロトコルスタックパターンの各プロトコルスタックパターン情報、パケットのヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号と、プロトコルスタックパターンの分布情報を出力する（図２４の（２）参照）。例えば、パターン分布格納部４１４２は、図２４のグラフＧ４４のような情報を出力する。
【０１１２】
［判別木作成部の処理］
次に、図２５を参照して、判別木作成部４１４３の処理について説明する。図２５は、図２０に示す判別木作成部４１４３の処理を説明する図である。
【０１１３】
図２５に示すように、判別木作成部４１４３は、例えば、ハフマン符号化アルゴリズムを応用し、判別回数の平均が最小になるような判別木の構成を実施する（図２５の（１）参照）。ここでは、入力されたプロトコルスタックパターン情報とプロトコルスタックパターンの分布情報とが、枠Ｗ４３に示すように、パターンＡが２回、パターンＢが１回、パターンＣが１回である場合について説明する。この場合、パケット数「４」のノードＮ４１から、パターンＡが２個のノードＮ４２へのエッジＥ４１、または、パケット数「２」のノードＮ４３へのエッジＥ４２に枝分かれし、ノードＮ４３から、パターンＢが１個のノードＮ４４へのエッジＥ４３、または、パターンＣが１個のノードＮ４５へのエッジＥ４４に枝分かれする判別木構成Ｔ４１が、判別回数の平均が最小となる。
【０１１４】
そこで、判別木作成部４１４３は、判別対象のパケットについて、上位のノードＮ４１´を「is  パターンＡ？［（a,1010），（b,1111），（d,0101）]」とする。そして、判別木作成部４１４３は、ノードＮ４１´に対してｙｅｓである場合（エッジＥ４１´）である場合には、ノードＮ４２´に、判別対象のパケットがパターンＡであって、ヘッダストリップ箇所はａ１〜ａ２byteであり、変換後Ethertypeに指定するプロトコル番号はｍである旨を設定する。
【０１１５】
一方、判別木作成部４１４３は、ノードＮ４１´に対してＮｏである場合（エッジＥ４２´）である場合には、ノード４３´に「is  パターンＢ？［（a,1010），（b,1111），（d,0101），(e,1111)，（f,1011）]」を設定する。
【０１１６】
そして、判別木作成部４１４３は、ノードＮ４３´に対してｙｅｓである場合（エッジＥ４３´）である場合には、ノードＮ４４´に、判別対象のパケットがパターンＢであって、ヘッダストリップ箇所はｂ１〜ｂ２byteであり、変換後Ethertypeに指定するプロトコル番号はｌである旨を設定する。また、判別木作成部４１４３は、ノードＮ４３´に対してＮｏである場合（エッジＥ４４´）である場合には、ノードＮ４５´に、判別対象のパケットがパターンＣであって、ヘッダストリップ箇所はｃ１〜ｃ２byteであり、変換後Ethertypeに指定するプロトコル番号はｎである旨を設定する（図２５の（２）参照）。
【０１１７】
このように、判別木作成部４１４３は、パターンＡ〜Ｃを判別するための判別木Ｔ４２を作成することができる。判別木作成部４１４３は、作成した判別木をフォーマット変換部４１５に出力する。
【０１１８】
［プロトコルスタック判別部の処理］
次に、図２６を参照して、プロトコルスタック判別部４１５１の処理について説明する。図２６は、図２０に示すプロトコルスタック判別部４１５１の処理を説明する図である。
【０１１９】
図２６に示すように、プロトコルスタック判別部４１５１は、例えば、判別木作成部４１４３から出力された判別木Ｔ４２を、事前設定される（図２６の（１）参照）。プロトコルスタック判別部４１５１は、この判別木Ｔ４２を用いて、パケットのプロトコルスタックパターンを判別する（図２６の（２）参照）。具体的には、プロトコルスタック判別部４１５１は、判別木Ｔ４２を基に、入力されたパケットの各パターンの上位ヘッダを特定する情報の位置及び値を基に、パケットがＡ〜Ｃのいずれのパターンであるかを判別する。
【０１２０】
例えば、プロトコルスタック判別部４１５１は、パケットＣａが入力された場合、このパケットの上位ヘッダを特定する情報の位置及び値を抽出する。判別木Ｔ４２に、抽出した上位ヘッダを特定する情報の位置及び値を適用して、このパケットが、パターンＡであることを判別する。これにともない、プロトコルスタック判別部４１５１は、パケットＣａとともに、このパケットＣａのパターン「Ａ」、ヘッダストリップ箇所「ａ１〜ａ２byte」、変換後Ethertypeに指定するプロトコル番号「ｍ」を出力する。
【０１２１】
［学習処理の手順］
次に、フォーマット変換装置４１０による学習処理の処理手順について説明する。図２７は、図２０に示すフォーマット変換装置４１０による学習処理の手順を示すフローチャートである。
【０１２２】
図２７に示すように、まず、学習部４１４では、キャプチャパケットが入力されると、プロトコルスタック解析部４１４１が、プロトコルconfigファイルを用いて、入力された各パケットを下位ヘッダから順次解析して、それぞれのプロトコルスタックパターン及び分布を特定するプロトコルスタック解析処理を行う（ステップＳ４１）。そして、パターン分布格納部４１４２は、入力されたパケットのプロトコルスタックパターンの分布を作成し、判別木作成部４１４３に出力するとともに、パターン分布ＤＢ４１４４に格納するパターン分布格納処理を行う（ステップＳ４２）。
【０１２３】
続いて、判別木作成部４１４３は、入力されたパケットのプロトコルスタックパターン及びプロトコルスタックパターンの分布を基に、プロトコルスタックパターンを判別する判別木を作成する判別木作成処理を行う（ステップＳ４３）。判別木作成部４１４３は、作成した判別木をプロトコルスタック判別部４１５１に出力する（ステップＳ４４）。
【０１２４】
［フォーマット変換処理の処理手順］
次に、フォーマット変換装置４１０によるフォーマット変換処理の手順について説明する。図２８は、図２０に示すフォーマット変換装置４１０によるフォーマット変換処理の手順を示すフローチャートである。
【０１２５】
図２８に示すように、パケット入力部１１が、パケットの入力を受け付けると（ステップＳ４５）、プロトコルスタック判別部４１５１は、ミラー部４１２からミラーリングされたパケットに対し、判別木作成部４１４３が作成した判別木を基に、プロトコルスタックパターンを判別するプロトコルスタック判別処理を行う（ステップＳ４６）。図２８に示すステップＳ４７，Ｓ４８は、図７に示すステップＳ１３，Ｓ１４と同様の処理を行う。
【０１２６】
［実施の形態４の効果］
このように、実施の形態４に係るフォーマット変換装置は、自装置においてパケットを学習することによって判別ルールを作成し、パケットのプロトコルスタックパターンを判別する。このため、実施の形態４によれば、実施の形態１と同様の効果を奏するとともに、判別ルールの作成、パケットのプロトコルスタックパターン及びパケットのフォーマット変換処理の一連の処理を自装置で完結することができるという効果を奏する。
【０１２７】
［実施の形態５］
次に、実施の形態５について説明する。実施の形態５では、判別ルールとして判別論理式を作成する。
【０１２８】
図２９は、実施の形態５に係るフォーマット変換装置の構成の一例を示す図である。図２９に示すように、実施の形態５に係るフォーマット変換装置５１０は、図２０に示すフォーマット変換装置４１０と比して、学習部４１４に代えて学習部５１４を有し、フォーマット変換部４１５に代えてフォーマット変換部５１５を有する。
【０１２９】
学習部５１４は、入力されたパケットに対しプロトコルconfigファイルを用いて学習することによって、判別ルールを作成し、作成した判定ルールをフォーマット変換部５１５に出力する。学習部５１４は、判別ルールとして、パケット内の特定bit列を基にプロトコルスタックパターンを判別する判別論理式を作成する。学習部５１４は、プロトコルスタック解析部５１４１、パターン格納部５１４２、判別論理式作成部５１４３及びパターンＤＢ５１４４を有する。なお、学習部５１４は、各種のプロトコルスタックパターンのパケットを判別できるように、複数の判別論理式を作成する。
【０１３０】
プロトコルスタック解析部５１４１は、プロトコルconfigファイルを用いて、入力された各パケットを下位ヘッダから順次解析して、それぞれのプロトコルスタックパターンを特定する。
【０１３１】
パターン格納部５１４２は、入力されたパケットのプロトコルスタックパターンを、判別論理式作成部５１４３に出力するとともに、パターンＤＢ５１４４に格納する。
【０１３２】
判別論理式作成部５１４３は、入力されたパケットのプロトコルスタックパターンを基に、プロトコルスタックパターンを判別する判別論理式を作成する。判別論理式作成部５１４３は、パケット内の特定bit列を基にプロトコルスタックパターンを判別する判別論理式を作成する。
【０１３３】
パターンＤＢ５１４４は、学習部５１４が学習したパケットのプロトコルスタックパターンを記憶する。パターンＤＢ５１４４が記憶するプロトコルスタックパターンは、パターン格納部５１４２によって更新される。
【０１３４】
フォーマット変換部５１５は、学習部５１４が作成した判別論理式を用いて、パケットのプロトコルパターンを判別し、フォーマット変換を行う。フォーマット変換部５１５は、プロトコルスタック判別部５１５１及びパケットフォーマット変換部１３を有する。
【０１３５】
プロトコルスタック判別部５１５１は、学習部５１４が作成した判別論理式を用いて、入力されたパケットのプロトコルスタックパターンを判別する。そして、プロトコルスタック判別部５１５１は、この判別論理式を用いて、入力されたパケットから除外するプロトコルヘッダ箇所も判別する。
【０１３６】
［学習部の処理の流れ］
次に、学習部５１４の処理の流れについて説明する。図３０は、図２９に示す学習部５１４の処理の流れを説明する図である。学習部５１４では、まず、プロトコルスタック解析部５１４１に、標準化された各プロトコルのヘッダ情報を示すプロトコルconfigファイルが事前に設定される。このプロトコルconfigファイルは、図１５，１６に例示したデータ構成を有し、事前に作成されたものである。
【０１３７】
そして、図３０に示すように、学習部５１４では、プロトコルスタック解析部５１４１が、プロトコルconfigファイルを参照し、キャプチャパケットの下位ヘッダから順次解析し、入力された各パケットのプロトコルスタックパターンを特定する（図３０の（１）参照）。そして、プロトコルスタック解析部５１４１は、各パケットのプロトコルスタックパターンを出力する。パターン格納部５１４２は、入力されたパケットのプロトコルスタックパターンを、パターンＤＢ５１４４に格納することでＤＢ化を行う（図３０の（２）参照）。
【０１３８】
続いて、判別論理式作成部５１４３は、入力されたパケットのプロトコルスタックパターンから、入力されたパケットを判別するために最適な判別論理式を作成する（図３０の（３）参照）。そして、判別論理式作成部５１４３は、作成した判別論理式をプロトコルスタック判別部５１５１に出力する。この学習部５１４における学習処理は、フォーマット変換部５１５におけるフォーマット変換処理前に一定期間実行された後は、例えば、定期的に実行される。なお、学習処理では、ミラー部４１２からフォーマット変換部５５１にパケットが入力されないため、フォーマット変換部５５１によるフォーマット変換処理は実行されない。
【０１３９】
［フォーマット変換部の処理の流れ］
次に、フォーマット変換部５１５の処理の流れについて説明する。図３１は、図２９に示すフォーマット変換部５１５の処理の流れを説明する図である。
【０１４０】
プロトコルスタック判別部５１５１には、学習部５１４が作成した判別論理式が事前に設定される。そして、図３１に示すように、ミラー部４１２からパケットが入力されると、プロトコルスタック判別部５１５１は、入力されたパケットのプロトコルスタックパターンを、学習部５１４が作成した判別論理式を用いて判別する（図３１の（１）参照）。この際、プロトコルスタック判別部５１５１は、判別結果として、到着したパケット自身に加え、このパケットのプロトコルスタックパターン、パケットのヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【０１４１】
そして、パケットフォーマット変換部１３は、プロトコルスタック判別部５１５１の判別結果を基に、フォーマット変換を実行する（図３１の（２）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。なお、フォーマット変換処理中も、学習部５１４は、キャプチャパケットを受け取り、プロトコルスタック解析及びプロトコルスタックパターンの格納を行い、データを蓄積している。
【０１４２】
［プロトコルスタック解析部の処理］
図３２を参照し、プロトコルスタック解析部５１４１の処理について説明する。図３２は、図２９に示すプロトコルスタック解析部５１４１の処理を説明する図である。
【０１４３】
まず、図３２に示すように、プロトコルスタック解析部５１４１には、事前に、予め作成されたプロトコルconfigファイル３３０が設定される（図３２の（１）参照）。そして、プロトコルスタック解析部５１４１は、入力されたキャプチャパケットの下位ヘッダから捜査を開始し、プロトコルconfigファイル３３０を用いてプロトコルスタックパターンを特定する。プロトコルスタック解析部５１４１は、プロトコルスタックパターン情報、パケットのヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を解析して、送出する（図３２の（２）参照）。
【０１４４】
例えば、枠Ｗ５１のパターン図Ｇ４１に示す４つのパケットがキャプチャパケットとして入力された場合について説明する。この場合、プロトコルスタック解析部５１４１は、プロトコルスタック解析部４１４１と同様に、プロトコルconfigファイル３３０を用いて、入力された各キャプチャパケットの下位ヘッダから捜査を開始する。そして、プロトコルスタック解析部５１４１は、これらのパケットが、パターン「Ａ」、パターン「Ｂ」、パターン「Ａ」、パターン「Ｃ」であることを判別する。
【０１４５】
続いて、プロトコルスタック解析部５１４１は、プロトコルスタック解析部４１４１と同様に、各パケットにおけるパターンＡ〜Ｃについて、上位ヘッダを特定する情報のbyte位置及び値を取得する。例えば、プロトコルスタック解析部５１４１は、グラフＧ４２に示すように、例えばパターンＡについては、上位ヘッダを特定する各情報として［（a,1010），（b,1111），（d,0101）]）を取得し、各プロトコルスタックパターンに対応付けて出力する。
【０１４６】
［パターン分布格納部の処理］
次に、パターン格納部５１４２の処理について説明する。図３３は、図２９に示すパターン格納部５１４２の処理を説明する図である。
【０１４７】
図３３に示すように、パターン格納部５１４２は、プロトコルスタック解析部５１４１から出力されたプロトコルスタックパターン情報を基に、パターンＤＢ５１４４を更新する（図３３の（１）参照）。例えば、枠Ｗ５２のパターン一覧Ｌ５１は、パターンＤＢ５１４４が記憶する情報の一例である。パターン格納部５１４２は、パターン一覧Ｌ５１のうち、プロトコルスタックパターン情報が入力されたパターンＡについては、パターンＡの上位ヘッダを特定する［（byte位置,値）］を［（a,1010），（b,1111），（d,0101）]に、ヘッダストリップ箇所を「ａ１〜ａ２byte」に、変換後Ethertypeに指定するプロトコル番号を「ｍ」に更新する。
【０１４８】
このように、パターン格納部５１４２は、パケットごとに、パターンの識別情報、上位ヘッダを特定するbyte位置及び値、ヘッダストリップ箇所、及び、変換後Ethertypeに指定するプロトコル番号を対応付けて、パターンＤＢ５１４４に格納する。また、パターン格納部５１４２は、パケットのプロトコルスタックパターン情報を判別論理式作成部５１４３に出力する。パターン格納部５１４２は、各パケットとともに、プロトコルスタックパターン、上位ヘッダを特定する情報の位置及び値、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。
【０１４９】
［判別論理式作成部の処理］
次に、判別論理式作成部５１４３の処理について説明する。図３４は、図２９に示す判別論理式作成部５１４３の処理を説明する図である。
【０１５０】
図３４に示すように、判別論理式作成部５１４３は、パターン格納部１５４２によって出力された各パターンの上位ヘッダを特定する情報の位置及び値を基に、真理値表Ｌ１（枠Ｗ５３参照）を作成する（図３４の（１）参照）。
【０１５１】
判別論理式作成部５１４３は、真理値表Ｌ１の１行目に示すように、パターンＡについては、inputを［（a,1010），（b,1111），（d,0101），(e,＊／｛1111｝)，（d,＊／｛1011｝）]に設定し、outputを（x,y,z）＝(0,0,0)に設定する。同様に、判別論理式作成部５１４３は、真理値表Ｌ１の２行目に示すように、パターンＢについては、inputを［（a,1010），（b,1111），（d,0101），(e,1111)，（f,1011）]に設定し、outputを（x,y,z）＝(0,0,1)に設定する。同様に、判別論理式作成部５１４３は、真理値表Ｌ１の３行目に示すように、パターンＣについては、inputを［（a,1010），（b,1101），  (c,1110)]に設定し、outputを（x,y,z）＝(0,1,1)に設定する。
【０１５２】
そして、判別論理式作成部５１４３は、真理値表Ｌ１を基に、Quine-McCluskey法等を使用して、プロトコルスタックパターン判別用の判別論理式２３０−１（図３４の（２）参照）を作成する。この判別論理式２３０−１は、output(0,0,0)，(0,0,1)，(0,1,1)のそれぞれに、対応するパターンの種別、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号が対応付けられている。判別論理式作成部５１４３は、作成した判別論理式をフォーマット変換部５１５に出力する。
【０１５３】
［プロトコルスタック判別部の処理］
次に、プロトコルスタック判別部５１５１の処理について説明する。図３５は、図２９に示すプロトコルスタック判別部５１５１の処理を説明する図である。
【０１５４】
図３５に示すように、プロトコルスタック判別部５１５１は、例えば、判別論理式作成部５１４３が作成した判別論理式２３０−１を事前設定される（図３５の（１）参照）。プロトコルスタック判別部５１５１は、この判別論理式２３０−１を用いて、パケットのプロトコルスタックパターンを判別する（図３５の（２）参照）。具体的には、プロトコルスタック判別部５１５１は、（a,b,c,d,e,f）に対応するbit列を抽出し、抽出した（a,b,c,d,e,f）を判別論理式２３０−１に入力する。そして、プロトコルスタック判別部５１５１は、判別論理式２３０−１のoutputに対応するパケットのパターンの種別、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を、パケットとともに出力する。
【０１５５】
［学習処理の手順］
次に、フォーマット変換装置５１０による学習処理の処理手順について説明する。図３６は、図２９に示すフォーマット変換装置５１０による学習処理の手順を示すフローチャートである。
【０１５６】
図３６に示すように、まず、学習部５１４では、キャプチャパケットが入力されると、プロトコルスタック解析部５１４１が、プロトコルconfigファイルを用いて、入力された各パケットを下位ヘッダから順次解析して、それぞれのプロトコルスタックパターンを特定するプロトコルスタック解析処理を行う（ステップＳ５１）。そして、パターン格納部５１４２は、入力されたパケットのプロトコルスタックパターンを、判別論理式作成部５１４３に出力するとともに、パターンＤＢ５１４４に格納するパターン格納処理を行う（ステップＳ５２）。
【０１５７】
続いて、判別論理式作成部５１４３は、入力されたパケットのプロトコルスタックパターンを基に、プロトコルスタックパターンを判別する判別論理式を作成する判別論理式作成処理を行う（ステップＳ５３）。判別論理式作成部４１４３は、作成した判別論理式をプロトコルスタック判別部５１５１に出力する（ステップＳ４４）。
【０１５８】
［フォーマット変換処理の処理手順］
次に、フォーマット変換装置５１０によるフォーマット変換処理の手順について説明する。図３７は、図２９に示すフォーマット変換装置５１０によるフォーマット変換処理の手順を示すフローチャートである。
【０１５９】
図３７に示すステップＳ５５は、図２８に示すステップＳ４５と同様の処理である。プロトコルスタック判別部５１５１は、ミラー部４１２からミラーリングされたパケットに対し、判別論理式作成部５１４３が作成した判別論理式を基に、プロトコルスタックパターンを判別するプロトコルスタック判別処理を行う（ステップＳ５６）。図３７に示すステップＳ５７，Ｓ５８は、図７に示すステップＳ１３，Ｓ１４と同様の処理を行う。
【０１６０】
［実施の形態５の効果］
このように、実施の形態５に係るフォーマット変換装置は、自装置においてパケットを学習することによって判別論理式を作成し、パケットのプロトコルスタックパターンを判別するため、実施の形態４と同様の効果を奏する。
【０１６１】
［実施の形態６］
次に、実施の形態６について説明する。実施の形態６では、フォーマット変換処理において、学習前のパケットが入力された場合に、プロトコルconfigファイルを用いて該パケットの下位ヘッダから順次捜査してプロトコルスタックパターンを判別する。
【０１６２】
図３８は、実施の形態６に係るフォーマット変換装置の構成の一例を示す図である。図３８に示すように、実施の形態６に係るフォーマット変換装置６１０は、図２９に示すフォーマット変換装置５１０と比して、フォーマット変換部５１５に代えてフォーマット変換部６１５を有する。フォーマット変換部６１５は、プロトコルスタック判別部５１５１（第１のプロトコルスタック判別部）、プロトコルスタック判別部６１５１（第２のプロトコルスタック判別部）及びパケットフォーマット変換部１３を有する。
【０１６３】
プロトコルスタック判別部６１５１は、予め作成されたプロトコルconfigファイルが事前に設定されている。プロトコルスタック判別部６１５１は、学習前のパケットが入力された場合に、プロトコルconfigファイルを用いて該パケットの下位ヘッダから順次捜査してプロトコルスタックパターンを判別する。言い換えると、プロトコルスタック判別部６１５１は、プロトコルスタック判別部５１５１では判別が不可能なパケットについては、プロトコルconfigファイルを用いてプロトコルスタックパターンを判別する。
【０１６４】
［フォーマット変換部の処理の流れ］
次に、フォーマット変換部６１５の処理の流れについて説明する。図３９は、図３８に示すフォーマット変換部６１５の処理の流れを説明する図である。
【０１６５】
プロトコルスタック判別部５１５１には、学習部５１４が作成した判別論理式が事前に設定される。そして、図３９に示すように、ミラー部４１２からパケットが入力されると、プロトコルスタック判別部５１５１は、入力されたパケットのプロトコルスタックパターンに対し、学習部５１４が作成した判別論理式を用いたプロトコル判別処理を行う（図３９の（１）参照）。
【０１６６】
ただし、プロトコルスタック判別部５１５１による判別ビット決打型（判別論理式を用いた判別手法）では判別が不可能なパケットは、プロトコルスタック判別部６１５１による下位ヘッダ捜査型（プロトコルconfigファイルを用いた判別手法）で判別を実行する（図３９の（２））。言い換えると、学習前のパケットがフォーマット変換部６１５に入力された場合、プロトコルスタック判別部６１５１は、プロトコルconfigファイルを用いたプロトコルスタックパターンの判別を行う（図３９の（３）参照）。
【０１６７】
フォーマット変換部６１５では、プロトコルスタック判別部５１５１またはプロトコルスタック判別部６１５１が、判別結果として、到着したパケット自身に加え、このパケットプロトコルスタックパターン、ヘッダストリップ箇所、変換後Ethertypeに指定するプロトコル番号を出力する。パケットフォーマット変換部１３は、プロトコルスタック判別部５１５１またはプロトコルスタック判別部６１５１の判別結果を基に、フォーマット変換を実行する（図３９の（４）参照）。そして、パケットフォーマット変換部１３によるフォーマット変換後のパケットは、パケット出力部１４から、解析装置２０（不図示）に出力される。
【０１６８】
なお、フォーマット変換処理中も、学習部５１４は、キャプチャパケットを受け取り、プロトコルスタック解析及びプロトコルスタックパターンの格納を行い、データを蓄積している。
【０１６９】
［フォーマット変換処理の処理手順］
次に、フォーマット変換装置６１０によるフォーマット変換処理の手順について説明する。図４０は、図３８に示すフォーマット変換装置６１０によるフォーマット変換処理の手順を示すフローチャートである。
【０１７０】
図４０に示すステップＳ６１は、図２８に示すステップＳ４５と同様の処理である。プロトコルスタック判別部５１５１は、ミラー部４１２からミラーリングされたパケットに対し、判別論理式作成部５１４３が作成した判別論理式を基に、プロトコルスタックパターンを判別する第１プロトコルスタック判別処理を行う（ステップＳ６２）。
【０１７１】
そして、プロトコルスタック判別部５１５１は、第１プロトコルスタック判別処理においてパケットのプロトコルスタックパターンが判別可能であるか否かを判定する（ステップＳ６３）。
【０１７２】
プロトコルスタック判別部５１５１が、第１プロトコルスタック判別処理においてパケットのプロトコルスタックパターンが判別可能でないと判定した場合（ステップＳ６３：Ｎｏ）、このパケットをプロトコルスタック判別部６１５１に出力する。そして、プロトコルスタック判別部６１５１は、プロトコルconfigファイルを用いて該パケットの下位ヘッダから順次捜査してプロトコルスタックパターンを判別する第２プロトコルスタック判別処理を行う（ステップＳ６４）。
【０１７３】
続いて、プロトコルスタック判別部５１５１が、第１プロトコルスタック判別処理においてパケットのプロトコルスタックパターンが判別可能であると判定した場合（ステップＳ６３：Ｙｅｓ）、または、第２プロトコルスタック判別処理（ステップＳ６４）終了後、ステップＳ６５に進む。図４０に示すステップＳ６５，Ｓ６６は、図７に示すステップＳ１３，Ｓ１４と同様の処理を行う。
【０１７４】
［実施の形態６の効果］
このように、実施の形態６に係るフォーマット変換装置は、自装置において作成した判別論理式でプロトコルスタックパターンを判別できないパケットについては、プロトコルconfigファイルを用いて、該パケットの下位ヘッダから順次捜査してプロトコルスタックパターンを判別する。したがって、実施の形態６によれば、２段階でパケットのプロトコルスタックパターンを判別するため、パケットのプロトコルスタックパターンの判別をさらに高速かつ確実に実行することが可能になる。
【０１７５】
［実施の形態７］
次に、実施の形態７について説明する。図４１は、実施の形態７に係るフォーマット変換装置の構成の一例を示す図である。例えば、図４１に示すように、フォーマット変換装置７１０は、図１に示すフォーマット変換装置１０と比して、対応付部７１６をさらに有する。
【０１７６】
対応付部７１６は、パケットにおける各プロトコルヘッダのテキスト情報を、該パケットのプロトコルヘッダの配置情報に対応付けて記憶するＤＢを有する。そして、対応付部７１６は、任意のプロトコルヘッダ情報を照合情報とし、プロトコルヘッダを含むパケットのプロトコルヘッダの配置情報を検索可能としている。
【０１７７】
［対応付部の構成］
図４２は、図４１に示す対応付部７１６の構成の一例を示す図である。図４２に示すように、対応付部７１６は、パケットデコード部７１６１、パース部７１６２、格納部７１６３、ＤＢ７１６４及び検索部７１６５を有する。
【０１７８】
パケットデコード部７１６１は、パケット入力部１１が入力を受け付けたパケットを取得し、取得したパケットのデコードを行い、バイナリをテキスト変換する。パース部７１６２は、パケットデコード部７１６１が変換したパケットのテキスト情報を、プロトコルヘッダ毎にパースする。格納部７１６３は、パース済みのパケット情報をバッファリングし、定期的にＤＢ７１６４に書き込む。
【０１７９】
ＤＢ７１６４は、パース済みパケット情報を保持する。図４３は、図４２に示すＤＢ７１６４が保持するデータの一例を示す図である。図４３の表Ｌ７１に示すように、ＤＢ７１６４は、入力されたパケットの、プロトコルヘッダ毎にパースされたテキスト情報を、プロトコルヘッダ毎に分けて保持する。例えば、表Ｌ７１の１行目には、「青」、「緑」、「赤」、「橙」のテキスト情報を有する４個のプロトコルヘッダで構成されるパケットの情報が保持される。また、表Ｌ７１の２行目には、「青」、「緑」、「赤」、「桃」、「黄」のテキスト情報を有する５個のプロトコルヘッダで構成されるパケットの情報が保持される。
【０１８０】
検索部７１６５は、任意のプロトコルヘッダ情報を照合情報とし、ＤＢ７１６４から、このプロトコルヘッダを含むパケットのプロトコルヘッダの配置情報を検索する。検索部７１６５は、フォーマット変換装置７１０に接続するＵＩ部（不図示）から、１個のプロトコルヘッダのテキスト情報が入力されると、ＢＤ７１６４に照合し、このプロトコルヘッダのテキスト情報を含むパケット全体の構成情報を検索する。
【０１８１】
［対応付部の処理］
次に、対応付部７１６の処理の流れについて説明する。図４４は、図４２に示す対応付部７１６の処理の流れを説明する図である。
【０１８２】
図４４に示すように、対応付部７１６にパケットが入力すると、まず、パケットデコード部７１６１がパケットのデコードを行い、バイナリをテキスト変換する（図４４の（１）参照）。そして、パケットデコード部７１６１は、テキスト情報に変換されたパケット情報をパース部７１６２に出力する。
【０１８３】
例えば、ヘッダＨ１〜Ｈ４を有するパケットＣａがパケットデコード部７１６１に入力した場合を例に説明する。この場合、パケットデコード部７１６１は、このパケットＣａのデコードを行い、各プロトコルヘッダＨ１〜Ｈ４を、テキスト「青緑赤橙」に変換し、パース部７１６２に出力する。テキスト「青」、「緑」、「赤」、「橙」は、それぞれプロトコルヘッダＨ１，Ｈ２，Ｈ３，Ｈ４に対応する。
【０１８４】
そして、パース部７１６２は、パケットのテキスト情報をヘッダ毎にパースする（図４４の（２）参照）。パース部７１６２は、例えば、パケットデコード部７１６１から入力されたパケットＣａのテキスト「青緑赤橙」を、プロトコルヘッダごとに、「青」、「緑」、「赤」、「橙」にパースし、このパース済みパケット情報（テキスト）を格納部７１６３に出力する。
【０１８５】
続いて、格納部７１６３は、パース済みパケット情報を定期的にＤＢ７１６４に書き込む（図４４の（３）参照）。これによって、ＤＢ７１６４は、パース済みパケット情報を保存する（図４４の（４）参照）。例えば、格納部７１６３は、パース済みパケット情報として、「青」、「緑」、「赤」、「橙」が入力された場合には、「青」、「緑」、「赤」、「橙」のそれぞれを、この順序でＤＢ７１６４に書き込む。この結果、図４３の１行目に示すように、「青」、「緑」、「赤」、「橙」がこの順で登録される。したがって、テキスト情報「青」、「緑」、「赤」、「橙」の順でプロトコルヘッダが配置されたパケットが、フォーマット変換装置７１０に入力したことが登録される。
【０１８６】
対応付部７１６は、このようなＤＢ７１６４を構成することによって、検索部７１６５が、カプセルパケットの任意のプロトコルヘッダ情報をクエリとして検索をかけた場合には、このプロトコルヘッダを含むパケット全体のプロトコルヘッダの配置情報を応答することができる（図４４の（５）参照）。この任意のプロトコルヘッダ情報には、インナーパケットも含む。例えば、検索部７１６５から、「橙」が検索クエリとして検索された場合には、ＤＢ７１６４から、図４３の表Ｌ１のうち「橙」を含む「青」、「緑」、「赤」、「橙」のテキスト情報がレスポンスされる。
【０１８７】
［対応付け部の処理手順］
図４５は、図４２に示す対応付部７１６による情報の対応付け処理の処理手順を示すフローチャートである。図４５に示すように、パケットが入力されると（ステップＳ７１）、パケットデコード部７１６１は、パケットのデコードを行い、バイナリをテキスト変換するパケットデコード処理を行う（ステップＳ７２）。続いて、パース部７１６２は、パケットデコード部７１６１が変換したパケットのテキスト情報を、プロトコルヘッダ毎にパースするパース処理を行う（ステップＳ７３）。そして、格納部７１６３は、パース済みのパケット情報をバッファリングし、定期的にＤＢ７１６４に書き込む格納処理を行い（ステップＳ７４）、処理を終了する。
【０１８８】
［実施の形態７の効果］
このように、実施の形態７は、パケットにおける各プロトコルヘッダのテキスト情報を、該パケットのプロトコルヘッダの配置情報に対応付けて記憶する。図４６は、図４２に示す対応付部７１６の対応付け機能を説明する図である。
【０１８９】
例えば、ユーザは、解析装置２０の検知結果（インナーパケットＰａの情報）を、ＤＢ７１６４で検索した場合について説明する。この場合、図４６に示すように、ユーザは、ＤＢ７１６４から、このインナーパケットＰａを含むパケットＣ１全体のプロトコルヘッダの配置情報を取得することが可能になる（矢印Ｙ７２：正引き）。また、ユーザは、任意のプロトコルヘッダ、例えば、カプセルヘッダ（IPv4）を、ＤＢ７１６４で検索することによって、このカプセルヘッダ（IPv4）を含むパケットＣ１全体のプロトコルヘッダの配置情報を取得することが可能になる（矢印Ｙ７１：逆引き）。
【０１９０】
このように、実施の形態７によれば、ユーザは、任意のプロトコルヘッダ情報を照合情報として、プロトコルヘッダを含むパケットのプロトコルヘッダの配置情報を検索することができる。
【０１９１】
なお、実施の形態７では、フォーマット変換装置１０に対応付部７１６をさらに追加した構成を例として説明したが、これに限らない。対応付部７１６は、フォーマット変換装置２１０，３１０，４１０，５１０，６１０に追加することも可能である。
【０１９２】
また、実施の形態１〜７では、解析装置２０とフォーマット変換装置１０，２１０，３１０，４１０，５１０，６１０，７１０とは別の装置である例について説明したが、解析装置２０が、フォーマット変換装置１０，２１０，３１０，４１０，５１０，６１０，７１０の機能を有していてもよい。
【０１９３】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１９４】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１９５】
［プログラム］
図４７は、プログラムが実行されることにより、フォーマット変換装置１０，２１０，３１０，４１０，５１０，６１０，７１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１９６】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１９７】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、フォーマット変換装置１０，２１０，３１０，４１０，５１０，６１０，７１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、フォーマット変換装置１０，２１０，３１０，４１０，５１０，６１０，７１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１９８】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１９９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０２００】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０２０１】
１  通信システム
１０，２１０，３１０，４１０，５１０，６１０，７１０  フォーマット変換装置
２０  解析装置
１１  パケット入力部
１２，２１２，３１２，４１５１，５１５１，６１５１  プロトコルスタック判別部
１３  パケットフォーマット変換部
１４  パケット出力部
４１２  ミラー部
４１３  パケットキャプチャ部
４１４，５１４  学習部
４１５，５１５，６１５  フォーマット変換部
４１４１，５１４１  プロトコルスタック解析部
４１４２  パターン分布格納部
４１４３  判別木作成部
４１４４  パターン分布ＤＢ
５１４２  パターン格納部
５１４３  判別論理式作成部
５１４４  パターンＤＢ
７１６  対応付部
７１６１  パケットデコード部
７１６２  パース部
７１６３  格納部
７１６４  ＤＢ
７１６５  検索部
Ｎ  ネットワーク
【図１】
2019097069.tif 000003
【図２】
2019097069.tif 000004
【図３】
2019097069.tif 000005
【図４】
2019097069.tif 000006
【図５】
2019097069.tif 000007
【図６】
2019097069.tif 000008
【図７】
2019097069.tif 000009
【図８】
2019097069.tif 000010
【図９】
2019097069.tif 000011
【図１０】
2019097069.tif 000012
【図１１】
2019097069.tif 000013
【図１２】
2019097069.tif 000014
【図１３】
2019097069.tif 000015
【図１４】
2019097069.tif 000016
【図１５】
2019097069.tif 000017
【図１６】
2019097069.tif 000018
【図１７】
2019097069.tif 000019
【図１８】
2019097069.tif 000020
【図１９】
2019097069.tif 000021
【図２０】
2019097069.tif 000022
【図２１】
2019097069.tif 000023
【図２２】
2019097069.tif 000024
【図２３】
2019097069.tif 000025
【図２４】
2019097069.tif 000026
【図２５】
2019097069.tif 000027
【図２６】
2019097069.tif 000028
【図２７】
2019097069.tif 000029
【図２８】
2019097069.tif 000030
【図２９】
2019097069.tif 000031
【図３０】
2019097069.tif 000032
【図３１】
2019097069.tif 000033
【図３２】
2019097069.tif 000034
【図３３】
2019097069.tif 000035
【図３４】
2019097069.tif 000036
【図３５】
2019097069.tif 000037
【図３６】
2019097069.tif 000038
【図３７】
2019097069.tif 000039
【図３８】
2019097069.tif 000040
【図３９】
2019097069.tif 000041
【図４０】
2019097069.tif 000042
【図４１】
2019097069.tif 000043
【図４２】
2019097069.tif 000044
【図４３】
2019097069.tif 000045
【図４４】
2019097069.tif 000046
【図４５】
2019097069.tif 000047
【図４６】
2019097069.tif 000048
【図４７】
2019097069.tif 000049
【図４８】
2019097069.tif 000050