(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】通信監視装置、通信監視方法、及び通信監視プログラム
(51)【国際特許分類】
H04L 43/00 20220101AFI20231220BHJP
【FI】
H04L43/00
(21)【出願番号】P 2020016507
(22)【出願日】2020-02-03
【審査請求日】2022-11-10
(73)【特許権者】
【識別番号】504411166
【氏名又は名称】アラクサラネットワークス株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】福崎 祥平
(72)【発明者】
【氏名】新井 雅也
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2018-137687(JP,A)
【文献】特許第4610240(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/00
(57)【特許請求の範囲】
【請求項1】
プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信を監視する監視装置であって、
前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、
前記監視装置は、プロセッサとメモリとを含み、
前記メモリは、
前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、
前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、
前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、
前記プロセッサは、
前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合、
前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得し、
当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記取得した第2抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定
し、
前記所定の通信種別は、
前記第1通信において前記プロキシサーバが送信する第1HTTP Request及びDNS Queryと、
前記第1通信において前記プロキシサーバが受信するDNS Responseと、
前記第2通信において前記プロキシサーバが受信する第2HTTP Requestと、を含み、
前記第1通信種別は、前記第1HTTP Requestであり、
前記プロセッサは、
前記第1HTTP Requestのパケットの受信時刻との時間差が前記所定値以内に受信した、前記DNS Queryのパケット、前記DNS Responseのパケット、及び前記第2HTTP Requestのパケットについて、一致判定を実行し、
全ての一致判定において一致すると判定した場合に、前記第2HTTP Requestのパケットの通信がエンドツーエンド通信に含まれると判定し、
前記一致判定は、
前記第1HTTP Requestのパケットの宛先と、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先と、の第1一致判定と、
前記DNS Responseのパケットの送信元と、前記DNS Queryのパケットの宛先と、の第2一致判定と、
前記DNS Responseのパケットの宛先と、前記DNS Queryのパケットの送信元と、の第3一致判定と、の少なくとも1つの一致判定と、
前記DNS Queryのパケットが示す前記第1ネットワーク内の宛先と、前記第2HTTP Requestのパケットが示す前記第1ネットワーク内の宛先と、の第4一致判定と、を含む、監視装置。
【請求項2】
請求項1に記載の監視装置であって、
前記プロセッサは、前記第1一致判定において、前記第1HTTP Requestのパケットの宛先IPアドレスと、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先IPアドレスと、が一致するかを判定する、監視装置。
【請求項3】
請求項1に記載の監視装置であって、
前記プロセッサは、
前記第2一致判定において、
前記DNS Responseのパケットの送信元IPアドレスと、前記DNS Queryのパケットの宛先IPアドレスと、が一致するか、及び
前記DNS Responseのパケットの送信元ポート番号と、前記DNS Queryのパケットの宛先ポート番号と、が一致するかを判定し、
前記第3一致判定において、
前記DNS Responseのパケットの宛先IPアドレスと、前記DNS Queryのパケットの送信元IPアドレスと、が一致するか、及び
前記DNS Responseのパケットの宛先ポート番号と、前記DNS Queryのパケットの送信元ポート番号と、が一致するかを判定する、監視装置。
【請求項4】
請求項1に記載の監視装置であって、
前記プロセッサは、前記第4一致判定において、前記DNS QueryのパケットのA recordと、前記第2HTTP RequestのパケットのHOSTと、が一致するかを判定する、監視装置。
【請求項5】
プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信を監視する監視装置であって、
前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、
前記監視装置は、プロセッサとメモリとを含み、
前記メモリは、
前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、
前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、
前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、
前記プロセッサは、
前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合、
前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得し、
当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記取得した第2抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定し、
前記所定の通信種別は、
前記第1通信において前記プロキシサーバが送信するTLSメッセージ及びDNS Queryと、
前記第1通信において前記プロキシサーバが受信するDNS Responseと、
前記第2通信において前記プロキシサーバが受信するHTTP Requestと、を含み、
前記第1通信種別は、前記TLSメッセージであり、
前記プロセッサは、
前記TLSメッセージのパケットの受信時刻との時間差が前記所定値以内に受信した、前記DNS Queryのパケット、前記DNS Responseのパケット、及び前記HTTP Requestのパケットについて、一致判定を実行し、
全ての一致判定において一致すると判定した場合に、前記HTTP Requestのパケットの通信がエンドツーエンド通信に含まれると判定し、
前記一致判定は、
前記TLSメッセージのパケットの宛先と、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先と、の第1一致判定と、
前記DNS Responseのパケットの送信元と、前記DNS Queryのパケットの宛先と、の第2一致判定と、
前記DNS Responseのパケットの宛先と、前記DNS Queryのパケットの送信元と、の第3一致判定と、の少なくとも一つの一致判定と、
前記DNS Queryのパケットが示す前記第1ネットワーク内の宛先と、前記HTTP Requestのパケットが示す前記第1ネットワーク内の宛先と、の第4一致判定と、を含む、監視装置。
【請求項6】
請求項5に記載の監視装置であって、
前記プロセッサは、前記第1一致判定において、前記TLSメッセージのパケットの宛先IPアドレスと、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先IPアドレスと、が一致するかを判定する、監視装置。
【請求項7】
請求項5に記載の監視装置であって、
前記プロセッサは、
前記第2一致判定において、
前記DNS Responseのパケットの送信元IPアドレスと、前記DNS Queryのパケットの宛先IPアドレスと、が一致するか、及び
前記DNS Responseのパケットの送信元ポート番号と、前記DNS Queryのパケットの宛先ポート番号と、が一致するかを判定し、
前記第3一致判定において、
前記DNS Responseのパケットの宛先IPアドレスと、前記DNS Queryのパケットの送信元IPアドレスと、が一致するか、及び
前記DNS Responseのパケットの宛先ポート番号と、前記DNS Queryのパケットの送信元ポート番号と、が一致するかを判定する、監視装置。
【請求項8】
請求項5に記載の監視装置であって、
前記プロセッサは、前記第4一致判定において、前記DNS QueryのパケットのA recordと、前記HTTP RequestのパケットのHOSTと、が一致するかを判定する、監視装置。
【請求項9】
請求項1又は5に記載の監視装置であって、
センサを含み、
前記センサは、前記監視対象データと、前記監視対象データの受信時刻と、を取得し、
前記プロセッサは、
前記監視対象データから、前記監視対象データの通信種別と、前記第1通信の監視対象
データの送信元及び宛先と、前記第2通信の監視対象データの前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を抽出して前記抽出データを生成し、
前記生成した抽出データと、前記センサが取得した受信時刻と、を前記抽出情報に含める、監視装置。
【請求項10】
請求項1又は5に記載の監視装置であって、
表示装置に接続され、
前記抽出データは、前記第1通信の監視対象データの送信元を示し、
前記プロセッサは、
前記取得した第2抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれると判定した場合、当該第1抽出データに対応する監視対象データの前記第1ネットワーク内の宛先と、当該第2抽出データに対応する監視対象データの送信元と、を前記表示装置に表示する、監視装置。
【請求項11】
プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信を監視する監視装置による監視方法であって、
前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、
前記監視装置は、
前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、
前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、
前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、
前記監視方法は、
前記監視装置が、前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合、
前記監視装置が、前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得し、
前記監視装置が、当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記取得した第2抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定し、
前記所定の通信種別は、
前記第1通信において前記プロキシサーバが送信するTLSメッセージ及びDNS Queryと、
前記第1通信において前記プロキシサーバが受信するDNS Responseと、
前記第2通信において前記プロキシサーバが受信するHTTP Requestと、を含み、
前記第1通信種別は、前記TLSメッセージであり、
前記監視方法は、
前記監視装置が、前記TLSメッセージのパケットの受信時刻との時間差が前記所定値以内に受信した、前記DNS Queryのパケット、前記DNS Responseのパケット、及び前記HTTP Requestのパケットについて、一致判定を実行し、
前記監視装置が、全ての一致判定において一致すると判定した場合に、前記HTTP Requestのパケットの通信がエンドツーエンド通信に含まれると判定し、
前記一致判定は、
前記TLSメッセージのパケットの宛先と、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先と、の第1一致判定と、
前記DNS Responseのパケットの送信元と、前記DNS Queryのパケットの宛先と、の第2一致判定と、
前記DNS Responseのパケットの宛先と、前記DNS Queryのパケットの送信元と、の第3一致判定と、の少なくとも一つの一致判定と、
前記DNS Queryのパケットが示す前記第1ネットワーク内の宛先と、前記HTTP Requestのパケットが示す前記第1ネットワーク内の宛先と、の第4一致判定と、を含む、監視方法。
【請求項12】
プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信の監視を監視装置に実行される監視プログラムであって、
前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、
前記監視装置は、
前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、
前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、
前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、
前記監視プログラムは、
前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むかを判定する判定処理と、
前記判定処理において、前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合に、
前記監視装置が、前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得する処理と、
前記監視装置が、当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記第1抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定する処理と、を前記監視装置に実行させ、
前記所定の通信種別は、
前記第1通信において前記プロキシサーバが送信する第1HTTP Request及びDNS Queryと、
前記第1通信において前記プロキシサーバが受信するDNS Responseと、
前記第2通信において前記プロキシサーバが受信する第2HTTP Requestと、を含み、
前記第1通信種別は、前記第1HTTP Requestであり、
前記監視プログラムは、
前記第1HTTP Requestのパケットの受信時刻との時間差が前記所定値以内に受信した、前記DNS Queryのパケット、前記DNS Responseのパケット、及び前記第2HTTP Requestのパケットについて、一致判定を前記監視装置に実行させ、
全ての一致判定において一致すると判定した場合に、前記第2HTTP Requestのパケットの通信がエンドツーエンド通信に含まれると判定する処理を前記監視装置に実行させ、
前記一致判定は、
前記第1HTTP Requestのパケットの宛先と、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先と、の第1一致判定と、
前記DNS Responseのパケットの送信元と、前記DNS Queryのパケットの宛先と、の第2一致判定と、
前記DNS Responseのパケットの宛先と、前記DNS Queryのパケットの送信元と、の第3一致判定と、の少なくとも1つの一致判定と、
前記DNS Queryのパケットが示す前記第1ネットワーク内の宛先と、前記第2HTTP Requestのパケットが示す前記第1ネットワーク内の宛先と、の第4一致判定と、を含む、監視プログラム。
【請求項13】
プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信の監視を監視装置に実行される監視プログラムであって、
前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、
前記監視装置は、
前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、
前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、
前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、
前記監視プログラムは、
前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むかを判定する判定処理と、
前記判定処理において、前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合に、
前記監視装置が、前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得する処理と、
前記監視装置が、当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記第1抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定する処理と、を前記監視装置に実行させ、
前記所定の通信種別は、
前記第1通信において前記プロキシサーバが送信するTLSメッセージ及びDNS Queryと、
前記第1通信において前記プロキシサーバが受信するDNS Responseと、
前記第2通信において前記プロキシサーバが受信するHTTP Requestと、を含み、
前記第1通信種別は、前記TLSメッセージであり、
前記監視プログラムは、
前記TLSメッセージのパケットの受信時刻との時間差が前記所定値以内に受信した、前記DNS Queryのパケット、前記DNS Responseのパケット、及び前記HTTP Requestのパケットについて、一致判定を前記監視装置に実行させ、
全ての一致判定において一致すると判定した場合に、前記HTTP Requestのパケットの通信がエンドツーエンド通信に含まれると判定する処理を前記監視装置に実行させ、
前記一致判定は、
前記TLSメッセージのパケットの宛先と、前記DNS Responseのパケットが示す前記第1ネットワーク内の宛先と、の第1一致判定と、
前記DNS Responseのパケットの送信元と、前記DNS Queryのパケットの宛先と、の第2一致判定と、
前記DNS Responseのパケットの宛先と、前記DNS Queryのパケットの送信元と、の第3一致判定と、の少なくとも一つの一致判定と、
前記DNS Queryのパケットが示す前記第1ネットワーク内の宛先と、前記HTTP Requestのパケットが示す前記第1ネットワーク内の宛先と、の第4一致判定と、を含む、監視プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信監視装置、通信監視方法、及び通信監視プログラムに関する。
【背景技術】
【0002】
企業や学校などの内部ネットワークがインターネット接続を行う場合、外部ネットワークへのアクセスの制御を行うこと、及び外部からの不正な侵入を防止してセキュリティを確保することを目的として、プロキシサーバのような中継機器が設置される。一方でプロキシサーバの前後でデータ変換が行われるため、外部からはデータの送信元が直接的に把握することができないなど、ユーザ通信を把握しづらくなる。
【0003】
セキュリティインシデント発生時などの外部指摘対応時に、プロキシサーバのような機器が存在する場合、プロキシサーバのログを確認する必要があり、データ送信元を特定するのに多大な工数が掛かる。また、ネットワーク管理者とサーバ管理者とが異なる場合があり、ネットワーク側だけでデータの送信元を特定できることが望まれる。
【0004】
本技術分野の背景技術として、特開2018-137687号公報(特許文献1)がある。この公報には、「ネットワークを中継する中継装置を挟んで第1の装置から第2の装置へ通信が行われるパケットデータの通信経路の解析を行うパケット解析装置のコンピュータを、前記中継装置の上流側を通過する第1のパケットデータのペイロードと、前記中継装置の下流側を通過する第2のパケットデータのペイロードを比較する比較解析手段、前記各ペイロードの比較結果が一致した場合、前記第1のパケットデータの送信元IPアドレスと、前記第2のパケットデータの宛先IPアドレスを組み立てる組み立て手段、として機能させる。」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術は、プロキシサーバの前後のパケットのペイロード部を比較して一致を検出しており、その比較対象のパケットは通信に関わる全パケットであるため、処理負荷が高い。
【0007】
そこで、本発明の一態様は、プロキシサーバのログの解析を行わずに、ネットワーク側だけで送信元を把握する処理を、低負荷で実現することを目的とする。
【課題を解決するための手段】
【0008】
上記した課題を解決するために、本発明の一態様は、以下の構成を採用する。プロキシサーバによって第1ネットワークと第2ネットワークとに分断されたネットワークにおける通信を監視する監視装置であって、前記プロキシサーバは、前記第2ネットワークに含まれる装置からの要求に応じて、当該装置と前記第1ネットワークに含まれる装置との間の通信を中継し、前記監視装置は、プロセッサとメモリとを含み、前記メモリは、前記プロキシサーバと前記第1ネットワークに含まれる装置との間の第1通信と、前記プロキシサーバと前記第2ネットワークに含まれる装置との間の第2通信と、のうち所定の通信種別の通信の監視対象データから抽出された抽出データと、前記抽出データの抽出元の監視対象データの受信時刻と、を示す抽出情報を保持し、前記抽出データは、前記監視対象データの通信種別と、前記第1通信の監視対象データの送信元及び宛先と、前記第2通信の監視対象データの送信元及び前記プロキシサーバによる中継後の前記第1ネットワーク内の宛先と、を示し、前記プロセッサは、前記第1通信における第1通信種別の監視対象データから抽出された第1抽出データを前記抽出情報が含むと判定した場合、前記抽出情報を参照して、当該第1抽出データに対応する受信時刻との時間差が所定値以内である、前記第2通信の監視対象データから抽出された第2抽出データを取得し、当該第1抽出データが示す送信元及び宛先と、前記取得した第2抽出データが示す前記第1ネットワーク内の宛先と、に基づいて、前記取得した第2抽出データの抽出元の監視対象データの通信がエンドツーエンド通信に含まれるかを判定する、監視装置。
【発明の効果】
【0009】
本発明の一態様によれば、プロキシサーバのログの解析を行わずに、ネットワーク側だけで送信元を把握する処理を、低負荷で実現することができる。
【0010】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】実施例1におけるネットワークの構成例を示す説明図である。
【
図2】実施例1におけるHTTPによる通信の流れの一例を示すシーケンス図である。
【
図3A】実施例1におけるHTTP Requestパケットのフォーマットの抜粋の一例である。
【
図3B】実施例1におけるDNS Queryパケットのフォーマットの抜粋の一例である。
【
図3C】実施例1におけるDNS Responseパケットのフォーマットの抜粋の一例である。
【
図3D】実施例1におけるHTTP Requestパケットのフォーマットの抜粋の一例である。
【
図4】実施例1におけるセンサの内部構成例を示すブロック図である。
【
図5】実施例1における抽出情報パケット生成処理の一例を示すフローチャートである。
【
図6】実施例1における監視装置の内部構成例を示すブロック図である。
【
図7】実施例1における抽出情報解析処理の一例示すフローチャートである。
【
図8】実施例1におけるエンドツーエンド通信の検索を実施するための検索画面の構成例である。
【
図9】実施例1における抽出情報検索処理の一例を示すフローチャートである。
【
図10】実施例1におけるエンドツーエンド通信の検索結果を表示する表示画面の構成例である。
【
図11】実施例2におけるHTTPSによる通信を流れの一例を示すシーケンス図である。
【
図12A】実施例2におけるHTTPS Requestのパケットフォーマットの抜粋の一例である。
【
図12B】実施例2におけるTLSメッセージのパケットフォーマットの抜粋の一例である。
【
図13】実施例2における抽出情報パケット生成処理の一例を示すフローチャートである。
【
図14】実施例2における抽出情報解析処理の一例示すフローチャートある。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0013】
本実施形態の通信監視システムは、プロキシサーバの前後でデータ変換が行われる場合に、プロキシサーバの前後の通信をミラーリングし、ミラーリングしたデータから通信の特徴を示す値を保持する。通信監視システムは、プロキシサーバの前後で2つに分かれた通信を1つの情報として組み立て、2点間の通信をエンドツーエンド通信として通信履歴を保持する。さらに、通信監視システムは、その通信履歴を、宛先IPアドレスなどの検索条件を指定することで検索することで、容易にデータの送信元が把握可能となる。
【実施例1】
【0014】
本実施例では、Proxyを経由して行われるHTTP通信を、Proxyの前後でミラーリングし、センサで情報抽出し、監視装置でエンドツーエンドの通信として記憶、検索可能な形で格納することで、送信元を容易に特定できる例を説明する。なお、本実施例では通信対象をIPv4としたが、IPv6においても同様に適用できる。
【0015】
図1は、ネットワークの構成例を示す説明図である。
図1のシステムにおいて、通信の送信元となる端末10及び端末11と、WWW(World Wide Web)サーバ30及びWWWサーバ31と、の間で、ネットワークを分断するパケット中継装置20を介して、HTTP通信が行われ。なお、パケット中継装置20は、Proxyサーバとして機能し、本実施例におけるProxyという記載はパケット中継装置20を意味する。
【0016】
以下、パケット中継装置20よりも端末側のネットワークをネットワーク下位側、パケット中継装置20よりもサーバ側のネットワークをネットワーク上位側とも呼ぶ。
【0017】
ネットワーク下位側は、端末10及び端末11と、パケット中継装置20と、センサ50と、を含む。端末10及び端末11は、例えばPC(Personal Computer)等の計算機である。センサ50は、端末10及び端末11と、パケット中継装置20と、の間の通信をミラーリングし、後述するパケットの抽出情報をミラーリングしたパケットから抽出し、抽出情報を監視装置60に送信する。
【0018】
ネットワーク上位側は、WWWサーバ30及びWWWサーバ31と、DNS(Domain Name System)サーバ40と、センサ51と、を含む。センサ51は、パケット中継装置20とWWWサーバ30及びWWWサーバ31との間の通信、及びパケット中継装置20とDNSサーバ40との間の通信をミラーリングし、後述するパケットの抽出情報をミラーリングしたパケットから抽出し、抽出情報を監視装置60に送信する。
【0019】
監視装置60は、受信した抽出情報をもとに、送信元である端末10及び端末11と、宛先であるWWWサーバ30及びWWWサーバ31と、の間の通信を、エンドツーエンド通信記録として保持する。
【0020】
検索表示端末70は、指定された検索条件を監視装置60に問い合わせることで、保持したエンドツーエンド通信記録から対象となる通信の送信元を特定して通知し、検索表示端末70は検索結果を表示する。検索表示端末70は、例えばPC等の計算機である。
【0021】
なお、
図1のネットワークシステムにおける、端末、WWWサーバ、DNSサーバ、及びセンサの台数は
図1に示した例に限られず、何台であってもよい。特に、
図1のネットワーク構成例においては、ネットワーク下位側のセンサ50とネットワーク上位側のセンサ51と、が設けられているが、例えば、1台のセンサのみが設けられていてもよく、当該センサがネットワーク上位側及びネットワーク下位側の通信をミラーリングしてもよい。
【0022】
図2は、HTTPによる通信の流れの一例を示すシーケンス図である。
図2は、
図1で示したシステムにおいて、端末10からWWWサーバ30へのHTTPによる通信が行われる例である。なお、
図2において、TCPのハンドシェイクについての記載は省略されている。また、それぞれの通信におけるパケットフォーマットは、後述する
図3を用いて別途説明される。
【0023】
端末10はHTTPによる通信開始時に、パケット中継装置20に対してHTTP Requestを送出し、パケット中継装置20は当該HTTP Requestを受信する(S200)。
【0024】
パケット中継装置20は、宛先であるWWWサーバ30のIPアドレスを調べるために、受信したHTTP RequestのHTTPヘッダのHOST情報に基づいて、A RecordにWWWサーバ30のHOST情報を設定したDNS Queryを、DNSサーバ40に対して送信し、DNSサーバ40が当該DNS Queryを受信する(S201)。
【0025】
DNSサーバ40は、DNS Queryに設定されたHOSTに対するIPアドレスを応答するため、パケット中継装置20に対してA RecordのHOST情報に対するIPアドレスを設定したDNS Responseを送信し、パケット中継装置20が当該DNS Responseを受信する(S202)。
【0026】
パケット中継装置20は、宛先となるWWWサーバ30のIPアドレスを把握したため、WWWサーバ30に対してHTTP Requestを送信し、WWWサーバ30が当該HTTP Requestを受信する(S203)。
【0027】
WWWサーバ30は、要求されたコンテンツを応答するために、パケット中継装置20に対してHTTP Responseを送信し、パケット中継装置20が当該HTTP Responseを受信する(S204)。
【0028】
パケット中継装置20は、HTTP要求元である端末10に応答を中継するために、端末10に対してHTTP Responseを送信し、端末10が当該HTTP Responseを受信する(S205)ことで、一連のHTTPによる通信が完了する。
【0029】
図3A乃至
図3Dは、センサ50及びセンサ51による抽出対象のパケットフォーマットの一例である。なお、
図3においては、パケットフォーマットに含まれるヘッダ、及びメソッド/フィールドのうち、本実施例の説明に最低限必要なもののみが記載されている。
【0030】
図3Aは、ステップS200において、端末10がパケット中継装置20に対して送信するHTTP Requestパケットのフォーマットの抜粋の一例である。HTTP Requestパケット300は、例えば、Ethernet(登録商標)ヘッダ(以下、Etherヘッダとも呼ぶ)と、IPヘッダと、TCPヘッダと、HTTPヘッダと、を含む。
【0031】
HTTP Requestパケット300のEtherヘッダには、例えば、送信元(以下、Sourceとも呼ぶ)MACアドレス301と、宛先(以下、Destとも呼ぶ)MACアドレス302と、が格納されている。HTTP Requestパケット300のIPヘッダには、例えば、Source IPアドレス303と、Dest IPアドレス304と、が格納されている。
【0032】
HTTP Requestパケット300のTCPヘッダには、例えば、Source Port番号305と、Desti Port番号306と、が格納されている。HTTP Requestパケット300のHTTPヘッダには、例えば、GET307と、HOST308と、が格納されている。
【0033】
図3Bは、ステップS201において、パケット中継装置20がDNSサーバ40に対して送信するDNS Queryパケットのフォーマットの抜粋の一例である。DNS Queryパケット310は、例えば、Etherヘッダと、IPヘッダと、UDPヘッダと、DNS Queryヘッダと、を含む。
【0034】
DNS Queryパケット310のIPヘッダには、例えば、Source IPアドレス311と、Dest IPアドレス312と、が格納されている。DNS Queryパケット310のUDPヘッダには、例えば、Source Port番号313と、Dest Port番号314と、が格納されている。DNS Queryパケット310のDNS Queryヘッダには、例えば、A record315が格納されている。
【0035】
図3Cは、ステップS202においてDNSサーバ40がパケット中継装置20に対して送信するDNS Responseパケットのフォーマットの抜粋の一例である。DNS Responseパケット320は、例えば、Etherヘッダと、IPヘッダと、UDPヘッダと、DNS Responseヘッダと、を含む。
【0036】
DNS Responseパケット320のIPヘッダには、例えば、Source IPアドレス321と、Dest IPアドレス322と、が格納されている。DNS Responseパケット320のUDPヘッダには、例えば、Source Port番号323と、Dest Port番号324と、が格納されている。DNS Responseパケット320のDNS Responseヘッダには、例えば、IPアドレス325が格納されている。
【0037】
図3Dは、ステップS203において、パケット中継装置20がWWWサーバ30に対して送信するHTTP Requestパケットのフォーマットの抜粋の一例である。HTTP Requestパケット330は、例えば、Etherヘッダと、
IPヘッダと、TCPヘッダと、HTTPヘッダと、を含む。
【0038】
HTTP Requestパケット330のIPヘッダには、例えば、Source IPアドレス331と、Dest IPアドレス332と、が格納されている。HTTP Requestパケット330のTCPヘッダには、例えば、Source Port番号333と、Dest Port番号334と、が格納されている。HTTP Requestパケット330のHTTPヘッダには、例えば、GET335と、HOST336と、が格納されている。
【0039】
図4は、センサ50の内部構成例を示すブロック図である。なお、センサ51の内部構成例は、センサ50の内部構成例と同様であるため、説明を省略する。センサ50は、互いにバス等の内部通信線で接続されたCPU500とメモリ510とネットワークインタフェース520とを含む。
【0040】
CPU500は、プロセッサを含み、メモリ510に格納されたプログラムを実行する。メモリ510は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0041】
センサ50は、入力インターフェース及び出力インターフェースを有してもよい。入力インターフェースは、キーボードやマウスなどの入力装置が接続され、オペレータからの入力を受けるインターフェースである。出力インターフェースはディスプレイ装置やプリンタなどの出力装置が接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【0042】
ネットワークインタフェース520は、所定のプロトコルに従って、他の装置との通信を制御する。ネットワークインタフェース520は、ポートを備え、CPU500からの指示等により、各種パケットの送受信などを行う。具体的には、例えば、ネットワークインタフェース520は、ネットワーク下位側においてミラーリングされたパケットを受信し、パケット送受信部512に適宜送信する。
【0043】
また、ネットワークインタフェース520は、パケット送受信部512からの指示に従って、抽出情報パケットを監視装置60に対して送信する。なお、図示を省略するが、ネットワークインタフェース520及び後述する監視装置60のネットワークインタフェースは複数のポートを含んでもよい。
【0044】
メモリ510は、情報抽出部511とパケット送受信部512とを含む。情報抽出部511は、パケット送受信部512から受信パケット内容通知を受け(受信パケットそのものが通知されてもよい)、受信したパケットの種別を特定し、特定したパケットの種別に応じてエンドツーエンド通信の組み立てに必要な情報を抽出する。情報抽出部511は、抽出した情報とパケット受信時刻をパケット送受信部512に通知する。
【0045】
なお、情報抽出部511が抽出する情報は受信したパケットの種別ごとに異なり、詳細は
図5を用いて後述する。情報抽出部511が情報を抽出することで、センサ50と監視装置60との間の通信量を低減させることができ、さらに監視装置60は抽出されなかった情報を保持する必要がないため、監視装置60が保持するデータ量を節減することができる。
【0046】
パケット送受信部512は、各ポートからミラーリングパケットを受信した場合、受信したパケットの内容(受信パケットそのものであってもよい)とパケット受信時刻とを情報抽出部511に通知する。また、情報抽出部511が抽出した情報をパケットとして組み立て、ネットワークインタフェース520に対して監視装置60への送信を指示する。
【0047】
なお、センサ50の情報抽出部511及びパケット送受信部512は、センサ50のCPU500が実行するプログラムにより実現される。例えば、センサ50のCPU500は、メモリ510にロードされた情報抽出プログラムに従って動作することで情報抽出部511として機能し、メモリ510にロードされたパケット送受信プログラムに従って動作することでパケット送受信部512として機能する。監視装置60に含まれる後述する機能部と、プログラムと、の関係についても、同様である。
【0048】
なお、センサ50は、補助記憶装置をさらに含んでもよい。補助記憶装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU600が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。
【0049】
CPU500が実行するプログラムは、コンピュータ読み取り可能な非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してセンサ50に提供され、非一時的記憶媒体である不揮発性の補助記憶装置又はメモリ510に格納される。このため、センサ50は、リムーバブルメディアからデータを読み込むインターフェースを有してもよい。
【0050】
なお、本実施形態において、ネットワークに含まれる各装置が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【0051】
本実施形態のネットワークに含まれる各装置は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。なお、センサ50、センサ51、及び通信監視装置に含まれる機能部による処理の一部又は全部が、ASIC(Application Specific Integrated Circuit)等のハードウェアによって実行されてもよい。
【0052】
図5は、センサ50による抽出情報パケット生成処理の一例を示すフローチャートである。ここではセンサ50による処理を説明するが、以下の説明におけるネットワーク下位側という記載をネットワーク上位側と読み替えればセンサ51による処理と同様であるため、センサ51による抽出情報パケット処理の説明を省略する。
【0053】
まず、パケット送受信部512は、下位側ネットワークからミラーリングしたパケットを受信する(S500)たびに、受信したパケットに対して、ステップS501以降の処理が実行される。パケット送受信部512は、パケット受信時刻を取得し(S501)、情報抽出部511に受信パケットの内容(受信パケットそのものでもよい)及び受信時刻を通知する。
【0054】
情報抽出部511は、受信パケットのヘッダを参照して通信種別を判定する(S502)。情報抽出部511は、受信パケットの通信種別がHTTP Requestであると判定した場合(S502:HTTP Request)、HTTP Request情報抽出処理を行う(S503)。
【0055】
ステップS503のHTTP Request情報抽出処理において、情報抽出部511は、受信パケットのEtherヘッダのSource MACアドレス、IPヘッダのSource IPアドレス及びDest IPアドレス、並びにHTTPヘッダのGET及びHOSTを抽出する。
【0056】
なお、情報抽出部511は、ステップS503において、HTTP Requestの受信パケットに含まれるUser-Agentなどの、通信の絞り込みに利用できる情報をさらに抽出してもよい。
【0057】
情報抽出部511は、受信パケットの通信種別がDNS Query又はDNS Responseであると判定した場合、(S502:DNS Query又はDNS Response)、DNS情報抽出処理を実行する(S504)。
【0058】
情報抽出部511は、ステップS504のDNS情報抽出処理において、受信パケットのIPヘッダのSource IPアドレス及びDest IPアドレス、UDPヘッダのSource Port番号及びDest Port番号、並びにDNSヘッダのQueryのA record及びResponseのresource recordを抽出する。
【0059】
ステップS503又はステップ504の処理が実行された後、パケット送受信部512は、情報抽出部511が抽出した情報とステップS501で取得された受信時刻とを含む抽出情報パケットを生成し、ネットワークインタフェース520は抽出情報パケットを監視装置60に送信する(S505)。
【0060】
図6は監視装置60の内部構成例を示すブロック図である。監視装置60は、バス等の内部通信線によって互いに接続された、CPU600、メモリ610、補助記憶装置620、及びネットワークインタフェース630を含む。
【0061】
CPU600、メモリ610、及びネットワークインタフェース630のハードウェアとしての説明は、CPU500、メモリ510、及びネットワークインタフェース520と同様であるため、省略する。また、メモリ610は、抽出情報解析部611、抽出情報検索部612、検索パケット情報送受信部613、及び抽出情報パケット受信部614を含む。
【0062】
抽出情報解析部611は、抽出情報パケット受信部614から受信した抽出情報パケット内容通知を受け(抽出情報パケットそのものを取得してもよい)、抽出情報を抽出一時テーブル621に格納する。また、抽出情報解析部611は、抽出一時テーブル621に格納された抽出情報からエンドツーエンド通信の組み立てが可能であるかを解析し、組み立て可能なエンドツーエンド通信が存在する場合は、対象エントリをエンドツーエンド通信テーブル622に格納示する。
【0063】
抽出情報パケット受信部614は、ネットワークインタフェース630から抽出情報パケットを受信し、抽出情報解析部611に抽出情報を通知する。抽出情報検索部612は、検索パケット情報送受信部613から検索情報の通知を受信し、エンドツーエンド通信テーブル622から、検索条件に合致するエンドツーエンド通信を検索し、検索結果を検索パケット情報送受信部613に通知する。
【0064】
検索パケット情報送受信部613は、ネットワークインタフェース630から検索情報パケットを受信し、検索情報パケットが示す検索条件を抽出情報検索部612に通知する。検索パケット情報送受信部613は、抽出情報検索部612から検索結果の通知を受け、検索結果情報をパケットとして組み立て、ネットワークインタフェース630に検索表示端末70への送信を指示する。
【0065】
補助記憶装置620は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU600が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置620から読み出されて、メモリ610にロードされて、CPU600によって実行される。
【0066】
補助記憶装置620は、抽出一時テーブル621及びエンドツーエンド通信テーブル622を保持する。抽出一時テーブル621は、センサ50によって受信パケットから抽出された抽出情報を保持する。エンドツーエンド通信テーブル622は、ネットワーク上位側の通信とネットワーク下位側の通信とにおけるエンドツーエンド通信を示すエントリを保持する。
【0067】
ネットワークインタフェース630は、センサ50及びセンサ51から抽出情報パケットを受信し、受信した抽出情報パケットを抽出情報パケット受信部614に適宜通知する。また、ネットワークインタフェース630は、検索表示端末70から検索条件を示す検索情報パケットを受信し、受信した検索情報パケットを検索パケット情報送受信部613に適宜通知する。また、ネットワークインタフェース630は、検索パケット情報送受信部613から受信した検索結果パケットを検索表示端末70に対して送信する。
【0068】
図7は、監視装置60による抽出情報解析処理の一例示すフローチャートである。抽出情報パケット受信部614は、抽出情報パケットを受信する(S700)たびに、受信した抽出情報パケットに対して、ステップS701以降の処理が実行される。
【0069】
抽出情報解析部611は、抽出情報を参照して、抽出情報パケットがHTTP Requestパケット300、DNS Queryパケット310、DNS Responseパケット320、又はHTTP Requestパケット330のいずれかのパケットから生成されたものであるかを判定する(S701)。
【0070】
抽出情報解析部611は、抽出情報パケットが当該いずれかのパケットから生成されたものであると判定した場合(S701:Yes)、抽出情報パケットを抽出一時テーブル621に格納する(S702)。抽出情報解析部611は、抽出情報パケットが当該いずれかのパケットから生成されたものでないと判定した場合(S701:No)、当該抽出情報パケットはエンドツーエンド通信には関係ないため、抽出情報解析処理を終了する。
【0071】
抽出情報解析部611は、抽出情報パケットを参照して、抽出情報パケットがHTTP Requestパケット330から生成されたものであるかを判定する(S703)。なお、端末10から送信されたHTTP Requestパケット300とProxyから送信されたHTTP Requestパケット330は同じフォーマットを有するが、抽出情報解析部611は、例えば、送信元IPアドレスを参照して、HTTP Requestパケットが、Proxyから送信されたHTTP Requestパケット330であることを判定する。
【0072】
抽出情報解析部611は、抽出情報パケットがHTTP Requestパケット330から生成されたものないと判定した場合(S703:No)、当該抽出情報パケットはエンドツーエンド通信の途中のパケットから生成されたものであるため、エンドツーエンド通信の組み立てができないことから、抽出情報解析処理を終了する。
【0073】
抽出情報解析部611は、抽出情報パケットがHTTP Requestパケット330から生成されたものであると判定した場合(S703:Yes)、抽出情報パケット及び抽出一時テーブル621を参照して、ステップS704、ステップS705、及びステップS706の判定条件が全て満たされるかを判定し、全て満たされる場合にはエンドツーエンド通信情報の組み立てが可能であると判定する。
【0074】
ステップS704における判定条件:当該抽出情報パケットHTTP Requestパケット330の受信時刻と同時刻帯に受信されかつIPアドレス325が当該HTTP Requestパケット330のIPヘッダのDest IPアドレス332と一致するDNS Responseパケット320から生成された抽出情報パケットを示すエントリが抽出一時テーブル621に格納されている。
【0075】
ステップS705における判定条件:下記の(1)、(2)、(3)、(4)、及び(5)を全て満たすこと。
【0076】
(1)いずれも当該HTTP Requestパケット330の受信時刻と同時刻帯に受信された、DNS Responseパケット320から生成された抽出情報パケットとを示すエントリと、DNS Queryパケット310から生成された抽出情報パケットとを示すエントリと、が抽出一時テーブル621に格納されている。
【0077】
(2)当該DNS Responseパケット320のIPヘッダのSource IPアドレス321と、当該DNS Queryパケット310のIPヘッダのDest IPアドレス312と、が一致する。
【0078】
(3)当該DNS Responseパケット320のIPヘッダのDest IPアドレス322と、当該DNS Queryパケット310のIPヘッダのSource IPアドレス311と、が一致する。
【0079】
(4)当該DNS Responseパケット320のUDPヘッダのSource Port番号323と、当該DNS Queryパケット310のUDPヘッダのDest Port番号314と、が一致する
【0080】
(5)当該DNS Responseパケット320のUDPヘッダのDest Port番号324と、当該DNS Queryパケット310のUDPヘッダのSource Port番号313と、が一致する。
【0081】
ステップS706における判定条件:HTTP Requestパケット330の受信時刻と同時刻帯に受信され、かつA record315が当該HTTP Requestパケット300のHTTPヘッダ HOST308と一致するDNS Queryパケット310から生成された抽出情報パケットを示すエントリが抽出一時テーブル621に格納されている。
【0082】
なお、同時刻帯とは所定の時間差内であることを示す。所定の時間差は、例えば、センサ50とセンサ51とにおけるエンドツーエンド通信のパケット受信時刻差として考えられる値であり、Proxy(本実施例におけるパケット中継装置20)がDNSサーバ40への問い合わせに要する時間と、ProxyがWWWサーバ30にパケットを送出する時間と、の和よりも大きい時間差である。
【0083】
抽出情報解析部611は、エンドツーエンド通信の組み立てが可能でないと判定した場合(即ち、ステップS704、ステップS705、ステップS706の少なくとも1つにおいてNo)、抽出情報解析処理を終了する。
【0084】
抽出情報解析部611は、エンドツーエンド通信の組み立てが可能であると判定した場合(即ち、ステップS704、ステップS705、ステップS706の全てでYes)、以下の10つの値を1つのエントリとして、エンドツーエンド通信テーブル622に格納する(S707)。
【0085】
(1)Webアクセス時刻欄の値として、HTTP Requestパケット330の受信時刻。
(2)送信元IPアドレス欄の値として、HTTP Requestパケット300のIPヘッダのSource IPアドレス303。
(3)送信元MACアドレス欄の値として、HTTP Requestパケット300のEtherヘッダのSource MACアドレス301。
(4)Proxy IPアドレス欄の値として、HTTP Requestパケット330のIPヘッダのSource IPアドレス331。
(5)Proxyポート番号欄の値として、HTTP Requestパケット330のTCPヘッダのSource Port番号333。
(6)宛先IPアドレス欄の値として、HTTP Requestパケット330のIPヘッダのDest IPアドレス332。
(7)宛先ホスト名欄の値として、HTTP Requestパケット330のHTTPヘッダのHOST336。
(8)宛先ホストポート番号欄の値として、HTTP Requestパケット330のTCPヘッダのDest Port番号334。
(9)宛先URL欄の値として、HTTP Requestパケット330のHTTPヘッダのGET335。
(10)通信種別欄の値として、HTTP。
【0086】
なお、抽出情報パケットにUser-Agentなどの情報が含まれている場合には、抽出情報解析部611は当該情報もあわせてエンドツーエンド通信テーブル622に格納してもよい。
【0087】
また、抽出情報解析部611は、ステップS704、ステップS705、及びステップS706の全ての条件ではなく、これら少なくとも1つの条件をチェックしてもよく、当該少なくとも1つの条件が満たされる場合に、ステップS707に遷移するようにしてもよい。
【0088】
このように、監視装置60は、対象パケットから抽出された限られた情報を含む抽出情報パケットから、エンドツーエンド通信を特定し、特定したエンドツーエンド通信の情報を保持することができる。
【0089】
なお、抽出情報解析部611は、ステップS703においてHTTP Requestパケット330を示す抽出情報パケットを受信したと判定したことを契機に、ステップS704~ステップS706における判定条件を用いてエンドツーエンド通信情報の組み立てが可能であるかを判定するが、別途まとめて(例えば所定数の抽出情報パケットを受信したと判定したことを契機に)エンドツーエンド通信情報の組み立てが可能であるかを判定してもよい。
【0090】
図8は、検索表示端末70において表示されるエンドツーエンド通信の検索を実施するための検索画面の構成例である。検索画面は、エンドツーエンド通信テーブル622のエントリを検索するための条件の入力を受け付ける画面である。
【0091】
検索画面は、例えば、Webアクセス時刻、端末IP/ポート番号、端末MACアドレス、Proxy IP/ポート番号、宛先IP/ポート番号、宛先ホスト名/ポート番号、及び宛先URLそれぞれを、検索条件として入力するための入力領域を含む。また、後述する実施例2においては、HTTPのみならずHTTPSによる通信もエンドツーエンド通信テーブル622への登録対象にできることから、検索画面は通信種別を検索条件として入力するための入力を含む。
【0092】
なお、User-Agentなどの他の情報がエンドツーエンド通信テーブル622に登録された場合には、検索画面は、当該他の情報を検索条件として入力するための入力領域をさらに含んでもよい。なお、
図8では画面構成例を示したが、
図8に示す検索条件を入力可能なAPI(Application Programming Interface)によって検索が実行可能であってもよい。
【0093】
図9は、エンドツーエンド通信の検索結果を抽出する抽出情報検索処理の一例を示すフローチャートである。
【0094】
検索パケット情報送受信部613は、検索条件パケットを検索表示端末70から受信し、抽出情報検索部612は検索条件パケットが示す検索条件を取得する(S900)。
【0095】
検索条件は、例えば、
図8検索画面の例に示したWebアクセス時刻、端末IP/ポート番号、端末MACアドレス、Proxy IP/ポート番号、宛先IP/ポート番号、宛先ホスト名/ポート番号、宛先URL及び通信種別等である。
【0096】
抽出情報検索部612は、エンドツーエンド通信テーブル622が検索条件に合致するエントリを有するか(検索条件に合致するエンドツーエンド通信が行われたか)を判定する(S901)。
【0097】
抽出情報検索部612が、検索条件に合致するエントリがあると判定した場合(S901:Yes)、対象となるエンドツーエンド通信を示すエントリを検索結果として取得し、検索パケット情報送受信部613は当該検索結果を含む検索結果パケットを生成し、ネットワークインタフェース630を介して、検索結果パケットを検索表示端末70に送信する(S902)。
【0098】
抽出情報検索部612が、検索条件に合致するエントリがないと判定した場合(S901:No)、検索パケット情報送受信部613は、対象となるエンドツーエンド通信がないことを示す検索結果パケットを生成し、ネットワークインタフェース630を介して、検索結果パケットを検索表示端末70に送信する(S903)。
【0099】
図10は、エンドツーエンド通信の検索結果を表示する表示画面の構成例である。当該表示画面は、検索表示端末70に含まれる(又は検索表示端末70に接続された)出力装置に表示される。
【0100】
図10では、抽出情報検索処理において検索条件に該当するエンドツーエンド通信が存在した場合表示画面の例が記載されている。表示画面には、エンドツーエンド通信テーブル622の当該検索条件に該当するエントリの値が表示されている。このように、当該表示画面はネットワーク下位側の通信とネットワーク上位側の通信とをまとめてエンドツーエンド通信として表示でき、これにより検索表示端末70のユーザはパケット送信元を容易に把握できる。
【0101】
なお、User-Agentなどの情報がエンドツーエンド通信テーブル622にさらに格納されている場合は、当該情報も検索条件に加え、検索結果として表示されることによって、より詳細にエンドツーエンド通信を検索できるようにしてもよい。なお、本実施例において監視装置60は、パケットを監視しているが、フレーム等の他のレイヤのデータを監視してもよい。
【実施例2】
【0102】
実施例1ではHTTPによる通信が登録及び検索対象である例を説明したが、実施例2ではHTTPSによる通信が登録及び検索対象である例を説明する。
【0103】
HTTPSによる通信を対象にProxyの前後でミラーリングし、センサで情報抽出し、監視装置でエンドツーエンドの通信として記憶、検索可能な形で格納することで、送信元を容易に特定できる例を実施例1との差分として説明する。以下、実施例1と同様の構成については説明を省略し、実施例1との相違点を説明する。
【0104】
図11は、HTTPSによる通信を流れの一例を示すシーケンス図である。
図1で示したシステム構成において、端末10からWWWサーバ30へのHTTPSによる通信が行われる例である。また、それぞれの通信におけるパケットフォーマットは、後述する
図12で別途説明される。
【0105】
端末10はHTTPSによる通信開始時に、パケット中継装置20に対してHTTPS Requestを送出し、パケット中継装置20は当該HTTPS Requestを受信する(S1100)。
【0106】
パケット中継装置20は、宛先であるWWWサーバ30のIPアドレスを調べるために、受信したHTTPS RequestのHTTPヘッダのHOST情報を元に、A RecordにWWWサーバ30のHOST情報を設定したDNS QueryをDNSサーバ40に対して送信し、DNSサーバ40が当該DNS Queryを受信する(S1101)。
【0107】
DNSサーバ40は、DNS Queryに設定されたHOSTに対するIPアドレスを応答するために、A RecordのHOST情報に対するIPアドレスを設定したDNS Responseを、パケット中継装置20に対して送信し、パケット中継装置20が当該DNS Responseを受信する(S1102)。
【0108】
パケット中継装置20は、HTTPS要求元である端末10に対して、HTTPS Responseを送信し、端末10がHTTPS Responseを受信することでTLS通信に移行する(S1103)。
【0109】
端末10はTLSによる通信を開始するために、パケット中継装置20に対してTLS v1.2 Handshake(Client Hello)(以下、TLSメッセージとも呼ぶ)を送信し、パケット中継装置20が当該TLS v1.2 Handshake(Client Hello)を受信する(S1104)。
【0110】
パケット中継装置20は、宛先であるWWWサーバ30にステップS1104で受信したTLSメッセージを、IPヘッダ及びTCPヘッダを付けかえて送信し、WWWサーバ30がIPヘッダ及びTCPヘッダが付け替えられたTLSメッセージを受信する(S1105)ことで、一連のHTTPSによる通信が完了する。
【0111】
図12A及び
図12Bは、HTTPSによる通信においてセンサ50及びセンサ51による抽出対象のパケットフォーマットの一例である。なお、
図12A及び
図12Bにおいては、パケットフォーマットに含まれるヘッダ、及びメソッド/フィールドのうち、本実施例の説明に最低限必要なもののみが記載されている。なお、ステップS1101において送信されるDNS Queryのパケットフォーマットと、ステップS1102において送信されるDNS Responseのパケットフォーマットと、はそれぞれ
図3B及び
図3Cと同様であるため、説明を省略する。
【0112】
図12Aは、ステップS1100において、端末10がパケット中継装置20に対して送信するHTTPS Requestのパケットフォーマットの抜粋の一例である。HTTPS Requestパケット1200は、例えば、Etherヘッダと、IPヘッダと、TCPヘッダと、HTTPヘッダと、を含む。
【0113】
HTTPS Requestパケット1200のEtherヘッダには、例えば、Source MACアドレス1201と、Dest MACアドレス1202と、が格納されている。HTTPS Requestパケット1200のIPヘッダには、例えば、Source IPアドレス1203と、Dest IPアドレス1204と、が格納されている。
【0114】
HTTPS Requestパケット1200のTCPヘッダには、例えば、Source Port番号1205と、Dest Port番号1206と、が格納されている。HTTPS Requestパケット1200のHTTPヘッダには、例えば、Connect1207と、HOST1208と、が格納されている。
【0115】
このように、HTTPS Requestパケット1200には、
図3Aに示したHTTP Requestパケット300と異なり、HOST1208が格納されているものの、URLが格納されていない。
【0116】
図12Bは、ステップS1105において、パケット中継装置20がWWWサーバ30に対して送信するTLSメッセージのパケットフォーマットの抜粋の一例である。TLSメッセージパケット1230は、例えば、Etherヘッダと、IPヘッダと、TCPヘッダと、SSLヘッダと、を含む。
【0117】
TLSメッセージパケット1230のIPヘッダには、例えば、Source IPアドレス1231と、Dest IPアドレス1232と、が格納されている。TLSメッセージパケット1230のTCPヘッダには、例えば、Source Port番号1233と、Dest Port番号1234と、が格納されている。TLSメッセージパケット1230のSSLヘッダには、例えば、TLS/SSLのバージョン1235が格納されている。
【0118】
図13は、本実施例におけるセンサ50による抽出情報パケット生成処理の一例を示すフローチャートである。
図5との相違点を説明する。情報抽出部511は、受信パケットの通信種別がTLSメッセージであると判定した場合、(S502:TLS)、TLS情報抽出処理を実行する(S1201)。情報抽出部511は、ステップS1201のTLS情報抽出処理において、受信パケットのIPヘッダのSource IPアドレス1231及びDest IPアドレス1232、並びにTCPヘッダのSource Port番号1233及びDest Port番号1234を抽出する。情報抽出部511が抽出を完了したら、ステップS505へ遷移する。
【0119】
図14は、本実施例における監視装置60による抽出情報解析処理の一例示すフローチャートある。
図14の例ではHTTPSによる通信の抽出情報解析処理が行われる。なお、
図7におけるHTTP Requestパケット300をHTTPS Requestパケット1200に置換し、
図7におけるHTTP Requestパケット330をTLSメッセージパケット1230に置換することで、
図14の処理が実現されるため、説明を省略する。
【0120】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0121】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0122】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0123】
10 端末、11 端末、20 パケット中継装置、30 WWWサーバ、31 WWWサーバ、40 DNSサーバ、50 センサ、51 センサ、70 検索表示端末、CPU 500、メモリ 510、ネットワークインタフェース 520、情報抽出部 511、パケット送受信部512、60 監視装置、600 CPU、610 メモリ、611 抽出情報解析部、612 抽出情報検索部、613 検索パケット情報送受信部、614 抽出情報パケット受信部、620 補助記憶装置 、621 抽出一時テーブル、622 エンドツーエンド通信記憶テーブル、630 ネットワークインタフェース