(57)【要約】【課題】従来の認証端末制御では、端末がネットワークに接続された際に、ネットワークの許可端末の認証を行い、不正端末に対してはネットワークへのアクセス権を持たせないようにする。しかし、いったんアクセス権が与えられた許可端末においては、ネットワーク内にサイバー攻撃が可能となる。【解決手段】スイッチ装置が有する複数ポート中で、システム管理者が特定の装置（例えば、ルータ装置）と接続しているポートを信頼ポートとして設定する。スイッチ装置は、信頼ポートにおいてパケットを受信すると、ルータ装置のＩＰアドレス、ＭＡＣアドレスを信頼ポート情報テーブルで管理する。信頼ポートとして設定されていないポートからパケットを受信した際には、信頼ポート情報テーブルを参照することにより、受信パケットがルータになりすましたアドレス解決パケットである場合に、パケットを転送せずに廃棄することで、端末へのサイバー攻撃を抑止する。【選択図】  図１
2015165614.tif 000002
【特許請求の範囲】
【請求項１】
複数の入出力部と、
前記複数の入出力部のうち、特定の入出力部を識別する特定入出力部識別情報と前記特定の入出力部に接続される特定装置の物理アドレスとを対応づける特定入出力部情報を記憶する記憶部と、
前記複数の入出力部のうち、装置から送信された前記特定の入出力部以外の入出力部を介して受信するアドレス解決に関するパケットに含まれる送信元の送信元装置の物理アドレスと前記記憶部に記憶する前記特定入出力部情報の前記特定装置の物理アドレスとの比較を行い、前記比較の結果に応じて、前記アドレス解決に関するパケットを破棄するか転送するかを決定する解析部と
を備える通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記記憶部は、
前記特定の入出力部に接続される前記特定装置のプロトコルアドレスを前記特定入出力部情報の前記特定の入出力部と対応付けてさらに記憶し、
前記解析部は、
前記アドレス解決に関するパケットに含まれる前記送信元装置のプロトコルアドレスと前記記憶部に記憶する前記特定入出力部情報の前記特定装置のプロトコルアドレスとが一致する場合に、前記送信元装置の物理アドレスと前記記憶部に記憶する前記特定入出力部情報の前記特定装置の物理アドレスとの比較を行う
ことを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記特定の入出力部を介してプロトコルアドレスの付与に関するパケットを受信すると、
前記解析部は、
前記プロトコルアドレスの付与に関するパケットに含まれる送信元の前記特定装置の物理アドレスおよびプロトコルアドレスを取得し、取得した前記特定装置の物理アドレスおよびプロトコルアドレスをそれぞれ前記記憶部の前記特定入出力部情報に記憶する前記特定装置の物理アドレスおよび前記特定装置のプロトコルアドレスとして、前記記憶部に記憶させる
ことを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
前記複数の入出力部のいずれかからパケットを受信すると、
前記解析部は、
パケットを受信した前記複数の入出力部を識別する入出力部識別情報が、前記特定入出力部情報に記憶する前記特定入出力部識別情報と一致しない場合に、前記送信元装置の物理アドレスと前記記憶部に記憶する前記特定入出力部情報の前記特定装置の物理アドレスとの比較を行い、一致する場合に、受信したパケットが前記プロトコルアドレスの付与に関するパケットであるか否かを判定する
ことを特徴とする通信装置。
【請求項５】
請求項４に記載の通信装置であって、
各種設定情報の入力を受け付ける設定情報入出力部をさらに有し、
前記設定情報入出力部は、
前記特定入出力部識別情報の入力を受け付けると、受け付けた前記特定入出力部識別情報を前記特定入出力部情報の前記特定入出力部識別情報として、前記記憶部に記憶させる
ことを特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記複数の入出力部が受信したパケットの送信先の情報を前記解析部に通知するパケット受信部と、
受信したパケットを前記複数の入出力部を介して送信する制御を行うパケット送信部とをさらに有し、
前記記憶部は、
前記入出力部識別情報と前記複数の入出力部のそれぞれに接続される装置それぞれの物理アドレスとを対応づける入出力部物理アドレス対応情報を記憶し、
前記複数の入出力部のいずれかからパケットを受信すると、
前記パケット受信部は、
受信したパケットに含まれる送信先の物理アドレスと前記入出力部物理アドレス対応情報とを用いて、受信したパケットの送信先の前記入出力部識別情報を特定し、
前記解析部は、
パケットを受信した入出力部が前記特定の入出力部の場合で、受信したパケットが前記プロトコルアドレスの付与に関するパケットではないとき、前記パケット受信部が特定した送信先の前記入出力部識別情報を前記パケット送信部に通知し、
パケットを受信した入出力部が前記特定の入出力部以外の入出力部の場合で、受信したパケットが前記アドレス解決に関するパケットではないとき、前記パケット受信部が特定した送信先の前記入出力部識別情報を前記パケット送信部に通知し、
前記パケット送信部は、
前記解析部からの通知に従って、通知された送信先の前記入出力部識別情報によって識別される入出力部を介して受信したパケットを送信する
ことを特徴とする通信装置。
【請求項７】
請求項６に記載の通信装置であって、
前記物理アドレスは、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスである
ことを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記記憶部にＭＡＣ認証情報として予め記憶したＭＡＣアドレスと一致するＭＡＣアドレスを有する装置によるパケットの送信を許可するＭＡＣ認証に対応しており、
前記プロトコルアドレスは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスであり、
前記アドレス解決に関するパケットは、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットであり、
前記プロトコルアドレスの付与に関するパケットは、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットであり、
前記記憶部に記憶する前記特定入出力部情報の前記特定装置のＭＡＣアドレスとの比較を行う前記送信元装置のＭＡＣアドレスは、前記ＡＲＰパケットに含まれるＡＲＰフレーム内の送信元ＭＡＣアドレスである
ことを特徴とする通信装置。
【請求項９】
通信装置における通信制御方法であって、
前記通信装置は、
複数の入出力部と、前記複数の入出力部が受信したパケットの送信先の情報を取得するパケット受信部と、受信したパケットの転送可否を判定する解析部と、受信したパケットを前記複数の入出力部を介して送信する制御を行うパケット送信部と、前記複数の入出力部を識別する入出力部識別情報と前記複数の入出力部のそれぞれに接続される装置それぞれのＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスとを対応づける入出力部ＭＡＣアドレス対応情報および前記複数の入出力部のうち、特定の入出力部を識別する特定入出力部識別情報と前記特定の入出力部に接続される装置のＭＡＣアドレスおよびＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスとを対応づける特定入出力部情報を記憶する記憶部とを有し
前記通信装置における通信制御方法は、
前記複数の入出力部のいずれかを介してパケットを受信すると、
受信したパケットに含まれる送信先の装置のＭＡＣアドレスと前記入出力部ＭＡＣアドレス対応情報とを用いて、受信したパケットの送信先の前記入出力部識別情報を特定する第１のステップと、
前記第１のステップにて特定された送信先の前記入出力部識別情報と前記特定入出力部情報に記憶する前記特定入出力部識別情報とが一致するか否かを判定する第２のステップと、
前記第２のステップにて、一致しない場合に、受信したパケットがＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットであるか否かを判定する第３のステップと、
前記第３のステップにて、前記ＡＲＰパケットである場合に、受信したパケットに含まれる送信元の装置のＭＡＣアドレスおよびＩＰアドレスとに基づいて、前記ＡＲＰパケットを破棄するか転送するかを決定する第４ステップと
を有する通信装置における通信制御方法。
【請求項１０】
請求項９に記載の通信装置における通信制御方法であって、
前記第２のステップにて、一致する場合に、受信したパケットがＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットであるか否かを判定する第５のステップと、
前記第５のステップにて、前記ＤＨＣＰパケットである場合に、前記ＤＨＣＰパケットに含まれる送信元の前記特定の入出力部に接続される装置のＭＡＣアドレスおよびＩＰアドレスとに基づいて、前記特定入出力部情報を更新する第６のステップと
を有する通信装置における通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置および通信装置における通信制御技術に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０１０−２２００６６号公報（特許文献１）がある。この公報には、「監視ユニット１０１の不正ＰＣ検出部２０４は、登録済みリスト及び検出リストを参照して、不正ノードから送信されたＡＲＰ要求パケットを検出し、不正ノードによるアクセスを排除するために必要な情報を送信リストへ格納する。ＡＲＰテーブル偽装部２０６は、ＡＲＰテーブルにおいて、不正ノードのＭＡＣアドレスを監視ユニット１０１のＭＡＣアドレスに偽装する。偽装ＡＲＰリクエスト送信部２０７は、不正ノードのアクセス先のノードへ偽装ＡＲＰ要求パケットを送信する。そして、不正ノードのアクセス先のノードから偽装ＡＲＰ要求パケットに対するＡＲＰ応答パケットを受信した後、偽装ＡＲＰリプライ送信部２０８は、不正ノードへ偽装ＡＲＰ応答パケットを送信する」と記載されている（要約参照）。
【０００３】
従来、外部ネットワークに物理的接続をしない、また、多重のファイヤーウォールをかけることで外部ネットワークからの攻撃に対して比較的安全に利用が為されている社内ネットワークに代表される閉じられた空間で利用されるネットワーク（以下、「閉じられたネットワーク」と呼ぶ。）システムにおいては、閉じられたネットワーク内に不正端末を接続した場合に、アドレス解決パケットの１つであるＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）（非特許文献１）、およびＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）認証を用いた特許文献１の認証端末技術によって、認証端末の通信を保護している。この認証端末技術には、ネットワークアドレスの一つであり、物理アドレス（ハードウェアアドレス）であるＭＡＣアドレスが認証情報として用いられており、閉じられたネットワーク内に存在可能な端末のＭＡＣアドレスを管理することで端末の通信許可、通信拒否を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２００６６号公報
【非特許文献】
【０００５】
【非特許文献１】”ＡＲＰ  Ｃａｃｈｅ  Ｐｏｉｓｏｎｉｎｇ”  Ｓｔｅｖｅ  Ｇｉｂｓｏｎ（２００５−１２−１１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＡＣ認証とは、ネットワーク内で通信を許可する端末のＭＡＣアドレス情報を登録し、登録されていないＭＡＣアドレスをもつ端末の通信を許可しない認証技術であり、認証済み端末からの不正パケットを抑止することができない問題がある。
【０００７】
そのため、特許文献１では、閉じられたネットワーク内で既に認証された認証端末からの不正パケットの送信、転送を防ぐことはできない。不正パケットとしては、アドレス解決パケットを不正利用したものがある。以下、アドレス解決パケットの一例としてＩＰｖ４で用いられるＡＲＰパケットを用いて課題を説明するが、ＩＰｖ６で用いられるアドレス解決パケットのＮＤＰ（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）でも同様である。
【０００８】
閉じられたネットワーク内の認証済み端末が、閉じられたネットワーク内の他の認証済み端末に、ＡＲＰパケットを不正利用した不正ＡＲＰパケットを送信し、閉じられたネットワーク内の他の認証済み端末が有するＭＡＣアドレスとＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの対応情報であるＡＲＰテーブルを不正なＡＲＰテーブルに変更させる。この閉じられたネットワーク内の他の認証済み端末は、不正なＡＲＰテーブルに従ってパケットを送信するため、本来のパケット送信先ではない端末へパケットを送信することになり、正常な通信ができない。その結果、不正ＡＲＰパケットの送信による通信遮断、盗聴などが可能である。つまり、不正ＡＲＰパケットを送信することで、通信遮断や盗聴を行うサイバー攻撃が可能となる。
【０００９】
したがって、本発明は、例えば、閉じられたネットワーク内の認証済み端末が、アドレス解決パケットを不正利用することを防ぎ、閉じられたネットワーク内の他の認証端末の通信遮断、盗聴を防ぐことを目的とする。
【課題を解決するための手段】
【００１０】
上述の課題の少なくとも一を解決するために、本発明の一態様では、以下の形態または適用例として実現することが可能である。
複数の入出力部と、複数の入出力部のうち、特定の入出力部を識別する特定入出力部識別情報と特定の入出力部に接続される特定装置の物理アドレスとを対応づける特定入出力部情報を記憶する記憶部と、複数の入出力部のうち、装置から送信された特定の入出力部以外の入出力部を介して受信するアドレス解決に関するパケットに含まれる送信元の送信元装置の物理アドレスと記憶部に記憶する特定入出力部情報の特定装置の物理アドレスとの比較を行い、比較の結果に応じて、アドレス解決に関するパケットを破棄するか転送するかを決定する解析部とを備える通信装置。
【発明の効果】
【００１１】
本発明の一態様によれば、閉じられたネットワーク内の認証済み端末が、アドレス解決パケットを不正利用することによって、閉じられたネットワーク内の他の認証端末の通信遮断、盗聴を防ぐことが可能である。
上記以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】ネットワークシステム全体の構成、スイッチ装置の構成を説明する図である。
【図２】ＤＨＣＰパケットを説明する図である。
【図３】ＡＲＰパケットを説明する図である。
【図４】第１の実施例における、スイッチ装置が持つＦＤＢテーブル一例である。
【図５】第１の実施例における、スイッチ装置へコンフィグ情報を設定するコマンドの一例を説明する図である。
【図６】第１の実施例における、スイッチ装置が持つ信頼ポート情報テーブルの一例である。
【図７】第１の実施例における、パケットを受信した際のパケット解析部における信頼ポート判定処理のフローを示す図の例である。
【図８】第１の実施例における、信頼ポートでパケットを受信した際のパケット解析部による信頼ポート情報テーブルの更新（登録）処理のフローを示す図の例である。
【図９】第１の実施例における、非信頼ポートでパケットを受信した際の処理のフローを示す図の例である。
【図１０】変形例における、信頼ポート情報テーブルの一例である。
【図１１】ＡＲＰ  Ｒｅｐｌｙパケットを不正に利用する際のシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を、実施例に基づいて説明する。
（第１の実施例）
図１は、第１の実施例におけるネットワークシステム全体の構成、転送装置であるスイッチ装置の構成を説明する図である。
【００１４】
ネットワークシステム１０は、例えば、ＭＡＣアドレスによる認証（ＭＡＣ認証）によって認証外の端末の通信を制限する社内ネットワークなどの閉じられたネットワークにおけるネットワークシステムである。ネットワークシステム１０は、ネットワークアドレスの一つであり、プロトコルアドレスであるＩＰアドレス：ＩＰ１とＭＡＣアドレス：ＭＡＣ１を持ち、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバ機能を有するルータ装置１００と、ＩＰアドレス：ＩＰ２とＭＡＣアドレス：ＭＡＣ２を持つ端末Ａ３００と、ＩＰアドレスＩＰ３とＭＡＣアドレス：ＭＡＣ３を持つ端末Ｂ４００と、ルータ装置１００、端末Ａ３００、端末Ｂ４００間のパケットを転送し、中継するスイッチ装置２００、スイッチ装置２００を制御し管理する管理装置５１０から構成されている。
【００１５】
「端末」とは、通信を行うことができる装置（例えば、コンピュータ）である。以下、端末を「装置」や「通信装置」と記載することがある。また、スイッチ装置２００やルータ装置１００も「通信装置」と呼ぶこともある。また、スイッチ装置２００は、「転送装置」とも呼ぶこともある。また、ルータ装置１００は、インターネット５００と接続されている。
【００１６】
また、本実施例では、プロトコルアドレスの一つとしてＩＰアドレスを用い、ハードウェアアドレスの一つとしてＭＡＣアドレスを用いて説明するが、これに限られない。
また、ＤＨＣＰとは、端末にＩＰアドレスを自動的に割り当てるプロトコルであり、ＤＨＣＰで用いられるＤＨＣＰパケットは、図２で示すフォーマットで構成されるパケットである。なお、図２で示すフォーマットは一例であり、これに限られない。
【００１７】
ＤＨＣＰパケットを図２を用いて説明する。なお、このＤＨＣＰパケットは、一般的なＤＨＣＰのプロセスに用いられるものと同様であるため、各フィールドの表す意味や各フィールドに格納される値などについては、本実施例において使用する箇所のみ説明する。
【００１８】
ＤＨＣＰパケットは、ＭＡＣヘッダ２０、ＩＰヘッダ４０、ＵＤＰヘッダ５０をＤＨＣＰフレーム６０に順に付与して構成される。ＭＡＣヘッダ２０は、パケットを送信する宛先の装置のＭＡＣアドレスを表す宛先ＭＡＣアドレス２１とパケットを送信する送信元の装置のＭＡＣアドレスを表す送信元ＭＡＣアドレス２２、パケットの種類を表すタイプ２３よりなる。ＩＰヘッダ４０には、パケットが従うプロトコルを表すプロトコル４１が含まれる。ＵＤＰヘッダ５０には、パケットを送信する送信元の装置におけるパケットを送信するポートを表す送信元ポート５１が含まれる。ＤＨＣＰフレーム６０は、ＤＨＣＰの動作の種類（要求とその応答）を表すオペコード（ＯＰ）６１と、ＤＨＣＰリレーエージェントのＩＰアドレスを表すリレーエージェントＩＰアドレス６２を含む。
【００１９】
スイッチ装置２００は、複数のポートを有する。このポートは、外部の装置とのパケットの入出力（送受信）を行う入出力部である。ルータ装置１００とはポート２１０、端末Ａ３００とはポート２２０、端末Ｂとはポート２３０と物理回線によって接続されている。ルータ装置１００から送信されるパケットはポート２１０で、端末Ａ３００から送信されるパケットはポート２２０で、端末Ｂ４００から送信されるパケットはポート２３０で受信される。
【００２０】
第１の実施例においては、スイッチ装置２００においてルータ装置１００と接続されるポート２１０を信頼ポート、端末Ａ３００、および端末Ｂ４００と接続されるポート２２０、ポート２３０を非信頼ポートとする。また、端末Ａ３００がネットワークシステム内の端末Ｂ４００にサイバー攻撃を実施するアタック端末、端末Ｂ４００はネットワークシステム内で通常運用され、サイバー攻撃を実施しない非アタック端末とする。なお、以降の説明では、端末Ａ３００から端末Ｂ４００にサイバー攻撃を実施するため、端末Ｂ４００を被アタック端末と表現する。
【００２１】
ここで、信頼ポートとは、スイッチ装置２００が有する複数のポートのうち、予め管理者等が選択し、設定する特定のポートである。例えば、不正な装置ではなく、サイバー攻撃を実施しない信頼できる装置（以下、「信頼装置」と呼ぶ。）と接続するポートである。また、信頼装置は、例えば、事前に管理者等が選択し、設定する。
【００２２】
また、本実施例において、信頼ポートに接続される装置は、閉じられたネットワークの端点に位置する装置であり、閉じられたネットワーク内のパケットが多く通過する装置である。そのため、この装置に偽装されると、閉じられたネットワーク内の広い範囲で通信障害などの影響が出る可能性があるため、サイバー攻撃から守らなければならない装置である。
【００２３】
つまり、信頼ポートとは、このポートにおける通信を保護する必要があるポートである。したがって、信頼ポートを通信保護ポートと呼ぶこともある。また、信頼ポートとは、このポートに接続された装置が、アタック端末によってなりすまされていないかを監視する対象のポート（監視対象ポート）でもある。
【００２４】
また、信頼装置とは、この装置における通信を保護する必要がある装置である。したがって、信頼装置を通信保護装置と呼ぶこともある。本実施例においては、信頼装置をルータ装置１００として説明するが、閉じられたネットワークの端点に位置する装置でなくても、重要な装置（例えば、サーバ装置など）であれば、予め管理者等が信頼装置として認定し、設定することも可能である。
また、閉じられたネットワーク内に複数の信頼装置が存在する場合は、スイッチ装置２００の複数のポートが、信頼ポートとして設定されることになる。
【００２５】
本実施例における、サイバー攻撃とは、アタック端末が、ルータ装置１００になりすましたアドレス解決パケット（偽装アドレス解決パケットとも呼ぶ）を送信することによる被アタック端末での通信遮断発生として説明する。アドレス解決パケットの一つとして、本実施例において、ＡＲＰパケットを用いて説明する。このプロトコルは、ハードウェアアドレスとプロトコルアドレスの関係を管理するものである。ＡＲＰパケットによるアドレス解決プロセスを実行することで、パケットの送信先（以下、「宛先」とも記載する。）の装置のＩＰアドレスとその装置のＭＡＣアドレスとの対応情報をＡＲＰテーブルとして学習することができる。
【００２６】
ＡＲＰパケットは、図３で示すフォーマットで構成されるパケットである。また、本実施例においては、説明を簡略するためポートは物理ポート上の情報とするが、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）にくくりついた論理ポートで構成してもよい。なお、図３で示すフォーマットは一例であり、これに限られない。
【００２７】
ＡＲＰパケットを図３を用いて説明する。なお、このＡＲＰパケットは、一般的なＡＲＰのプロセスに用いられるものと同様であるため、各フィールドの表す意味や各フィールドに格納される値などについては、本実施例において使用する箇所のみ説明する。
【００２８】
ＡＲＰパケットは、ＭＡＣヘッダ２０をＡＲＰフレーム３０に付与して構成される。ＭＡＣヘッダ２０は、図２のＭＡＣヘッダ２０と同様のため、説明を省略する。ＡＲＰフレーム３０には、ＡＲＰの動作の種類（要求（Ｒｅｑｕｅｓｔ）とその応答（Ｒｅｐｌｙ））を表すオペレーション３１、ＡＲＰパケットを送信する送信元の装置のＭＡＣアドレスを表す送信元ＭＡＣアドレス３２、ＡＲＰパケットを送信する送信元の装置のＩＰアドレスを表す送信元ＩＰアドレス３３、ＡＲＰパケットを送信する宛先の装置のＩＰアドレスを表す送信先ＩＰアドレス３４が含まれる。
【００２９】
ここで、図１を参照して、本発明が解決しようとする課題を詳細に説明する。
非特許文献１では、ＡＲＰの脆弱性を指摘し、認証済み端末が、アタック端末としてＡＲＰ  Ｒｅｐｌｙパケットを不正利用すると、受信したパケットを送信する際に参照するＡＲＰテーブル（ＭＡＣアドレスとＩＰアドレスの対応情報）（次宛経路情報）を書き換えることが可能となり、閉じられたネットワーク内の他の端末（被アタック端末）の通信遮断、盗聴を行うサイバー攻撃が可能である。これは、既知のＩＰアドレスから未知のＭＡＣアドレスを得るプロトコルであるＡＲＰには、認証や暗号化は一切ないため、アタック端末によるＡＲＰパケットの改竄が容易であり、その結果、被アタック端末のＡＲＰテーブルを不正なものに書き換えることが可能であるからである。
【００３０】
ＡＲＰ  Ｒｅｐｌｙパケットを不正に利用することによるＡＲＰテーブルの書き換えについて図１および図１１を用いて説明する。
図１１は、端末Ａ３００が、ＡＲＰ  Ｒｅｐｌｙパケットを不正に利用する際のシーケンス図である。ルータ装置１００は、ＩＰアドレス：ＩＰ３を有する端末のＭＡＣアドレスを取得するため、ＩＰアドレス：ＩＰ３宛てにＡＲＰ  Ｒｅｑｕｅｓｔパケットをブロードキャストで送信する（S１）。このＩＰアドレス：ＩＰ３宛てにＡＲＰ  Ｒｅｑｕｅｓｔパケットを受信したスイッチ装置２００は、端末Ａ３００および端末Ｂ４００に対してブロードキャストで送信する。
【００３１】
端末Ｂ４００は、ＩＰアドレス：ＩＰ３を有するため、このＡＲＰ  Ｒｅｑｕｅｓｔパケットに対して、端末ＢのＭＡＣアドレス：ＭＡＣ３を通知するＡＲＰ  Ｒｅｐｌｙパケットをスイッチ装置２００を介してルータ装置１００に対してユニキャストで送信する（Ｓ３）。
【００３２】
一方、端末Ａ３００は、ＩＰアドレス：ＩＰ２のため、本来であれば、このＡＲＰ  Ｒｅｑｕｅｓｔパケットに対して応答しない。しかし、端末Ａ３００が、ＩＰアドレス：ＩＰ３を有する端末のＭＡＣアドレスを問い合わせるＡＲＰ  Ｒｅｑｕｅｓｔパケットに対して、端末Ｂ４００になりすまして、「ＩＰアドレス：ＩＰ３を有する端末は、端末Ａ（ＭＡＣアドレス：ＭＡＣ２）である」として、端末Ａ３００のＭＡＣアドレス：ＭＡＣ２を通知する不正なＡＲＰ  Ｒｅｐｌｙパケットをスイッチ装置２００を介してルータ装置１００に対してユニキャストで送信（Ｓ２）すると、ルータ装置１００がこの不正なＡＲＰ  Ｒｅｐｌｙパケットを受信して、ＩＰアドレス：ＩＰ３に対応するＭＡＣアドレスは、「ＭＡＣ２」であるとしてＡＲＰテーブルを登録することになる（Ｓ４）。この結果、ルータ装置１００は、ＩＰアドレス：ＩＰ３の端末Ｂ３００宛てのパケットをＭＡＣアドレス：ＭＡＣ２を宛先として送信する（Ｓ５）ことになり、本来、端末Ｂ３００に送信されるべきパケットが、スイッチ装置２００を介して端末Ａ４００に対して送信されることになる。
【００３３】
したがって、アタック端末である端末Ａ４００が、不正なＡＲＰ  Ｒｅｐｌｙパケットをルータ装置１００に送信することで、ルータ装置１００のＡＲＰテーブルを不正なものに書き換えさせることが可能であり、本来の宛先とは異なる端末へパケットを送信させる（不正な経路を通過させる）ことが可能となり、アタック端末による通信の遮断、盗聴が可能となる。
【００３４】
さらに、ＡＲＰには、閉じられたネットワーク内のアドレス重複の検知などに使用されるＧｒａｔｕｉｔｏｕｓ  ＡＲＰがある。このＧｒａｔｕｉｔｏｕｓ  ＡＲＰは、アドレス重複の検知以外にも、閉じられたネットワーク内の端末上のＡＲＰテーブル（例えば、ＩＰアドレスとＭＡＣアドレスの対応関係の情報）を更新するためにも用いられる。つまり、このＧｒａｔｕｉｔｏｕｓ  ＡＲＰ  Ｒｅｑｕｅｓｔパケットを受信した端末は、既に学習して作成したＡＲＰテーブルを更新する。
【００３５】
したがって、アタック端末が、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケットを不正利用することによって、被アタック端末のＡＲＰテーブルを強制的に更新させることができ、被アタック端末が送受信するパケットが、不正な経路を通過するように通信経路を変更することができ、アタック端末による通信遮断、盗聴が可能となる。
【００３６】
上記より、認証機能を持つ閉じられたネットワークにおいても、認証済み端末が、他の認証済み端末になりすまして、認証済み端末がアドレス解決パケットを不正利用することによって、閉じられたネットワーク内の他の端末の通信遮断、盗聴を行うサイバー攻撃が可能となるという課題がある。
【００３７】
以下、上記の課題を解決するための本発明の一態様の詳細を説明する。
図１を参照して、スイッチ装置２００の内部構成について説明する。
スイッチ装置２００は、ネットワークインタフェース１０００、転送部１１００、設定情報入出力部１２００、パケット解析部１３００と記憶部１０５０を有する。転送部１１００は、転送エンジンとも記載され、記憶部１０５０は、メモリとも記載され、パケット解析部１３００と設定情報入出力部１２００は、制御部とも記載される。
【００３８】
ネットワークインタフェース１０００、転送部１１００、設定情報入出力部１２００、パケット解析部１３００は、例えばＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）のような集積回路で設計する等によりハードウェアで実現してもよい。また、転送部１１００やパケット解析部１３００がプロセッサであり、これが記憶部（メモリ）１０５０に格納されたプログラムを実行することによって、各機能が実現されてもよい。その場合、以下の説明において転送部１１００やパケット解析部１３００が実行する処理は、実際にはこれらに相当するプロセッサによって実行される。
【００３９】
記憶部１０５０には、パケットの転送に関する情報であるＦＤＢ（Ｆｏｒｗａｒｄｉｎｇ  ＤａｔａＢａｓｅ）テーブル２０００、信頼ポートに関する情報である信頼ポート情報テーブル２１００が格納される。
【００４０】
ネットワークインタフェース１０００は、スイッチ装置２００が持つ複数のポート２１０〜２３０を制御し、これらに対して、ポート番号を示す値を１から番号を振って管理している。そのため、ポート２１０はポート番号１、ポート２２０はポート番号２、ポート２３０はポート番号３に、それぞれ対応している。スイッチ装置２００に接続される端末の数は、３以上であってもよい。一般的に、スイッチ装置２００が有するポート数は、接続される装置数以上となる。
【００４１】
ネットワークインタフェース１０００は、各ポート２１０〜２３０でパケットを受信すると、受信したパケット（以下、「受信パケット」と呼ぶ。）を転送部１１００へ転送し、パケットを受信したポートのポート番号である受信ポート番号を転送部１１００に通知する。また、転送部１１００から、パケットの出力先のポートのポート番号である出力先ポート番号を通知され、転送部１１００から、転送パケットを受信すると、出力先ポート番号に対応するポートから受信した転送パケットを送信する制御を行う。なお、ポート番号とは、各ポートを識別する情報である。
【００４２】
転送部１１００は、パケット受信部１１１０、パケット送信部１１２０を有する。パケット受信部１１１０は、ネットワークインタフェース１０００が転送した受信パケットのヘッダ等に含まれる情報とネットワークインタフェース１０００が通知した受信ポート番号とからパケットの送信先の装置のＭＡＣアドレスとパケットを送信する出力先のポートのポート番号との対応情報であるＦＤＢテーブル２０００を作成する。つまり、ＦＤＢテーブル２０００は、各ポートのポート番号とこれらのポートに接続される装置のそれぞれのＭＡＣアドレスとを対応づける、ポートとＭＡＣアドレスの対応情報である。
【００４３】
そして、受信パケットと受信ポート番号とＦＤＢテーブル２０００に格納された各種情報を用いて、パケットを送信する出力先のポート番号である出力先ポート番号の情報と受信ポート番号の情報と受信パケットとを、パケット解析部１３００に｛受信パケット、受信ポート番号、出力先ポート番号｝のひと組の情報として送信する。
【００４４】
ここで、図４を用いてＦＤＢテーブル２０００について説明する。ＦＤＢテーブル２０００は、パケットの宛先の装置のＭＡＣアドレスである宛先ＭＡＣアドレス２０１０とパケットの出力先のポート番号である出力先ポート番号２０２０で構成される。つまり、パケットの宛先のＭＡＣアドレスと、このＭＡＣアドレスを有する装置が接続されたポート番号とを対応づけるテーブル（ポート番号ＭＡＣアドレス対応テーブル）である。宛先ＭＡＣアドレス２０１０は、各ポート２１０〜２３０と接続されている装置のＭＡＣアドレスが格納され、出力先ポート番号２０２０は、ネットワークインタフェース１０００が管理している各ポート２１０〜２３０のポート番号が格納される。このＦＤＢテーブル２０００を参照することで、パケットの転送先を特定することができる。
【００４５】
スイッチ装置２００は、各ポート２１０〜２３０でパケットを受信すると、パケット受信部１１１０が、受信パケットの送信元ＭＡＣアドレス２２に格納されているＭＡＣアドレスを宛先ＭＡＣアドレス２０１０に、ネットワークインタフェース１０００から通知された受信ポート番号を出力先ポート番号２０２０に格納して、ＦＤＢテーブル２０００を作成する。
【００４６】
このため、図１のネットワークシステム１０において、スイッチ装置２００のＦＤＢテーブル２０００は、ポート２１０、ポート２２０、ポート２３０でのパケットの受信により図４で示す各エントリが作成される。
【００４７】
また、パケット送信部１１２０は、詳細は後述するが、パケット解析部１３００が送信する｛出力先ポート番号、転送パケット｝の情報をネットワークインタフェース１０００に送信する。
【００４８】
設定情報入出力部１２００は、ネットワークシステム１０の管理者によるスイッチ装置２００に対するコンフィグ情報の設定（設定情報の入力）を受け付け、受け付けたコンフィグ情報を記憶部１０５０に記憶（登録）する。また、登録したコンフィグ情報を解釈する。例えば、図５で示されるコンフィグ情報により設定情報入出力部１２００は、信頼ポート情報テーブル２１００を更新する。
【００４９】
設定情報入出力部１２００は、管理者が操作する管理装置５１０と接続され、管理者からの設定情報の入力や各種制御を受け付け、また、記憶部１０５０に記憶（登録）している設定情報を管理装置５１０に出力するインタフェースである。
【００５０】
また、例えば、ネットワークインタフェース１０００が有するポートのうちの１つを、設定情報入出力部１２００としてもよい。また、スイッチ装置２００に設けられるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）による入出力表示部であってもよい。
【００５１】
信頼ポート情報テーブル２１００は、図６で示すように信頼ポート２１１０、ルータＩＰアドレス２１２０、ルータＭＡＣアドレス２１３０を有する。信頼ポート２１１０は、管理者によって設定される信頼ポートであり、ルータＩＰアドレス２１２０は、信頼ポートに接続される装置のＩＰアドレスであり、ルータＭＡＣアドレス２１３０は、この装置のＭＡＣアドレスである。なお、本実施例において、信頼ポートに接続される通信装置がルータであるため、ルータＩＰアドレスおよびルータＭＡＣアドレスと表記するが、信頼ポートに接続される通信装置は、ルータに限られない。そのため、ルータＩＰアドレスは、「信頼装置（通信保護装置）ＩＰアドレス」、ルータＭＡＣアドレスは、「信頼装置（通信保護装置）ＭＡＣアドレス」と言い換えてもよい。信頼ポート情報テーブル２１００の登録については、図８を用いて説明する。
【００５２】
図５は、スイッチ装置２００が受け付けて記憶部（メモリ）１０５０に記憶するコンフィグ情報のコマンドの例を示したものである。このコンフィグ情報では、設定情報入出力部１２００は、行１〜４において、「ポート２」および「ポート３」は、ＭＡＣ認証を行うポートであると解釈し、行５により、ＭＡＣ認証機能を有効とさせ、行６、７において、ＭＡＣ認証により通信が許容されるＭＡＣアドレスの情報を解釈し、行８によりＭＡＣ認証情報となるデータベースとして通信が許容されるＭＡＣアドレスをスイッチ装置１００の記憶部（メモリ）１０５０に登録する。また、行９、１０において設定情報入出力部１２００は、「ポート１」が信頼ポートであると解釈し、信頼ポート２１１０に「ポート１」を登録する。これにより信頼ポート情報テーブル２１００は、「ポート１」のエントリを保有する。
【００５３】
この処理により、信頼ポート情報テーブル２１００は、設定情報入出力部１２００が信頼ポートと解析した信頼ポート数分のエントリを持つテーブルとなる。ルータＩＰアドレス２１２０、ルータＭＡＣアドレス２１３０は、パケット解析部１３００が信頼ポートから受信したパケットに対しての解析結果が格納される。本格納処理は後述する図８において説明する。なお、管理者が、信頼ポートだけでなく、この信頼ポートに接続される装置のＭＡＣアドレスとＩＰアドレスの両方もしくはいずれか一方を予めコンフィグ情報として設定することも可能である。
【００５４】
パケット解析部１３００は、パケット受信部１１１０から通知された｛受信パケット、受信ポート番号、出力先ポート番号｝の情報と信頼ポート情報テーブル２１００を基にして、信頼ポートからパケットを受信した場合は、信頼ポート２１１０を検出し、ルータＩＰアドレス２１２０、ルータＭＡＣアドレス２１３０を更新する。信頼ポート情報テーブル２１００の更新について詳細は後述する。
【００５５】
また、非信頼ポートからパケットを受信した場合は、アドレス解決パケットであるか否かを解析し、受信したパケットを中継、廃棄するかを決定する（転送可否を判定する）。つまり、パケット解析部１３００は、ポート２１０、２２０、２３０のうち、特定のポートである信頼ポート（ポート２１０）以外のポート２２０、２３０を介して、ポート２２０、２３０に接続された装置（端末Ａ３００、端末Ｂ４００）が送信したアドレス解決パケットを受信すると、このアドレス解決パケットに含まれる送信元の装置（端末Ａ３００、端末Ｂ４００）のＭＡＣアドレスと記憶部１０５０に記憶する信頼ポート情報テーブル２１００の信頼ポート（ポート２１０）に接続されるルータ装置１００のＭＡＣアドレスであるルータＭＡＣアドレス２１３０との比較を行い、受信したアドレス解決パケットを破棄するか転送（中継）するかを決定する。
【００５６】
中継時は、パケット受信部１１１０から通知された出力先ポート番号の情報と、受信パケットを転送パケットとして、パケット送信部１１２０に｛出力先ポート番号、転送パケット｝の情報として送信する。
【００５７】
次に、パケット解析部１３００がパケット受信部１１１０から通知された情報を基に、パケットを受信したポートが信頼ポートか非信頼ポートかを判定する処理について説明する。
図７は、ポート２１０、２２０、２３０のうち１つのポートにおいて、パケットを受信した際のパケット解析部１３００における信頼ポート判定処理のフローを示す図である。
【００５８】
ポート２１０〜２３０のいずれかのポートは、パケットを受信すると、ネットワークインタフェース１０００を介してパケット受信部１１１０に受信パケットを転送し、ネットワークインタフェース１０００は、パケットを受信したポートのポート番号である受信ポート番号をパケット受信部１１１０に通知する。（Ｓ１３１０）。
【００５９】
なお、各ポート２１０〜２３０において受信するパケットは、既にＭＡＣ認証が済んでいる認証済み装置が送信するパケットである。つまり、各装置がスイッチ装置２００に接続されると、スイッチ装置２００は、スイッチ装置２００の記憶部１０５０に予めＭＡＣ認証情報として記憶（登録）したＭＡＣアドレスと、各装置のＭＡＣアドレスとが一致するか否かを判定する。
【００６０】
一致した場合は、ＭＡＣアドレスが一致した装置を認証済み装置と判定し、この認証済み装置によるパケットの送信を許可する。一致しなかった場合は、ＭＡＣアドレスが一致しなかった装置が送信するパケットの転送を許可しない。この場合、スイッチ装置２００は、ＭＡＣアドレスが一致しなかった装置が送信するパケットを破棄してもよいし、管理者に対して、ＭＡＣアドレスが一致しなかった装置がスイッチ装置２００に接続されたことを設定情報入出力部１２００を介して通知してもよい。
また、ＭＡＣ認証は、装置接続時の実行に限られず、管理者が任意に設定した周期毎に実行してもよいし、各ポート２１０〜２３０においてパケットを受信する毎に実行してもよい。
【００６１】
パケット受信部１１１０は、ネットワークインタフェース１０００を介して転送された受信パケットのＭＡＣヘッダ２０の宛先ＭＡＣアドレス２１に格納されたＭＡＣアドレスを用いてＦＤＢテーブル２０００の宛先ＭＡＣアドレス２０１０を検索し、受信パケットのＭＡＣアドレスと一致する宛先ＭＡＣアドレス２０１０と対応する出力先ポート番号２０２０を特定する（Ｓ１３１１）。特定した出力先ポート番号２０２０に格納された出力先ポート番号の情報と転送された受信パケットと通知された受信ポート番号の情報とをパケット解析部１３００に送信する（Ｓ１３１２）。  パケット解析部１３００は、転送部１１００のパケット受信部１１１０から通知された受信ポート番号と同一のポート番号を持つエントリが信頼ポート情報テーブル２１００に登録されているかを確認する（Ｓ１３１３）。つまり、受信ポート番号を用いて信頼ポート情報テーブル２１００の信頼ポート２１１０を検索し、受信ポート番号と一致する信頼ポート２１１０を特定する。
【００６２】
信頼ポート情報テーブル２１００に登録されている信頼ポート２１１０は、管理者が信頼ポートとして設定したポート番号である。そのため、受信ポート番号が信頼ポート２１１０に登録されている場合（Ｓ１３１３のＹＥＳ）、その受信ポート番号を有するポートは、信頼ポートとして動作していると判定できる（Ｓ１３１４）。
【００６３】
一方、受信ポート番号が信頼ポート２１１０に登録されていない場合（Ｓ１３１４のＮＯ）、その受信ポート番号を有するポートは、信頼ポートではない非信頼ポートとして動作していると判定できる（Ｓ１３１５）。
【００６４】
次に、ポート２１０においてパケットを受信したことを例として、Ｓ１３１３の処理を説明する。パケット解析部１３００は、図６の信頼ポート情報テーブル２１００の信頼ポート２１１０にパケット受信部１１１０から通知された受信ポート番号であるポート１と一致するエントリがあるかを判定する。結果として、信頼ポート情報テーブル２１００の信頼ポート２１１０にポート１があるため、受信したポート２１０が信頼ポートであると判定する。
【００６５】
次に、ポート２２０においてパケットを受信したことを例として、Ｓ１３１３の処理を説明する。パケット解析部１３００は、図６の信頼ポート情報テーブル２１００の信頼ポート２１１０にパケット受信部１１１０から通知された受信ポート番号であるポート２と一致するエントリがあるかを判定する。結果として、信頼ポート情報テーブル２１００の信頼ポート２１１０にポート２は存在しないため、受信したポート２２０が非信頼ポートであると判定する。
【００６６】
次に、信頼ポートに接続されているポートからパケットを受信した際のパケット解析部１３００による信頼ポート情報テーブル２１００の更新（登録）動作を説明する。
図８は、図７のＳ１３１４において信頼ポートと判定されたポートにおいて、パケットを受信した際のパケット解析部１３００による信頼ポート情報テーブル２１００の更新（登録）処理となるフローチャートを示す図である。
【００６７】
パケットを受信したポートが信頼ポートの際に（Ｓ１３２０）、パケット解析部１３００は、パケット受信部１１１０から通知された｛受信パケット、受信ポート番号、出力先ポート番号｝の情報を解析することで、信頼ポート情報テーブル２１００の信頼ポート２１１０内で通知された受信ポート番号に該当するエントリを更新（登録）する。
【００６８】
具体的には、パケット解析部１３００は、受信パケットのＭＡＣヘッダ２０内のタイプ２３にＩＰが格納されているか否かを判定する（Ｓ１３２１）。ＩＰが格納されている場合（Ｓ１３２１のＹＥＳ）、ＩＰヘッダ４０内のプロトコル４１にＵＤＰが指定されているか否かを判定する（Ｓ１３２２）。ＵＤＰが指定されている場合（Ｓ１３２２のＹＥＳ）、ＵＤＰヘッダ５０内の送信元ポート５１にＤＨＣＰサーバがＤＨＣＰパケットを送信する際に格納する値である「６７」が格納されているか否かを判定する（Ｓ１３２３）。「６７」が格納されている場合（Ｓ１３２３のＹＥＳ）、受信パケットは、ＤＨＣＰサーバが送信したＤＨＣＰパケットであると判定する。つまり、図２で説明したように、ＤＨＣＰパケットには、ＭＡＣヘッダ２０、ＩＰヘッダ４０、ＵＤＰヘッダ５０が付与されているので、Ｓ１３２１にてＭＡＣヘッダ２０を、Ｓ１３２２にてＩＰヘッダ４０を、Ｓ１３２３にてＵＤＰヘッダ５０を順に解析することで、受信パケットがＤＨＣＰパケットであるか否かを判定することができる。
【００６９】
ＤＨＣＰパケットの場合（Ｓ１３２３のＹＥＳ）は、ＤＨＣＰサーバがアドレス割り当てのために応答を受信パケットの送信先の装置に返却しているかを解析する。具体的には、ＤＨＣＰフレーム６０内のＯＰ６１にＤＨＣＰ  ＡＣＫが格納されているか否かを判定する（Ｓ１３２４）。ＤＨＣＰ  ＡＣＫが格納されている場合（Ｓ１３２４のＹＥＳ）、ＤＨＣＰフレーム６０内のリレーエージェントＩＰアドレス６２とＭＡＣヘッダ２０の送信元ＭＡＣアドレス２２を、信頼ポート情報テーブル２１００の信頼ポート２１１０内で通知された受信ポート番号に該当するエントリのルータＩＰアドレス２１２０とルータＭＡＣアドレス２１３０にそれぞれ登録する（Ｓ１３２５）。ここで、リレーエージェントＩＰアドレス６２にルータ装置１００のＩＰアドレスが格納されるため、このリレーエージェントＩＰアドレス６２を用いてルータＩＰアドレス２１２０を登録しているが、ルータ装置１００のＩＰアドレスであれば、ＤＨＣＰパケットに含まれる他のＩＰアドレスであってもかまわない。
なお、既にルータＩＰアドレス２１２０とルータＭＡＣアドレス２１３０にそれぞれ値が格納されている場合は、ルータＩＰアドレス２１２０とルータＭＡＣアドレス２１３０を更新することになる。
【００７０】
その後、パケット解析部１３００は、パケット受信部１１１０から通知された受信パケットの出力先ポート番号の情報と、受信パケットを転送パケットとして、パケット送信部１１２０に｛出力先ポート番号、転送パケット｝の情報を送信し、パケット送信部１１２０は、パケット解析部１３００からの｛出力先ポート番号、転送パケット｝の情報をネットワークインタフェース１０００に送信し、ネットワークインタフェース１０００は、パケット送信部１１２０からの｛出力先ポート番号、転送パケット｝の情報に従って、転送パケットを出力先のポートから送信する（Ｓ１３２６）。
【００７１】
なお、Ｓ１３２１〜Ｓ１３２４のいずれかにおいて「ＮＯ」と判定された場合は、Ｓ１３２６へ進む。各ステップにおいて、受信パケットにＩＰヘッダ４０やＵＤＰヘッダ５０、ＤＨＣＰフレーム６０が含まれていない場合も、「ＮＯ」と判定される。
【００７２】
このように、本実施例では、信頼ポートに接続される装置は、ＤＨＣＰサーバ機能を有するルータ装置１００であるとしているため、信頼ポートに接続されるルータ装置１００からのＤＣＨＰパケットを解析して、信頼ポート情報テーブル２１００の更新を行うとした。そのため、ルータ装置１００以外の特定の装置（例えば、サーバ装置など）が信頼ポートに接続される場合には、この特定の装置が送信する特定のパケットのフォーマットを解析し、特定の装置から特定のパケットが送信された場合に、信頼ポート情報テーブル２１００の更新を行うように、図８のフローチャートの各ステップを適宜変更することが可能である。
【００７３】
図８では、信頼ポート情報テーブル２１００の信頼ポート２１１０は、管理者等からの入力により登録され、ルータＩＰアドレス２１２０およびルータＭＡＣアドレス２１３０は、ルータ装置１００から受信したＤＨＣＰパケットを解析して動的に登録するとしたが、予め管理者等が、信頼ポート２１１０とルータＩＰアドレス２１２０およびルータＭＡＣアドレス２１３０を入力して静的に登録することも可能である。
【００７４】
次に、ルータ装置１００から送信された端末Ａ３００宛てのＤＨＣＰ  ＡＣＫパケットをスイッチ装置２００にて転送することを例として、スイッチ装置２００における図７および図８を含む一連の処理を説明する。
ルータ装置１００は、端末Ａ３００宛てに、ＭＡＣヘッダ２０内の宛先ＭＡＣアドレス２１にＭＡＣ２、送信元ＭＡＣアドレス２２にＭＡＣ1、タイプ２３にＩＰを格納し、ＩＰヘッダ４０内のプロトコル４１にＵＤＰを格納し、ＵＤＰヘッダ５０内の送信元ポート５１にＤＨＣＰサーバからのＤＨＣＰパケットであることを示す６７を格納し、また、ＤＨＣＰフレーム６０内のＯＰ６１にＤＨＣＰ  ＡＣＫを格納し、リレーエージェントＩＰアドレス６２にＩＰ1を格納したＤＨＣＰ  ＡＣＫパケットを送信する。このため、ルータ装置１００が送信するＤＨＣＰ  ＡＣＫパケットは、ＭＡＣヘッダ２０、ＩＰヘッダ４０、ＵＤＰヘッダ５０、ＤＨＣＰフレーム６０の順で構成される。
【００７５】
スイッチ装置２００は、ポート２１０からルータ装置１００が送信したＤＨＣＰ  ＡＣＫパケットを受信する。ネットワークインタフェース１０００はポート２１０をポート番号に変換したポート１をパケット受信部１１１０に通知する。パケット受信部１１１０は、受信したＤＨＣＰ  ＡＣＫパケットの宛先ＭＡＣアドレス２１であるＭＡＣ２がＦＤＢテーブル２０００の宛先ＭＡＣアドレス２０１０にあるかを検索し、結果として出力先ポート番号２０２０を特定し、出力先ポート番号として、ポート２を取得する。パケット受信部１１１０は、｛受信パケット：ＤＨＣＰ  ＡＣＫパケット、受信ポート番号：ポート１、出力先ポート番号：ポート２｝をパケット解析部１３００に送信する。パケット解析部１３００は、ポート１に対して図７のＳ１３１３の処理をすることで信頼ポートからのパケット受信であると判定する。
【００７６】
次に、パケット解析部１３００は、図８の処理を実施する。Ｓ１３２１では、受信したＤＨＣＰ  ＡＣＫパケットのＭＡＣヘッダ２０のタイプ２３にＩＰが格納されていることでＩＰヘッダが付与されていることがわかり、結果としてＳ１３２２を実行する。Ｓ１３２２では、受信したＤＨＣＰ  ＡＣＫパケットのＩＰヘッダ４０のプロトコル４１にＵＤＰが格納されているため、結果としてＳ１３２３を実行する。Ｓ１３２３では、受信したＤＨＣＰ  ＡＣＫパケットのＵＤＰヘッダ５０の送信元ポート５１にＤＨＣＰサーバからの通知であることを示す６７が格納されているため、結果としてＳ１３２４を実行する。Ｓ１３２４では、ＤＨＣＰフレーム６０のＯＰ６１にＤＨＣＰ  ＡＣＫが格納されているため、結果としてＳ１３２５を実施する。Ｓ１３２５では、信頼ポート情報テーブル２１００の信頼ポート２１１０のうちパケット受信部１１１０から通知された受信ポート番号であるポート１のエントリに受信したＤＨＣＰ  ＡＣＫパケット内のリレーエージェントＩＰアドレス６２に格納されているＩＰ1、受信したＤＨＣＰ  ＡＣＫパケット内の送信元ＭＡＣアドレス２２に格納されているＭＡＣ１をルータＩＰアドレス２１２０およびルータＭＡＣアドレス２１３０にそれぞれ更新する。結果として、信頼ポート情報テーブル２１００内のルータＩＰアドレス２１２０にＩＰ1、ルータＭＡＣアドレス２１３０にＭＡＣ1を登録し、図６で示す信頼ポート情報テーブル２１００となる。
【００７７】
その後、スイッチ装置２００は、パケット解析部１３００、パケット送信部１１２０、ネットワークインタフェース１０００を介することで、パケット受信部１１１０から通知された出力先ポート番号：ポート２に対応するポート２２０から端末Ａ３００へパケットを転送する。
【００７８】
次に、ルータ装置１００が端末Ａ３００に対してアドレス解決パケットであるＡＲＰパケットを送信することを例として、スイッチ装置２００における図７および図８を含む一連の処理を説明する。
【００７９】
ルータ装置２００は、端末Ａ３００宛てにＭＡＣヘッダ２０内の宛先ＭＡＣアドレス２１にＭＡＣ２、送信元ＭＡＣアドレス２２にＭＡＣ１、タイプ２３にＡＲＰを格納し、ＡＲＰパケットを送信する。  スイッチ装置２００は、ポート２１０からＡＲＰパケットを受信する。ネットワークインタフェース１０００、およびパケット受信部１１１０からパケット解析部１３００への送信処理は、図７のＳ１３１０〜Ｓ１３１２と同様となるため省略する。
【００８０】
パケット解析部１３００は、Ｓ１３１３を実施して受信ポート番号：ポート１が信頼ポートと判定する。そのため、図８の処理へ移りＳ１３２１を実施する。Ｓ１３２１では、受信パケットのタイプ２３にＡＲＰが格納されており、ＩＰが格納されていない（Ｓ１３２１のＮＯ）。結果として、信頼ポート情報テーブル２１００を更新しない。
【００８１】
次に、非信頼ポートに接続されているポートからパケットを受信した際のパケット解析部１３００による一連の動作を説明する。
図９は、図７のＳ１３１５において非信頼ポートと判定されたポートにおいて、パケットを受信した際の処理となるフローチャートを示す図である。
【００８２】
パケットを受信したポートが非信頼ポートの際に（Ｓ１３３０）、パケット解析部１３００は、パケット受信部１１１０から送信された｛受信パケット、受信ポート番号、出力先ポート番号｝の情報を解析し、受信パケットがＡＲＰパケット（アドレス解決パケット）であるかを判定し、信頼ポートに接続されている装置になりすましたアドレス解決パケットであるかを判定する。
【００８３】
具体的には、パケット解析部１３００は、受信パケットがＡＲＰパケットであるか否かを、受信パケットのＭＡＣヘッダ２０内のタイプ２３にＡＲＰが格納されているか否かで判定する（Ｓ１３３１）。ＡＲＰが格納されている場合（Ｓ１３３１のＹＥＳ）、信頼ポート情報テーブル２１００のルータＩＰアドレス２１２０に、ＡＲＰフレーム３０内の送信元ＩＰアドレス３３に格納されたＩＰアドレスと一致するエントリがあるか否かを判定する（Ｓ１３３２）。一致するエントリがある場合（Ｓ１３３２のＹＥＳ）、信頼ポート情報テーブル２１００のルータＭＡＣアドレス２１３０に、ＡＲＰフレーム３０内の送信元ＭＡＣアドレス３３に格納されたＭＡＣアドレスと一致するエントリがあるか否かを判定する（Ｓ１３３３）。一致するエントリがある場合（Ｓ１３３３のＹＥＳ）、パケット解析部１３００は、パケット受信部１１１０から通知された受信パケットの出力先ポート番号の情報と、受信パケットを転送パケットとして、パケット送信部１１２０に｛出力先ポート番号、転送パケット｝の情報を送信し、パケット送信部１１２０は、パケット解析部１３００からの｛出力先ポート番号、転送パケット｝の情報をネットワークインタフェース１０００に送信し、ネットワークインタフェース１０００は、パケット送信部１１２０からの｛出力先ポート番号、転送パケット｝の情報に従って、転送パケットを出力先のポートから送信する（Ｓ１３３４）。
【００８４】
Ｓ１３３３にて、一致するエントリがない場合（Ｓ１３３３のＮｏ）、パケット解析部１３００は、受信パケットが、信頼ポートに接続されている装置になりすましたアドレス解決パケットであると判定し、受信パケットをパケット送信部１１２０に送信せずに廃棄する（Ｓ１３３５）。
【００８５】
また、受信パケットが、信頼ポートに接続されている装置になりすましたアドレス解決パケット（偽装パケット）であると判定した場合は、スイッチ装置２００は、偽装パケットを送信した端末についての情報（端末のＩＰアドレスやＭＡＣアドレス、端末が接続されているポート番号など）を特定し、この情報を設定情報入出力部１２００を介して管理装置５１０に通知する（警報を出す）よう構成されていてもよい。少なくとも偽装パケットの送信元ＭＡＣアドレス２２を特定することで、偽装パケットを送信した端末についての情報を特定することが可能である。
【００８６】
なお、Ｓ１３３３にＹＥＳとなる場合とは、ＡＲＰフレーム３０内の送信元ＭＡＣアドレス３２をルータＭＡＣアドレス２１３０に格納されたＭＡＣアドレスに偽装したＡＲＰパケットの場合であり、この場合は、被アタック端末に対する不正なＡＲＰパケットとして処置せず、Ｓ１３３４へ進む。
なお、Ｓ１３３１〜Ｓ１３３２のいずれかにおいて「ＮＯ」と判定された場合は、Ｓ１３３４へ進む。
【００８７】
このように、Ｓ１３３１にて受信パケットがＡＲＰパケット（アドレス解決パケット）であるかを判定し、Ｓ１３３２にて、信頼ポートに接続されている装置になりすましている可能性があるかを判定し、Ｓ１３３３にて受信パケットの送信元が、信頼ポートに接続されている装置である否かを判定する。
【００８８】
受信パケットが、信頼ポートに接続されている装置になりすまして送信したアドレス解決パケットであると判定される場合には、受信したパケットを廃棄し、一方で、受信パケットが、信頼ポートに接続されている装置になりすまして送信したアドレス解決パケット以外の場合には、受信パケットの出力先ポート番号のポートから受信パケットを転送する。
【００８９】
したがって、受信パケットが、信頼ポートに接続され、信頼装置であるルータ装置１００になりすましたアドレス解決パケットとして判定される場合とは、受信パケットのタイプ２３にＡＲＰが格納され、送信元ＭＡＣアドレス３２、送信元ＩＰアドレス３３が、信頼ポート情報テーブル２１００に格納されるルータＩＰアドレス２１２０、ルータＭＡＣアドレス２１３０と同一のエントリが存在するときである。
【００９０】
次に、端末Ａ３００が端末Ｂ４００に対して、ルータ装置１００になりすましてアドレス解決パケットを送信することを例として、図９の処理のフローを説明する。
【００９１】
端末Ａ３００は、端末Ｂ４００宛てに、ルータ装置１００になりすましたアドレス解決パケットとして、宛先ＭＡＣアドレス２１にＭＡＣ３、送信元ＭＡＣアドレス２２にＭＡＣ２、タイプ２３にＡＲＰを格納したＭＡＣヘッダ２０、および、送信元ＭＡＣアドレス３２にＭＡＣ２、送信元ＩＰアドレス３３、送信先ＩＰアドレス３４にそれぞれルータ装置１００のＩＰ1を格納してスイッチ装置２００に送信する。
【００９２】
スイッチ装置２００は、ポート２２０から端末Ａ３００が送信したパケットを受信する。ネットワークインタフェース１０００はポート２２０をポート番号に変換したポート２をパケット受信部１１１０に通知する。パケット受信部１１１０は、受信パケットの宛先ＭＡＣアドレスであるＭＡＣ３がＦＤＢテーブル２０００の宛先ＭＡＣアドレス２０１０にあるかを検索する。
【００９３】
その結果として、出力先ポート番号２０２０からポート３を取得する。パケット受信部１１１０は｛受信パケット、受信ポート番号：ポート２、出力先ポート番号：ポート３｝をパケット解析部１３００に送信する。パケット解析部１３００は、受信ポート番号：ポート２に対して図７のＳ１３１３の処理をすることで非信頼ポートからのパケット受信であると判定する。つまり、受信ポート番号：ポート２は、信頼ポート情報テーブル２１００の信頼ポート２１１０には登録されていない。
【００９４】
続いて、パケット解析部１３００は、非信頼ポートでの処理である図９の処理を実施する。Ｓ１３３１では、受信パケットのＭＡＣヘッダ２０のタイプ２３にＡＲＰが格納されているため、Ｓ１３３２を実行する。Ｓ１３３２では、受信パケットの解析により、ＡＲＰフレーム３０の送信元ＩＰアドレス３２のＩＰ１を取得し、図６で示される信頼ポート情報テーブル２１００のルータＩＰアドレス２１２０のエントリに一致するものがあるか判定をする。ルータＩＰアドレス２１２０にはＩＰ１が格納されている。結果として、一致しているためＳ１３３３を実行する。Ｓ１３３３では、受信パケットの解析により、ＡＲＰフレーム３０の送信元ＭＡＣアドレス３３のＭＡＣ２を取得し、図６で示される信頼ポート情報テーブル２１００のルータＭＡＣアドレス２１３０のエントリに一致しているものがあるか判定をする。ルータＭＡＣアドレス２１３０にはＭＡＣ１が設定されている。結果として、一致していないために、受信パケットは端末Ａ３００がルータ装置２００になりすまして送信したアドレス解決パケットであると判定でき、パケット解析部１３００はパケット送信部１１２０に｛出力先ポート番号、転送パケット｝を送信せずに、パケットを廃棄する。
【００９５】
次に、端末Ａ３００が端末Ｂ４００宛てに端末Ａ３００のアドレス解決パケットを送信することを例として、図９の処理フローを説明する。
端末Ａ３００は、ＭＡＣヘッダ２０の宛先ＭＡＣアドレス２１にＭＡＣ３、送信元ＭＡＣアドレス２２にＭＡＣ２、タイプ２３にＡＲＰを格納し、ＡＲＰフレーム３０の送信元ＭＡＣアドレス３２にＭＡＣ２、送信元ＩＰアドレス３３、送信先ＩＰアドレス３４に端末Ａ３００のＩＰ２を格納する。
図７の非信頼ポートの判定と、Ｓ１３３１は、ルータ装置１００になりすましたアドレス解決パケットを送信したときの処理と同様のため省略する。
【００９６】
パケット解析部１３００は、Ｓ１３３２では、送信元ＩＰアドレス３２のＩＰ２を取得する。ＩＰ２に対して、図６で示される信頼ポート情報テーブル２１００のルータＩＰアドレス２１２０に一致するエントリが存在しない（Ｓ１３３２のＮＯ）。そのため、スイッチ装置２００は、パケット解析部１３００、パケット送信部１１２０、ネットワークインタフェース１０００を介することで、パケット受信部１１１０から通知された出力先ポート番号：ポート３に対応するポート２２０から端末Ａ３００へパケットを転送する。
【００９７】
次に、端末Ａ３００が端末Ｂ４００宛てにアドレス解決パケット以外のパケットを送信することを例として、図９の処理フローを説明する。
端末Ａ３００は、ＭＡＣヘッダ２０のタイプ２３にＩＰを格納したパケットを送信する。Ｓ１３３１では、タイプ２３にＩＰが格納されているため（Ｓ１３３１のＮＯ）、パケット解析部１３００は、受信パケットがアドレス解決パケットではないと判断し、スイッチ装置２００は、受信パケットを転送する。
【００９８】
以上説明した第１実施例では、スイッチ装置は、複数ポートからのパケット受信においてネットワークシステム管理者が信頼している信頼ポートおよび非信頼ポートのいずれから受信したかを知ることができる。
【００９９】
また、信頼ポートでのパケットの受信により、スイッチ装置は信頼ポートにおいて、そのポートに接続されている装置（信頼装置）のＩＰアドレスとＭＡＣアドレスを知ることができ、信頼ポート情報テーブルを作成することができる。これにより、スイッチ装置は、非信頼ポートから受信するパケットが、信頼ポートに接続している信頼装置であるルータ装置になりすまして送信されたアドレス解決パケットであるか否かを判定することが可能となる。
【０１００】
したがって、非信頼ポートに接続されるアタック端末が、ルータ装置になりすまして送信したアドレス解決パケットによるサイバー攻撃を検知し、このパケットの転送を転送しない制御（廃棄する制御）によって、不正利用されたアドレス解決パケットが被アタック端末に送信されることを遮断できるため、被アタック端末は、ルータ装置との通信を継続することができる。
【０１０１】
（変形例１）
第１実施例では、パケット解析部１３００において信頼ポート情報テーブル２１００をＤＨＣＰ  ＡＣＫパケットを受信することで作成、更新する一例を示した。しかし、信頼ポート情報テーブル２１００の作成は、ルータ装置になりすましたアタック端末からの不正パケットを信頼ポートを介して受信することはないものとし、信頼ポートから受信するアドレス解決パケットの送信元ＩＰアドレス、送信元ＭＡＣアドレスから信頼ポート情報テーブル２１００を作成してもよい。そのため、本変形例１では、図８に関して、Ｓ１３２１においてＡＲＰが格納されているか、Ｓ１３２２‐Ｓ１３２４においてオペレーション３１に要求（Ｒｅｑｕｅｓｔ）が格納されているか否かで信頼ポート情報テーブル２１００を更新する。
【０１０２】
（変形例２）
信頼ポート情報テーブルの更新処理フローである図８を、第１実施例または変形例１によって実行することをパケット解析部１３００が決定してもよい。
【０１０３】
パケット解析部１３００は、図１０で示す信頼ポート情報テーブル２１０１のモード２１４０を参照して、第１実施例または変形例１によって信頼ポート情報テーブル２１０１の更新処理を行う。
【０１０４】
図１０のモード２１４０がａｒｐ−ｃｈｅｃｋ−ｄｈｃｐの場合は、第１実施例の図８を実行し、ａｒｐ−ｃｈｅｃｋの場合は、変形例１で示した、Ｓ１３２２‐Ｓ１３２４においてオペレーション３１に要求（Ｒｅｑｕｅｓｔ）が格納されているかで信頼ポート情報テーブル２１０１を更新するものとしてもよい。モード２１４０は、ＤＨＣＰを用いて更新するモードか、ＤＨＣＰを用いずに更新するもモードかを示している。
【０１０５】
（変形例３）
前記実施例では、ＩＰｖ４で用いられるアドレス解決パケットのＡＲＰを使用する一例を示した。本変形例では、ＩＰｖ６で用いられるアドレス解決パケットのＮＤＰ（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を使用するものとし、信頼ポート情報テーブル２１００、２１０１のルータＩＰアドレス２１２０、ルータＭＡＣアドレス２１３０には、それぞれ、ルータが定期的に送信するＲＡ（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）パケットのＩＰｖ６ヘッダの送信元ＩＰｖ６アドレス、ＭＡＣヘッダの送信元ＭＡＣアドレスを格納して作成した信頼ポートｖ６情報テーブルを用いてパケットの転送、廃棄を判定する。
【０１０６】
なお、スイッチ装置２００が備える各テーブルについて、その構成の一例を示した。しかし、これらのテーブルが備える要素は、その発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、上記に例示した要素以外の要素を備えるものとしてもよい。
【０１０７】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部を他の変形例の構成に置き換えることが可能であり、また、実施例の構成に他の変形例の構成を加えることも可能である。
【０１０８】
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばＦＰＧＡのような集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）等の記録装置、または、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１０９】
また、「ａａａテーブル」の表現にて各種情報を説明したが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ａａａテーブル」を「ａａａ情報」と呼ぶことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１１０】
１０  ネットワークシステム
１００  ルータ装置
２００  スイッチ装置
２１０、２２０、２３０  ポート
３００、４００  端末
１０００  ネットワークインタフェース
１１００  転送部
１１１０  パケット受信部
１１２０  パケット送信部
１２００  設定情報入出力部
１３００  パケット解析部
２０００  ＦＤＢテーブル
２１００  信頼ポート情報テーブル
【図１】
2015165614.tif 000003
【図２】
2015165614.tif 000004
【図３】
2015165614.tif 000005
【図４】
2015165614.tif 000006
【図５】
2015165614.tif 000007
【図６】
2015165614.tif 000008
【図７】
2015165614.tif 000009
【図８】
2015165614.tif 000010
【図９】
2015165614.tif 000011
【図１０】
2015165614.tif 000012
【図１１】
2015165614.tif 000013