以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態の通信装置の例を示すブロック図である。各実施形態では、本発明の通信装置10がゲートウェイである場合を例にして説明する。ゲートウェイ10は、制御部11と、スイッチ部12と、無線LAN(Local Area network)の通信インタフェース61(以下、無線LAN IF 61と記す)と、Ethernet(登録商標)の通信インタフェース62(以下、Ethernet IF 62と記す。)とを備える。
図1に示す例では、ゲートウェイ10は、Ethernet IF 62および通信ネットワークを介して、管理サーバ20、DNS(Domain Name System)サーバ40および一般的なサーバ30に接続されている。管理サーバ20は、ゲートウェイ10に対して後述のリストのうち管理者が作成した部分を送信したり、ゲートウェイ10からログを受信したりする。サーバ30は、例えば、カメラ51やセンサ52で得られたデータを処理する。また、ゲートウェイ10には、無線LAN IF 61を介して、カメラ51やセンサ52が接続されている。カメラ51およびセンサ52はゲートウェイ10の配下に接続されるデバイスの例であり、ゲートウェイ10の配下に接続される装置は、カメラ51やセンサ52に限定されない。
管理サーバ20は、例えば、クラウドサーバであるが、クラウドサーバ以外のサーバであってもよい。サーバ30およびDNSサーバ40に関しても同様である。
カメラ51やセンサ52は、ゲートウェイ10を介して、サーバ30と通信を行う。また、ゲートウェイ10の内部のプロセスA13またはプロセスB14がサーバ30と通信を行ってもよい。また、例えば、サーバ30がカメラ51にアクセスしてもよい。なお、ゲートウェイ10内のプロセスの数は特に限定されない。
なお、ゲートウェイ10が備える通信インタフェースは、無線LAN IF 61やEthernet IF 62に限定されない。図2は、ゲートウェイ10が備える通信インタフェースの例を示す説明図である。ゲートウェイ10は、通信インタフェースとして、例えば、Ethernet、無線LAN(2.4GHz)、無線LAN(5GHz)、Cellular等の通信インタフェースを有する。これらの通信インタフェースは、物理的な通信インタフェースである。図2では、無線LANの通信インタフェースが2種類設けられていて、Ethernetの通信インタフェースが2つ設けられている場合を例示している。
スイッチ部12は、パケットを転送する。スイッチ部12は、パケット転送手段12と称することもできる。
制御部11は、パケットのヘッダ情報に応じたスイッチ部12の動作を規定した制御情報(オープンフローにおけるフローエントリに相当)をスイッチ部12に設定することによって、スイッチ部12を制御する。制御部11はスイッチ部12を、例えば、オープンフローに従って制御してもよいが、制御部11がスイッチ部12を制御するプロトコルはオープンフローでなくてもよい。
ヘッダ情報に適合する制御情報が未だスイッチ部12に設定されていないパケットを新規パケットと記す。スイッチ部12は、新規パケットを受信したときに、その新規パケットのヘッダ情報を制御部11に通知する。制御部11は、そのヘッダ情報を通知されると、そのヘッダ情報に適合する制御情報をスイッチ部12に設定する。
制御部11は、通信を許可する条件を記述可能な複数の項目を含むレコードであって、その複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持する。そして、制御部11は、スイッチ部12からヘッダ情報(新規パケットのヘッダ情報)が通知されると、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、そのリストのいずれかのレコードで記述されているか否かを判定する。ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されている場合、制御部11は、その新規パケットによる通信の許可を示す制御情報をスイッチ部12に設定する。また、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれのレコードにも記述されていない場合、制御部11は、その新規パケットによる通信の不許可を示す制御情報をスイッチ部12に設定する。
上記のリストはホワイトリストであると言うことができる。
また、制御部11は、新たなレコードを学習する学習モードに設定された場合、新たなレコードを学習し、上記のリストに追加する。新たなレコードを学習しリストに追加することを、リストの学習と称する場合もある。
スイッチ部12および制御部11について、より詳細に説明する。
スイッチ部12は、図2に例示する種々の物理的な通信インタフェースと論理的に接続されている。スイッチ部12がゲートウェイ10の外部からパケットを受信したり、ゲートウェイ10の外部にパケットを出力したりする場合、スイッチ部12は、パケットの受信やパケットの出力を、いずれかの通信インタフェースを介して行う。
スイッチ部12は、パケットのヘッダ情報を認識する機能を有する。そして、新規パケット(すなわち、ヘッダ情報に適合する制御情報が未だ設定されていないパケット)を受信した場合、そのパケットのヘッダ情報を制御部11に通知する。また、パケットのヘッダ情報を制御部11に通知するということは、制御部11にそのヘッダ情報に応じた制御情報を問い合わせることを意味する。スイッチ部12は、ヘッダ情報を制御部11に通知した後も、受信した新規パケットを保持する。
ヘッダ情報の通知(制御情報の問い合わせ)の結果、そのヘッダ情報に応じた制御情報が制御部11によって設定されると、スイッチ部12は、保持している新規パケットを、その制御情報に従って処理する。
その新規パケットによる通信の許可を示す制御情報では、そのヘッダ情報に適合するパケットを出力すること、および、出力の際に用いる通信インタフェースが指定されている。従って、その新規パケットによる通信の許可を示す制御情報が設定された場合、スイッチ部12は、その制御情報によって指定された通信インタフェースから、保持している新規パケットを出力する。また、その制御情報は、その新規パケットと同一フローのパケットのヘッダ情報に適合する。従って、その後、スイッチ部12は、その新規パケットと同一フローのパケットを受信した場合、制御部11にヘッダ情報を通知せずに、その制御情報によって指定された通信インタフェースからそのパケットを出力する。
また、その新規パケットによる通信の不許可を示す制御情報では、そのヘッダ情報に適合するパケットを破棄することが指定されている。従って、その新規パケットによる通信の不許可を示す制御情報が設定された場合、スイッチ部12は、その制御情報に従って、保持している新規パケットを破棄する。また、その制御情報は、その新規パケットと同一フローのパケットのヘッダ情報に適合する。従って、その後、スイッチ部12は、その新規パケットと同一フローのパケットを受信した場合、制御部11にヘッダ情報を通知せずに、その制御情報に従ってそのパケットを破棄する。
制御部11は、スイッチ部12からパケットのヘッダ情報の通知を受けると、そのヘッダ情報に応じたスイッチ部12の動作を規定した制御情報を、スイッチ部12に設定する。制御部11は、そのパケットによる通信の許可を示す制御情報を設定するのか、あるいは、そのパケットによる通信の不許可を示す制御情報を設定するのかを、保持しているリストに基づいて判定する。
図3は、制御部11が保持するリスト(ホワイトリスト)の例を示す模式図である。図3では、便宜的にリスト内のレコードの番号も示している。リスト内のレコードは、通信を許可する条件を記述可能な複数の項目を含む。そして、その複数の項目のうち、少なくとも一部の項目に条件が記述されている。
図3に示す例では、「宛先ドメイン名」、「送信元プロセス名」、「送信元プロセスのユーザ名」、「宛先IPアドレス」等の項目を含んでいる。レコードに含まれる項目は、これらに限定されず、例えば、「送信元IPアドレス」、「送信元MAC(Media Access Control)アドレス」、「宛先MACアドレス」等に対応する項目が含まれていてもよい。
図3に示す例では、1番目および2番目のレコードでは、「宛先ドメイン名」の項目に、通信を許可する条件として、具体的な宛先ドメイン名が記述され、他の項目はany (任意)に設定されている。また、3番目および4番目のレコードでは、「送信元プロセス名」の項目に、通信を許可する条件として、具体的なプロセス名が記述され、他の項目はany に設定されている。また、5番目および6番目のレコードでは、「送信元プロセスのユーザ名」の項目に、通信を許可する条件として、具体的なユーザ名が記述され、他の項目はanyに設定されている。なお、2つ以上の項目に条件が記述されてもよい。
なお、ドメイン名、プロセス名、プロセスのユーザ名は、ヘッダ情報に含まれるIPアドレスを用いて特定される。
「出力インタフェース」の項目には、レコードに記述された条件が満たされた場合に生成される、通信を許可する旨の制御情報においてパケットの出力先として記述される通信インタフェースが記述される。
補足情報には、例外を示す情報や、学習によって追加されたレコードである旨の情報が記述される。例えば、図3に示す3番目のレコードでは、「宛先ポート番号20,21は不許可」と記述されている。この場合、ヘッダ情報に含まれるIPアドレスを用いて特定された送信元プロセス名が“/bin/abc”であり、3番目のレコードに記述された条件を満たしていたとしても、ヘッダ情報に含まれる宛先ポート番号が20または21である場合には、制御部11は、通信の不許可を示す制御情報を設定する。また、図3に示す例では、2番目、4番目、6番目のレコードにおいて、「学習によって追加」と記載されている。このことは、2番目、4番目、6番目のレコードが、学習によって追加されたレコードであることを示している。また、1番目、3番目、5番目のレコードは、ゲートウェイ10の管理者が管理サーバ20に入力し、管理サーバ20が制御部11に送信することによって得られたレコードである。すなわち、1番目、3番目、5番目のレコードは、管理者によって作成されたレコードである。
制御部11が新たなレコードを学習する状態を学習モードと記す。学習モードに設定される前には、追加されるレコードにおいて条件が学習される項目(すなわち、条件が記述される項目)が、管理者によって指定される。この項目の指定は、後述の学習項目設定テーブルを用いて行われる。本実施形態では、少なくとも、IPアドレスから特定可能な条件に対応する項目(例えば、「宛先ドメイン名」、「送信元プロセス名」、または「送信元プロセスのユーザ名」等)が指定されるものとする。
学習モードでは、制御部11は、スイッチ部12から新規パケットのヘッダ情報が通知されると、必ずその新規パケットによる通信の許可を示す制御情報をスイッチ部12に設定する。
また、制御部11は、指定された項目に、そのヘッダ情報内のIPアドレスから特定した条件(例えば、宛先ドメイン名等)を記述したレコードを作成し、リストに追加する。レコードを作成し、そのレコードをリストに追加する動作は、学習モードの終了後に行ってもよいが、ここでは、制御部11が、学習モード中に、条件を記述したレコードを作成し、リストに追加する場合を例にして説明する。
また、制御部11は、学習モードに設定されると、リストに1つ以上のレコードを追加する。制御部11は、学習モードに設定された直後にこの処理を行う。学習モードに設定された直後に追加される1つ以上のレコードを、初期追加レコードと記す。指定された項目にIPアドレスから特定した条件(例えば、宛先ドメイン名等)を記述したレコードを作成し、そのレコードをリストに追加する処理は、1つ以上の初期追加レコードをリストに追加する処理とは別の処理である。
制御部11は、1つ以上の初期追加レコードの中に、条件を記述可能な全ての項目に“any ”が記述された初期追加レコードを含める。また、制御部11は、個々の初期追加レコードの「出力インタフェース」の項目に、具体的な通信インタフェースを記述する。
学習モードに設定された直後に1つ以上の初期追加レコードを追加した後、制御部11は、新規パケットのヘッダ情報が通知されると、新たにレコードを作成する。制御部11は、このレコードにおいて、条件に対応する項目のうち、指定された項目には具体的な条件(例えば、具体的なドメイン名)を記述する。さらに、制御部11は、「出力インタフェース」の項目には具体的な通信インタフェースを記述する。このとき、制御部11は、新規パケットのヘッダ情報に含まれる情報(本実施形態では、宛先IPアドレスとする。)が、1つ以上の初期追加レコードのうち、どの初期追加レコードが示す条件を満たすかを判定し、条件がその情報を満たしている初期追加レコードを特定する。そして、制御部11は、その初期追加レコードに記述されている通信インタフェースを、新たに作成したレコードの「出力インタフェース」の項目に記述する。また、制御部11は、そのレコードにおいて、補足情報の項目に、学習によって追加されたレコードである旨を記述する。
レコードを学習せずに、制御部11が、リストに基づいてパケットによる通信を許可するか、不許可にするかを判定する状態を、運用モードと記す。
管理者は、制御部11を、学習モードと運用モードのいずれかに設定する。例えば、管理者は、管理サーバ20に対して、学習モードとするのか、運用モードとするのかを入力し、管理サーバ20が、その入力に応じて、制御部11を、学習モードまたは運用モードに設定すればよい。
前述のように、制御部11は、学習モードに設定された直後に、1つ以上の初期追加レコードをリストに追加する。図4は、初期追加レコードが追加されたリストの例を示す模式図である。図4に示す例では、n−2番目のレコードからn番目のレコードまでが初期追加レコードである。前述のように、制御部11は、1つ以上の初期追加レコードの中に、条件を記述可能な全ての項目に“any ”が記述された初期追加レコードを含める。図4に示す例では、n番目のレコードで、条件を記述可能な全ての項目に“any ”が記述されている。また、n−2番目とn−1番目のレコードでは、条件を示す各項目のうち「宛先IPアドレス」の項目に、具体的なアドレスが記述されている。また、それぞれの初期追加レコードでは、「出力インタフェース」の項目に具体的な通信インタフェースが記述されている。以下、制御部11が初期追加レコードを定める動作について、説明する。
制御部11は、学習モードに設定されると、宛先IPアドレスと出力インタフェースとの対応関係を特定し、その対応関係に従って、初期追加レコードの「宛先IPアドレス」の項目および「出力インタフェース」の項目に、具体的なアドレスや通信インタフェースを記述する。
例えば、ネットワーク構成において、宛先IPアドレス“192.168.2.0/24”と、通信インタフェース“Ethernet2 ”とが対応付けられているとする。また、宛先IPアドレス“192.168.3.0/24”と、通信インタフェース“wlan0”とが対応付けられているとする。また、その他の宛先IPアドレス(“192.168.2.0/24”および“192.168.3.0/24”以外の宛先IPアドレス)と、通信インタフェース“Ethernet1 ” とが対応付けられているとする。この場合、制御部11は、「宛先IPアドレス」として“192.168.2.0/24”を記述し、「出力インタフェース」として“Ethernet2 ”を記述し、その他の項目を全て“any ”としたレコードを、初期追加レコードとしてリストに追加する(図4に示すn−2番目のレコードを参照)。同様に、制御部11は、「宛先IPアドレス」として“192.168.3.0/24”を記述し、「出力インタフェース」として“wlan0”を記述し、その他の項目を全て“any ”としたレコードを、初期追加レコードとしてリストに追加する(図4に示すn−1番目のレコードを参照)。また、制御部11は、その他の宛先IPアドレス(“192.168.2.0/24”および“192.168.3.0/24”以外の宛先IPアドレス)と通信インタフェース“Ethernet1 ” とが対応付けられていることに基づいて、「出力インタフェース」として“Ethernet1 ”を記述し、その他の項目を全て“any ”としたレコードを、初期追加レコードとしてリストに追加する(図4に示すn番目のレコードを参照)。なお、「出力インタフェース」以外の項目が全て“any ”となっている初期追加レコードは、他の初期追加レコードよりも優先度が低い。
上記のように、制御部11は、初期追加レコードの1つとして、「出力インタフェース」以外の項目を全て“any ”としたレコードを作成する。従って、初期追加レコードには、条件を記述可能な全ての項目に“any ”が記述されたレコードが存在することになる。
初期追加レコード以外のレコードの中には、条件を記述可能な全ての項目に“any ”が記述されたレコードは存在しない。
なお、学習モードから運用モードに切り替えられた場合、制御部11は、リストから初期追加レコードを全て削除する。
次に、学習モードにおいて、初期追加レコードを追加した後に、制御部11がスイッチ部12から新規パケットのヘッダ情報の通知を受けたときの動作について、説明する。制御部11は、初期追加レコードの優先度の高い順に、ヘッダ情報の宛先IPアドレスと、初期追加レコードに記述された宛先IPアドレスとを照合する。両者が一致した場合には、制御部11は、「宛先IPアドレス」の項目にその宛先IPアドレスを記述し、予め指定された項目に、ヘッダ情報内のIPアドレスから特定した条件(例えば、宛先ドメイン名等)を記述し、「出力インタフェース」の項目に、その初期追加レコードに記述された通信インタフェースを記述し、「補足情報」の項目に、学習によって追加した旨を記述したレコードを作成する。制御部11は、そのレコードの他の項目には全て“any ”と記述し、そのレコードをリストに追加する。また、制御部11は、その新規パケットによる通信の許可を示す制御情報をスイッチ部12に設定する。また、制御部11は、宛先IPアドレスが一致しなかった場合には、次の優先度の初期追加レコードを用いて、同様の処理を行う。宛先IPアドレスが一致しないことが続いたとしても、制御部11は、条件を記述可能な全ての項目に“any ”が記述された初期追加レコード(図4に示すn番目のレコード)における宛先IPアドレスは、ヘッダ情報の宛先IPアドレスと一致しているとみなす。この場合、制御部11は、予め指定された項目に、ヘッダ情報内のIPアドレスから特定した条件(例えば、宛先ドメイン名等)を記述し、「出力インタフェース」の項目に、その初期追加レコードに記述された通信インタフェースを記述し、「補足情報」の項目に、学習によって追加した旨を記述したレコードを作成する。制御部11は、そのレコードの他の項目には全て“any ”と記述し、そのレコードをリストに追加する。また、制御部11は、新規パケットによる通信の許可を示す制御情報をスイッチ部12に設定する。
初期追加レコードには、条件を記述可能な全ての項目に“any ”が記述されたレコードが存在する。従って、学習モードでは、制御部11は、スイッチ部12から新規パケットのヘッダ情報が通知されると、必ずその新規パケットによる通信の許可を示す制御情報をスイッチ部12に設定する。
以下、説明を簡単にするために、新規パケットのヘッダ情報の宛先IPアドレスが、条件を記述可能な全ての項目に“any ”が記述された初期追加レコード(図4に示すn番目のレコード)における宛先IPアドレスと一致しているとみなされて、新たなレコードが作成されるものとする。すなわち、説明を簡単にするために、図4に示す最後の初期追加レコードに基づいて、新たなレコードが作成されるものとして説明する。すなわち、新規パケットのヘッダ情報が、図4に示すn−2番目のレコードおよびn−1番目のレコードには合致せず、n番目のレコードに合致するものとして説明する。
また、制御部11は、通信の許可を示す制御情報をスイッチ部12に設定する場合、許可の根拠となったリスト内の条件(例えば、具体的なドメイン名、プロセス名、またはユーザ名等)、または、IPアドレスから特定した情報を記述したログを管理サーバ20に送信する。また、学習モードである場合、制御部11は、そのログ内に、学習モードである旨も記述する。
図5は、通信の許可を示す制御情報をスイッチ部12に設定する場合のログの例を示す模式図である。図5では、便宜的にログの番号も示している。図5に示す例では、1番目および3番目のログは、運用モードにおいて作成されたログである。1番目のログは、運用モードにおいて、IPアドレスから特定したドメイン名(www.sssss.com )がリストに記述されていたことによって、通信を許可したことを示す。3番目のログは、運用モードにおいて、IPアドレスから特定したプロセス名(/usr/bin/abc)がリストに記述されていたことによって、通信を許可したことを示す。また、2番目および4番目のログは、学習モードにおいて作成されたログである。学習モードでは、制御部11は、必ず通信の許可を示す制御情報をスイッチ部12に設定する。2番目のログは、IPアドレスから特定したドメイン名が“www.uuuuu.com ”であったことを示す。4番目のログは、IPアドレスから特定したプロセス名が“/usr/bin/def”であったことを示す。
また、制御部11は、通信の不許可を示す制御情報をスイッチ部12に設定した場合、その旨を記述したログを管理サーバ20に送信する。
また、制御部11は、既に設定した制御情報であって通信の許可を示す制御情報に対応するヘッダ情報とは、宛先IPアドレスおよび送信元IPアドレスが逆になっているヘッダ情報を通知された場合、そのヘッダ情報に含まれる宛先IPアドレスにパケットを送信するための制御情報をスイッチ部12に設定する。
次に、学習項目設定テーブルについて説明する。学習項目設定テーブルは、学習モードで学習すべき条件に対応する項目を指定するために用いられる。図6は、学習項目設定テーブルの例を示す模式図である。図6では、学習項目設定テーブルを便宜的に、2段に渡って図示している。
図6に示す「入力インタフェース」から「送信元プロセスのユーザ名」までの欄は、学習モードで学習すべき条件であるか否かを指定するために用いられる。管理者は、学習モードで学習すべき条件であることを指定する場合には、その条件に対応する欄に“1”を記述し、学習すべき条件でないことを指定する場合には、その条件に対応する欄に“0”を記述する。例えば、学習モードで学習すべき条件として、「宛先ドメイン名」のみを指定する場合には、管理者は、「宛先ドメイン名」の欄に“1”を記述し、「入力インタフェース」から「送信元プロセスのユーザ名」までの他の欄に“0”を記述すればよい。この場合、「宛先ドメイン名」の項目に具体的なドメイン名が記述され、他の条件に対応する項目に“any ”が記述されたレコードが生成されることになる。なお、“1”が複数の欄に記述されていてもよい。ただし、例えば、図4に示すn−2番目またはn−1番目に示すレコードに基づいて新たなレコードを生成する場合には、学習項目設定テーブルで「宛先ドメイン名」の欄に“0”が記述されていたとしても、新たに生成されるレコードには具体的な宛先ドメイン名が記述される。
学習態様の欄には、以下の4種類の学習態様のうち、いずれか1つが記述される。すなわち、管理者は、以下の学習態様1〜4のうち、いずれか1つを選択し、学習態様の欄に記述する。
学習態様1:ゲートウェイ10の配下のデバイス(例えば、カメラ51等)が一般的なサーバ30を宛先として送信したパケットに基づいて、新たなレコードに記述すべき具体的な条件を特定する。
学習態様2:一般的なサーバ30がゲートウェイ10の配下のデバイス(例えば、カメラ51等)を宛先として送信したパケットに基づいて、新たなレコードに記述すべき具体的な条件を特定する。
学習態様3:ゲートウェイ10のプロセスが送信元であるパケットに基づいて、新たなレコードに記述すべき具体的な条件を特定する。
学習態様4:ゲートウェイ10のプロセスが宛先であるパケットに基づいて、新たなレコードに記述すべき具体的な条件を特定する。
ただし、上記の学習態様1〜4は例示であり、学習態様の分け方は、上記の例に限定されない。
なお、制御部11は、ゲートウェイ10の配下のデバイスがサーバ30を宛先として送信したパケットと、サーバ30がゲートウェイ10の配下のデバイスを宛先として送信したパケットとを、パケットを受信したゲートウェイ10の通信インタフェースによって区別することができる。例えば、制御部11は、無線LAN IF 61で受信されたパケットは前者であり、Ethernet IF 62で受信されたパケットは後者であると判断することができる。
また、学習項目設定テーブルの「出力インタフェース」の欄(図6参照)には、新規パケットのヘッダ情報に適合する初期追加レコードに記述された通信インタフェースを記述することが定められている。従って、例えば、制御部11が、図4に記載のn−2番目のレコードに基づいて新たなレコードを生成する場合、新たなレコードにおける「出力インタフェース」として“Ethernet2”を記述する。また、例えば、制御部11が、図4に記載のn番目のレコードに基づいて新たなレコードを生成する場合、新たなレコードにおける「出力インタフェース」として“Ethernet1”を記述する。
管理者は、管理サーバ20を用いて、学習項目設定テーブルの内容を定める。すなわち、管理サーバ20は、管理者から学習項目設定テーブルの内容を入力され、その内容を制御部11に通知する。そして、制御部11は、管理者が定めた内容を格納した学習項目設定テーブルを保持する。
図7は、学習態様1を指定するとともに、学習モードで学習すべき条件として、「宛先ドメイン名」のみを指定した学習項目設定テーブルの例である。図7に示す学習項目設定テーブルが定められ、学習モードに設定されたとする。この場合、制御部11は、無線LAN IF 61で受信されたパケットのヘッダ情報がスイッチ部12から通知されると、そのパケットによる通信の許可を示す制御情報をスイッチ部12に設定する。さらに、ヘッダ情報に含まれるIPアドレスから、宛先ドメイン名を特定する。
なお、図7に示す例において、宛先ドメイン名の欄だけでなく、宛先IPアドレスの欄にも“1”が記述されていたとする。この場合、制御部11は、通知されたヘッダ情報から宛先IPアドレスも特定する。また、この場合、制御部11は、IPアドレスから宛先ドメイン名を特定できた場合には、宛先ドメイン名のみを特定し、宛先ドメイン名を特定できなかった場合に、宛先IPアドレスと特定してもよい。
図8は、学習態様3を指定するとともに、学習モードで学習すべき条件として、「送信元プロセス名」のみを指定した学習項目設定テーブルの例である。図8に示す学習項目設定テーブルが定められ、学習モードに設定されたとする。この場合、制御部11は、プロセスによって生成されたパケットのヘッダ情報がスイッチ部12から通知されると、そのパケットによる通信の許可を示す制御情報をスイッチ部12に設定する。さらに、ヘッダ情報に含まれるIPアドレスを用いて、送信元プロセス名を特定する。
図9は、学習態様3を指定するとともに、学習モードで学習すべき条件として、「送信元プロセスのユーザ名」のみを指定した学習項目設定テーブルの例である。図9に示す学習項目設定テーブルが定められ、学習モードに設定されたとする。この場合、制御部11は、プロセスによって生成されたパケットのヘッダ情報がスイッチ部12から通知されると、そのパケットによる通信の許可を示す制御情報をスイッチ部12に設定する。さらに、ヘッダ情報に含まれるIPアドレスを用いて、送信元プロセスのユーザ名を特定する。
図7から図9までの各図では、学習すべき条件が1種類のみ指定された場合を示しているが、学習すべき条件が複数種類定められていてもよい。
また、制御部11は、DNSサーバ40のIPアドレスを宛先IPアドレスとするパケット(DNSクエリ)や、DNSサーバ40のIPアドレスを送信元IPアドレスとするパケット(DNSクエリレスポンス)に関しては、運用モードであっても学習モードであっても、リストとは無関係に、通信の許可を示す制御情報をスイッチ部12に設定する。
また、制御部11は、スイッチ部12がDNSサーバ40からDNSクエリレスポンスを受信したときに、そのDNSクエリレスポンスからドメイン名とIPアドレスとの対応関係を抽出し、その対応関係を記憶する。DNSクエリレスポンスは、DNSサーバ40がDNSクエリに対する応答として送信するパケットであり、DNSクエリに含まれるドメイン名と、DNSサーバ40が名前解決によって得たIPアドレスとを含んでいる。例えば、カメラ51が、DNSクエリを送信し、DNSクエリレスポンスを受信する。その後、カメラ51は、DNSクエリレスポンスに含まれるIPアドレスを宛先IPアドレスとしてパケットを送信する。このとき、制御部11は、そのIPアドレスとドメイン名との関係を記憶しているので、その宛先IPアドレスからドメイン名を特定することができる。
制御部11は、ドメイン名とIPアドレスとの対応関係を記憶するとともに、その対応関係の有効期限も合わせて記憶する。そして、制御部11は、有効期限を経過した対応関係については、記憶領域から削除する。
制御部11およびスイッチ部12は、例えば、通信プログラムに従って動作するコンピュータのCPU(Central Processing Unit )よって実現される。この場合、CPUは、コンピュータのプログラム記憶装置(図示略)等のプログラム記録媒体から通信プログラムを読み込み、そのプログラムに従って制御部11およびスイッチ部12として動作すればよい。
次に、第1の実施形態の処理経過の例について説明する。図10および図11は、学習モードにおける処理経過の例を示すシーケンス図である。ここでは、図7に示す学習項目設定テーブルが設定されている場合を例にして説明する。すなわち、学習態様1が指定され、学習モードで学習すべき条件として、「宛先ドメイン名」が指定された場合を例にして説明する。また、制御部11は、管理者によって、学習モードに設定され、図4に示す初期追加レコード(n−2番目、n−1番目およびn番目のレコード)をリストに追加したものとする。既に述べたように、説明を簡単にするために、最後の初期追加レコード(n番目のレコード)に基づいて、新たなレコードが作成されるものとする。
最初に、カメラ51は、ゲートウェイ10を介してサーバ30を通信を行う場合に、ドメイン名“www.uuuuu.com ”を含むDNSクエリを送信する(ステップS1)。
スイッチ部12は、そのDNSクエリを受信する。ここで、DNSクエリが新規パケットであるとする。この場合、スイッチ部12は、DNSクエリのヘッダ情報を制御部11に通知する(ステップS2)。なお、ここでは、スイッチ部12が、受信したパケットのコピーを制御部11に送ることによって、制御部11にヘッダ情報を通知する場合を例にして説明する。また、スイッチ部12は、カメラ51から受信したDNSクエリを保持する。
DNSクエリの宛先IPアドレスはDNSサーバ40のIPアドレスである。この場合、制御部11は、リストを参照せずに、通信の許可を示す制御情報をスイッチ部12に設定する(ステップS3)。すなわち、制御部11は、DNSサーバ40との通信に用いる通信インタフェースからパケットを出力することを規定した制御情報をスイッチ部12に設定する。なお、例えば、制御部11は、図4に例示するリストとは別に、通信を許可すべき宛先IPアドレス(予め定められた特定のサーバのIPアドレス)のリストを保持してもよい。そして、そのリスト内にDNSサーバ40のIPアドレスが含められていることによって、制御部11は、ステップS3で、上記のように、通信の許可を示す制御情報をスイッチ部12に設定する。
次に、スイッチ部12は、ステップS3で設定された制御情報に従って、保持しているDNSクエリを、指定された通信インタフェースから出力する(ステップS4)。この結果、DNSサーバ40は、そのDNSクエリを受信する。
すると、DNSサーバ40は、DNSクエリに含まれているドメイン名“www.uuuuu.com ”に応じたIPアドレスを求める。DNSサーバ40は、そのドメイン名およびIPアドレスと、両者の対応の有効期限を示す情報とを含むDNSクエリレスポンスを、送信する(ステップS5)。
スイッチ部12は、そのDNSクエリレスポンスを受信する。このDNSクエリレスポンスは、新規パケットである。この場合、スイッチ部12は、DNSクエリレスポンスのコピーを制御部11に送ることによって、DNSクエリレスポンスのヘッダ情報を制御部11に通知する(ステップS6)。また、スイッチ部12は、受信したDNSクエリレスポンスを保持する。
制御部11は、そのDNSクエリレスポンスを参照して、ドメイン名“www.uuuuu.com ”と、IPアドレスと、有効期限との対応関係を新たに記憶する(ステップS7)。
また、DNSクエリレスポンスの送信元IPアドレスはDNSサーバ40のIPアドレスである。この場合、制御部11は、リストを参照せずに、通信の許可を示す制御情報をスイッチ部12に設定する(ステップS8)。すなわち、制御部11は、カメラ51との通信に用いる通信インタフェースからパケットを出力することを規定した制御情報をスイッチ部12に設定する。
次に、スイッチ部12は、ステップS8で設定された制御情報に従って、保持しているDNSクエリレスポンスを、指定された通信インタフェースから出力する(ステップS9)。この結果、カメラ51は、DNSクエリレスポンスを受信する。そして、カメラ51は、“www.uuuuu.com ”に対応するIPアドレス(すなわち、サーバ30のIPアドレス)を認識する。
上記の説明では省略したが、制御部11は、ステップS3,S8の後に、管理サーバ20に制御情報の内容を通知する。
以降の動作は、図11を参照して説明する。
カメラ51は、サーバ30のIPアドレスを宛先とするSYNパケットを送信する(ステップS11)。
スイッチ部12は、そのSYNパケットを受信する。このSYNパケットは、新規パケットである。すなわち、そのSYNパケットのヘッダ情報に適合する制御情報は未だスイッチ部12に設定されていない。この場合、スイッチ部12は、SYNパケットのヘッダ情報を制御部11に通知する(ステップS12)。また、スイッチ部12は、そのSYNパケットを保持する。
SYNパケットのヘッダ情報は図4に示すn番目のレコードに合致するので、制御部11は、SYNパケットのヘッダ情報に応じた制御情報として、SYNパケットによる通信の許可を示す制御情報を生成する(ステップS13)。このとき、制御部11は、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを、パケットの出力先として制御情報内に記述すればよい。
また、制御部11は、ステップS12で通知されたヘッダ情報に含まれている宛先IPアドレスからと宛先ドメイン名を特定し、その宛先ドメイン名と、通信の許可を示す情報と、学習モードであることとを記述したログを生成し、記憶する(ステップS14)。制御部11は、ステップS7で、ドメイン名“www.uuuuu.com ”と、IPアドレスと、有効期限との対応関係を記憶している。制御部11は、ヘッダ情報に含まれている宛先IPアドレスと、その対応関係に基づいて、宛先ドメイン名を特定すればよい。本例では、制御部11は、図5において2番目に示しているログを生成し、記憶すればよい。
さらに、制御部11は、ステップS14で特定した宛先ドメイン名を記述したレコードをリストに追加する(ステップS15)。制御部11は、このレコードの出力インタフェースの項目には、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを記述すればよい。また、制御部11は、このレコードの補足情報として、例えば、「学習によって追加」と記述すればよい。制御部11は、その他の項目については、全て“any ”と記述する。ステップS15でレコードが追加されたリストの例を、図12に示す。図12に示す最後のレコードが、ステップS15で追加されたレコードである。
次に、制御部11は、ステップS13で生成した制御情報をスイッチ部12に設定する(ステップS16)。スイッチ部12は、その制御情報に従って、保持しているSYNパケットを出力する。すなわち、スイッチ部12は、保持しているSYNパケットを、制御情報内で指定されている通信インタフェースから出力する(ステップS17)。この結果、サーバ30は、SYNパケットを受信する。
また、制御部11は、ステップS14で生成したログを管理サーバ20に送信する(ステップS18)。本例では、制御部11は、図5において2番目に示しているログを管理サーバ20に送信する。
サーバ30は、SYNパケットに対する応答として、カメラ51のIPアドレスを宛先として、サーバ30のIPアドレスを送信元とするSYN_ACKパケットを送信する(ステップS19)。すなわち、SYN_ACKパケットとSYNパケットとでは、宛先IPアドレスと送信元IPアドレスとが逆になっている。
スイッチ部12は、そのSYN_ACKパケットを受信する。このSYN_ACKパケットのヘッダ情報に適合する制御情報は未だスイッチ部12に設定されていない。この場合、スイッチ部12は、SYN_ACKパケットのヘッダ情報を制御部11に通知する(ステップS20)。また、スイッチ部12は、そのSYN_ACKパケットを保持する。
ここで、SYN_ACKパケットのヘッダ情報における宛先IPアドレスおよび送信元IPアドレスは、既に設定した制御情報であって、通信の許可を示す制御情報(ステップS16で設定された制御情報)に対応するヘッダ情報における宛先IPアドレスおよび送信元IPアドレスと逆になっている。従って、制御部11は、SYN_ACKパケットのヘッダ情報に含まれる宛先IPアドレスにパケットを送信するための制御情報をスイッチ部12に設定する。すなわち、制御部11は、宛先IPアドレスが示すカメラ51との通信に用いる通信インタフェースからパケットを出力することを規定した制御情報をスイッチ部12に設定する(ステップS21)。
スイッチ部12は、ステップS21で設定された制御情報に従って、保持しているSYN_ACKパケットを出力する(ステップS22)。この結果、カメラ51は、SYN_ACKパケットを受信する。
また、制御部11は、例えば、「通信許可」という内容を示す情報を管理サーバ20に送信する(ステップS23)。
SYN_ACKパケットを受信したカメラ51は、ACKパケットを送信する(ステップS24)。ACKパケットのヘッダ情報は、SYNパケットのヘッダ情報と同様である。従って、ステップS16で設定された制御情報は、ACKパケットのヘッダ情報に適合する。よって、スイッチ部12は、その制御情報に従って、ACKパケットを出力する(ステップS25)。この結果、サーバ30は、ACKパケットを受信する。
図13は、運用モードでの処理経過の例を示すシーケンス図である。ここでは、制御部11が、図14に示すリストを保持している場合を例にして説明する。学習モードから運用モードに切り替えられた場合、制御部11は、リストから初期追加レコードを全て削除する。従って、図14に示すリストにおいて、初期追加レコードは存在しない。以下に示す例でも、カメラ51がゲートウェイ10を介してサーバ30と通信を行う場合を例にして説明する。
ステップS1〜S9の動作は、学習モードにおけるステップS1〜S9(図10参照)の動作と同様であり、ここでは説明を省略する。図13は、運用モードにおけるステップS9の後の処理経過を示している。また、既に説明した動作と同様の動作については、図11と同一の符号で示し、詳細な説明は、適宜省略する。
ステップS11,S12は、学習モードにおけるステップS11,S12(図11参照)と同様であり、説明を省略する。
制御部11は、スイッチ部12からヘッダ情報を通知されると、そのヘッダ情報に含まれる情報、または、そのヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されているか否かを判定する。本例では、図14に示すm番目のレコードを参照する場合、制御部11は、ヘッダ情報に含まれる宛先IPアドレスから宛先ドメイン名を特定する。制御部11は、ステップS7で、ドメイン名“www.uuuuu.com ”と、IPアドレスと、有効期限との対応関係を記憶している。制御部11は、ヘッダ情報に含まれている宛先IPアドレスと、その対応関係に基づいて、宛先ドメイン名“www.uuuuu.com ”を特定すればよい。図14おけるm番目のレコードには、宛先ドメイン名として、“www.uuuuu.com ”が記述されている。従って、制御部11は、宛先IPアドレスから特定された宛先ドメイン名を記述したレコードがリスト内に存在すると判定する(ステップS31)。
従って、制御部11は、SYNパケットによる通信の許可を示す制御情報を生成する(ステップS32)。このとき、制御部11は、ステップS31で特定した宛先ドメイン名が記述されたレコード内で記述されている出力インタフェースを、パケットの出力先として制御情報に記述する。本例では、制御部11は、図14に示すm番目のレコードに記述されている出力インタフェース“Ethernet1 ”を制御情報に記述する。
また、制御部11は、宛先IPアドレスから特定された宛先ドメイン名と、通信を許可したことを示す情報とを記述したログを生成し、記憶する(ステップS33)。なお、本実施形態では、学習モードと記述されていないログは、運用モードで生成されたログであるものとする。制御部11は、例えば、「www.uuuuu.com への通信を許可」と記述したログを生成すればよい。
次に、制御部11は、ステップS32で生成した制御情報をスイッチ部12に設定する(ステップS16)。スイッチ部12は、保持しているSYNパケットを、その制御情報内で指定されている通信インタフェースから出力する(ステップS17)。この結果、サーバ30は、SYNパケットを受信する。
また、制御部11は、ステップS33で生成したログを管理サーバ20に送信する(ステップS18)。
ステップS19以降の動作は、既に説明した学習モードにおけるステップS19以降の動作(図11参照)と同様であり、説明を省略する。
また、ステップS31において、制御部11が、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれのレコードにも記述されていないと判定したとする。この場合、制御部11は、ステップS32において、SYNパケットによる通信の不許可を示す制御情報を生成する。すなわち、制御部11は、通知されたヘッダ情報に応じた制御情報として、パケットの破棄を規定した制御情報を生成する。また、制御部11は、ステップS33において、通信を不許可としたことを記述したログを生成し、記憶する。
そして、制御部11は、ステップS16において、その制御情報をスイッチ部12に設定する。スイッチ部12は、その制御情報に従って、保持しているSYNパケットを破棄する。従って、この場合、SYNパケットはサーバ30に送信されず、ステップS19以降の処理は行われない。
また、制御部11は、ステップS33で生成したログ(本例では、通信を不許可としたことを記述したログ)を、管理サーバ20に送信する(ステップS18)。
管理サーバ20は、学習モードや運用モードにおいて、制御部11からログを受信すると、そのログを記憶し、管理者の操作に応じて、ログを表示する。従って、管理者は、ログを閲覧することができる。
また、上記の例では、学習モードに設定されている間に、制御部11が、ステップS15で、新たなレコードをリストに追加する場合を説明した。新たなレコードをリストに追加する動作は、学習モードが解除されたとき(すなわち、学習モードから運用モードに切り替えられたとき)に実行されてもよい。この場合、制御部11は、ステップS14でログを生成する際、パケットの出力先となる通信インタフェース(ステップS13で制御情報内に記述した通信インタフェース)もログに記述する。制御部11は、ステップS14でそのログを記憶し、学習モードが解除されたときに、記憶しているログに基づいて、通信を許可にする条件(上記の例では、宛先ドメイン名“www.uuuuu.com ”)と、出力インタフェースを記述するとともに、補足情報として「学習によって追加」と記述したレコードを生成し、リストに追加してもよい。また、学習モード中に、ヘッダ情報が複数回通知された場合には、制御部11は、その回数に応じた数のレコードをそれぞれ生成し、リストに追加すればよい。この点は、後述の例においても同様である。
また、制御部11は上記のログを管理サーバ20に送信し、管理サーバ20はそのログを記憶する。そして、そのログを閲覧した管理者が、追加するレコードの内容を定めてもよい。この場合、管理サーバ20は、管理者の操作に応じて、ログを表示する。そして、管理サーバ20は、追加するレコードを管理者によって入力され、そのレコードを制御部11に送信する。制御部11は、管理サーバ20から受信したレコードをリストに追加する。このような方法で、レコードをリストに追加してもよい。
図15は、学習モードにおける処理経過の他の例を示すシーケンス図である。ここでは、図8に示す学習項目設定テーブルが設定されている場合を例にして説明する。すなわち、学習態様3が指定され、学習モードで学習すべき条件として、「送信元プロセス名」が指定された場合を例にして説明する。制御部11は、学習モードに設定されたことによって、リストに初期追加レコードを追加したものとする。本例では、図4に示すn−2番目からn番目までのレコードを追加したものとする。また、説明を簡単にするために、図4に示す最後の初期追加レコード(図4に示すn番目のレコード)に基づいて、新たなレコードが作成されるものとして説明する。
最初にプロセスA13は、サーバ30のIPアドレスを宛先とするSYNパケットを送信する(ステップS41)。
スイッチ部12は、そのSYNパケットを受信する。このSYNパケットは、新規パケットである。すなわち、そのSYNパケットのヘッダ情報に適合する制御情報は未だスイッチ部12に設定されていない。この場合、スイッチ部12は、SYNパケットのヘッダ情報を制御部11に通知する(ステップS42)。また、スイッチ部12は、そのSYNパケットを保持する。
SYNパケットのヘッダ情報は図4に示すn番目のレコードに合致するので、制御部11は、SYNパケットのヘッダ情報に応じた制御情報として、SYNパケットによる通信の許可を示す制御情報を生成する(ステップS43)。このとき、制御部11は、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを、パケットの出力先として制御情報内に記述すればよい。
また、制御部11は、通知されたヘッダ情報に含まれている宛先IPアドレスを用いて、送信元プロセス名を特定し、その送信元プロセス名と、通信の許可を示す情報と、学習モードであることとを記述したログを生成し、記憶する(ステップS44)。本実施形態において、特に言及しない限り、プロセス名は、プロセスパス名とともに記述されたプロセス名であるとする。
以下、制御部11が、送信元プロセス名を特定する処理について説明する。制御部11は、具体的には、ヘッダ情報にふくまれる宛先IPアドレス、宛先ポート番号およびプロトコルから送信元プロセス名を特定する。この方法は、公知の方法であってもよい。以下、制御部11が、送信元プロセス名を特定する動作の一例を説明する。
制御部11は、スイッチ部12から通知されたヘッダ情報から、宛先IPアドレス、宛先ポート番号およびプロトコルを取得する。
そして、制御部11は、その宛先IPアドレスおよび宛先ポート番号をキーとして、プロセスがソケット通信に利用しているiノード番号を検索する。例えば、ゲートウェイ10のCPUは、プロトコルに応じた所定のファイルに、宛先IPアドレスおよび宛先ポート番号とiノード番号との対応関係を記述している。制御部11は、宛先IPアドレスおよび宛先ポート番号をキーとして、そのファイルからiノード番号を検索する。制御部11は、ヘッダ情報から取得したプロトコルに基づいて、iノード番号を検索すべきファイルを特定すればよい。
次に、制御部11は、そのiノード番号に対応するプロセスIDを検出する。例えば、CPUは、所定の複数のパスの配下のファイルに、iノード番号とプロセスIDとの対応関係を記述している。制御部11は、それらのファイルから、iノード番号に対応するプロセスIDを検出する。
次に、制御部11は、そのプロセスIDをキーにして、プロセス名そのもの(プロセスパス名が記述されていないプロセス名)と、そのプロセスのプロセスパス名を検索する。例えば、CPUは、プロセスIDに応じた所定のファイル(第1のファイルと記す。)に、プロセス名そのものと、プロセスIDとの対応関係を記述している。また、CPUは、プロセスIDに応じた別の所定のファイル(第2のファイルと記す。)に、プロセスIDとプロセスパスとの対応関係を記述している。制御部11は、プロセスIDをキーにして、第1のファイルからプロセス名そのものを検索し、プロセスIDをキーにして、第2のファイルからプロセスパス名を検索する。
次に、制御部11は、検索したプロセスパス名とプロセス名とを繋げる。この結果、プロセスパス名とともに記述されたプロセスパス名が特定される。
本例では、送信元プロセス名として“/bin/ghi”が特定されたとする。
ステップS44の後、制御部11は、特定した送信元プロセス名を記述したレコードをリストに追加する(ステップS45)。制御部11は、このレコードの出力インタフェースの項目には、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを記述すればよい。また、制御部11は、このレコードの補足情報として、例えば、「学習によって追加」と記述すればよい。制御部11は、その他の項目については、全て“any ”と記述する。ステップS45でレコードが追加されたリストの例を、図16に示す。図16に示す最後のレコードが、ステップS45で追加されたレコードである。
次に、制御部11は、ステップS43で生成した制御情報をスイッチ部12に設定する(ステップS46)。スイッチ部12は、その制御情報に従って、保持しているSYNパケットを、制御情報内で指定されている通信インタフェースから出力する(ステップS47)。この結果、サーバ30は、SYNパケットを受信する。
また、制御部11は、ステップS44で生成したログを管理サーバ20に送信する(ステップS48)。
サーバ30は、SYNパケットに対する応答として、SYNパケットの送信元IPアドレスを宛先とし、サーバ30のIPアドレスを送信元とするSYN_ACKパケットを送信する(ステップS49)。すなわち、SYN_ACKパケットとSYNパケットとでは、宛先IPアドレスと送信元IPアドレスとが逆になっている。
スイッチ部12は、そのSYN_ACKパケットを受信する。このSYN_ACKパケットのヘッダ情報に適合する制御情報は未だスイッチ部12に設定されていない。この場合、スイッチ部12は、SYN_ACKパケットのヘッダ情報を制御部11に通知する(ステップS50)。また、スイッチ部12は、そのSYN_ACKパケットを保持する。
ここで、SYN_ACKパケットのヘッダ情報における宛先IPアドレスおよび送信元IPアドレスは、既に設定した制御情報であって、通信の許可を示す制御情報(ステップS46で設定された制御情報)に対応するヘッダ情報における宛先IPアドレスおよび送信元IPアドレスと逆になっている。従って、制御部11は、SYN_ACKパケットのヘッダ情報に含まれる宛先IPアドレスにパケットを送信するための制御情報をスイッチ部12に設定する(ステップS51)。
スイッチ部12は、ステップS51で設定された制御情報に従って、保持しているSYN_ACKパケットをプロセスA13に送る(ステップS52)。
また、制御部11は、例えば、「通信許可」という内容を示す情報を管理サーバ20に送信する(ステップS53)。
SYN_ACKパケットを受信したプロセスA13は、ACKパケットを送信する(ステップS54)。ACKパケットのヘッダ情報は、SYNパケットのヘッダ情報と同様である。従って、ステップS46で設定された制御情報は、ACKパケットのヘッダ情報に適合する。よって、スイッチ部12は、その制御情報に従って、ACKパケットを出力する(ステップS55)。この結果、サーバ30は、ACKパケットを受信する。
図17は、運用モードでの処理経過の例を示すシーケンス図である。ここでは、制御部11が、図18に示すリストを保持している場合を例にして説明する。学習モードから運用モードに切り替えられた場合、制御部11は、リストから初期追加レコードを全て削除する。従って、図18に示すリストにおいて、初期追加レコードは存在しない。以下に示す例でも、プロセスA13がサーバ30と通信を行う場合を例にして説明する。
ステップS41,S42は、学習モードにおけるステップS41,S42(図15参照)と同様であり、説明を省略する。
制御部11は、スイッチ部12からヘッダ情報を通知されると、そのヘッダ情報に含まれる情報、または、そのヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されているか否かを判定する。本例では、図18に示すm番目のレコードを参照する場合、制御部11は、ヘッダ情報に含まれる宛先IPアドレスから送信元プロセス名を特定する。より具体的には、ヘッダ情報に含まれる宛先IPアドレス、宛先ポート番号およびプロトコルから、送信元プロセス名を特定する。ここでは、特定された送信元プロセス名が“/bin/ghi”であるとする。制御部11は、送信元プロセス名“/bin/ghi”を記述したレコードがリスト内に存在すると判定する(ステップS61)。
従って、制御部11は、SYNパケットによる通信の許可を示す制御情報を生成する(ステップS62)。このとき、制御部11は、ステップS61で特定した送信元プロセス名が記述されたレコード内で記述されている出力インタフェースを、パケットの出力先として制御情報に記述する。本例では、制御部11は、図18に示すm番目のレコードに記述されている出力インタフェース“Ethernet1 ”を制御情報に記述する。
また、制御部11は、特定した送信元プロセス名と、通信を許可したことを示す情報とを記述したログを生成し、記憶する(ステップS63)。制御部11は、例えば、「/bin/ghiの通信を許可」と記述したログを生成すればよい。
次に、制御部11は、ステップS62で生成した制御情報をスイッチ部12に設定する(ステップS46)。スイッチ部12は、保持しているSYNパケットを、その制御情報内で指定されている通信インタフェースから出力する(ステップS47)。この結果、サーバ30は、SYNパケットを受信する。
また、制御部11は、ステップS63で生成したログを管理サーバ20に送信する(ステップS48)。
ステップS49以降の動作は、既に説明した学習モードにおけるステップS49以降の動作(図15参照)と同様であり、説明を省略する。
また、ステップS61において、制御部11が、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれのレコードにも記述されていないと判定したとする。この場合、制御部11は、ステップS62において、SYNパケットによる通信の不許可を示す制御情報を生成する。すなわち、制御部11は、通知されたヘッダ情報に応じた制御情報として、パケットの破棄を規定した制御情報を生成する。また、制御部11は、ステップS63において、通信を不許可としたことを記述したログを生成し、記憶する。
そして、制御部11は、ステップS46において、その制御情報をスイッチ部12に設定する。スイッチ部12は、その制御情報に従って、保持しているSYNパケットを破棄する。従って、この場合、SYNパケットはサーバ30に送信されず、ステップS49以降の処理は行われない。
また、制御部11は、ステップS63で生成したログ(本例では、通信を不許可としたことを記述したログ)を、管理サーバ20に送信する(ステップS48)。
前述のように、新たなレコードをリストに追加する動作は、学習モードが解除されたとき(すなわち、学習モードから運用モードに切り替えられたとき)に実行されてもよい。この場合、制御部11は、ステップS44でログを生成する際、パケットの出力先となる通信インタフェース(ステップS43で制御情報内に記述した通信インタフェース)もログに記述する。制御部11は、ステップS44でそのログを記憶し、学習モードが解除されたときに、記憶しているログに基づいて、通信を許可にする条件(上記の例では、送信元プロセス名“/bin/ghi”)と、出力インタフェースを記述するとともに、補足情報として「学習によって追加」と記述したレコードを生成し、リストに追加してもよい。
また、制御部11は上記のログを管理サーバ20に送信し、管理サーバ20はそのログを記憶する。そして、そのログを閲覧した管理者が、追加するレコードの内容を定めてもよい。この場合、管理サーバ20は、管理者の操作に応じて、ログを表示する。そして、管理サーバ20は、追加するレコードを管理者によって入力され、そのレコードを制御部11に送信する。制御部11は、管理サーバ20から受信したレコードをリストに追加する。このような方法で、レコードをリストに追加してもよい。
また、学習モードで学習すべき条件として、「送信元プロセスのユーザ名」が指定されていてもよい。例えば、図9に例示する学習項目設定テーブルが設定されていてもよい。この場合、学習モードに設定された場合、制御部11は、前述の例(図15参照)における送信元プロセス名を特定する動作の代わりに、送信元プロセスのユーザ名を特定すればよい。
また、制御部11は、運用モードにおいて、「送信元プロセスのユーザ名」が記述されたレコードを参照する場合にも、送信元プロセスのユーザ名を特定すればよい。
以下、制御部11が、送信元プロセスのユーザ名を特定する処理について説明する。制御部11は、具体的には、ヘッダ情報にふくまれる宛先IPアドレス、宛先ポート番号およびプロトコルから、送信元プロセスのユーザ名を特定する。この方法は、公知の方法であってもよい。以下、制御部11が、送信元プロセスのユーザ名を特定する動作の一例を説明する。
制御部11は、スイッチ部12から通知されたヘッダ情報から、宛先IPアドレス、宛先ポート番号およびプロトコルを取得する。次に、制御部11は、その宛先IPアドレスおよび宛先ポート番号をキーとして、プロセスがソケット通信に利用しているiノード番号を検索する。次に、制御部11は、そのiノード番号に対応するプロセスIDを検出する。これらの動作は、既に説明したプロセスIDの検出動作と同様である。既に説明したように、制御部11は、iノード番号を検索すべきファイルを、ヘッダ情報から取得したプロトコルに基づいて判定すればよい。
次に、制御部11は、実行中のプロセスを表示させるコマンドを用いて、そのプロセスIDをキーとして、プロセスのユーザ名(実行ユーザ名)を取得する。
本実施形態によれば、リスト(ホワイトリスト)のレコードを上記のように制御部11が追加することができる。従って、管理者の工数増加を抑えて、リストを生成することができる。
また、本実施形態では、上記の例のように、例えば、宛先ドメイン名、送信元プロセス名、送信元プロセスのユーザ名等、ユーザにとって分かり易い条件を記述したレコードをリストに追加することができる。
なお、リストの記述形式は、表形式でなくてもよい。例えば、各レコードが一連の文字列で記述されていてもよい。また、この場合、anyに該当する項目の記述は省略されていてもよい。この点は、後述の実施形態においても同様である。
実施形態2.
図19は、本発明の第2の実施形態の通信装置(ゲートウェイ)の例を示すブロック図である。ここでは、第2の実施形態におけるゲートウェイ10が、第1の実施形態におけるゲートウェイ10の構成要素を有している場合を例にして説明する。ただし、図19では、第1の実施形態で説明した構成要素のうち、制御部11と、スイッチ部12とを図示している。また、第2の実施形態におけるゲートウェイ10は、デバイスの接続インタフェースを備え、その接続インタフェースに差し込まれたデバイスとゲートウェイ10とを接続させる。ここで、「接続させる」とは、接続インタフェースに差し込まれたデバイスとゲートウェイ10との間で、データ授受できる状態にすることを意味する。
制御部11は、スイッチ部12だけでなく、接続部17も制御する。制御部11が接続部17を制御する動作の詳細については、後述する。
なお、ゲートウェイ10が、第1の実施形態で説明した構成要素を有しているゲートウェイでなくてもよい。その場合、後述の動作によって接続部17を制御する制御部が設けられていればよい。
図19に示す例では、ゲートウェイ10は、デバイスの接続インタフェースとして、USB(Universal Serial Bus)インタフェース63と、BLE(Bluetooth(登録商標) Low Energy)インタフェース64とを備える。USBインタフェース63には、例えば、USBストレージデバイス53が着脱される。BLEインタフェース64には、例えば、BLEセンサ54が着脱される。以下、USBインタフェース63にデバイス(USBストレージデバイス53)が差し込まれる場合を例に説明するが、BLEインタフェース64にデバイス(例えば、BLEセンサ54)が差し込まれる場合も同様である。
USBインタフェース63にUSBストレージデバイス53が差し込まれると、接続部17は、一旦、USBストレージデバイス53とゲートウェイ10とを接続させる。そして、接続部17は、USBストレージデバイス53の識別情報を制御部11に送り、制御部11の制御に従って、USBストレージデバイス53とゲートウェイ10との接続を断ったり、あるいは、接続状態を維持したりする。
制御部11は、デバイスの識別情報を記述したレコードのリストを保持する。通知された識別情報がリストのいずれのレコードにも記述されていない場合、制御部11は、USBストレージデバイス53とゲートウェイ10との接続を不許可とし、その旨を接続部17に通知する。この場合、接続部17は、USBストレージデバイス53とゲートウェイ10との接続を断つ。通知された識別情報がリストのいずれかのレコードで記述されている場合、制御部11は、USBストレージデバイス53とゲートウェイ10との接続を許可する。この場合、制御部11は、接続部17に通知をしない。接続部17は、制御部11から通知がなければ、USBストレージデバイス53とゲートウェイ10との接続状態を維持する。上記のリストは、ホワイトリストであると言うことができる。
また、識別情報の種類は、1種類であるとは限らず、複数種類である場合もある。従って、上記のリストにおいて、レコードは、デバイスの識別情報を記述可能な1以上の項目を含み、少なくとも1つの項目にデバイスの識別情報が記述されている。また、レコードは、補足情報の項目を含んでいてもよい。
制御部11は、第1の実施形態と同様に、学習モードまたは運用モードに設定され、学習によってレコードを追加する。学習によって追加されたレコードには、補足情報の項目に、例えば、「学習によって追加」と記述される。
図20は、USBインタフェース63に接続されるデバイスに対して用いられるリスト(以下、USB用リストと記す。)の例である。USBインタフェース63に接続されるデバイスの識別情報には、VID(Vendor ID )、PID(Product ID)およびシリアル番号の3種類が存在する。従って、USB用リストのレコードは、3種類の識別情報の項目と、補足情報の項目とを含み、1種類以上の識別情報の項目に具体的なデバイスの識別情報が記述されている。
図21は、BLEインタフェース64に接続されるデバイスに対して用いられるリスト(以下、BLE用リストと記す)の例である。本実施形態では、BLEインタフェース64に接続されるデバイスの識別情報が1種類(BD(Bluetooth Device)アドレス)であるものとして説明する。BLE用リストのレコードは、1種類の識別情報(BDアドレス)の項目と、補足情報の項目とを含み、そのBDアドレスの項目に具体的なBDアドレスが記述されている。
制御部11は、USB用リスト(図20参照)と、BLE用リスト(図21参照)とを別個に保持する。
管理者は、管理サーバ20(図1参照。図19において図示略。)を用いて、制御部11を学習モードまたは運用モードに設定する。換言すれば、管理サーバ20は、管理者の指示に従って、制御部11を学習モードまたは運用モードに設定する。
制御部11は、学習モードに設定されると、初期追加レコードをリストに追加する。第2の実施形態において、初期追加レコードは、全ての項目をany としたレコードである。また、第2の実施形態では、1つのリストに追加される初期追加レコードは1つである。また、制御部11は、運用モードに設定されると、リストから初期追加レコードを削除する。
ただし、上記のように、制御部11は、USB用リストとBLE用リストを別個に保持する。そのため、管理者は、制御部11を学習モードに設定する際、USB用リストのレコードのみを学習するのか、BLE用リストのレコードのみを学習するのか、または、USB用リストのレコードとBLE用リストのレコードの両方を学習するかについても指定する。
USB用リストのレコードのみを学習することが指定された場合、制御部11は、USB用リストのみに初期追加レコード(全ての項目をany としたレコード)を追加する。そして、制御部11は、USB用リストのレコードのみを学習し、BLEインタフェース64に差し込まれたデバイスに対しては運用モード時の動作を行う。
BLE用リストのレコードのみを学習することが指定された場合、制御部11は、BLE用リストのみに初期追加レコード(全ての項目をany としたレコード)を追加する。そして、制御部11は、BLE用リストのレコードのみを学習し、USBインタフェース63に差し込まれたデバイスに対しては運用モード時の動作を行う。
USB用リストのレコードとBLE用リストのレコードの両方を学習することが指定された場合、制御部11は、USB用リストとBLE用リストのそれぞれに初期追加レコードを追加する。そして、制御部11は、USB用リストのレコードと、BLE用リストのレコードをそれぞれ学習する。
また、本実施形態では、制御部11は、USBインタフェース63用の学習項目設定テーブル(以下、USB用学習項目設定テーブル)と、BLEインタフェース64用の学習項目設定テーブル(以下、BLE用学習項目設定テーブル)を保持する。
図22は、USB用学習項目設定テーブルの例を示す模式図である。USB用学習項目設定テーブルは、「VID」、「PID」、「シリアル番号」の各欄を備える。管理者は、学習すべき識別情報に対応する欄に“1”を記述し、学習対象でない識別情報に対応する欄に“0”を記述する。図22に示す例では、3種類の識別情報のうち、VIDおよびPIDが学習対象として定められている。
図23は、BLE用学習項目設定テーブルの例を示す模式図である。BLE用学習項目設定テーブルは、BDアドレスの欄を備える。管理者は、BDアドレスを学習対象とする場合には、BDアドレスの欄に“1”を記述し、BDアドレスを学習対象としない場合には、BDアドレスの欄に“0”を記述する。
管理者は、管理サーバ20(図1参照。図19において図示略。)を用いて、各学習項目設定テーブルの内容を定める。すなわち、管理サーバ20は、管理者からUSB用学習項目設定テーブルおよびBLE用学習項目設定テーブルの内容を入力され、その内容を制御部11に通知する。そして、制御部11は、管理者が定めた内容を格納したUSB用学習項目設定テーブルおよびBLE用学習項目設定テーブルを保持する。
USB用リストのレコードを学習することが指定された場合、USB用リストには、全ての項目をany とした初期追加レコードが追加されている。従って、制御部11は、USBインタフェース63用に差し込まれたデバイスに対して、必ず接続を許可する。
同様に、BLE用リストのレコードを学習することが指定された場合、BLE用リストには、全ての項目をany とした初期追加レコードが追加されている。従って、制御部11は、BLEインタフェース64用に差し込まれたデバイスに対して、必ず接続を許可する。
第2の実施形態の動作を行う制御部11および接続部17は、デバイス接続制御プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUは、コンピュータのプログラム記憶装置(図示略)等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、第2の実施形態における制御部11および接続部17として動作すればよい。
次に、第2の実施形態の処理経過の例について説明する。以下では、USBインタフェース63にデバイスが接続される場合を例にして説明するが、BLEインタフェース64にデバイスが接続される場合の処理経過も同様である。
図24は、学習モードにおける処理経過の例を示すシーケンス図である。ここでは、図22に示すUSB用学習項目設定テーブルが設定されている場合を例にして説明する。すなわち、学習すべき識別情報の種類として、VIDおよびPIDが指定された場合を例にして説明する。また、制御部11は、学習モードに設定され、USB用リストに、初期追加レコード(全ての項目をany としたレコード)を追加しているものとする。
USBストレージデバイス53がUSBインタフェース63に差し込まれると(ステップS101)、接続部17は、USBストレージデバイス53とゲートウェイ10とを接続させる(ステップS102)。また、ステップS102において、接続部17は、USBストレージデバイス53から、USBストレージデバイス53の各種識別情報(VID、PID、シリアル番号)を取得する。
接続部17は、その各種識別情報(VID、PID、シリアル番号)を制御部11に通知する(ステップS103)。
制御部11は、VID、PID、シリアル番号の通知を受けた場合、USB用リストに初期追加レコードが追加されているので、USBストレージデバイス53とゲートウェイ10との接続を許可する(ステップS104)。制御部11は、接続を許可した場合、接続部17に通知を行わない。接続部17は、制御部11から通知がなければ、USBストレージデバイス53とゲートウェイ10との接続状態を維持する。
また、制御部11は、ステップS103で通知された各種識別情報のうち、USB用学習項目設定テーブルで指定されている種類の識別情報(本例では、VIDおよびPID)と、接続を許可したことと、学習モードであることを記述したログを生成し、記憶する(ステップS105)。
さらに、制御部11は、ステップS103で通知された各種識別情報のうち、USB用学習項目設定テーブルで指定されている項目(本例では、VIDおよびPID)に、具体的なVID、PIDを記述し、補足情報の項目に、学習によって追加されたことを記述したレコードを生成し、そのレコードをUSB用リストに追加する(ステップS106)。なお、制御部11は、シリアル番号の項目には“any ”を記述する。例えば、図20の最終行に相当するレコードを生成し、そのレコードをリストに追加する。
図25は、運用モードでの処理経過の例を示すシーケンス図である。ここでは、制御部11が、図20に例示するUSB用リストを保持している場合を例にして説明する。運用モードに設定されると、制御部11は、初期追加レコード(全ての項目をany としたレコード)を削除する。以下、VIDが“00:00:04”であり、PIDが“00:00:04”であるUSBストレージデバイス53がUSBインタフェース63に差し込まれる場合を例にして説明する。
ステップS101〜S103は、学習モードにおけるステップS101〜S103と同様であり、説明を省略する。
制御部11は、各種識別情報(VID、PID、シリアル番号)の通知を受けると、その識別情報がいずれかのレコードに記述されているか否かを判定する(ステップS111)。本例では、VIDが“00:00:04”であり、PIDが“00:00:04”である。また、図20の最終行に相当するレコードでは、VIDとして“00:00:04”が記述され、PIDとして“00:00:04”が記述され、シリアル番号として“any ”が記述されている。従って、本例では、制御部11は、通知されたVIDおよびPIDを記述したレコードが存在すると判定する。さらに、通知された識別情報を記述したレコードがリスト内に存在する場合、制御部11は、USBストレージデバイス53とゲートウェイ10との接続を許可する。既に説明したように、制御部11は、接続を許可する場合には接続部17に通知を行わず、接続部17は、制御部11からの通知がないことにより、USBストレージデバイス53とゲートウェイ10との接続を維持する。
また、制御部11は、ログを生成し、記憶する(ステップS112)。本例では、制御部11は、レコードに記述されていた識別情報に合致する識別情報(VID“00:00:04”、および、PID“00:00:04”)と、接続を許可したこととを記述したログを生成し、記憶する。
また、ステップS111で、制御部11が、接続部17から通知された識別情報がUSBリスト内のいずれのレコードにも記述されていないを判定したとする。この場合、制御部11は、USBストレージデバイス53とゲートウェイ10との接続を不許可とし、その旨を接続部17に通知する。接続を不許可とする通知を受けた接続部17は、USBストレージデバイス53とゲートウェイ10との接続を断つ。また、制御部11は、ステップS112で、接続を不許可としたことを記述したログを生成し、記憶する。
なお、接続を許可した場合であっても、接続を不許可とした場合であっても、制御部11は、生成したログを、管理サーバ20(図1参照。図19において図示略。)に送信する。
上記の例では、学習モードに設定されている間に、制御部11が、ステップS106で新たなレコードをリストに追加する場合を説明した。新たなレコードをリストに追加する動作は、学習モードが解除されたとき(すなわち、学習モードから運用モードに切り替えられたとき)に実行されてもよい。この場合、制御部11は、学習モードが解除されたときに、記憶しているログに基づいて、ステップS106で生成するレコードと同様のレコードを生成し、リストに追加すればよい。
また、制御部11は、ステップS105で生成したログを管理サーバ20に送信し、管理サーバ20はそのログを記憶する。そして、そのログを閲覧した管理者が、追加するレコードの内容を定めてもよい。この場合、管理サーバ20は、管理者の操作に応じて、ログを表示する。そして、管理サーバ20は、追加するレコードを管理者によって入力され、そのレコードを制御部11に送信する。制御部11は、管理サーバ20から受信したレコードをリストに追加する。このような方法で、レコードをリストに追加してもよい。
本実施形態によれば、USBリストやBLEリストのレコードを、制御部11が追加することができる。従って、管理者の工数増加を抑えて、ホワイトリスト(USBリストやBLEリスト)を生成することができる。
実施形態3.
図26は、本発明の第3の実施形態の通信システムの例を示す模式図である。本発明の第3の実施形態の通信システムは、複数の通信装置(ゲートウェイ)10a,10bと、その複数の通信装置を管理する管理サーバ20とを備える。各ゲートウェイ10a,10bは通信ネットワークを介して、管理サーバ20と通信可能である。なお、各ゲートウェイ10a,10bを特に区別しない場合には、単に「ゲートウェイ10」と記す。図26では、2つのゲートウェイ10を図示しているが、ゲートウェイ10の数は、2つ以上であれば、特に限定されない。
また、ゲートウェイ10には、ゲートウェイ10を介して一般的なサーバ30(図1を参照)と通信を行うデバイス、あるいは、ゲートウェイ10に設けられた接続インタフェースに着脱されるデバイスが存在する。図26に示すデバイス71〜73は、このようなデバイスを表している。デバイス71〜73は、ゲートウェイ10を介して通信を行うデバイスであってもよい。また、デバイス71〜73は、ゲートウェイ10に設けられた接続インタフェースに着脱されるデバイスであってもよい。
各デバイス71〜73はそれぞれ、例えば、携帯型デバイスであり、移動可能である。例えば、ゲートウェイ10aを介して通信を行っていたデバイス72が移動し、移動後に、そのデバイス72がゲートウェイ10bを介して通信を行ってもよい。また、例えば、ゲートウェイ10aの接続インタフェースに差し込まれていたデバイス72がゲートウェイ10aから取り外され、ゲートウェイ10bの接続インタフェースに差し込まれてもよい。
各ゲートウェイ10a,10bは、第1の実施形態で説明したゲートウェイ10、または、第2の実施形態で説明したゲートウェイ10である。また、各ゲートウェイ10a,10bが、第1の実施形態で説明したゲートウェイ10の機能と、第2の実施形態で説明したゲートウェイ10の機能の両方を有していてもよい。
管理サーバ20は、各ゲートウェイ10で学習されたリストのレコードを管理する。管理サーバ20が、学習されたレコードを管理する態様として、例えば、以下に示す2種類の管理態様がある。
管理態様1:管理サーバ20は、任意のゲートウェイ10で学習されたレコードを、各ゲートウェイ10に共通に保持させる。
管理態様2:管理サーバ20は、任意のゲートウェイ10で学習されたレコードが、他のゲートウェイ10でも保持されている場合、他のゲートウェイ10にそのレコードにそのレコードを削除させる。すなわち、管理サーバ20は、任意のゲートウェイ10が新たにレコードを学習した場合、そのゲートウェイ10のみに、そのレコードを保持させる。
管理態様1では、デバイスが移動したとしても、1つのゲートウェイ10で学習されたレコードを、他のゲートウェイ10が再度、学習しなくて済むという効果が得られる。
管理態様2では、デバイスが移動したことによって、そのデバイスが使用しなくなったゲートウェイ10に古いレコードが残されなくなる。従って、セキュリティの脆弱性を抑えたり、メンテナンスの容易性を向上させたりすることができる。また、レコードの検索処理速度を向上させることができる。
また、本実施形態では、デバイスの識別情報を記述したレコードが管理対象である。
以下、各デバイス71〜72が、ゲートウェイ10を介して一般的なサーバ30(図1を参照)と通信を行うデバイスである場合を例にして説明する。この場合、各ゲートウェイ10は、第1の実施形態で説明したゲートウェイ10(図1参照)である。ただし、ゲートウェイ10の制御部11(図1参照)は、学習によってリストに追加したレコードを、管理サーバ20に送信する動作も行う。上記のように、本実施形態では、デバイスの識別情報を記述したレコードが管理対象である。ここでは、デバイスの識別情報がデバイスのMACアドレスであり、ゲートウェイ10が、「送信元MACアドレス」を記述したレコードを学習する場合を例にして説明する。
まず、管理サーバ20が管理態様1でレコードを管理する場合について説明する。図27は、管理態様1でレコードを管理する管理サーバ20の構成例を示すブロック図である。図27に示す例では、管理サーバ20は、受信部21と、記憶部22と、配信部23とを備える。
受信部21は、ゲートウェイ10で学習されたリストのレコードを受信する。
記憶部22は、受信部21が受信したレコードを記憶する記憶装置である。
配信部23は、受信部21が受信したレコードを、そのレコードを送信したゲートウェイ10以外の各ゲートウェイ10の制御部11に配信する。
受信部21および配信部23は、例えば、プログラムに従って動作するコンピュータのCPUと、通信インタフェースとによって実現される。
次に、管理サーバ20が管理態様1でレコードを管理する場合の処理経過の例について説明する。以下に示す例では、ゲートウェイ10aが、デバイス72のMACアドレスを記述したレコードを学習し、そのレコードを管理サーバ20に送信し、管理サーバ20が、そのレコードをゲートウェイ10bに配信する動作を説明する。
図28は、管理サーバ20が管理態様1でレコードを管理する場合の処理経過の例を示すシーケンス図である。
また、ここでは、ゲートウェイ10aの制御部11(以下、制御部11aと記す。)に、図29に示す学習項目設定テーブルが設定されているものとする。すなわち、学習態様1が指定され、学習モードで学習すべき条件として、「送信元MACアドレス」が指定されているものとする。また、制御部11aは、学習モードに設定されたことによって、初期追加レコードをリストに追加する。例えば、制御部11aは、図4に例示するn−2番目からn番目までのレコードを、初期追加レコードとしてリストに追加する。ただし、説明を簡単にするために、図4に示す最後の初期追加レコード(図4に示すn番目のレコード)に基づいて、新たなレコードが作成されるものとして説明する。
デバイス72は、サーバ30のIPアドレスを宛先とするSYNパケットを送信する(ステップS201)。
ゲートウェイ10aのスイッチ部12(以下、スイッチ部12aと記す。)は、そのSYNパケットを受信する。このSYNパケットは、新規パケットである。すなわち、そのSYNパケットのヘッダ情報に適合する制御情報は未だスイッチ部12aに設定されていない。この場合、スイッチ部12aは、SYNパケットのヘッダ情報を制御部11aに通知する(ステップS202)また、スイッチ部12aは、そのSYNパケットを保持する。
SYNパケットのヘッダ情報は図4に示すn番目のレコードに合致するので、制御部11aは、SYNパケットのヘッダ情報に応じた制御情報として、SYNパケットによる通信の許可を示す制御情報を生成する(ステップS203)。このとき、制御部11aは、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを、パケットの出力先として制御情報内に記述すればよい。
また、図29に示す学習項目設定テーブルが設定されているので、制御部11aは、ヘッダ情報から送信元MACアドレスを抽出することによって、送信元MACアドレスを特定する。そして制御部11aは、その送信元MACアドレスと、通信の許可を示す情報と、学習モードであることを記述したログを生成し、記憶する(ステップS204)。
さらに、制御部11aは、ステップS204で特定した送信元MACアドレスを記述したレコードをリストに追加する(ステップS205)。制御部11aは、このレコードの出力インタフェースの項目には、図4に示すn番目のレコードで「出力先インタフェース」として記述されている通信ネットワークを記述すればよい。また、制御部11aは、このレコードの補足情報として、例えば、「学習によって追加」と記述すればよい。制御部11aは、その他の項目については、全て“any ”と記述する。ステップS205でリストに追加されるレコードの例を、図30に示す。図30では、ステップS205でリストに追加される1つのレコードのみを示し、リスト全体については図示していない。
ステップS204で特定された送信元MACアドレスは、デバイス72の識別情報に該当する。従って、図30に示すレコードは、デバイス72の識別情報(デバイス72のMACアドレス)を記述したレコードである。
次に、制御部11aは、ステップS203で生成した制御情報をスイッチ部12aに設定する(ステップS206)。スイッチ部12aは、その制御情報に従って、保持しているSYNパケットを出力する。すなわち、スイッチ部12aは、保持しているSYNパケットを、制御情報内で指定されている通信インタフェースから出力する(ステップS207)。この結果、サーバ30は、SYNパケットを受信する。
なお、SYNパケットを受信したサーバ30は、SYN_ACKパケットを送信するが、SYN_ACKパケット送信後の動作は、第1の実施形態で示したステップS19以降の動作と同様である。従って、以下の説明では、サーバ30によるSYN_ACKパケット送信後の動作については説明を省略する。
また、制御部11aは、ステップS204で生成したログ、および、ステップS205でリストに追加したレコード(図30参照)を、管理サーバ20に送信する(ステップS208)。
管理サーバ20の受信部21(図27参照)は、そのログおよびレコードを受信し、記憶部22に記憶させる。
そして、管理サーバ20の配信部23は、受信部21が受信したレコードを、そのレコードを送信したゲートウェイ10a以外の各ゲートウェイ(本例ではゲートウェイ10bのみ)の制御部11に配信する(ステップS209)。
ゲートウェイ10bの制御部11(以下、制御部11bと記す。)は、そのレコード受信すると、制御部11bが保持しているリストにそのレコードを追加する。その結果、制御部11bが保持しているリストに、図30に示すレコードが追加される。
その後、デバイス72が移動し、ゲートウェイ10bを使用可能な場所に配置されたとする。また、このとき、ゲートウェイ10bの制御部11bは、運用モードに設定されているとする。
移動後に、デバイス72が、再度、サーバ30のIPアドレスを宛先とするSYNパケットを送信する(ステップS210)。
ゲートウェイ10bのスイッチ部12(以下、スイッチ部12bと記す。)は、そのSYNパケットを受信する。このSYNパケットは、新規パケットである。すなわち、そのSYNパケットのヘッダ情報に適合する制御情報は未だスイッチ部12bに設定されていない。この場合、スイッチ部12bは、SYNパケットのヘッダ情報を制御部11bに通知する(ステップS211)。また、スイッチ部12bは、そのSYNパケットを保持する。
制御部11は、ヘッダ情報を通知されると、そのヘッダ情報に含まれる情報、または、そのヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されているか否かを判定する。制御部11は、図30に示すレコードを参照する場合、ヘッダ情報に含まれる送信元MACアドレスを抽出し、その送信元MACアドレスが、図30に示す送信元MACアドレス“11:22:33:44:55:66”と一致すると判定する。
従って、制御部11bは、SYNパケットによる通信の許可を示す制御情報を生成する。このとき、制御部11bは、図30に示すレコードに記述されている出力インタフェースを、パケットの出力先として制御情報に記述する。本例では、出力インタフェース“Ethernet1 ”(図30参照)を制御情報に記述する。そして、制御部11bは、生成した制御情報をスイッチ部12bに設定する(ステップS212)。
スイッチ部12bは、その制御情報に従って、保持しているSYNパケットを出力する。すなわち、スイッチ部12bは、保持しているSYNパケットを、制御情報内で指定されている通信インタフェースから出力する(ステップS213)。この結果、サーバ30は、SYNパケットを受信する。
前述のように、サーバ30によるSYN_ACKパケット送信後の動作の説明は省略する。
管理態様1によれば、管理サーバ20は、ゲートウェイ10aが学習によってリストに追加したレコード(図30参照)を、ゲートウェイ10bの制御部11bに配信する。従って、デバイス72が移動してゲートウェイ10bを使用する場合であっても、ゲートウェイ10bは、レコードを学習せずに、デバイス72が送信したパケットをサーバ30に中継することができる。
次に、管理サーバ20が管理態様2でレコードを管理する場合について説明する。図31は、管理態様2でレコードを管理する管理サーバ20の構成例を示すブロック図である。図31に示す例では、管理サーバ20は、受信部21と、記憶部22と、削除指示部24とを備える。
受信部21および記憶部22は、図27に示す受信部21および記憶部22と同様である。
削除指示部24は、受信部21がレコードを受信した場合、そのレコードを送信したゲートウェイ10以外の各ゲートウェイ10の制御部11に対して、そのレコードに記述されているデバイスの識別情報が記述されているレコードの削除を指示する。なお、この指示を受けた制御部11は、指示に従って、保持しているリストから、該当するレコードを削除する。
受信部21および削除指示部24は、例えば、プログラムに従って動作するコンピュータのCPUと、通信インタフェースとによって実現される。
次に、管理サーバ20が管理態様2でレコードを管理する場合の処理経過の例について説明する。以下に示す例では、ゲートウェイ10aが、デバイス72のMACアドレスを記述したレコードを学習しているものとする。また、ゲートウェイ10bもデバイス72のMACアドレスを記述したレコードを学習し、そのレコードを管理サーバ20に送信し、管理サーバ20が、ゲートウェイ10aにレコードの削除を指示する動作を説明する。
図32は、管理サーバ20が管理態様2でレコードを管理する場合の処理経過の例を示すシーケンス図である。
ゲートウェイ10aの制御部11aは、学習モードで、デバイス72がサーバ30を宛先とするパケットを送信したことにより、図30に示すレコードを既に学習し、そのレコードをリストに追加しているものとする。この動作は、図28に示すステップS201〜S207の動作と同様であり、ここでは、説明を省略する。
制御部11aが保持するリストには図30に示すレコードが追加されている。従って、制御部11aが運用モードに設定された場合、制御部11aは、デバイス72がサーバ30を宛先として送信したパケットの転送を許可する制御情報をスイッチ部12aに設定し、スイッチ部12aは、そのパケットをサーバ30に転送する(ステップS301〜S304)。ステップS301〜S304の動作は、図28に示すステップS210〜S213の動作と同様であり、ここでは、説明を省略する。
また、ゲートウェイ10bの制御部11bに、図29に示す学習項目設定テーブルが設定されているものとする。すなわち、学習態様1が指定され、学習モードで学習すべき条件として、「送信元MACアドレス」が指定されているものとする。また、制御部11bは、学習モードに設定されたことによって、初期追加レコードをリストに追加する。例えば、制御部11bは、図4に例示するn−2番目からn番目までのレコードを、初期追加レコードとしてリストに追加する。ただし、説明を簡単にするために、図4に示す最後の初期追加レコード(図4に示すn番目のレコード)に基づいて、新たなレコードが作成されるものとして説明する。
学習モードにおいて、デバイス72がサーバ30を宛先として送信したパケットを、ゲートウェイ10bが中継することによって、ゲートウェイ10bの制御部11bは、図30に示すレコードを学習し、制御部11bが保持しているリストに追加する(ステップS305〜S311)。ステップS305〜S311の動作は、図28に示すステップS201〜S207の動作と同様であり、ここでは、説明を省略する。この結果、制御部11bが保持しているリストにも、図30に示すレコード(デバイス72のMACアドレスを送信元アドレスとして記述したレコード)が追加される。
制御部11bは、ステップS308で生成したログ、および、ステップS309でリストに追加したレコード(図30参照)を、管理サーバ20に送信する(ステップS312)。
管理サーバ20の受信部21(図31参照)は、そのログおよびレコードを受信し、記憶部22に記憶させる。
そして、管理サーバ20の削除指示部24(図31参照)は、そのレコードを送信したゲートウェイ10b以外の各ゲートウェイ(本例ではゲートウェイ10aのみ)の制御部11aに対して、そのレコードに記述されているデバイス72のMACアドレス“11:22:33:44:55:66”が記述されているレコードを削除するように指示する(ステップS313)。
制御部11aは、その指示に従って、デバイス72のMACアドレス“11:22:33:44:55:66”が記述されているレコードを、制御部11aが保持しているリストの中から削除する。制御部11aが保持しているリストには、図30に示すレコードが含まれていて、そのレコードの「送信元MACアドレス」の項目には、デバイス72のMACアドレス“11:22:33:44:55:66”が記述されている。従って、制御部11aは、保持しているリストの中から、図30に示すレコードを削除する。
デバイス72が移動して、ゲートウェイ10bを介してサーバ30と通信を行うことになったことにより、ゲートウェイ10aでは、デバイス72が送信したパケットに基づいて学習したレコードは不要になる。管理態様2では、管理サーバ20がそのレコードの削除をゲートウェイ10aに指示し、ゲートウェイ10aはそのレコードを削除する。従って、リスト内のレコード数が減少するので、セキュリティの脆弱性を抑えたり、メンテナンスの容易性を向上させたりすることができる。また、レコードの検索処理速度を向上させることができる。
次に、各デバイス71〜72が、ゲートウェイ10に設けられた接続インタフェースに着脱されるデバイスである場合を例にして説明する。この場合、ゲートウェイ10は、第2の実施形態で説明したゲートウェイ10(図19参照)である。ただし、ゲートウェイ10の制御部11(図19参照)は、学習によってリストに追加したレコードを、管理サーバ20に送信する動作も行う。前述のように、本実施形態では、デバイスの識別情報を記述したレコードが管理対象である。以下の説明では、デバイスが、USBインタフェース63に着脱されるデバイスであるものとする。そして、デバイスの識別情報として、VID、PIDおよびシリアル番号の3種類があり、ゲートウェイ10が、そのうちVIDおよびPIDを記述したレコードを学習する場合を例にして説明する。
まず、管理サーバ20が管理態様1でレコードを管理する場合について説明する。この場合、管理サーバ20は、図27に示すブロック図で表すことができるので、図27を参照して説明する。受信部21、記憶部22および配信部23については、既に説明したので、ここでは説明を省略する。
管理サーバ20が管理態様1でレコードを管理する場合の処理経過の例について説明する。以下に示す例では、ゲートウェイ10aが、デバイス72のVIDおよびPIDを記述したレコードを学習し、そのレコードを管理サーバ20に送信し、管理サーバ20が、そのレコードをゲートウェイ10bに配信する動作を説明する。
前述の場合と同様に、ゲートウェイ10aの制御部11を、制御部11aと記す。ゲートウェイ10bの制御部11を、制御部11bと記す。また、ゲートウェイ10aの接続部17を、接続部17aと記す。ゲートウェイ10bの接続部17を、接続部17bと記す。また、ゲートウェイ10aのUSBインタフェース63を、USBインタフェース63aと記す。ゲートウェイ10bのUSBインタフェース63を、USBインタフェース63bと記す
図33は、管理サーバ20が管理態様1でレコードを管理する場合の処理経過の例を示すシーケンス図である。
また、ここでは、ゲートウェイ10aの制御部11aに、図22に示すUSB用学習項目設定テーブルが設定されているものとする。すなわち、3種類の識別情報のうち、VIDおよびPIDが学習対象として指定されているものとする。また、制御部11aは、USB用リストのレコードのみを学習することが指定され、学習モードに設定されたことによって、USB用リスト(図20参照)に初期追加レコード(全ての項目をany としたレコード)を追加しているものとする。さらに、デバイス72のVIDが“00:00:05”であり、デバイス72のPIDが“00:00:05”であるものとする。
デバイス72がゲートウェイ10aのUSBインタフェース63aに差し込まれると(ステップS401)、ゲートウェイ10aの接続部17aは、デバイス72とゲートウェイ10aとを接続させる(ステップS402)。また、ステップS402において、接続部17aは、デバイス72から、デバイス72の各種識別情報(VID、PID、シリアル番号)を取得する。
接続部17aは、その各種識別情報(VID、PID、シリアル番号)を制御部11aに通知する(ステップS403)。
制御部11aは、VID、PID、シリアル番号の通知を受けた場合、リストに初期追加レコードが追加されているので、デバイス72とゲートウェイ10aとの接続を許可する(ステップS404)。制御部11aは、接続を許可した場合、接続部17aに通知を行わない。接続部17aは、制御部11aから通知がなければ、デバイス72とゲートウェイ10aとの接続情報を維持する。
また、制御部11aは、ステップS403で通知された各種設定情報のうち、USB用学習項目設定テーブルで指定されている種類の識別情報(本例では、VIDおよびPID。図22参照。)と、接続を許可したことと、学習モードであることを記述したログを生成し、記憶する(ステップS405)。
さらに、制御部11aは、ステップS403で通知された各種設定情報のうち、USB用学習項目設定テーブルで指定されている項目(本例では、VIDおよびPID。図22参照。)に、具体的なVID、PIDを記述し、補足情報の項目に、学習によって追加されたことを記述したレコードを生成し、そのレコードをUSB用リストに追加する(ステップS406)。なお、制御部11aは、シリアル番号の項目には“any ”を記述する。ステップS406でUSB用リストに追加されるレコードの例を、図34に示す。図34では、ステップS406でUSB用リストに追加される1つのレコードのみを示し、USB用リスト全体については図示していない。
次に、制御部11aは、ステップS405で生成したログ、および、ステップS406でUSB用リストに追加したレコード(図34参照)を、管理サーバ20に送信する(ステップS407)。
管理サーバ20の受信部21(図27参照)は、そのログおよびレコードを受信し、記憶部22に記憶させる。
そして、管理サーバ20の配信部23は、受信部21が受信したレコードを、そのレコードを送信したゲートウェイ10a以外の各ゲートウェイ(本例ではゲートウェイ10bのみ)の制御部11に配信する(ステップS408)。
ゲートウェイ10bの制御部11bは、そのレコードを受信すると、制御部11bが保持しているUSB用リストにそのレコードを追加する。その結果、制御部11bが保持しているリストに、図34に示すレコードが追加される。
その後、デバイス72がゲートウェイ10aから取り外され、持ち運ばれて、ゲートウェイ10bのUSBインタフェース63b差し込まれたとする(ステップS409)。また、このとき、ゲートウェイ10bの制御部11bは、運用モードに設定されているとする。
すると、ゲートウェイ10bの接続部17bは、デバイス72とゲートウェイ10bとを接続させる(ステップS410)。また、ステップS410において、接続部17bは、デバイス72から、デバイス72の各種識別情報(VID、PID、シリアル番号)を取得する。
接続部17bは、その各種識別情報(VID、PID、シリアル番号)を制御部11bに通知する(ステップS411)。ステップS409〜S411の動作は、ステップS401〜S403の動作と同様である。
制御部11bは、各種識別情報(VID、PID、シリアル番号)の通知を受けると、その識別情報がいずれかのレコードに記述されているか否かを判定する。本例では、通知されたVIDが“00:00:05”であり、通知されたPIDが“00:00:05”である。従って、制御部11bは、通知されたVIPおよびPIDが記述されたレコード(図34参照)が、USB用リスト内に存在すると判定する(ステップS412)。従って、制御部11bは、デバイス72とゲートウェイ10bとの接続を許可する。制御部11bは、接続を許可する場合には接続部17bに通知を行わず、接続部17bは、制御部11bからの通知がないことにより、デバイス72とゲートウェイ10bとの接続を維持する。
また、制御部11bは、レコードに記述されていた識別情報に合致する識別情報(VID“00:00:05”、および、PID“00:00:05”)と、接続を許可したこととを記述したログを生成し、記憶する(ステップS413)。
管理態様1によれば、管理サーバ20は、ゲートウェイ10aが学習によってリスト(上記の例ではUSB用リスト)に追加したレコード(図34参照)を、ゲートウェイ10bの制御部11bに配信する。従って、デバイス72が移動して、ゲートウェイ10bのUSBインタフェース63bに差し込まれた場合であっても、ゲートウェイ10bは、レコードを学習せずに、デバイス72とゲートウェイ10bとの接続を許可することができる。
次に、管理サーバ20が管理態様2でレコードを管理する場合について説明する。この場合、管理サーバ20は、図31に示すブロック図で表すことができるので、図31を参照して説明する。受信部21、記憶部22および削除指示部24については、既に説明したので、ここでは説明を省略する。
管理サーバ20が管理態様2でレコードを管理する場合の処理経過の例について説明する。以下に示す例では、ゲートウェイ10aが、デバイス72のVIDおよびPIDを記述したレコードを学習しているものとする。また、ゲートウェイ10bもデバイス72のVIDおよびPIDを記述したレコードを学習し、そのレコードを管理サーバ20に送信し、管理サーバ20が、ゲートウェイ10aにそのレコードの削除を指示する動作を説明する。
上記の場合と同様に、デバイス72のVIDが“00:00:05”であり、デバイス72のPIDが“00:00:05”であるものとする。
図35は、管理サーバ20が管理態様2でレコードを管理する場合の処理経過の例を示すシーケンス図である。
ゲートウェイ10aの制御部11aは、学習モードにおいて、デバイス72がUSBインタフェース63aに差し込まれたことにより、図34に示すレコードを既に学習し、そのレコードをUSB用リストに追加しているものとする。この動作は、図33に示すステップS401〜S406の動作と同様であり、ここでは、説明を省略する。
制御部11aが保持するUSB用リストには、図34に示すレコードが追加されている。従って、制御部11aが運用モードに設定されると、制御部11aは、デバイス72がUSBインタフェース63aに差し込まれた場合、デバイス72とゲートウェイ10aとの接続を許可する(ステップS501〜S505)。ステップS501〜S505の動作は、図33に示すステップS409〜S413の動作と同様であり、ここでは、説明を省略する。
また、ゲートウェイ10bの制御部11bに、図22に示すUSB用学習項目設定テーブルが設定されているものとする。すなわち、3種類の識別情報のうち、VIDおよびPIDが学習対象として指定されているものとする。また、制御部11bは、USB用リストのレコードのみを学習することが指定され、学習モードに設定されたことによって、USB用リスト(図20参照)に、初期追加レコード(全ての項目をany としたレコード)を追加しているものとする。
学習モードにおいて、デイバス72がゲートウェイ10bのUSBインタフェース63bに差し込まれることによって、ゲートウェイ10bの制御部11bは、図34に示すレコードを学習し、制御部11bが保持しているUSB用リストに追加する(ステップS506〜S511)。ステップS506〜S511の動作は、図33に示すステップS401〜S406の動作と同様であり、ここでは、説明を省略する。この結果、制御部11bが保持しているUSB用リストにも、図34に示すレコードが追加される。
制御部11bは、ステップS510で生成したログ、および、ステップS511でUSB用リストに追加したレコード(図34参照)を、管理サーバ20に送信する(ステップS512)。
管理サーバ20の受信部21(図31参照)は、そのログおよびレコードを受信し、記憶部22に記憶させる。
そして、管理サーバ20の削除指示手段24(図31参照)は、そのレコードを送信したゲートウェイ10b以外の各ゲートウェイ(本例ではゲートウェイ10aのみ)の制御部11aに対して、そのレコードに記述されているデバイス72のVID“00:00:05”およびPID“00:00:05”が記述されているレコードを削除するように指示する(ステップS513)
制御部11aは、その指示に従って、デバイス72のVID“00:00:05”およびPID“00:00:05”が記述されているレコードを、制御部11aが保持しているUSB用リストの中から削除する。制御部11aが保持しているUSB用リストには、図34に示すレコードが含まれていて、そのレコードには、デバイス72のVID“00:00:05”およびPID“00:00:05”が記述されている。従って、制御部11aは、保持しているUSB用リストの中から、図34に示すレコードを削除する。
デバイス72がゲートウェイ10aから取り外され、ゲートウェイ10bの配置場所まで持ち運ばれて、ゲートウェイ10bのUSBインタフェース63bに接続されると、ゲートウェイ10aでは、デバイス72がUSBインタフェース63aに差し込まれことに基づいて学習したレコードは不要になる。管理態様2では、管理サーバ20がそのレコードの削除をゲートウェイ10aに指示し、ゲートウェイ10aはそのレコードを削除する。従って、リスト内のレコード数が減少するので、セキュリティの脆弱性を抑えたり、メンテナンスの容易性を向上させたりすることができる。また、レコードの検索処理速度を向上させることができる。
また、第3の実施形態では、ゲートウェイ10の制御部11が、学習モードに設定されているときに、レコードをリストに追加する場合を例に説明した。第1の実施形態や第2の実施形態で説明したように、制御部11は、学習モードが解除されたとき(すなわち、学習モードから運用モードに切り替えられたとき)に、新たなレコードをリストに追加する動作を実行してもよい。この動作は、第1の実施形態や第2の実施形態で既に説明しているので、ここでは、説明を省略する。
また、本発明において、スイッチ部12が受信したパケットが新規パケットであった場合、スイッチ部12は、受信したパケットのヘッダ情報を通知する。この動作は、以下のような動作であってもよい。
スイッチ部12は、受信した新規パケットのコピーを制御部11に送ることによって、制御部11にヘッダ情報を通知する。そして、スイッチ部12は、受信したそのパケットを保持する。そのパケットのヘッダ情報に応じた制御情報が設定されると、スイッチ部12は、保持しているパケットを、その制御情報に従って処理する。
あるいは、スイッチ部12は、受信した新規パケットを保持することなく、そのパケット全体を制御部11に送ることによって、そのパケットのヘッダ情報を制御部11に通知してもよい。この場合、制御部11は、そのパケットのヘッダ情報に応じた制御情報をスイッチ部12に設定する際に、そのパケットをスイッチ部12に返す。スイッチ部12は、制御部11から返されたパケットを、その制御情報に従って処理する。
このように、スイッチ部12が受信したパケットのヘッダ情報を制御部11に通知する方法は、1つの方法に限定されない。
次に、本発明の概要について説明する。
図36は、本発明の通信装置の概要の例を示すブロック図である。本発明の通信装置110は、パケット転送手段112と、制御手段111とを備える。
パケット転送手段112(例えば、スイッチ部12)は、パケットを転送する。
制御手段111(例えば、第1の実施形態における制御部11)は、パケットのヘッダ情報に応じたパケット転送手段112の動作を規定した制御情報をパケット転送手段112に対して設定する。
パケット転送手段112は、ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、新規パケットのヘッダ情報を制御手段111に通知する。
制御手段111は、通信を許可する条件を記述可能な複数の項目を含むレコードであって、その複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持する。そして、制御手段111は、パケット転送手段112からヘッダ情報が通知されたときに、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されている場合、新規パケットによる通信の許可を示す制御情報をパケット転送手段112に設定する。また、制御手段111は、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれのレコードにも記述されていない場合、新規パケットによる通信の不許可を示す制御情報をパケット転送手段112に設定する。
制御手段111は、条件を学習すべき項目としてIPアドレスから特定可能な条件に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、パケット転送手段112から新規パケットのヘッダ情報が通知されると、新規パケットによる通信の許可を示す制御情報をパケット転送手段112に設定する。そして、制御手段111は、指定された項目にヘッダ情報内のIPアドレスから特定した条件を記述したレコードをリストに追加する。
そのような構成により、パケットによる通信を許可するか、不許可にするかの判定に用いるリストを、管理者にとって分かり易い条件も含められるようにして、生成することができる。
図37は、本発明の通信装置の概要の他の例を示すブロック図である。本発明の通信装置210は、デバイスの接続インタフェース260(例えば、USBインタフェース63やBLEインタフェース64)を備える。さらに、通信装置210は、接続手段217と、制御手段211とを備える。
接続手段217(例えば、接続部17)は、接続インタフェース260に差し込まれたデバイスと当該通信装置210とを接続させる。
制御手段211(例えば、第2の実施形態における制御部11)は、接続手段217を制御する。
接続手段217は、接続インタフェース260にデバイスが差し込まれると、そのデバイスと当該通信装置210とを接続させ、そのデバイスの識別情報を制御手段211に通知する。
制御手段211は、デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持する。そして、制御手段211は、接続手段217からデバイスの識別情報が通知されたときに、その識別情報がリストのいずれかのレコードで記述されている場合、デバイスと当該通信装置210との接続を許可する。また、制御手段211は、その識別情報がリストのいずれのレコードにも記述されていない場合、デバイスと当該通信装置210との接続を不許可とする。
接続手段217は、デバイスと当該通信装置210との接続が不許可とされた場合には、デバイスと当該通信装置210との接続を断つ。
制御手段211は、学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、接続手段217からデバイスの識別情報が通知されると、デバイスと当該通信装置210との接続を許可する。そして、制御手段211は、指定された項目に、当該項目に対応する識別情報を記述したレコードを、リストに追加する。
そのような構成により、他のデバイスの接続を許可するか、不許可にするのかの判定に用いるリストを生成することができる。
図38は、本発明の通信システムの概要の例を示すブロック図である。本発明の通信システムは、複数の通信装置110(例えば、ゲートウェイ10)と、その複数の通信装置110を管理する管理サーバ300とを備える。
個々の通信装置110は、パケット転送手段112と、制御手段111とを備える。
パケット転送手段112(例えば、スイッチ部)は、パケットを転送する。
制御手段111(例えば、第1の実施形態における制御部11)は、パケットのヘッダ情報に応じたパケット転送手段112の動作を規定した制御情報をパケット転送手段112に対して設定する。
パケット転送手段112は、ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、新規パケットのヘッダ情報を制御手段111に通知する。
制御手段111は、通信を許可する条件を記述可能な複数の項目を含むレコードであって、その複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持する。そして、制御手段111は、パケット転送手段112からヘッダ情報が通知されたときに、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれかのレコードで記述されている場合、新規パケットによる通信の許可を示す制御情報をパケット転送手段112に設定する。また、制御手段111は、ヘッダ情報に含まれる情報、または、ヘッダ情報に含まれるIPアドレスから特定される情報が、リストのいずれのレコードにも記述されていない場合、新規パケットによる通信の不許可を示す制御情報をパケット転送手段112に設定する。
制御手段111は、条件を学習すべき項目としてパケットの送信元のデバイスの識別情報に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、パケット転送手段112から新規パケットのヘッダ情報が通知されると、新規パケットによる通信の許可を示す制御情報をパケット転送手段112に設定する。そして、制御手段111は、指定された項目に新規パケットの送信元のデバイスの識別情報を記述したレコードをリストに追加し、レコードを管理サーバ300に送信する。
管理サーバ300(例えば、管理サーバ20)は、受信手段301と、記憶手段302とを備える。
受信手段301(例えば、受信部21)は、レコードを受信する。記憶手段302(例えば、記憶部22)は、そのレコードを記憶する。
そのような構成によれば、パケットによる通信を許可するか、不許可にするかの判定に用いるリストが複数の通信装置で生成される場合に、そのリストを管理することができる。
図39は、本発明の通信システムの概要の他の例を示すブロック図である。本発明の通信システムは、複数の通信装置210(例えば、ゲートウェイ10)と、その複数の通信装置210を管理する管理サーバ300とを備える。
個々の通信装置210は、デバイスの接続インタフェース260と、接続手段217と、制御手段211とを備える。個々の通信装置210に設けられる接続インタフェース260、接続手段217および制御手段211は、図37に示す接続インタフェース260、接続手段217および制御手段211と同様であり、ここでは説明を省略する。ただし、制御手段211は、リストの追加したレコードを管理サーバ300に送信する。
管理サーバ300(例えば、管理サーバ20)は、受信手段301と、記憶手段302とを備える。
受信手段301(例えば、受信部21)は、レコードを受信する。記憶手段302(例えば、記憶部22)は、そのレコードを記憶する。
そのような構成によれば、他のデバイスの接続を許可するか、不許可にするのかの判定に用いるリストが複数の通信装置で生成される場合に、そのリストを管理することができる。
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
パケットを転送するパケット転送手段と、
パケットのヘッダ情報に応じた前記パケット転送手段の動作を規定した制御情報を前記パケット転送手段に対して設定する制御手段とを備え、
前記パケット転送手段は、
ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、前記新規パケットのヘッダ情報を前記制御手段に通知し、
前記制御手段は、
通信を許可する条件を記述可能な複数の項目を含むレコードであって、前記複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持し、前記パケット転送手段から前記ヘッダ情報が通知されたときに、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれかのレコードで記述されている場合、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれのレコードにも記述されていない場合、前記新規パケットによる通信の不許可を示す制御情報を前記パケット転送手段に設定し、
前記制御手段は、
条件を学習すべき項目としてIPアドレスから特定可能な条件に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記ヘッダ情報内のIPアドレスから特定した条件を記述したレコードを前記リストに追加する
ことを特徴とする通信装置。
(付記2)
制御手段は、
学習モードに設定されている間に、パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定するとともに、指定された項目に前記ヘッダ情報内のIPアドレスから特定した条件を記述したレコードを前記リストに追加する
付記1に記載の通信装置。
(付記3)
制御手段は、
学習モードに設定されている間に、前記パケット転送手段から新規パケットのヘッダ情報が通知され、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定すると、前記ヘッダ情報内のIPアドレスから特定した条件を記述したログを生成し、
学習モードの設定が解除されたときに、前記ログに基づいて、指定された項目に前記ヘッダ情報内のIPアドレスから特定した条件を記述したレコードを前記リストに追加する
付記1に記載の通信装置。
(付記4)
制御手段は、
パケット転送手段がDNSサーバからDNSクエリレスポンスを受信した場合、前記DNSクエリレスポンスに基づいて、IPアドレスとドメイン名との対応関係を記憶し、
条件を学習すべき項目としてドメイン名に対応する項目が指定され、かつ、学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記ヘッダ情報内のIPアドレスから特定したドメイン名を記述したレコードをリストに追加する
付記1から付記3のうちのいずれかに記載の通信装置。
(付記5)
制御手段は、
条件を学習すべき項目としてプロセス名に対応する項目が指定され、かつ、学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記ヘッダ情報内のIPアドレスから特定したプロセス名を記述したレコードをリストに追加する
付記1から付記4のうちのいずれかに記載の通信装置。
(付記6)
制御手段は、
条件を学習すべき項目としてプロセスのユーザ名に対応する項目が指定され、かつ、学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記ヘッダ情報内のIPアドレスから特定したユーザ名を記述したレコードをリストに追加する
付記1から付記5のうちのいずれかに記載の通信装置。
(付記7)
デバイスの接続インタフェースを備える通信装置であって、
前記接続インタフェースに差し込まれたデバイスと当該通信装置とを接続させる接続手段と、
前記接続手段を制御する制御手段とを備え、
前記接続手段は、
前記接続インタフェースにデバイスが差し込まれると、前記デバイスと当該通信装置とを接続させ、前記デバイスの識別情報を前記制御手段に通知し、
前記制御手段は、
デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持し、前記接続手段からデバイスの識別情報が通知されたときに、前記識別情報が前記リストのいずれかのレコードで記述されている場合、前記デバイスと当該通信装置との接続を許可し、前記識別情報が前記リストのいずれのレコードにも記述されていない場合、前記デバイスと当該通信装置との接続を不許可とし、
前記接続手段は、前記デバイスと当該通信装置との接続が不許可とされた場合には、前記デバイスと当該通信装置との接続を断ち、
前記制御手段は、
学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記接続手段からデバイスの識別情報が通知されると、前記デバイスと当該通信装置との接続を許可し、
指定された項目に、当該項目に対応する識別情報を記述したレコードを、前記リストに追加する
ことを特徴とする通信装置。
(付記8)
制御手段は、
学習モードに設定されている間に、接続手段からデバイスの識別情報が通知されると、前記デバイスと当該通信装置との接続を許可するとともに、指定された項目に、当該項目に対応する識別情報を記述したレコードを、リストに追加する
付記7に記載の通信装置。
(付記9)
制御手段は、
学習モードに設定されている間に、接続手段からデバイスの識別情報が通知され、前記デバイスと当該通信装置との接続を許可すると、前記識別情報を記述したログを生成し、
学習モードの設定が解除されたときに、前記ログに基づいて、指定された項目に、当該項目に対応する識別情報を記述したレコードを、リストに追加する
付記7に記載の通信装置。
(付記10)
複数の通信装置と、
前記複数の通信装置を管理する管理サーバとを備え、
個々の通信装置は、
パケットを転送するパケット転送手段と、
パケットのヘッダ情報に応じた前記パケット転送手段の動作を規定した制御情報を前記パケット転送手段に対して設定する制御手段とを含み、
前記パケット転送手段は、
ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、前記新規パケットのヘッダ情報を前記制御手段に通知し、
前記制御手段は、
通信を許可する条件を記述可能な複数の項目を含むレコードであって、前記複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持し、前記パケット転送手段から前記ヘッダ情報が通知されたときに、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれかのレコードで記述されている場合、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれのレコードにも記述されていない場合、前記新規パケットによる通信の不許可を示す制御情報を前記パケット転送手段に設定し、
前記制御手段は、
条件を学習すべき項目としてパケットの送信元のデバイスの識別情報に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記新規パケットの送信元のデバイスの識別情報を記述したレコードをリストに追加し、前記レコードを前記管理サーバに送信し、
前記管理サーバは、
前記レコードを受信する受信手段と、
前記レコードを記憶する記憶手段とを含む
ことを特徴とする通信システム。
(付記11)
管理サーバは、
受信手段が受信したレコードを、当該レコードを送信した通信装置以外の各通信装置の制御手段に配信する配信手段を含む
付記10に記載の通信システム。
(付記12)
管理サーバは、
受信手段がレコードを受信した場合、当該レコードを送信した通信装置以外の各通信装置の制御手段に対して、前記レコードに記述されているデバイスの識別情報が記述されているレコードの削除を指示する削除指示手段を含む
付記10に記載の通信システム。
(付記13)
複数の通信装置と、
前記複数の通信装置を管理する管理サーバとを備え、
個々の通信装置は、
デバイスの接続インタフェースと、
前記接続インタフェースに差し込まれたデバイスと当該通信装置とを接続させる接続手段と、
前記接続手段を制御する制御手段とを含み、
前記接続手段は、
前記接続インタフェースにデバイスが差し込まれると、前記デバイスと当該通信装置とを接続させ、前記デバイスの識別情報を前記制御手段に通知し、
前記制御手段は、
デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持し、前記接続手段からデバイスの識別情報が通知されたときに、前記識別情報が前記リストのいずれかのレコードで記述されている場合、前記デバイスと当該通信装置との接続を許可し、前記識別情報が前記リストのいずれのレコードにも記述されていない場合、前記デバイスと当該通信装置との接続を不許可とし、
前記接続手段は、
前記デバイスと当該通信装置との接続が不許可とされた場合には、前記デバイスと当該通信装置との接続を断ち、
前記制御手段は、
学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記接続手段からデバイスの識別情報が通知されると、前記デバイスと当該通信装置との接続を許可し、
指定された項目に、当該項目に対応する識別情報を記述したレコードを、前記リストに追加し、前記レコードを前記管理サーバに送信し、
前記管理サーバは、
前記レコードを受信する受信手段と、
前記レコードを記憶する記憶手段とを含む
ことを特徴とする通信システム。
(付記14)
管理サーバは、
受信手段が受信したレコードを、当該レコードを送信した通信装置以外の各通信装置の制御手段に配信する配信手段を含む
付記13に記載の通信システム。
(付記15)
管理サーバは、
受信手段がレコードを受信した場合、当該レコードを送信した通信装置以外の各通信装置の制御手段に対して、前記レコードに記述されているデバイスの識別情報が記述されているレコードの削除を指示する削除指示手段を含む
付記13に記載の通信システム。
(付記16)
パケットを転送するパケット転送手段と、パケットのヘッダ情報に応じた前記パケット転送手段の動作を規定した制御情報を前記パケット転送手段に対して設定する制御手段とを備える通信装置に適用される通信制御方法であって、
前記パケット転送手段が、
ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、前記新規パケットのヘッダ情報を前記制御手段に通知し、
前記制御手段が、
通信を許可する条件を記述可能な複数の項目を含むレコードであって、前記複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持し、前記パケット転送手段から前記ヘッダ情報が通知されたときに、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれかのレコードで記述されている場合、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれのレコードにも記述されていない場合、前記新規パケットによる通信の不許可を示す制御情報を前記パケット転送手段に設定し、
前記制御手段が、
条件を学習すべき項目としてIPアドレスから特定可能な条件に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記ヘッダ情報内のIPアドレスから特定した条件を記述したレコードを前記リストに追加する
ことを特徴とする通信制御方法。
(付記17)
デバイスの接続インタフェースを備える通信装置であって、前記接続インタフェースに差し込まれたデバイスと当該通信装置とを接続させる接続手段と、前記接続手段を制御する制御手段とを備える通信装置に適用されるデバイス接続制御方法において、
前記接続手段が、
前記接続インタフェースにデバイスが差し込まれると、前記デバイスと当該通信装置とを接続させ、前記デバイスの識別情報を前記制御手段に通知し、
前記制御手段が、
デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持し、前記接続手段からデバイスの識別情報が通知されたときに、前記識別情報が前記リストのいずれかのレコードで記述されている場合、前記デバイスと当該通信装置との接続を許可し、前記識別情報が前記リストのいずれのレコードにも記述されていない場合、前記デバイスと当該通信装置との接続を不許可とし、
前記接続手段が、前記デバイスと当該通信装置との接続が不許可とされた場合には、前記デバイスと当該通信装置との接続を断ち、
前記制御手段が、
学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記接続手段からデバイスの識別情報が通知されると、前記デバイスと当該通信装置との接続を許可し、
指定された項目に、当該項目に対応する識別情報を記述したレコードを、前記リストに追加する
ことを特徴とするデバイス接続制御方法。
(付記18)
複数の通信装置と、前記複数の通信装置を管理する管理サーバとを備え、個々の通信装置が、パケットを転送するパケット転送手段と、パケットのヘッダ情報に応じた前記パケット転送手段の動作を規定した制御情報を前記パケット転送手段に対して設定する制御手段とを含む通信システムに適用される通信装置管理方法であって、
前記パケット転送手段が、
ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、前記新規パケットのヘッダ情報を前記制御手段に通知し、
前記制御手段が、
通信を許可する条件を記述可能な複数の項目を含むレコードであって、前記複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持し、前記パケット転送手段から前記ヘッダ情報が通知されたときに、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれかのレコードで記述されている場合、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれのレコードにも記述されていない場合、前記新規パケットによる通信の不許可を示す制御情報を前記パケット転送手段に設定し、
前記制御手段が、
条件を学習すべき項目としてパケットの送信元のデバイスの識別情報に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、
指定された項目に前記新規パケットの送信元のデバイスの識別情報を記述したレコードをリストに追加し、前記レコードを前記管理サーバに送信し、
前記管理サーバが、
前記レコードを受信し、前記レコードを記憶する
ことを特徴とする通信装置管理方法。
(付記19)
複数の通信装置と、前記複数の通信装置を管理する管理サーバとを備え、個々の通信装置が、デバイスの接続インタフェースと、前記接続インタフェースに差し込まれたデバイスと当該通信装置とを接続させる接続手段と、前記接続手段を制御する制御手段とを含む通信システムに適用される通信装置管理方法であって、
前記接続手段が、
前記接続インタフェースにデバイスが差し込まれると、前記デバイスと当該通信装置とを接続させ、前記デバイスの識別情報を前記制御手段に通知し、
前記制御手段が、
デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持し、前記接続手段からデバイスの識別情報が通知されたときに、前記識別情報が前記リストのいずれかのレコードで記述されている場合、前記デバイスと当該通信装置との接続を許可し、前記識別情報が前記リストのいずれのレコードにも記述されていない場合、前記デバイスと当該通信装置との接続を不許可とし、
前記接続手段が、
前記デバイスと当該通信装置との接続が不許可とされた場合には、前記デバイスと当該通信装置との接続を断ち、
前記制御手段が、
学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記接続手段からデバイスの識別情報が通知されると、前記デバイスと当該通信装置との接続を許可し、
指定された項目に、当該項目に対応する識別情報を記述したレコードを、前記リストに追加し、前記レコードを前記管理サーバに送信し、
前記管理サーバが、
前記レコードを受信し、前記レコードを記憶する
ことを特徴とする通信装置管理方法。
(付記20)
パケットを転送するパケット転送手段と、パケットのヘッダ情報に応じた前記パケット転送手段の動作を規定した制御情報を前記パケット転送手段に対して設定する制御手段とを備えるコンピュータに搭載される通信プログラムであって、
前記コンピュータに、
前記パケット転送手段が、ヘッダ情報に適合する制御情報が未だ設定されていないパケットである新規パケットを受信したときに、前記新規パケットのヘッダ情報を前記制御手段に通知する通知処理、
前記制御手段が、通信を許可する条件を記述可能な複数の項目を含むレコードであって、前記複数の項目のうち少なくとも一部の項目に条件が記述されたレコードのリストを保持し、前記パケット転送手段から前記ヘッダ情報が通知されたときに、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれかのレコードで記述されている場合、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定し、前記ヘッダ情報に含まれる情報、または、前記ヘッダ情報に含まれるIPアドレスから特定される情報が、前記リストのいずれのレコードにも記述されていない場合、前記新規パケットによる通信の不許可を示す制御情報を前記パケット転送手段に設定する制御情報設定処理、
前記制御手段が、条件を学習すべき項目としてIPアドレスから特定可能な条件に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記パケット転送手段から新規パケットのヘッダ情報が通知されると、前記新規パケットによる通信の許可を示す制御情報を前記パケット転送手段に設定する学習モード時制御情報設定処理、および、
前記制御手段が、指定された項目に前記ヘッダ情報内のIPアドレスから特定した条件を記述したレコードを前記リストに追加するレコード追加処理
を実行させるための通信プログラム。
(付記21)
デバイスの接続インタフェースを備えるコンピュータであって、前記接続インタフェースに差し込まれたデバイスと当該コンピュータとを接続させる接続手段と、前記接続手段を制御する制御手段とを備えるコンピュータに搭載されるデバイス接続制御プログラムであって、
前記コンピュータに、
前記接続手段が、前記接続インタフェースにデバイスが差し込まれると、前記デバイスと当該コンピュータとを接続させ、前記デバイスの識別情報を前記制御手段に通知する通知処理、
前記制御手段が、デバイスの識別情報を記述可能な1以上の項目を含むレコードであって、少なくとも1つの項目にデバイスの識別情報が記述されたレコードのリストを保持し、前記接続手段からデバイスの識別情報が通知されたときに、前記識別情報が前記リストのいずれかのレコードで記述されている場合、前記デバイスと当該コンピュータとの接続を許可し、前記識別情報が前記リストのいずれのレコードにも記述されていない場合、前記デバイスと当該コンピュータとの接続を不許可とする接続制御処理、
前記接続手段が、前記デバイスと当該コンピュータとの接続が不許可とされた場合には、前記デバイスと当該コンピュータとの接続を断つ接続切断処理、
前記制御手段が、学習すべき識別情報の種類に対応する項目が指定され、かつ、新たなレコードを学習する学習モードに設定された場合、前記接続手段からデバイスの識別情報が通知されると、前記デバイスと当該コンピュータとの接続を許可する学習モード時接続制御処理、および、
前記制御手段が、指定された項目に、当該項目に対応する識別情報を記述したレコードを、前記リストに追加するレコード追加処理
を実行させるためのデバイス接続制御プログラム。