(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118424
(43)【公開日】2024-08-30
(54)【発明の名称】通信分析装置、通信分析プログラム及び通信分析方法
(51)【国際特許分類】
H04L 69/22 20220101AFI20240823BHJP
【FI】
H04L69/22
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023221466
(22)【出願日】2023-12-27
(31)【優先権主張番号】P 2023024558
(32)【優先日】2023-02-20
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(72)【発明者】
【氏名】土江 康太
(72)【発明者】
【氏名】中村 信之
(57)【要約】
【課題】 通信トラフィックのデータからサービスポートを判別する際の精度を向上させる。
【解決手段】 本発明は、通信分析装置に関する。そして本発明の通信分析装置は、分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類し、通信フローごとにパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定し、IPアドレスごとにサービスポートの一覧であるサービスポートリストを管理し、フロー情報だけでサービスポートが特定できない通信フローに対してサービスポートリストを用いてサービスポートを推定し、フロー情報だけでサービスポートが特定できない通信フローについてはサービスポート推定処理の結果をサービスポート判定処理の結果とすることを特徴とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類する通信フロー処理手段と、
前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行うサービスポート判定手段と、
前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理するサービスポートリスト管理手段と、
フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行うサービスポート推定手段とを備え、
前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とする
ことを特徴とする通信分析装置。
【請求項2】
前記サービスポートリスト管理手段は、前記サービスポート判定手段による前記サービスポート判定処理の結果に基づいて、前記サービスポート判定処理の対象となる前記通信フローに係る前記IPアドレスの前記サービスポートリストのサービスポートを追加することを特徴とする請求項1に記載の通信分析装置。
【請求項3】
前記サービスポートリスト管理手段が保持する前記サービスポートリストには、前記IPアドレスがクライアントとしてアクセスするポートのリストである第1のサブリストと、前記IPアドレスがサーバとしてアクセスされるポートのリストである第2のサブリストが含まれていることを特徴とする請求項2に記載の通信分析装置。
【請求項4】
前記サービスポートリスト管理手段が保持する前記サービスポートリストには、プロトコルごとの前記第1のサブリスト及び前記第2のサブリストが含まれることを特徴とする請求項3に記載の通信分析装置。
【請求項5】
前記サービスポート推定手段は、前記通信フローの送信元アドレスに対応する前記サービスポートリスト及び前記通信フローの宛先アドレスに対応する前記サービスポートリストと、前記通信フローの送信元通信ポート及び前記通信フローの宛先通信ポートとを比較することにより前記サービスポート推定処理を行うことを特徴とする請求項4に記載の通信分析装置。
【請求項6】
前記サービスポートリスト管理手段が管理する前記サービスポートリストを構成するサービスポートごとに、前記通信フローの特徴量に基づいて一致又は不一致を判定する通信パターン分析モデルを構築する通信パターン学習手段をさらに備え、
前記サービスポートリスト管理手段は、前記通信パターン学習手段が構築した前記通信パターン分析モデルを保持し、
前記サービスポート推定手段は、前記サービスポートリスト管理手段が保持する前記通信パターン分析モデルも用いて、前記サービスポート推定処理を行う
ことを特徴とする請求項1に記載の通信分析装置。
【請求項7】
前記サービスポートリスト管理手段は、プロトコルごとに前記サービスポートリストを保持し、
プロトコルがUDPの前記サービスポートリストを作成するために、UDPの通信フローの履歴情報として、通信フローの宛先ポート番号ごとに、通信フローの発生数、通信フローの送信元ポート番号を管理する、UDPポート履歴情報管理手段をさらに備え、
前記サービスポートリスト管理手段は、前記UDPの通信フローの履歴情報に含まれる宛先ポート番号ごとに、通信フローの発生数と、通信フローの送信元ポート番号を宛先ポートとしてみたときの通信フローの発生数を比較し、いずれかの送信元ポート番号との比較で前記宛先ポート番号の発生数の方が多い場合に、前記宛先ポート番号をUDPのサービスポートリストに追加する
ことを特徴とする請求項2に記載の通信分析装置。
【請求項8】
前記UDPポート履歴情報管理手段は、前記UDPの通信フローの履歴情報として、通信フローの宛先ポート番号ごとに、通信フローの発生日数をさらに管理し、
前記サービスポートリスト管理手段は、前記UDPの通信フローの履歴情報に含まれる宛先ポートについて、通信フローの発生日数が予め決められた閾値を満たない場合は、前記UDPのサービスポートリストに追加しない
ことを特徴とする請求項7に記載の通信分析装置。
【請求項9】
前記UDPポート履歴情報管理手段は、
前記UDPの通信フローの履歴情報として、端末ごとに同じ送信元ポート番号が何回使われたかの情報をさらに管理し、
前記通信フローの発生日数の閾値について、予め決められた初期値から、前記送信元ポート番号の使用回数の増加に合わせて増加させていく
ことを特徴とする請求項8に記載の通信分析装置。
【請求項10】
前記サービスポートリスト管理手段は、前記通信フローの発生日数の閾値の他に、前記UDPの通信フローの履歴情報に含まれる宛先ポートごとに、通信フローの送信元ポート番号の種類数、あるいは前記宛先ポートの通信フローの送信元IPアドレス種類数が予め決められた閾値以上であることを、サービスポートと判定するかの条件にさらに設定することを特徴とする請求項8に記載の通信分析装置。
【請求項11】
前記サービスポートリスト管理手段は、前記UDPのサービスポートリストの作成において、前記通信フローの発生日数の条件で、サービスポート判定すると判断された宛先ポートについて、さらに前記宛先ポートの1日当りの利用送信元IPアドレス数が予め決められた閾値より小さい場合に、前記UDPのサービスポートリストに追加しないことを特徴とする請求項8に記載の通信分析装置。
【請求項12】
コンピュータを、
分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類する通信フロー処理手段と、
前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行うサービスポート判定手段と、
前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理するサービスポートリスト管理手段と、
フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行うサービスポート推定手段として機能させ、
前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とする
ことを特徴とする通信分析プログラム。
【請求項13】
通信分析装置が行う通信分析方法において、
前記通信分析装置は、通信フロー処理手段、サービスポート判定手段、サービスポートリスト管理手段及びサービスポート推定手段を備え、
前記通信フロー処理手段は、分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類し、
前記サービスポート判定手段は、前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行い、
前記サービスポートリスト管理手段は、前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理し、
前記サービスポート推定手段は、フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行い、
前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とする
ことを特徴とする通信分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、通信分析装置、通信分析プログラム及び通信分析方法に関し、例えば、通信トラフィックデータに基づいて通信セキュリティに関する分析を行う装置に適用し得る。
【背景技術】
【0002】
現在、IoT機器の利活用拡大により、組織ネットワークにおいて従業員のPCやIoT機器が接続される末端のネットワーク(エッジネットワークと呼ぶ)の監視の需要が高まっている。例えば、オフィスや工場などのエッジネットワークにIoT機器が多数接続されるようになり、IT管理者がエッジネットワークにどのような機器が接続されているか、各機器がどこと通信しているか、マルウェア感染等によるセキュリティ脅威が発生していないか、といった情報を収集し管理することが困難になってきている。そのため、現在、こういった情報を自動的に収集し管理するエッジネットワーク監視の実現が求められている。
【0003】
従来、エッジネットワーク監視を実現するために、通信トラフィックログ分析を用いる方法がある。従来の通信トラフィックログ分析では、監視対象ネットワークの機器が収容されるネットワークスイッチのミラーポートに通信分析装置を接続し、ネットワークを流れるトラフィックをキャプチャし分析することで、リアルタイムに通信状況を可視化しセキュリティリスクやセキュリティ脅威の発生を検出する。通信状況の可視化情報として、どの機器から他のどの機器に対して通信が発生したかを示したい場合がある。また、セキュリティリスクを把握するため、ネットワーク内に存在するサーバが待ち受けるサービスを把握し、意図しないポートが空いていないか確認したい場合がある。さらに、セキュリティ脅威を検出するため、ある機器が普段と異なるサーバのサービスにアクセスしていないか確認したい場合がある。従来の通信トラフィックログ分析において、これらを実現する場合、通信フロー(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号の組で識別されるトラフィックの流れ)において、サーバが待ち受ける側のポート番号(以下、「サービスポート」と呼ぶ)の識別が必要である。
【0004】
ところで、従来の通信トラフィックログ分析では、サービスポートの識別方法として、ウェルノウンポートとして定義されているポート番号に代表されるように、番号の若いものがサービスポートとして使われる場合が多いことから、送信元ポート番号と宛先ポート番号の小さい方のポート番号をサービスポートとして識別する方法がある。しかしながら実トラフィックを観測すると、必ずしもポート番号の小さい方がサービスポートとして利用されないことが分かっている。
【0005】
サービスポートの別の識別方法として、一般に通信はクライアントからサーバに対して発生する特徴を利用し、通信フローの先頭パケットを観測し、当該パケットの宛先ポート番号をサービスポートとして識別する方法が考えられる。しかしながら、この方法では、少なくとも以下3つのケースでサービスポートを誤判別する事象が発生してしまう。
[第1のケース]ミラーするスイッチの特性により、最初に送られたパケットより後に送られたパケットが先にミラーポートに入ってくる場合がある。この場合、後続パケットをフロー先頭パケットとして受信処理することになるため誤判別が生じる
[第2のケース]運用中のネットワークに、トラフィック分析装置を後付けする形でトラフィックミラーリングを開始する場合、設置前に始まっていた通信フローは先頭パケットを観測できないため、サービスポートを誤判別する可能性がある
[第3のケース]ある一種のブロードキャスト通信として、ある機器がブロードキャストでネットワーク全体にリクエストを発信し、それを受信した機器がリクエストに対する応答パケットを送信するような通信を考える。このような通信では、ブロードキャストリクエストパケットは、送信元アドレスがリクエスト発信元のIPアドレス、宛先アドレスがネットワークセグメントのブロードキャストIPアドレスとなる。一方応答パケットは、送信元アドレスが応答パケット発信元のIPアドレス、宛先アドレスがリクエスト送信元のIPアドレスとなり、リクエストパケットと応答パケットでIPアドレスの組が異なるため別の通信フロー扱いになる。このとき、応答パケットの送信元ポート番号および宛先ポート番号はリクエストパケットのポート番号を反転させたものとなる場合が多いため、応答パケットの通信フローのサービスポートはリクエストパケットの送信元ポート番号と一致する。一般にクライアント側のポート番号はフローが発生する度に異なる値が設定されるため、応答パケットのサービスポートは通信フロー発生の度に異なるポート番号とみなされてしまう。これにより、例えば普段と異なるサービスにアクセスした通信を異常検出する場合に、このようなブロードキャスト通信が発生する度に異常検出し、誤検出が多発することになる。そのため応答パケットのサービスポート番号は、送信元ポート番号(つまりリクエストパケットの宛先ポート番号)とみなした方が適切な場合が多いと考えられる。またこのようなブロードキャストリクエストパケットとその応答パケットはひとまとまりの通信として扱うことが望ましい場合もあると考えられる。上記一番目と二番目の誤判別ケースは、TCP通信の場合、TCP制御フラグのSYNフラグの情報によってサービスポートを識別することが可能だが、誤判別二番目のケースでSYNフラグを取り逃した場合は識別できない。またUDP通信の場合は、TCP通信のように制御フラグがないため、フローの先頭パケットを確実に把握する方法がない。また上記三番目のブロードキャスト通信のケースで示されるように、通信フロー単位でのサービスポート識別にも課題がある。
【0006】
以上のように、通信トラフィックログ分析では、サービスポートの誤判別を低減し判別精度を向上させる仕組みが求められているが、このような課題に対しては、従来特許文献1、2の記載技術が存在する。
【0007】
特許文献1では、トラフィックミラーリングで取得されるパケットの到着順序が変わって受信してしまう課題に対して、TCPヘッダやIPヘッダに含まれるシーケンス番号を用いて、パケット到着順序を整える方法について言及されている。また、特許文献2では、制御ネットワークの異常検知のために、トラフィックミラーリングで取得される通信トラフィックをフロー単位に分析して異常検知する方法について言及されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2014-183483号公報
【特許文献2】特開2020-61667号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1の記載技術では、通信プロトコルとしてコネクション指向のプロトコルが利用される必要があり、UDPのサービスポート誤判別のケースには対応できない。また、特許文献1の記載技術では、前述の第2と第3のケースに対処することができない。さらに、特許文献2の記載技術では、サービスポートの判定に送信元ポート番号と宛先ポート番号の小さい方の値を用いており、サービスポート誤判別の課題について考慮されていない。
【0010】
以上のような従来技術における問題に鑑みて、通信トラフィックのデータからサービスポートを判別する際の精度を向上させることができる通信分析装置、通信分析プログラム及び通信分析方法が望まれている。
【課題を解決するための手段】
【0011】
第1の本発明の通信分析装置は、分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類する通信フロー処理手段と、前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行うサービスポート判定手段と、前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理するサービスポートリスト管理手段と、フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行うサービスポート推定手段とを備え、前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とすることを特徴とする。
【0012】
第2の本発明の通信分析プログラムは、コンピュータを、分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類する通信フロー処理手段と、前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行うサービスポート判定手段と、前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理するサービスポートリスト管理手段と、フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行うサービスポート推定手段として機能させ、前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とすることを特徴とする。
【0013】
第3の本発明は、通信分析装置が行う通信分析方法において、前記通信分析装置は、通信フロー処理手段、サービスポート判定手段、サービスポートリスト管理手段及びサービスポート推定手段を備え、前記通信フロー処理手段は、分析対象のネットワーク上を流れる通信トラフィックデータを通信フローごとに分類し、前記サービスポート判定手段は、前記通信フローごとに、前記通信フローを構成するパケットのヘッダ情報に基づくフロー情報を用いてサービスポートを判定するサービスポート判定処理を行い、前記サービスポートリスト管理手段は、前記ネットワーク上で分析対象となるIPアドレスごとに、サービスポートの一覧であるサービスポートリストを管理し、前記サービスポート推定手段は、フロー情報だけでサービスポートが特定できない前記通信フローに対して、前記サービスポートリスト管理手段が管理する前記サービスポートリストを用いてサービスポートを推定するサービスポート推定処理を行い、前記サービスポート判定手段は、フロー情報だけでサービスポートが特定できない前記通信フローについては前記サービスポート推定手段による前記サービスポート推定処理の結果を前記サービスポート判定処理の結果とすることを特徴とする。
【発明の効果】
【0014】
本発明によれば、通信トラフィックのデータからサービスポートを判別する際の精度を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】第1の実施形態に係る通信分析装置の機能的構成について示したブロック図である。
【
図2】第1の実施形態に係る各装置の接続構成の例について示したブロック図である。
【
図3】第1の実施形態におけるブロードキャスト通信の例について示した図である。
【
図4】第1の実施形態に係る通信フローの特徴量の構成例について示した図である。
【
図5】第1の実施形態に係る通信分析装置の動作について示したフローチャート(その1)である。
【
図6】第1の実施形態に係る通信分析装置の動作について示したフローチャート(その2)である。
【
図7】第1の実施形態に係る通信分析装置の動作について示したフローチャート(その3)である。
【
図8】第1の実施形態に係る通信分析装置の動作について示したフローチャート(その4)である。
【
図9】第1の実施形態に係る通信分析装置の動作について示したフローチャート(その5)である。
【
図10】第1の実施形態に係る通信分析装置におけるブロードキャスト通信の処理の例について示した図(その1)である。
【
図11】第1の実施形態に係る通信分析装置におけるブロードキャスト通信の処理の例について示した図(その2)である。
【
図12】第1の実施形態に係る通信分析装置におけるブロードキャスト通信の処理の例について示した図(その3)である。
【
図13】第1の実施形態に係る通信分析装置で処理される注目通信フローとそれに対応するサービスポートリストの例について示した図である。
【
図14】第1の実施形態に係るサービスポート候補リストに含まれるポート番号毎に出現頻度を集計し、出現頻度でヒストグラムを作成した結果の例を示した図である。
【
図15】第2の実施形態に係る通信分析装置の機能的構成について示したブロック図である。
【
図16】第3の実施形態に係る通信分析装置の機能的構成について示したブロック図である。
【
図17】第3の実施形態に係るUDPポート履歴管理部が保持するUDPポート利用履歴管理情報の構成例について示した図である。
【
図18】第3の実施形態に係るサービスポートリスト管理部によるUDPサービスポートリストの作成方法について示した説明図である。
【
図19】第3の実施形態に係るUDPポート履歴管理部が、注目端末について初回のクライアントポート再利用検知を行う際の処理の流れについて示した説明図である。
【
図20】第3の実施形態に係るUDPポート履歴管理部が、注目端末について2回目以降のクライアントポート再利用検知を行う際の処理の流れを示した図である。
【
図21】第3の実施形態に係るサービスポートリスト管理部及びUDPポート履歴管理部が、UDPのサービスポートリストを作成する処理の流れについて示したフローチャート(その1)である。
【
図22】第3の実施形態に係るサービスポートリスト管理部及びUDPポート履歴管理部が、UDPのサービスポートリストを作成する処理の流れについて示したフローチャート(その1)である。
【
図23】第3の実施形態に係るサービスポートリスト管理部及びUDPポート履歴管理部が、UDPのサービスポートリストを作成する処理の流れについて示したフローチャート(その2)である。
【
図24】第3の実施形態に係るサービスポートリスト管理部及びUDPポート履歴管理部が、UDPのサービスポートリストを作成する処理の流れについて示したフローチャート(その3)である。
【
図25】第3の実施形態の変形実施例に係るUDPポート履歴管理部で用いられる通信実績判定条件のプリセットの例について示した図である。
【
図26】第3の実施形態の変形実施例に係るサービスポートリスト管理部が、注目ポートについてサービスポート判定処理への移行判定処理を行う際の流れについて示したフローチャート(その1)である。
【
図27】第3の実施形態の変形実施例に係るサービスポートリスト管理部が、注目ポートについてサービスポート判定処理への移行判定処理を行う際の流れについて示したフローチャート(その2)である。
【発明を実施するための形態】
【0016】
(A)第1の実施形態
以下、本発明による通信分析装置、通信分析プログラム及び通信分析方法の第1の実施形態を、図面を参照しながら詳述する。
【0017】
(A-1)第1の実施形態の構成
図2は、第1の実施形態に関係する各装置の接続関係について示したブロック図である。
【0018】
ここでは、通信分析装置10は、監視対象(分析対象)となる監視対象ネットワークN1に接続された通信装置(ノード)としての監視対象機器30(30ー1、30-2、・・・)から発生するトラフィックを分析する処理を行うものであるものとする。
図2の構成例では、監視対象ネットワークN1には、ネットワーク機器として、ネットワークスイッチ20(レイヤ2スイッチ)とゲートウェイ40(例えば、ファイアウォールの機能に対応するゲートウェイ)が配置されているものとする。なお、監視対象ネットワークN1に接続される監視対象機器30の種類(用途や機能)は限定されないものであり、IoT機器に限定されず種々の装置とするようにしてもよい。
【0019】
図2の構成例では、各監視対象機器30が、ネットワークスイッチ20(少なくともレイヤ2スイッチの機能を備えるスイッチ)に接続されており、ネットワークスイッチ20とインターネットN2との間にはゲートウェイ40が接続されている。したがって、
図2の例では、各監視対象機器30は、ネットワークスイッチ20とゲートウェイ40を経由してインターネットN2と通信可能な状態になっている。また、ネットワークスイッチ20では、接続される監視対象機器30等の数は限定されないものであり、運用中に増減する場合もあるものとして説明する。
【0020】
この実施形態では、監視対象ネットワークN1は、1又は複数の監視対象となるセグメント(以下、「監視ネットワークセグメント」と呼ぶ)で構成されているものとする。ここでは、1つのセグメントは、1つのネットワークアドレス(例えば、xxx.yyy.zzz.0/24)で示される1つのブロードキャストドメインを指すものとする。例えば、xxx.yyy.zzz.3/24は、xxx.yyy.zzz.0/24のセグメントに所属するIPアドレスとなる。そして、この実施形態では、監視ネットワークセグメントは、監視対象ネットワークN1を構成するセグメントであるものとして説明する。言い換えると、各監視対象機器30は、いずれかの監視ネットワークセグメントに接続していることになる。また、この実施形態では、各監視対象機器30は、いずれかの監視ネットワークセグメント上のIPアドレスが付与されており、他のノードとIP通信を行うものとする。
【0021】
図2の例では、通信分析装置10は、ネットワークスイッチ20に接続されているものとする。ここでは、ネットワークスイッチ20において、ゲートウェイ40と接続するLANポート(イーサネット(登録商標)ポート)で送受信されるパケット(イーサネットフレーム)が、通信分析装置10が接続するポートにミラーリングされる設定(いわゆるポートミラー接続)となっているものとする。これにより、通信分析装置10では、ネットワークスイッチ20の配下の接続端末(監視対象機器30)とインターネットN2との間を流れるトラフィック(パケット)を収集することができる。この実施形態では、ネットワークスイッチ20のポートミラー設定により、通信分析装置10に監視対象機器30が送受信する通信トラフィックに基づくデータ(以下、単に「通信トラフィックデータ」とも呼ぶ)を供給する構成となっているが、通信分析装置10に通信トラフィックデータを供給する具体的な構成については限定されないものである。なお、
図1に示す監視対象ネットワークN1の構成は一例であり、通信分析装置10に通信トラフィックデータを供給可能な構成であれば種々の構成とするようにしてもよい。
【0022】
次に、通信分析装置10の内部構成について説明する。
【0023】
図1は、通信分析装置10の機能的構成について示したブロック図である。
【0024】
この実施形態における通信分析装置10は、トラフィックキャプチャ部11、制御部12、サービスポート判定部13、ブロードキャスト処理部14、サービスポート推定部15、サービスポートリスト管理部16、通信パターン学習部17、記憶部18及びタイマ部19を有している。
【0025】
通信分析装置10は、全てハードウェア(例えば、専用チップ等)により構成するようにしてもよいし一部又は全部についてソフトウェア(プログラム)として構成するようにしてもよい。通信分析装置10は、例えば、プロセッサ及びメモリを有するコンピュータにプログラム(この実施形態の通信分析プログラムを含む)をインストールすることにより構成するようにしてもよい。
【0026】
トラフィックキャプチャ部11は、外部(例えば、ネットワークスイッチやルータのミラーポート;この実施形態では、ネットワークスイッチ20)から通信トラフィックを構成するパケット(IPパケット)を受信する機能を担っている。トラフィックキャプチャ部11は、受信したパケットを制御部12に通知する。
【0027】
制御部12は、通信分析装置10による全体の処理を制御する機能を担っている。
【0028】
制御部12は受信したパケットを、通信フロー単位に管理(分類)して管理する処理を行う。通信フローは、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル(TCPまたはUDP)の5-tuplesの組で識別される。制御部12は、5-tuplesが一致するパケット、および送信元のIPアドレスおよびポート番号と宛先のIPアドレスおよびポート番号を入れ替えた5-tuplesが一致するパケットが同一の通信フローと判断する。制御部12は、一連の通信フローの各パケットのパケットサイズ、パケットの通信方向(送信元IPから宛先IPへの通信か、宛先IPから送信元IPへの通信かの情報)を保持する。またTCPの通信フローの場合、各パケットのTCP制御フラグ(例えば、FIN、SYN、RST、PSH、ACK、URG等)も保持する。なお、以下では、通信分析装置10において、処理対象(処理中)の通信フローについて「注目通信フロー」とも呼ぶものとする。
【0029】
制御部12は、通信フローごとのサービスポートの情報を保持(管理)する処理も行う。制御部12は通信フローごとのサービスポートの情報を得るために、サービスポート判定部13に通信フローの情報(5-tuples、パケットサイズ、パケットの通信方向、TCPの場合はTCP制御フラグ)を通知し、サービスポート判定を要求し、その応答としてサービスポート番号を受信する。制御部12は、サービスポート判定部13からサービスポートの情報を受ける際に、通信フローがブロードキャスト通信に係るものであった場合、ブロードキャスト通信の進行度情報を代わりに受信する。ブロードキャスト通信の進行度情報の詳細については、後述のブロードキャスト処理部14の説明においてで詳述するが、ブロードキャスト要求、ブロードキャスト応答、ユニキャストアクセスの3段階からなる。
【0030】
制御部12は、サービスポート判定部13から、通信フローごとのサービスポート番号を受けると、通信フローの情報(5-tuples、サービスポート番号)をサービスポートリスト管理部16に通知する。
【0031】
制御部12は、通信フロー毎にタイムアウト時間を設け、当該通信フローのパケットを最後に受信した時刻からタイムアウトまでの間、当該通信フローのパケットを受信しなかった場合、通信フローが終了したと判断する。制御部12はパケットを受信すると、受信したパケットの通信フローに関するタイムアウト時間を再設定し、タイマ部19にタイマのセットを要求する。制御部12は、通信フローがタイムアウトした場合、当該通信フローについてサービスポート判定部13にサービスポートの判定を要求する。このとき、サービスポート判定部13にはタイムアウトされたフローであるという情報が合わせて通知される。
【0032】
制御部12は、通信フローがタイムアウトした場合またはTCPで通信フローが終了したと判断できる(TCP制御フラグでFINがONのパケットとFIN/ACKがONのパケットが観測された)場合と、通信フローの受信パケット数が予め定めた閾値以上に達した場合に、記憶部18に、通信フローの5-tuples、パケットサイズのリスト、通信方向のリスト、サービスポート(サービスポートが未判定の場合は空であることを示すデータ(例えば、NULL等の空を示すコード)が入る)、及びブロードキャスト進行度情報(ブロードキャスト関連の通信フローでない場合は空文字が入る)を含む情報を、「通信フロー履歴情報」として保存する。そして、制御部12は、通信フロー履歴情報の保存後、保持している当該通信フローに関する情報を削除する。
【0033】
サービスポート判定部13は、通信フローの情報(以下、「通信フロー情報」とも呼ぶ)として、5-tuples、パケットサイズ、パケットの通信方向、TCP制御フラグ及びタイムアウト情報(タイムアウトしているか否かを示す情報)を含む情報を受信すると、受信した通信フロー情報を使用して通信フローのサービスポートを判定する機能を担っている。
【0034】
サービスポート判定部13は、受信した注目通信フローがTCPの場合、まずTCP制御フラグからサービスポートの判定を試みる。具体的には、TCP制御フラグでSYNフラグのみがONのパケットが含まれる場合、当該パケットはクライアントからサーバへの接続要求と判断できるため、サービスポート判定部13は、当該パケットの通信方向情報から宛先側のポート番号を求めサービスポートと判定する。またTCP制御フラグにSYNとACKのフラグがONのパケットが含まれる場合、当該パケットはサーバからクライアントへのSYNパケットに対する応答パケットと判断できるため、サービスポート判定部13は、当該パケットの通信方向情報から送信側のポート番号を求め、注目通信フローのサービスポートと判定する。上記いずれの条件にも合致するパケットが無い場合、サービスポート判定部13は、注目通信フローの通信パターンからサービスポートの推定を試みる。そのために、サービスポート判定部13は、通信フローのパケット数が閾値以上、または注目通信フローがタイムアウトされたものである時に、サービスポート推定部15に、5-tuples、パケットサイズ及び通信方向を通知し、サービスポートの推定を要求する。サービスポート推定部15からサービスポートの推定結果が通知されると、当該ポートを注目通信フローのサービスポートと判定する。注目通信フローのパケット数が閾値未満かつタイムアウト情報が無い場合、またサービスポート推定部15から判定不能を通知された場合、サービスポート判定部13は、注目通信フローについて判定不能(サービスポートの判定不能)と判定する。
【0035】
サービスポート判定部13は、受信した注目通信フローがUDPの場合、5-tuplesの情報をブロードキャスト処理部14に通知し、ブロードキャスト関連パケットか否かの判定を要求する。サービスポート判定部13は、ブロードキャスト処理部14からブロードキャストの進行度情報が通知された場合、注目通信フローをブロードキャスト関連の通信フローと判断する。また、サービスポート判定部13は、ブロードキャスト処理部14からブロードキャスト通信関連でないと通知を受けた場合、サービスポート判定部13は、注目通信フローの通信パターンから注目通信フローのサービスポートの推定を試みる。そこで、この実施形態の例において、サービスポート判定部13は、通信フローのパケット数が閾値以上、または注目通信フローがタイムアウトされたものである時に、サービスポート推定部15に、5-tuples、パケットサイズ、通信方向を通知し、注目通信フローのサービスポートの推定を要求する。サービスポート推定部15からサービスポートが通知されると、当該ポートを注目通信フローのサービスポートと判定する。通信フローのパケット数が閾値未満かつタイムアウト情報が無い場合、またサービスポート推定部15から判定不能を通知された場合は、サービスポート判定部13は、注目通信フローについて判定不能(サービスポートの判定不能)と判定する。
【0036】
サービスポート判定部13は、サービスポートが判定できた場合(判定結果が判定不能でない場合)はサービスポート番号を、UDPでブロードキャスト関連と判定した場合はブロードキャスト進行度情報を、それ以外の場合は判定不能を制御部12に通知する。
【0037】
ブロードキャスト処理部14は、ブロードキャスト通信の通信フローを管理する機能を担っている。
【0038】
図3は、ブロードキャスト通信の通信フローを管理する処理(実施形態に係るブロードキャスト管理方法)の例について示した図である。
【0039】
図3(a)~(c)は、それぞれブロードキャスト通信の段階ごとの手順(通信)について示している。以下では、
図3(a)~(c)に示す通信の手順を、それぞれ第1~第3の手順と呼ぶものとする。ここで、想定するブロードキャスト通信の通信フローは、
図3に示すような2段階(第1の手順と第2の手順))または3段階(第1の手順から第3の手順)の通信によって構成されるものとして説明する。
【0040】
第1手順の通信は、ブロードキャスト要求通信であり、
図3(a)では、ある監視対象機器30(xxx.yyy.zzz.2/24)から、所属するネットワークセグメントのブロードキャストIPアドレス(xxx.yyy.zzz.255)宛に送出されるパケットを表している。
【0041】
ブロードキャスト処理部14は、ブロードキャスト要求か否かの判定について、宛先IPアドレスがブロードキャストIPアドレスに該当するか否かで行い、ブロードキャスト要求と判定した場合、進行度情報として「ブロードキャスト要求」を設定し、送信元IPアドレスと宛先ポート番号の組をリスト(以下、「ブロードキャスト応答待ちリスト」と呼ぶ)として保持する。ブロードキャスト処理部14は、ブロードキャスト応答待ちリストに登録された組(送信元IPアドレスと宛先ポート番号の組)について、登録された要素(送信元IPアドレスと宛先ポート番号の組)に対するタイムアウト時間の設定を、タイマ部19に要求する。ブロードキャスト処理部14は、タイマ部19からタイムアウトの通知を受信すると、対応する組(送信元IPアドレスと宛先ポート番号の組)をブロードキャスト応答待ちリストから削除する。
【0042】
第2段階の通信は、ブロードキャスト応答通信であり、
図3(b)では、ブロードキャスト要求パケットを受信した監視対象機器30がブロードキャスト要求の送信元機器宛に送出するパケットを表している。
【0043】
図3(b)では「xxx.yyy.zzz.3」と「xxx.yyy.zzz.5」の二つの監視対象機器30からブロードキャスト応答が送出される様子を表している。ブロードキャスト処理部14は、ブロードキャスト応答か否かの判定について、宛先IPアドレスと送信元ポート番号の組がブロードキャスト応答待ちリストに含まれるか否かで行い、ブロードキャスト応答と判定された場合、進行度情報として「ブロードキャスト応答」を設定し、宛先IPアドレスと送信元IPアドレスの組をリスト(以下、このリストを「ユニキャストアクセス待ちリスト」と呼ぶ)として保持する。ユニキャストアクセス待ちリストに登録された場合、登録された要素(宛先IPアドレスと送信元IPアドレスの組)に対するタイムアウト時間の設定を、タイマ部19に要求する。ブロードキャスト処理部14は、タイマ部19から、ユニキャストアクセス待ちリストに登録された組に対応するタイマアウトの通知を受信すると、タイムアウトに対応する組をユニキャストアクセス待ちリストから削除する。
【0044】
第3段階の通信は、ユニキャストアクセス通信であり、
図3(c)では、ブロードキャスト要求の送信元機器からブロードキャスト応答を送信した監視対象機器30に対してユニキャストで送出されるパケットを表している。ブロードキャスト処理部14は、ユニキャストアクセスか否かの判定について、送信元IPアドレスと宛先IPアドレスの組がユニキャストアクセス待ちリストに含まれるか否かで行う。ブロードキャスト処理部14は、ユニキャストアクセスと判定された組に対応する進行度情報として「ユニキャストアクセス」を設定し、ユニキャストアクセス待ちリストから当該組を削除する。
【0045】
ブロードキャスト処理部14は、上記3段階の判定でいずれかの進行度情報が設定された場合、設定された進行度情報をサービスポート判定部13に通知する。また進行度情報が設定されなかった場合「ブロードキャスト通信関連でない」という情報(若しくは空であることを示すデータ(例えば、NULL等の空を示すコード))をサービスポート判定部13に通知する。
【0046】
サービスポート推定部15は、監視対象機器30毎のサービスポートリストおよび各サービスポートに対応する通信パターン分析モデルを用いて、受信した通信フローのサービスポートを推定する機能を担っている。サービスポートリストは、後述するサービスポートリスト管理部16によって作成され、監視対象機器30毎に当該監視対象機器30がクライアントとしてアクセスするサービスポートのリストと、当該監視対象機器30がサーバとしてアクセスされるサービスポートのリストがTCPとUDPそれぞれに存在する。つまり、サービスポート推定部15では、監視対象機器30毎に4種類のサービスポートリストを保持しているものとする。通信パターン分析モデルは、後述の通信パターン学習部17でサービスポートの通信の振舞いを機械学習した学習モデルである。サービスポート推定部15は、サービスポートリストの要素(ポート番号)毎に一つの学習モデルを保持しているものとする。
【0047】
以下では、サービスポートリストを構成する上記の4種類のサービスポートリストを「サブリスト」とも呼ぶものとする。言い換えると、サービスポートリストは、4つのサブリストにより構成されているものとする。つまり、サービスポートリストには、サーバとしてアクセスされるサービスポートのリストである第1のサブリストと、クライアントとしてアクセスするサービスポートのリストである第2のサブリストが含まれている。そして、サービスポートリストには、プロトコルごと(TCPとUDPのそれぞれ)の第1のサブリスト及び第2のサブリスト(つまり計4つのサブリスト)が含まれていることになる。
【0048】
サービスポート推定部15は、受信した通信フローの送信元IPアドレスおよび宛先IPアドレスがいずれかの監視ネットワークセグメントに所属するものであるか否かを判定する。
【0049】
この実施形態では、予め記憶部18に、監視ネットワークセグメントの情報(例えば、監視対象ネットワークN1を構成する各セグメントに対応するネットワークアドレスのリスト)が保持されているものとし、サービスポート推定部15は、記憶部18に保持された情報に基づいて監視ネットワークセグメントを把握するものとする。サービスポート推定部15は、注目通信フローの送信元IPアドレスが監視ネットワークセグメントのものである場合、記憶部18から当該IPアドレスのサービスポートリストを取得する。また、サービスポート推定部15は、宛先IPアドレスが監視ネットワークセグメントのものである場合、記憶部18から当該IPアドレスサービスポートリストを取得する。さらに、サービスポート推定部15は、注目通信フローのIPアドレス(送信元IPアドレス又は宛先IPアドレス)が監視ネットワークセグメント外である場合は、当該IPアドレスに対して空のサービスポートリストを付与するものとする。
【0050】
サービスポート推定部15は、注目通信フローの送信元ポート番号がサービスポートか否かの推定を行う。まず、サービスポート推定部15は、注目通信フローの送信元IPアドレスのサーバとしてアクセスされるサービスポートリストに当該ポート番号(注目通信フローの送信元ポート番号)が含まれるか確認する。サービスポート推定部15は、当該ポート番号が含まれる場合、記憶部18から対応する分析モデル(通信フローに基づく特徴量を入力することで「一致又は不一致」を判定するとともに「一致度合の数値」を出力する判定器;以下、「通信パターン分析モデル」と呼ぶ)を取得する。次に、サービスポート推定部15は、注目通信フローのパケットサイズおよび通信方向の情報を使って通信パターン分析モデルに適用するための特徴量に変換する。通信パターン分析モデルとしては、例えば、種々のAIで用いられる学習器で得られる学習モデルを適用することができる。
【0051】
図4は、通信フローを示す特徴量の例について示した図である。
【0052】
ここでは、サービスポート推定部15は、通信フローについて
図4に示すような特徴量(例えば、DNN(Deep Neural Network)等のニューラルネットワークで処理可能なベクトル形式のデータ)に変換して処理するものとする。
図4では、通信フローを、総パケット数(送受信したパケットの総数)、総パケットバイト数(送受信したパケットのデータ量を合計したバイト数)、送信パケット数、送信パケット総バイト数、送信パケット平均バイト数、受信パケット数、受信パケット総バイト数及び受信パケット平均バイト数のパラメータで構成される特徴量(ベクトル)として表している。なお、上記の特徴量の構成については
図4に示すパラメータの組み合わせに限定されないものである。例えば、
図4に示すパラメータの一部を除外した組み合わせを上記の特徴量とするようにしてもよいし、その他のパラメータを上記の特徴量に追加するようにしてもよい。
【0053】
サービスポート推定部15は、注目通信フローについて
図4に示すような形式に変換した特徴量を取得した通信パターン分析モデルに適用(判定器として適用)し、結果として、「一致」若しくは「不一致」の2値情報と一致度合(0~1の範囲で表される数値)を得る。なお、サービスポート推定部15は、一致度合については判定結果が一致の場合のみ得るものとする。
【0054】
一方、当該ポート番号(注目通信フローの送信元ポート番号)がサービスポートリスト(サーバとしてアクセスされるサービスポートリスト)に含まれない場合、サービスポート推定部15は、当該ポートに対する判定結果として「リスト外ポート」という情報を得るものとする。
【0055】
同様に、サービスポート推定部15は、注目通信フローの宛先IPアドレスについて、当該IPアドレスのクライアントとしてのサービスポートリストに当該ポート番号が含まれるかを確認し、前述と同様の手順で、当該ポート番号について、「一致」(一致の場合は一致度合)若しくは「不一致」若しくは「リスト外ポート」という情報を得る。具体的には、サービスポート推定部15は、注目通信フローの宛先IPアドレスのクライアントとしてアクセスするサービスポートリストに当該ポート番号(注目通信フローの宛先ポート番号)が含まれるか確認する。サービスポート推定部15は、当該ポート番号が含まれる場合、記憶部18から対応する通信パターン分析モデルを取得する。次に、サービスポート推定部15は、注目通信フローのパケットサイズおよび通信方向の情報を使って通信パターン分析モデルに適用するための特徴量に変換して、取得した通信パターン分析モデルに適用し、「一致」(一致の場合は一致度合)若しくは「不一致」の情報を得る。一方、当該ポート番号(注目通信フローの宛先ポート番号)がサービスポートリスト(クライアントとしてアクセスするサービスポートリスト)に含まれない場合、サービスポート推定部15は、当該ポート番号に対する判定結果として「リスト外ポート」という情報を得る。
【0056】
サービスポート推定部15は、以上の結果を用い、注目フローの送信元通信ポートについて、以下の3つの条件(第1~第3の条件)のいずれかに合致する場合、最終的な送信元ポート番号のサービスポート推定結果として「一致」を出力し、以下の3つのいずれの条件にも合致しない場合は最終的な送信元ポート番号のサービスポート推定結果として「不一致」を出力するものとする。
[第1の条件]送信元IPアドレスが監視ネットワークセグメントであり、且つ、送信元IPアドレスに対応する送信元通信ポートの推定結果が「一致」、且つ、宛先IPアドレスが監視ネットワークセグメントであり、且つ、宛先IPアドレスに対応する送信元通信ポートの推定結果が「一致」
[第2の条件]送信元IPアドレスが監視ネットワークセグメントであり、且つ、送信元IPアドレスに対応する送信元通信ポートの推定結果が「一致」、且つ、宛先IPアドレスが監視ネットワークセグメント外
[第3の条件]送信元IPアドレスが監視ネットワークセグメント外、且つ、宛先IPアドレスが監視ネットワークセグメントであり、且つ、宛先IPアドレスに対応する送信元通信ポートの推定結果が「一致」
【0057】
送信元ポートの推定結果が「一致」の場合で、送信元IPアドレスの推定結果も宛先IPアドレスの推定結果も一致(つまり、上記の第1の条件に合致)の場合、サービスポート推定部15は、それぞれの一致度合を比較し小さい方の値を送信元ポート番号に対する一致度合とするようにしてもよい。
【0058】
サービスポート推定部15は、宛先ポート番号についても同様に、宛先ポート番号がサービスポートか否かの推定を行う。つまり、サービスポート推定部15は、送信元IPアドレスの「クライアントとしてアクセスするサービスポートリスト」、及び宛先IPアドレスの「サーバとしてアクセスされるサービスポートリスト」を使用して、前述の送信元ポート番号に対する処理と同様のサービスポート推定処理を行い、結果として宛先ポート番号に対するサービスポート推定結果(「一致」(一致の場合は一致度合を含む)若しくは「不一致」)を得る。
【0059】
サービスポート推定部15は、送信元ポート番号の推定結果と宛先ポート番号の推定結果を用いて、注目通信フローに対するサービスポート推定を行う。具体的には、サービスポート推定部15は、送信元ポート番号に対するサービスポート推定結果が「一致」、且つ、宛先ポート番号に対するサービスポート推定結果が「不一致」の場合、送信元ポート番号を注目通信フローのサービスポートの推定結果とする。また、サービスポート推定部15は、送信元ポート番号に対するサービスポート推定結果が「不一致」、且つ、宛先ポート番号に対するサービスポート推定結果が「一致」の場合、宛先ポート番号を注目通信フローのサービスポートの推定結果とする。さらに、サービスポート推定部15は、送信元ポート番号に対するサービスポート推定結果が「不一致」、且つ、宛先ポート番号に対するサービスポート推定結果も「不一致」の場合、「判定不能」を注目通信フローのサービスポートに対する推定結果とする。さらにまた、サービスポート推定部15は、送信元ポート番号に対するサービスポート推定結果が「一致」、且つ、宛先ポート番号に対するサービスポート推定結果も「一致」の場合、送信元ポート番号に対する推定結果の一致度合(類似度合)と、宛先ポート番号に対する推定結果の一致度合(類似度合)を比較し大きい方のポート番号を、注目通信フローのサービスポートの推定結果とし、一致度合(類似度合)も一致した場合「判定不能」を推定結果とする。そして、サービスポート推定部15は、注目通信フローのサービスポートの推定結果をサービスポート判定部に通知する。
【0060】
以上のように、サービスポート推定部15は、送信元ポート番号の推定結果と宛先ポート番号の推定結果を取得する。そして、サービスポート推定部15は、以上のような処理により得た注目通信フローのサービスポートの推定結果をサービスポート判定部13に通知する。
【0061】
サービスポートリスト管理部16は、監視対象機器30毎に、クライアントとしてアクセスするサービスポートリスト、サーバとしてアクセスされるサービスポートリストをTCPおよびUDPそれぞれに対して作成(つまりプロトコルごとに作成)し、管理する機能を担っている。サービスポートリスト管理部16は、制御部12から通信フロー情報(5-tuples、サービスポート(サービスポートが未判定の場合は空))を受信すると、注目通信フローのプロトコルがTCPとUDPそれぞれの場合に応じてサービスポートリストの更新処理を行う。
【0062】
サービスポートリスト管理部16は、注目通信フローのプロトコルがTCPの場合、サービスポート番号が送信元ポート番号と宛先ポート番号のどちらに一致するかを確認する。サービスポートリスト管理部16は、送信元ポート番号に一致する場合で、且つ、送信元IPアドレスが監視ネットワークセグメント下の場合、送信元IPアドレスのTCPのサーバとしてアクセスされるサービスポートリストに当該ポート番号が含まれなければ追加する。サービスポートリスト管理部16は、これを宛先IPアドレスのクライアントとしてアクセスするサービスポートリストに対しても同様に行う。サービスポートリスト管理部16は、サービスポート番号が宛先ポート番号に一致する場合、送信元IPアドレスのTCPのクライアントとしてアクセスするサービスポートリストに当該ポート番号が含まれなければ追加する。サービスポートリスト管理部16は、これを宛先IPアドレスのサーバとしてアクセスされるサービスポートリストに対しても同様に行う。以上の処理の結果、サービスポートリストに変更が加えられた場合、最新のサービスポートリストを記憶部18に保存する。
【0063】
サービスポートリスト管理部16は、注目通信フローのプロトコルがUDPの場合、監視対象機器30毎にクライアントとしてアクセスするサービスポートの候補リストと、サーバとしてアクセスされるサービスポートの候補リストをサービスポートリストとは別に保持する。
【0064】
サービスポートリスト管理部16は、サービスポート情報を確認しサービスポートが設定されている場合、当該ポート番号が送信元ポート番号と宛先ポート番号のどちらのポートに一致するかを確認する。サービスポートリスト管理部16は、送信元ポート番号に一致する場合で、且つ、送信元IPアドレスが監視ネットワークセグメント下の場合、送信元IPアドレスのサーバとしてアクセスされるサービスポートの候補リストに当該ポート番号を追加する。サービスポートリスト管理部16は、これを宛先IPアドレスのクライアントとしてアクセスするサービスポートの候補リストに対しても同様に行う。サービスポート番号が宛先ポート番号に一致する場合、サービスポートリスト管理部16は、送信元IPアドレスのクライアントとしてアクセスするサービスポート候補リストに当該ポート番号を追加し、これを宛先IPアドレスのクライアントとしてアクセスするサービスポート候補リストに対しても同様に行う。サービスポートリスト管理部16は、サービスポートが設定されていない場合は、宛先ポート番号に対して前述のサービスポートの候補リストへの追加処理を行う。UDPだけこのような例外処理を行うのは、サービスポート判定部13でのサービスポート判定処理において、TCPの場合はTCP制御フラグの情報を使ってサービスポートを判定する手段があるが、UDPの場合は通信パターン分析による推定以外の判定手段が無いため、サービスポートリストに要素が存在しない状態だとサービスポートが判定されない問題が生じる。そのためサービスポートリスト管理部16では、サービスポートの候補リストを使用したサービスポートリスト作成手段を有する。サービスポートリスト作成方法は、例えば、サービスポート候補リストに含まれる各ポート番号について、候補リスト内での出現頻度を集計し、出現頻度が他のポート番号に比べて多いポート番号をサービスポートとして抽出するようにしてもよい。サービスポートの抽出方法として、例えば外れ値検出アルゴリズムによって、外れ値と判定された出現頻度に対応するポート番号をサービスポートリストとする方法が考えられる。外れ値検出のアルゴリズムとして、例えば、Smirnov-Grubbs検定が利用できる。サービスポートリスト管理部16は、サービスポートリストが変更された場合、最新のサービスポートリストを記憶部18に保存する。
【0065】
サービスポートリスト管理部16は、上述のサービスポートリストの作成・更新処理の結果、「サービスポートリストに受信したサービスポート番号が含まれる場合」、または「UDPでサービスポートの情報が無い場合で、宛先ポート番号がサービスポートリストに含まれる場合」、通信パターン学習部17に通信フロー情報とサービスポート番号(UDPでサービスポートの情報が無い場合は宛先ポート番号)を通知する。また、サービスポートリスト管理部16は、上述のサービスポートリストの作成・更新処理の結果、「サービスポートリストに受信したサービスポート番号が含まれる場合」、または「UDPでサービスポートの情報が無い場合で、宛先ポート番号がサービスポートリストに含まれる場合」、通信パターン学習部17に通信フロー情報とサービスポート番号(UDPでサービスポートの情報が無い場合は宛先ポート番号)を通知する。
【0066】
以上のように、サービスポートリスト管理部16は、IPアドレスごと(監視対象機器30ごと)のサービスポートリストを管理する。
【0067】
通信パターン学習部17は、サービスポートリストに含まれる各サービスポートについて、当該サービスポートの通信フローの通信パターンを機械学習し、入力された注目通信フローが当該サービスポートの通信挙動と一致するか否かを出力する通信パターン分析モデルを構築する機能を担っている。
【0068】
通信パターン学習部17は、サービスポートリスト管理部16から通信フロー情報およびサービスポート情報を受信すると、受信したサービスポートと同じサービスポートが設定されているフロー情報(UDPでサービスポート情報が無い場合は受信した宛先ポート番号と同じ宛先ポート番号のフロー情報)を記憶部18から取得する。次に、通信パターン学習部17は、取得したフロー情報から送信元IPアドレスに係るフロー情報を抽出する。つまり、通信パターン学習部17は、受信したフロー情報の送信元IPアドレスについて、サービスポートが送信元ポート番号と一致する場合、記憶部18から取得したフロー情報のうち、送信元IPアドレスと送信元ポート番号の組および宛先IPアドレスと宛先ポート番号の組が、受信したフロー情報の送信元IPアドレスと送信元ポート番号の組に一致するものを抽出する。通信パターン学習部17は、受信したフロー情報の送信元IPアドレスについて、サービスポートが宛先ポート番号と一致する場合、記憶部18から取得したフロー情報のうち、送信元IPアドレスと宛先ポート番号の組および宛先IPアドレスと送信元ポート番号の組が、受信したフロー情報の送信元IPアドレスと宛先ポート番号の組に一致するものを抽出する。通信パターン学習部17は、抽出されたフロー情報の件数が閾値(学習に必要な所定のデータ数)以上の場合、送信元IPの当該サービスポート番号に対応する通信パターン分析モデルを構築する。通信パターン学習部17は、通信パターン分析モデル構築のため、抽出した各フロー情報を
図4のような特徴量データに変換する。通信パターン学習部17は、各フローの特徴量データを学習データとして機械学習器に適用し当該ポート番号の通信挙動を学習する。通信パターン学習部17に適用する機械学習器(AIのプラットフォーム)については限定されないものであり、種々の学習器を用いることができる。通信パターン学習部17は、機械学習器として、例えばOne Class SV Mを使用し、学習に使用した特徴量データに近い特徴を持つ特徴量データを正常と判定し、特徴が異なる特徴量データを異常と判定するモデルを構築するようにしてもよい。通信パターン学習部17は、構築した通信パターン分析モデルを、送信元IPアドレスのサービスポートリストのサービスポートに対応する通信パターン分析モデルとして記憶部18に保存する。通信パターン学習部17は、以上の処理を、宛先IPアドレスに対しても同様に実施する。
【0069】
記憶部18は、サービスポート識別に係る種々の情報を保持する機能を担っている。具体的には、フロー情報、IPアドレス毎にクライアントとしてアクセスするサービスポートリストとサーバとしてアクセスされるサービスポートリスト、サービスポートリストに含まれる各ポート番号に対応する通信パターン分析モデル、監視ネットワークセグメント情報を保持する。
【0070】
タイマ部19は、制御部12およびブロードキャスト処理部14からの要求を受けて、要求された設定値でタイマをセットし、タイムアウトを制御部12またはブロードキャスト処理部14に通知する機能を担っている。
【0071】
(A-2)第1の実施形態の動作
次に、第1の実施形態の通信分析装置10の動作(実施形態に係る通信分析方法)について説明する。
【0072】
以下では、通信分析装置10の動作例として、パケットを受信し、通信フローのサービスポートを判定するまでの一連の動作(ステップS100)、UDP通信フローにおけるブロードキャスト通信判定動作(ステップS200)、サービスポート推定処理動作(ステップS300)、サービスポートリストの作成・更新動作(ステップS400)、及びサービスポートの通信パターン分析モデルの構築動作(ステップS500)をそれぞれ説明する。
【0073】
図5~
図9は、それぞれ通信分析装置10の動作(上述のステップS100~S500の動作)について示したフローチャートである。
【0074】
まず、通信分析装置10におけるステップS100の動作(パケット受信から通信フローのサービスポート判定までの一連の動作)について
図5のフローチャートを用いて説明する。
【0075】
トラフィックキャプチャ部11は、ミラーポートからパケットを受信すると、受信したパケットを制御部12に通知する(S101)。
【0076】
次に、制御部12は、受信したパケットから5-tuplesの情報を抽出し、継続する通信フローのパケットかを確認する。制御部12が保持する通信フロー情報の中に、受信パケットの5-tuplesと一致する通信フローまたは送信元のIPアドレスおよびポート番号と宛先のIPアドレスおよびポート番号を入れ替えた5-tuplesが一致する通信フローがあると、継続する通信フローと判断し、一致する通信フローが無い場合は新規の通信フローと判断する。制御部12は、新規の通信フローと判断した場合は、5-tuplesの情報と、受信パケットのパケットサイズ、通信方向(送信元IPアドレスから宛先IPアドレスへの通信か、宛先IPアドレスから送信元IPアドレスへの通信かの情報)、TCPの場合はTCP制御フラグの値、サービスポート(値は空)を管理する通信フロー情報として保持する。また、制御部12は、当該通信フローが一定期間パケットを受信しなかった時に当該通信フローを破棄するのに使用するタイムアウト時間をタイマ部19に設定する。さらに、制御部12は、継続する通信フローと判断した場合は通信フロー情報を更新する(S102)。具体的には、制御部12は、受信パケットのパケットサイズ、通信方向、プロトコルがTCPの場合はTCP制御フラグの値を通信フロー情報に追加する。また、制御部12は、当該通信フローに設定されていたタイムアウト時間を再設定しタイマ部19に新しいタイムアウト時間を設定する。
【0077】
次に、制御部12は、受信パケットに対応する注目通信フローの通信フロー情報を参照して、サービスポートの値を確認し(S103)、注目通信フローのサービスポートの値が空(未設定)の場合後述するステップS107に移行してサービスポート判定部13に注目通信フローのサービスポート判定を実行させ、当該サービスポートの値が設定済である場合には後述するステップS104に移行して後述の通信フロー保存条件の判定に進む。
【0078】
上述のステップS103で注目通信フローのサービスポートの値が空(未設定)の場合、サービスポート判定部13は、まず、注目通信フローのプロトコルがTCPかUDPかを確認し(S107)、プロトコルがTCPの場合は後述するステップS108の処理に移行し、そうでない場合には後述するステップS200の処理に移行する。
【0079】
上述のステップS107で、注目通信フローのプロトコルがTCPだった場合、サービスポート判定部13は、注目通信フローのTCP制御フラグの情報からサービスポート判定を試み(S108)、判定成功した場合は後述するステップS109の処理に移行し、そうでない場合は後述するステップS111の処理に移行する。具体的には、サービスポート判定部13は、これまでに受信したパケット(注目通信フローのパケット)の制御フラグの中でSYNフラグのみがONのパケットが含まれる場合、当該パケットはクライアントからサーバへの接続要求と判断できるため、当該パケットの通信方向情報から宛先側のポート番号(送信元IPアドレスから宛先IPアドレスへの通信ならば宛先ポート番号、逆向きの通信ならば送信元ポート番号)を求めサービスポートと判定する。また、制御フラグにSYNとACKのフラグがONのパケットが含まれる場合、当該パケットはサーバからクライアントへのSYNパケットに対する応答パケットと判断できるため、当該パケットの通信方向情報から送信側のポート番号を求めサービスポートと判定する。
【0080】
上述のステップS108において、注目通信フローのTCP制御フラグの情報からサービスポート判定が成功した場合、サービスポート判定部13は、当該サービスポートを注目通信フローに対する判定結果として決定し、制御部12に通知する(S109)。
【0081】
上述のステップS108において、注目通信フローのTCP制御フラグの情報からサービスポート判定ができなかった場合、サービスポート判定部13は、後述するステップS111の処理に移行して、サービスポート推定処理に進む。
【0082】
上述のステップS107で、注目通信フローのプロトコルがUDPと確認された場合、サービスポート判定部13は、ブロードキャスト処理部14に対して、注目通信フローがブロードキャスト通信に係るものであるか否かをブロードキャスト処理部14に要求する。ブロードキャスト処理部14は、サービスポート判定部13の要求に応じて、注目通信フローがブロードキャスト通信であるか否かを判定し(S200)、注目通信フローがブロードキャスト通信である場合後述するステップS113から動作する。
【0083】
ステップS200において、注目通信フローがブロードキャスト通信であると判定された場合、ブロードキャスト処理部14は、サービスポート判定部13に対してその旨と共にブロードキャスト進行度情報を通知する。サービスポート判定部13は、ブロードキャスト処理部14から注目通信フローがブロードキャスト通信であるとの判定結果を取得すると、ブロードキャスト処理部14から通知されたブロードキャスト進行度情報を制御部12への応答とする。この場合、制御部12は、注目通信フローについて、ブロードキャスト通信であると認識すると共に、ブロードキャスト進行度を認識(決定)する(S113)。
【0084】
一方、ステップS200において、注目通信フローがブロードキャスト通信でないと判定された場合、ブロードキャスト処理部14は、その旨をサービスポート判定部13に通知する。サービスポート判定部13は、注目通信フローがブロードキャスト通信でないという通知を受けた場合、後述するステップS111の処理に移行して、注目通信フローのサービスポート推定処理に進む。
【0085】
サービスポート判定部13は、「注目通信フローについてTCPで制御フラグでのサービスポート判定ができなかった場合」、又は「UDPでブロードキャスト通信と判定されなかった場合」、注目通信フローについてサービスポート推定処理によりサービスポートの判定を行うと判断する。このとき、サービスポート判定部13は、注目通信フローについてこれまでに受信したパケットがサービスポート推定実施に必要な所定の条件を満たすか否かを判定し(S111)、上記所定の条件を満たすと判定した場合後述するステップS300に移行し、そうでないと判断した場合は後述するステップS112に移行する。具体的には、サービスポート判定部13は、注目通信フローのこれまでに受信したパケット数が閾値以上、または一定時間パケットの受信が無くタイムアウトした通信フローの場合に、上記の所定(ステップS111の条件)の条件を満たすと判定するようにしてもよい。
【0086】
上述のステップS111で、注目通信フローについてこれまでに受信したパケットが上記の所定の条件を満たす場合、サービスポート判定部13は、サービスポート推定部15に注目通信フローのサービスポート推定処理の実行を指示して、その結果を取得する。そして、サービスポート推定部15は、注目通信フローに対するサービスポート推定処理を行い(S300)、結果としてサービスポートが推定できた場合(判定不能でない場合)は、サービスポート判定部13にサービスポートを通知する。このとき、サービスポート判定部13は、ステップS109に移行して受信したポート番号を注目通信フローのサービスポートと決定し、その決定内容を制御部12に通知する。ステップS300の処理の詳細については後述する。
【0087】
一方、「上述のステップS111で注目通信フローについてこれまでに受信したパケットが上記の所定の条件を満たさない場合」、又は「上述のステップS300で注目通信フローに対するサービスポート推定処理ができなかった場合」、サービスポート判定部13は、注目通信フローについてサービスポートが判定不能と決定して、制御部12にその決定内容(判定結果)を通知する(S112)。
【0088】
以上のように、サービスポート判定部13は、サービスポート判定結果として、サービスポートが判定できた場合は判定したサービスポート番号、判定できなかった場合は判定不能、ブロードキャスト通信と判定した場合はブロードキャスト進行度情報を制御部12にそれぞれ通知する。そして、制御部12は、サービスポート判定部13からの結果を受けて、注目通信フローが所定の条件を満たすか否か判定し(S110)、所定の条件を満たす場合のみ後述するステップS400の処理を実行し、その後、上述のステップS104の処理に移行する。制御部12は、例えば、注目通信フローのプロトコルがUDPの場合、または通信フローのプロトコルがTCPでありかつサービスポート判定部13からサービスポート番号が通知された場合に上記の所定の条件(ステップS110の条件)を満たすと判定するようにしてもよい。
【0089】
ステップS110において上記の所定の条件を満たすと判定された場合、制御部12は、通信フローの5-tuplesの情報とサービスポート(判定不能の場合は空)の情報をサービスポートリスト管理部16に通知して、サービスポートリストの作成・更新を実行させる(S400)。なお、ステップS400の処理の詳細については後述する。
【0090】
制御部12は、サービスポートの判定処理が完了すると、注目通信フローについてこれまで受信したパケットの数(量)が所定の条件を満たすか否かを判定し(S104)、所定の条件を満たす場合のみ、5-tuplesの情報、パケットサイズ、通信方向、サービスポート(サービスポートが未判定の場合は空文字)、及びブロードキャスト進行度情報(ブロードキャスト関連の通信フローでない場合は空文字)を含む情報を、記憶部18に通信フロー履歴情報として保存し(S105)、その後ステップS106に移行する。なお、制御部12は、フロー履歴情報保存後、保持している当該通信フローに関する情報を削除する。
【0091】
制御部12は、例えば、注目通信フローについて、これまでに受信したパケット数が閾値以上、または注目通信フローが終了したと判断できる(TCP制御フラグでFINがONのパケットとFIN/ACKがONのパケットが観測された)場合、または注目通信フローがタイムアウトした通信フローである場合に、上記の所定の条件(ステップS104の条件)を満たすと判断するようにしてもよい。
【0092】
制御部12は、受信パケットに対応する注目通信フローに対する処理が完了すると、管理する通信フローのうち、タイマ部19からタイムアウト通知を受けた通信フローが無いかを確認し(S106)、タイムアウトした通信フローがあった場合は、当該通信フローを次の注目通信フローとし、上述のステップS103に戻って動作する。上述のステップS106の判定で、タイムアウトした通信フローが無かった場合、制御部12は、次のパケット受信まで待機し、次のパケット受信があった場合上述のステップS101から動作することになる。
【0093】
以上のように、通信分析装置10は、パケット受信に伴う動作を行う。
【0094】
次に、通信分析装置10におけるステップS200の動作(ブロードキャスト通信判定動作)の詳細について
図6のフローチャートを用いて説明する。
【0095】
ここでは、まず、ブロードキャスト処理部14は、サービスポート判定部13からUDPの注目通信フローの5-tuples情報を受信したものとする(S201)。
【0096】
次に、ブロードキャスト処理部14は、受信したUDPパケットがブロードキャスト要求か否かの判定を行い(S202)、ブロードキャスト要求である場合は後述するステップS203の処理から動作し、そうでない場合は後述するステップS205の処理から動作する。ブロードキャスト処理部14は、例えば、受信したUDPパケットの宛先IPアドレスが監視ネットワークセグメントのブロードキャストIPアドレスである場合(例えば、IPアドレスの末尾が255である場合)、注目通信フローについてはブロードキャスト要求と判断するようにしてもよい。
【0097】
ステップS202において、受信したUDPパケットがブロードキャスト要求であると判断された場合、ブロードキャスト処理部14は、ブロードキャスト応答待ちリストに、注目通信フローの送信元IPアドレスと宛先ポート番号の組を保存し、当該組に対するタイムアウトタイマーをタイマ部19でセットする(S203)。そして、ブロードキャスト処理部14は、受信したUDPパケットに対応する組(注目通信フローの送信元IPアドレスと宛先ポート番号の組)のブロードキャスト進行度として「ブロードキャスト要求」のステータスを設定し(S204)、後述するステップS212の処理に移行する。
【0098】
ステップS202において、受信したUDPパケットがブロードキャスト要求でないと判断された場合、ブロードキャスト処理部14は、受信したUDPパケットがブロードキャスト応答であるか否かの判定を行い(S205)、ブロードキャスト応答であると判断した場合は後述するステップ206の処理に移行し、そうでない場合は後述するステップS208の処理に移行する。ブロードキャスト処理部14は、受信したUDPパケットの宛先IPアドレスと送信元ポート番号の組がブロードキャスト応答待ちリストに含まれている場合、当該UDPパケットをブロードキャスト応答と判断するようにしてもよい。
【0099】
ステップS205において、受信したUDPパケットがブロードキャスト応答であると判断された場合、ブロードキャスト処理部14は、ユニキャストアクセス待ちリストに受信したUDPパケットの宛先IPアドレスと送信元IPアドレスの組を保存し、当該組に対するタイムアウトタイマーをタイマ部19でセットする(S206)。そして、ブロードキャスト処理部14は、受信したUDPパケットに対応する組(注目通信フローの送信元IPアドレスと宛先ポート番号の組)のブロードキャスト進行度として「ブロードキャスト応答」のステータスを設定し(S207)、後述するステップS212の処理に移行する。
【0100】
ステップS205において、受信したUDPパケットがブロードキャスト応答でないと判断された場合、ブロードキャスト処理部14は、受信したUDPパケット(注目通信フロー)がユニキャストアクセスか否かの判定を行い(S208)、ユニキャストアクセスであると判断された場合は後述するステップS209の処理から動作し、そうでない場合は後述するステップS211の処理から動作する。ブロードキャスト処理部14は、受信したUDPパケット(注目通信フロー)の送信元IPアドレスと宛先IPアドレスの組がユニキャストアクセス待ちリストに含まれている場合、当該受信したUDPパケット(注目通信フロー)をユニキャストアクセスと判断するようにしてもよい。
【0101】
ステップS208において、受信したUDPパケット(注目通信フロー)がユニキャストアクセスであると判断された場合、ブロードキャスト処理部14は、受信したUDPパケット(注目通信フロー)に対応する組(送信元IPアドレスと宛先IPアドレスの組)をユニキャストアクセス待ちリストから削除する(S209)。そして、ブロードキャスト処理部14は、受信したUDPパケット(注目通信フロー)に対応する組(注目通信フローの送信元IPアドレスと宛先ポート番号の組)のブロードキャスト進行度として「ユニキャストアクセス」のステータスを設定し(S210)、後述するステップS212の処理に移行する。
【0102】
一方、ステップS208において、受信したUDPパケット(注目通信フロー)がユニキャストアクセスでないと判断された場合、ブロードキャスト処理部14は、受信したUDPパケット(注目通信フロー)に対応する組(送信元IPアドレスと宛先IPアドレスの組)のブロードキャスト進行度として「ブロードキャスト通信関連でない」のステータスを設定し(S211)、後述するステップS212の処理に移行する。このとき、ブロードキャスト進行度として明示的に「ブロードキャスト通信関連でない」のステータスを設定するのではなく何も設定しない(空の状態)とするようにしてもよい。
【0103】
ステップS204、S207、S210、S211のいずれかの処理により、受信したUDPパケット(注目通信フロー)の組(送信元IPアドレスと宛先IPアドレスの組)に対するブロードキャスト進行度情報が設定されると、ブロードキャスト処理部14は、各種リストのメンテナンスを行う(S212、S213)。具体的には、ブロードキャスト処理部14は、ブロードキャスト応答待ちリストのうち、タイマ部19からタイムアウトの通知を受けた要素(組)をリストから削除する。また、ブロードキャスト処理部14は、ユニキャストアクセス待ちリストのうち、タイマ部19からタイムアウトの通知を受けた要素(組)をリストから削除する。
【0104】
次に、ブロードキャスト処理部14は、設定したブロードキャスト進行度情報をサービスポート判定部13に通知する。また、サービスポート判定部13は、通知されたブロードキャスト進行度情報が、ブロードキャスト要求、ブロードキャスト応答、ユニキャストアクセスのいずれかの場合、制御部12に当該ブロードキャスト進行度情報を通知する(S214)。
【0105】
制御部12は、ブロードキャスト進行度情報を受信すると、受信したブロードキャスト進行度情報から用途に応じて当該通信フローにサービスポートを設定してもよい(S215)。例えば、制御部12は、監視対象機器30が普段アクセスしないサービスへの通信を異常検知する機能の場合では、ブロードキャスト進行度情報がブロードキャスト要求である場合、宛先ポート番号をサービスポートと設定するようにしてもよい。また、制御部12は、ブロードキャスト進行度情報がブロードキャスト応答である場合、ブロードキャスト要求のサービスポートである、送信元ポート番号をサービスポートと設定するようにしてもよい。さらに、制御部12は、ブロードキャスト進行度情報がユニキャストアクセスである場合、宛先ポート番号をサービスポートと設定するようにしてもよい。
【0106】
図10~
図12は、通信分析装置10が、
図5に示すフローチャートの処理を実行した場合における各リスト(ブロードキャスト応答待ちリストとユニキャストアクセス待ちリスト)の遷移の具体例について示した図である。
図10~
図12は、それぞれブロードキャスト要求があった場合の例、ブロードキャスト応答があった場合の例及びユニキャストアクセスがあった場合の例についてそれぞれ示している。
【0107】
図10では、xxx.yyy.zzz.2の監視対象機器30からxxx.yyy.zzz.255に宛先ポート番号Bで通信(パケット)が発生している例について示している。宛先IPアドレスのxxx.yyy.zzz.255は監視ネットワークセグメントのブロードキャストIPアドレスであり、ブロードキャスト処理部14によりブロードキャスト要求と判断されることになる。また、
図10では、上記のブロードキャスト要求に基づいて、ブロードキャスト応答待ちリストに、送信元IPアドレスと宛先ポート番号の組を示す情報として「xxx.yyy.zzz.2,B」が保存されている。
【0108】
図11では、xxx.yyy.zzz.3の監視対象機器30とxxx.yyy.zzz.5の監視対象機器30からxxx.yyy.zzz.2の監視対象機器30に対し送信元ポート番号Bで通信(パケット)が発生している例について示している。
図11の例では、宛先IPアドレスと送信元ポート番号の組であるxxx.yyy.zzz.2,Bが、ブロードキャスト応答待ちリストに含まれているため、ブロードキャスト処理部14において当該2つの通信フローはブロードキャスト応答と判断されることになる。したがって、
図11の例では、ブロードキャスト処理部14により、「xxx.yyy.zzz.2,xxx.yyy.zzz.3」と「xxx.yyy.zzz.2,xxx.yyy.zzz.5」の2つの組(要素)がユニキャストアクセス待ちリストに追加されることになる。
【0109】
図12では、xxx.yyy.zzz.2からxxx.yyy.zzz.5に対して通信(パケット)が発生している例について示している。
図12の例では、「xxx.yyy.zzz.2,xxx.yyy.zzz.5」の組(要素)がユニキャストアクセス待ちリストに含まれているため、ブロードキャスト処理部14により、上記の通信(パケット)はユニキャストアクセスと判断されることになる。したがって、
図12の例では、ブロードキャスト処理部14により、ユニキャストアクセス待ちリストから、「xxx.yyy.zzz.2,xxx.yyy.zzz.5」の組(要素)が削除されている。
【0110】
以上のように、ブロードキャスト処理部14では、各リスト(ブロードキャスト応答待ちリストとユニキャストアクセス待ちリスト)を用いて、ブロードキャスト通信を構成する各プロセスのパケットが認識される。
【0111】
次に、通信分析装置10におけるステップS300の動作(サービスポート推定部15における、通信フローのサービスポート推定処理動作)について
図7のフローチャートを用いて説明する。
【0112】
サービスポート推定部15は、サービスポート推定部15からサービスポート推定対象となる注目通信フローの情報(5-tuples、パケットサイズ、通信方向)を受けると(S301)、注目通信フローの送信元IPアドレスのサービスポートリストと、宛先IPアドレスのサービスポートリストとを記憶部18から取得する(S302)。
【0113】
次に、サービスポート推定部15は、注目通信フローの送信元ポート番号がサービスポートか否かを推定し(S303)、さらに、注目通信フローの宛先ポート番号がサービスポートか否かを推定する(S304)。
【0114】
次に、サービスポート推定部15は、送信元ポート番号に対するサービスポート推定結果と、宛先ポート番号に対するサービスポート推定結果から、注目通信フローに対するサービスポート番号の推定を行う(S305)。サービスポート推定部15は、いずれか片方のポート番号の推定結果のみが一致の場合は当該ポート番号をサービスポートと推定し、両方のポート番号で推定結果が一致だった場合は一致度合の大きいポート番号をサービスポートと推定する。また、サービスポート推定部15は、どちらのポート番号も推定結果が不一致の場合は判定できなかったとして判定不能(判定NG)と推定する。
【0115】
注目通信フローに対するサービスポート番号の推定が成功(判定OK)だった場合、サービスポート推定部15は、推定したサービスポートを注目通信フローのサービスポートに設定する(S306)。
【0116】
サービスポート推定部15はサービスポート判定部13に推定結果を通知し、推定処理を終了する(S307)。
【0117】
次に、上述のステップS303における注目通信フローに対する送信元ポート番号がサービスポートか否かを推定する処理の詳細について説明する。
【0118】
まず、送信元IPアドレスのサービスポートリストのうち、送信元ポートがサービスポートの場合、送信元IPアドレスはサーバとなるため、サービスポート推定部15は、注目通信フローのプロトコル(TCP又はUDP)に対応する「サーバとしてアクセスされるサービスポートリスト」に注目通信フローの送信元ポート番号が含まれているかを確認する。注目通信フローの送信元ポート番号が含まれない場合、サービスポート推定部15は、送信元ポート番号に対する送信元IPアドレスのサービスポート判定結果を「リスト外ポート」と判断する。また、注目通信フローの送信元ポート番号が含まれている場合、サービスポート推定部15は、ポート番号に対応する通信パターン分析モデルを記憶部18から取得し、通信パターンの一致判定を行う。そして、サービスポート推定部15は、通信パターン分析モデルに適用するために、注目通信フローのパケットサイズと通信方向の情報を特徴量(例えば、
図4に示すような特徴量)に変換する。サービスポート推定部15は、変換した特徴量を取得した通信パターン分析モデルに適用し、分析モデルから一致または不一致の結果を得る。結果が一致の場合、サービスポート推定部15は、通信パターン分析モデルから一致度合(0~1の範囲の値)も取得する。
【0119】
サービスポート推定部15は、宛先IPアドレスに対しても同様に送信元ポート番号に対するサービスポート推定を行う。宛先IPアドレスの場合は、宛先IPアドレスのサービスポートリストのうち、「クライアントとしてアクセスするサービスポートリスト」が推定の対象となる。サービスポート推定部15は、宛先IPアドレスの推定結果としても、一致、不一致、リスト外ポートのいずれかが得られる。
【0120】
次に、サービスポート推定部15は、以上の結果を用いて送信元ポート番号がサービスポートか否かの推定を行う。具体的には、サービスポート推定部15は、上記の第1~第3の条件のうち、いずれかの条件を満たすとき、注目通信フローの送信元通信ポートについてサービスポートであると推定する。ここで、送信元ポート番号がサービスポートであると推定された場合、サービスポート推定部15は、一致度合の値を求める。ここでは、サービスポート推定部15は、上記の第1の条件を満たす場合、各IPアドレスでの推定結果の一致度合を比較し小さい方の値を採用するものとする。それ以外の条件を満たす場合は、推定結果が一致となったIPアドレスでの一致度合を採用するものとする。
【0121】
次に、上述のステップS304における注目通信フローに対する宛先ポート番号がサービスポートか否かを推定する処理の詳細について説明する。
【0122】
サービスポート推定部15は、宛先ポート番号についてもサービスポートか否かを推定する。まず、サービスポート推定部15は、送信元IPアドレスのサービスポートリストのうち、宛先ポートがサービスポートの場合、送信元IPアドレスはクライアントとなるため、通信フローのプロトコルの「クライアントとしてアクセスするサービスポートリスト」を対象に、送信元ポート番号の時と同様の手順でサービスポートか否かの推定を行う。そして、サービスポート推定部15は、宛先IPアドレスに対しても同様に宛先ポート番号に対するサービスポート推定を行う。宛先IPアドレスの場合は、宛先IPアドレスのサービスポートリストのうち、「サーバとしてアクセスされるサービスポートリスト」が推定の対象となる。宛先IPアドレスの推定結果としても、一致、不一致、リスト外ポートのいずれかが得られる。最後に、サービスポート推定部15は、送信元ポート番号の時と同様に、以上の結果を用いて宛先ポート番号がサービスポートか否かの推定を行う。サービスポートと推定する条件は、送信元ポート番号の時と同じである。
【0123】
次に、サービスポート推定部15によるサービスポート推定処理の具体例について説明する。
【0124】
図13は、注目通信フローとそれに対応するサービスポートリストの例について示した図である。
【0125】
図13では、サービスポート推定部15が、
図7に示すフローチャートの処理を実行した場合の動作について各サービスポートリストの内容と共に示している。
【0126】
図13の例では、推定対象の注目通信フローのプロトコルがTCP、送信元IPアドレスがxxx.yyy.zzz.2、送信元ポートが61111、宛先IPアドレスがxxx.yyy.zzz.3、宛先ポートが80である。また、
図13の例では、監視ネットワークセグメントはxxx.yyy.zzz/24となっている。さらに、
図13の例では、IPアドレスがxxx.yyy.zzz.2の監視対象機器30を機器Aとし、IPアドレスがxxx.yyy.zzz.3の監視対象機器30を機器Bとしている。
【0127】
次に、
図13の例におけるステップS302の動作について説明する。このとき、サービスポート推定部15は、送信元IPアドレスがxxx.yyy.zzz.2である機器Aのサービスポートリスト(機器Aの吹き出し部分)を取得する。また、このとき、サービスポート推定部15は、宛先IPアドレスがxxx.yyy.zzz.3である機器Bのサービスポートリスト(機器Bの吹き出し部分)も取得する。
【0128】
次に、
図13の例におけるステップS303の動作について説明する。このとき、機器Aが送信元IPアドレスであり、通信フローがTCPであるため、サービスポート推定部15では、TCPのサーバとしてアクセスされるサービスポートリストの要素(22番のみ)と、通信フローの送信元ポート番号である61111が比較され、61111がリストに含まれないため推定結果はリスト外ポートとなる。このとき、機器Bが宛先IPアドレスであり、サービスポート推定部15では、機器BのTCPのクライアントとしてアクセスするサービスポートの要素(空)と通信フローの送信元ポート番号61111が比較され、リストに含まれないため推定結果はリスト外ポートなる。したがって、
図13の例では、送信元IPアドレスの推定結果も宛先IPアドレスの推定結果もリスト外ポートであるため、サービスポート推定部15は、送信元ポート番号はサービスポートではないと推定することになる。
【0129】
次に、
図13の例におけるステップS304の動作について説明する。このとき、サービスポート推定部15では、機器AのTCPのクライアントとしてアクセスするサービスポートリストの要素(22番と80番)と通信フローの宛先ポート番号である80番が比較される。80番がリストに含まれるため、サービスポート推定部15は、80番に対応する通信パターン分析モデルを取得し、通信フローの特徴量をモデルに適用し、一致若しくは不一致の結果を得る。また、このとき、機器BのTCPのサーバとしてアクセスされるサービスポートリストの要素(22番と80番)が対象となり、通信フローの宛先ポート番号の80がリストに含まれるため、サービスポート推定部15は、通信フローの特徴量を通信パターン分析モデルに適用し、推定結果として一致若しくは不一致を得る。したがって、
図13の例では、送信元IPアドレスと宛先IPアドレスそれぞれの通信パターン分析モデルでの推定結果によって、注目通信フローの宛先ポート番号がサービスポートとなるか否かが決まる。つまり、サービスポート推定部15では、いずれかの推定結果が不一致だった場合は、宛先ポート番号はサービスポートでないと推定され、どちらの推定結果も一致だった場合は宛先ポート番号がサービスポートであると推定されることになる。
【0130】
次に、
図13の例におけるステップS305の動作について説明する。このとき、送信元ポート番号に対するサービスポート推定結果は不一致であるため、サービスポート推定部15は、宛先ポート番号の推定結果が一致の場合は宛先ポート番号の80番をサービスポートと推定し、推定結果が不一致の場合は判定不能と推定することになる。
【0131】
次に、通信分析装置10におけるステップS400の動作(サービスポートリスト管理部16による、サービスポートリストの作成および更新処理動作)を
図8を用いて説明する。
【0132】
ここでは、まず、サービスポートリスト管理部16は、制御部12から注目通信フローの通信フロー情報として5-tuples、及びサービスポート番号(サービスポート判定部13により判定されたサービスポート番号;サービスポートが判定不能だった場合は空)を受信したものとする(S401)。
【0133】
次に、サービスポートリスト管理部16は、注目通信フローのプロトコルがTCPかUDPかを確認し(S402)、TCPだった場合は後述するステップS403から動作し、UDPだった場合は後述するステップS406から動作する。
【0134】
注目通信フローのプロトコルがTCPの場合、サービスポートリスト管理部16は、注目通信フローに対応するサービスポートリストを取得する(S403)。まず、サービスポートリスト管理部16は、受信したサービスポート番号が通信フローの送信元ポート番号と宛先ポート番号のどちらに一致するか確認する。送信元ポート番号と一致する場合、サービスポートリスト管理部16は、記憶部18から送信元IPアドレスのTCPのサーバとしてアクセスされるサービスポートリストを取得し、さらに、記憶部18から宛先IPアドレスのTCPのクライアントとしてアクセスするサービスポートリストを取得する。宛先ポート番号と一致する場合、サービスポートリスト管理部16は、記憶部18から送信元IPアドレスのTCPのクライアントとしてアクセスするサービスポートリストを取得し、さらに、記憶部18から宛先IPアドレスのTCPのサーバとしてアクセスされるサービスポートリストを取得する。
【0135】
次に、サービスポートリスト管理部16は、取得したサービスポートリストに、受信したサービスポート番号が含まれるかを確認し、リストに含まれない場合、サービスポートリストに当該サービスポート番号を追加し、記憶部18に更新したサービスポートリストを保存する(S404、S405)。その後、サービスポートリスト管理部16は、後述するステップS413に移行する。
【0136】
一方、上述のステップS402において、注目通信フローのプロトコルがUDPの場合、サービスポートリスト管理部16は、注目通信フローに対応するサービスポート候補リストを取得する(S406)。サービスポートリスト管理部16は、受信したサービスポートに値が設定されている場合は、当該サービスポート番号が通信フローの送信元ポート番号と宛先ポート番号のどちらに一致するかを確認する。送信元ポート番号と一致する場合、サービスポートリスト管理部16は、送信元IPアドレスのサーバとしてアクセスされるサービスポート候補リストを取得し、宛先IPアドレスのクライアントとしてアクセスするサービスポート候補リストを取得する。
【0137】
次に、サービスポートリスト管理部16は、宛先ポート番号と一致する場合とサービスポートに値が設定されているか否かを確認し(S407)、値が設定されている場合は後述するステップS408の処理に移行し、そうでない場合は後述するステップS409の処理に移行する。
【0138】
ステップS407において、宛先ポート番号と一致する場合とサービスポートに値が設定されていない場合、サービスポートリスト管理部16は、送信元IPアドレスのクライアントとしてアクセスするサービスポート候補リストを取得し、宛先IPアドレスのサーバとしてアクセスされるサービスポート候補リストを取得する。そして、サービスポートリスト管理部16は、取得したサービスポート候補リストに、宛先ポート番号を追加して更新する(S409)。
【0139】
一方、ステップS407において、宛先ポート番号と一致する場合とサービスポートに値が設定されている場合、サービスポートリスト管理部16は、取得したサービスポート候補リストに、サービスポート番号を追加する更新を行う(S408)。
【0140】
サービスポート候補リストを更新すると、サービスポートリスト管理部16は、UDPのサービスポートリストの作成処理を実施する(S410)。サービスポートリスト管理部16は、サービスポートリスト候補リストに含まれるポート番号の出現頻度を集計する。その後、サービスポートリスト管理部16は、後述するステップS413に移行する。
【0141】
図14は、サービスポート候補リストに含まれるポート番号毎に出現頻度を集計し、出現頻度でヒストグラムを作成した結果の例を示した図である。
【0142】
サービスポートリスト管理部16は、集計したポート番号毎の出現頻度を用いて、サービスポートリストを作成する。具体的には、統計的な外れ値検出方法により、外れ値扱いとなる出現頻度に対応するポート番号をサービスポートリストとして抽出する。例えば、外れ値検出方法として、Smirnov-Grubbs検定を利用できる。
図14の例では、外れ値扱いとなる出現頻度の範囲を左右矢印で示しており、この範囲に含まれる出現頻度に対応するポート番号をサービスポート番号としたサービスポートリストが作成されることを示している。
図14では、横軸を出現頻度とし、縦軸を度数(ポート番号の種類の数)としている。一般的に、IP通信を行う機器のトラフィックデータからポート番号毎の出現頻度を集計すると、サービスポートのポート番号よりもそうでないポート番号の方が種類は多いが、出現頻度はサービスポートの方が著しく高くなる傾向にある。そのため、
図14のように出現頻度が外れ値となるポート番号はサービスポートである可能性が高いことになる。例えば、注目通信フローの送信元ポート番号と宛先ポート番号の出現頻度を参照して、一方のポート番号の出現頻度だけが上記の外れ値に該当する場合、当該ポート番号がサービスポートに該当する可能性が高いことになる。
【0143】
次に、サービスポートリスト管理部16は、作成されたサービスポートリストと記憶部18に保存されているサービスポートリストを比較し、リストに含まれる要素に変化があった場合は、新しいサービスポートリストを記憶部18に保存する(S411、S412)。
【0144】
その後、サービスポートリスト管理部16は、更新されたサービスポートリストに、受信した通信フローのサービスポート番号(UDPの場合でサービスポートが空の場合は宛先ポート番号)が含まれるか否かを確認し(S413)、含まれると確認された場合は通信パターン学習部17に通信フローの5-tuples情報とサービスポート番号(UDPの場合でサービスポートが空の場合は宛先ポート番号)を通知して通信パターン分析モデルを構築させ(S500)、処理を終了する。通信パターン学習部17による当該ポート番号の通信パターン分析モデルを構築する処理の詳細については後述する。
【0145】
次に、通信分析装置10におけるステップS500の動作(通信パターン学習部17における、サービスポートに対する通信パターン分析モデルの構築動作)について
図9のフローチャートを用いて説明する。
【0146】
まず、通信パターン学習部17が、サービスポートリスト管理部16から通信フロー情報として、通信フローの5-tuplesの情報とサービスポート番号(プロトコルがUDPでサービスポートが空の場合は宛先ポート番号)を受信したものとする(S501)。
【0147】
通信パターン学習部17は、サービスポート番号に値が設定されている場合、記憶部18から受信したサービスポート番号と同じサービスポート番号が設定された通信フロー履歴情報(5-tuplesの情報、通信フローの各パケットのパケットサイズおよび通信方向)を取得する(S502)。なお、このときサービスポート番号の値が空の場合、通信パターン学習部17は、記憶部18から受信した通信フローの宛先ポート番号と同じ宛先ポート番号の通信フロー履歴情報を取得する。
【0148】
次に、通信パターン学習部17は、取得した通信フロー履歴情報から、送信元IPアドレスに係る通信フローを抽出する(S503)。具体的には、通信パターン学習部17は、受信したサービスポート番号が受信した通信フローの送信元ポート番号と一致する場合、「送信元IPアドレスと送信元ポート番号の組が通信フロー履歴情報の送信元IPアドレスと送信元ポート番号の組と一致するもの」、又は「送信元IPアドレスと送信元ポート番号の組が通信フロー履歴情報の宛先IPアドレスと宛先ポート番号の組と一致するもの」を抽出する。受信したサービスポート番号が受信した通信フローの宛先ポート番号と一致する場合、通信パターン学習部17は、「送信元IPアドレスと宛先ポート番号の組が通信フロー履歴情報の送信元IPアドレスと宛先ポート番号の組と一致するもの」、又は「送信元IPアドレスと宛先ポート番号の組が宛先IPアドレスと送信元ポート番号の組と一致するもの」を抽出する。
【0149】
次に、通信パターン学習部17は、抽出(蓄積)した通信フロー履歴情報の件数が通信パターン分析モデル構築に必要となる所定件数以上であるか否か確認し(S504)、所定件数以上蓄積されている場合は後述するステップS505の処理に移行し、そうでない場合は通信パターン分析モデルの構築処理を終了する。
【0150】
通信フロー履歴情報の件数が所定件数以上抽出(蓄積)されている場合、通信パターン学習部17は、各通信フロー履歴情報を機械学習器に適用するための特徴量に変換する(S505)。ここでは、通信パターン学習部17は、
図4に示す特徴量に変換するものとする。
【0151】
次に、通信パターン学習部17は、変換した各通信フロー履歴情報の特徴量を学習データとして、通信パターン分析モデルを構築する(S506)。通信パターン分析モデルを構築するためのプラットフォームについては限定されないものであり、種々のAI用のプラットフォーム等を適用することができる。ここでは、通信パターン学習部17は、One Class SVMにより、学習データに近い特徴量を持つ通信フローを正常(当該サービスポート番号の通信パターンである)と判定し、学習データの特徴量と大きく異なる通信フローを異常(当該サービスポート番号の通信パターンではない)と判定するような通信パターン分析モデルを構築するものとする。
【0152】
次に、通信パターン学習部17は、構築した通信パターン分析モデルを、送信元IPアドレスのサービスポートリストに存在するサービスポート番号に対応するモデルとして記憶部18に保存して(S507)、通信パターン分析モデルの構築処理を終了する。つまり、サービスポート番号が送信元ポート番号と一致する場合、通信パターン学習部17は、送信元IPアドレスのTCPまたはUDP(通信フローのプロトコルに依る)のサーバとしてアクセスされるサービスポートリストに含まれる当該サービスポート番号に対応する通信パターン分析モデルとして保存する。サービスポート番号が宛先ポート番号と一致する場合、通信パターン学習部17は、送信元IPアドレスのTCPまたはUDPのクライアントとしてアクセスするサービスポートリストに含まれる当該サービスポート番号に対応する通信パターン分析モデルとして保存する。
【0153】
通信パターン学習部17は、以上の処理を宛先IPアドレスに対しても実施する。
【0154】
(A-3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
【0155】
第1の実施形態では、管理下の監視対象機器30毎に、当該監視対象機器30がクライアントとしてアクセスするサービスポートとサーバとしてアクセスされるサービスポートを、過去に発生した通信フローの情報から作成・蓄積し、リストとして保持し、サービスポート判定に利用する。これにより、第1の実施形態では、ミラーポートでパケットの到着順序が変わって受信した通信フローや、ミラーリング前に開始された通信フローやUDPの通信フローのように単一の通信フローの情報からではサービスポートを特定できない通信フローのサービスポートの判定精度を向上させることができる。ここで、監視対象機器30毎に2種(クライアントとしてアクセスするサービスポートリスト、サーバとしてアクセスされるサービスポートリスト)のサービスポートリストを保有することは、監視対象機器30毎にクライアント・サーバ区別せずに一つのサービスポートリストを保有する場合に比べて、サービスポートの識別可能性を高めることができる。例えば、機器Aのクライアントとしてアクセスするサービスポートリストに60000番と1433番のポート番号が含まれ、機器Bのサーバとしてアクセスされるサービスポートリストに60000番と1433番が含まれる場合を考える。この時、送信元機器がAで送信元ポート番号が1433、宛先機器がBで宛先ポート番号が60000の通信フローが発生すると、機器Aのクライアントとしてアクセスするサービスポートリストに60000番、機器Bのサーバとしてアクセスされるサービスポートリストにも60000番が含まれるため、当該通信フローのサービスポートは60000と判別できる。一方、監視対象機器30毎にクライアント・サーバ区別せずに一つのサービスポートリストを保有するような場合では、当該通信フローの送信元ポート番号と宛先ポート番号の両方が機器Aと機器Bのサービスポートリストに含まれることになるため、サービスポートを識別することができない。
【0156】
第1の実施形態では、監視対象機器30のサービスポートリストに含まれるポート番号毎に当該ポート番号で通信した時の通信パターンを機械学習した通信パターン分析モデルを使用し、サービスポート判定の際に、通信パターン分析モデルを用いて通信パターンが一致するか判定している。これにより、第1の実施形態では、上記2種のサービスポートリストを用いる場合でもサービスポート判別ができないケースでのサービスポート識別可能性を高めることができる。例えば、機器Aのクライアントとしてアクセスするサービスポートリストに60000番と1433番のポート番号、サーバとしてアクセスされるサービスポートリストに1433番のポート番号が含まれ、機器Bのクライアントとしてアクセスするサービスポートリストに1433番のポート番号、サーバとしてアクセスされるサービスポートリストに60000番と1433番が含まれる場合を考える。この時、送信元機器がAで送信元ポート番号が1433、宛先機器がBで宛先ポート番号が60000の通信フローが発生すると、送信元ポート番号の1433番は機器Aのサーバとしてアクセスされるサービスポート番号に含まれ、機器Bのクライアントとしてアクセスするサービスポート番号にも含まれる。また宛先ポート番号の60000は機器Aのクライアントとしてアクセスされるサービスポート番号に含まれ、機器Bのサーバとしてアクセスされるサービスポート番号にも含まれる。このような場合、送信元ポート番号も宛先ポート番号もサービスポートとみなせるため、サービスポートの判別ができない。第1の実施形態では、通信パターン分析モデルを用いることでこのような通信フローのサービスポートも判別することができるようになる。
【0157】
第1の実施形態の通信分析装置10では、ブロードキャスト通信の一連の処理に進行度情報を設け、ブロードキャスト通信に係る通信フローのサービスポート判定を別に行う。これにより、例えばブロードキャスト応答を単一のユニキャストの通信フローとして処理してしまった場合のサービスポート誤判別を解消しサービスポート判定精度を向上させることができる。
【0158】
以上のように、第1の実施形態の通信分析装置10では、UDPのようなコネクションレス型の通信フロー、先頭パケットを採り逃した通信フロー、ブロードキャスト通信のように複数の通信フローを加味する必要がある通信のサービスポートを識別することができる。言い換えると、第1の実施形態の通信分析装置10では、通信トラフィックのデータからサービスポートを判別する際の精度を向上させることができる。
【0159】
(B)第2の実施形態
以下、本発明による通信分析装置、通信分析プログラム及び通信分析方法の第2の実施形態を、図面を参照しながら詳述する。
【0160】
図15は、第2の実施形態に係る通信分析装置10Aの機能的構成について示したブロック図である。
【0161】
第1の実施形態では、サービスポート推定部15でのサービスポート推定のために、通信パターン分析モデルを用いて通信パターンが一致するかの判定を行っていたが、第2の実施形態の通信分析装置10Aでは通信パターン分析モデルを用いない推定方法を適用している。
【0162】
通信分析装置10Aでは、通信パターン学習部17が除外され、サービスポート推定部15がサービスポート推定部15Aに置き換わっている点で第1の実施形態と異なっている。
【0163】
サービスポート推定部15Aは、推定対象のポート番号がサービスポートリストに含まれるか否かの情報だけで、サービスポートを推定するものとする。このように、通信分析装置10A(サービスポート推定部15A)では、通信パターン分析モデルを用いない方法をとることで、サービスポート推定にかかる時間を短縮し、処理負荷を低減させることができる。
【0164】
(C)第3の実施形態
以下、本発明による通信分析装置、通信分析プログラム及び通信分析方法の第3の実施形態を、図面を参照しながら詳述する。
【0165】
(C-1)第3の実施形態の構成
図16は、第3の実施形態に係る通信分析装置10Bの機能的構成について示したブロック図であり、上述の
図1と同一部分又は対応部分に、同一符号又は対応符号を付している。
【0166】
第1及び第2の実施形態の通信分析装置10、10Aでは、UDPのサービスポートリストを作成する部分で、宛先ポート番号の発生頻度を分析し外れ値検出手法を用いて、発生頻度が外れ値(大きい方の値)とみなされた宛先ポート番号をサービスポートとして登録していた。しかしながら、通信分析装置10、10Aでは、外れ値検出手法を採用する場合、外れ値となる閾値を設定する必要があるが、宛先ポート番号の発生頻度分布は環境によって異なる場合が多く、最終的に人手によるチューニングが必要となるケースも少なくない。そこで、第3の実施形態の通信分析装置10Bでは、環境非依存で人手によるチューニングが必要ない、UDPポートのサービスポートリスト作成を実現するように構成されている。
【0167】
以下では、第3の実施形態の通信分析装置10Bについて、第1及び第2の実施形態との差異を中心に説明する。
【0168】
第3の実施形態の通信分析装置10Bは、UDPポート履歴情報管理部50が追加されている点で第1の実施形態と異なっている。また、第3の実施形態の通信分析装置10Bでは、サービスポートリスト管理部16がサービスポートリスト管理部16Bに置き換わっている点で第1の実施形態と異なっている。
【0169】
UDPポート履歴情報管理部50では、第1の実施形態におけるUDPのサービスポートの候補リストに相当する情報をサービスポートリスト管理部16Bの代わりに管理する。第3の実施形態の通信分析装置10Bでは、UDPのサービスポートの候補リストで保持する内容と構成が大きく異なるため、この実施形態において、UDPポート履歴情報管理部50が管理する情報を上記の通り「UDPポート利用履歴管理情報」と呼ぶものとする。
【0170】
図17は、UDPポート履歴情報管理部50が保持するUDPポート利用履歴管理情報の構成例について示した図である。
【0171】
図17に示すように、UDPポート利用履歴管理情報は、端末30(IPアドレス)単位に管理される情報であり、当該端末30が送信元となった通信フローの宛先ポート毎に、当該宛先ポートの発生数、当該宛先ポートのフローで使用された送信元ポート番号のリスト(重複を除いたユニークな値のみを管理)、発生日情報を1日単位でリストを分けて管理する(以後、1日単位のリストのことを「サブリスト」と呼ぶ)。
【0172】
図17では、第1の端末30-1(IPアドレス:XXX.YYY.ZZZ.A)についてのUDPポート利用履歴管理情報の一例を表している。
図17では、第1の端末30-1(XXX.YYY.ZZZ.A)を送信元とする過去のUDPフローの宛先ポートとして1900番と443番のポートの二つがあることを表している。また、1900番ポートのサブリストは3つあり、過去3日間の通信実績があることを表している。さらに、リストの一つ目では2023年9月29日に2つの通信フローが発生し送信元ポート番号として20010番と20011番が使われたことを表している。ここで、UDPポート利用履歴管理情報についても、第1の実施形態でのサービスポートの候補リストのように、端末30ごとにクライアントとしてアクセスするUDPポート利用履歴管理情報(これは上記記述のリスト)と、サーバとしてアクセスされるUDPポート利用履歴管理情報(上記記述のリストを当該端末が宛先となった場合でのリストとして管理する)の2種類を管理する構成も考えられるが、この実施形態では説明を簡単にするために上述の端末30ごとに当該端末30が送信元となるフローのみについてのUDPポート利用履歴管理情報を管理するものとする。
【0173】
UDPポート履歴情報管理部50は、サービスポートリスト管理部16BからUDPの通信フロー情報を受けると、UDPポート利用履歴管理情報の内容を更新する。UDPポート履歴情報管理部50は、まず、当該UDPフローの送信元IPアドレスに関するUDPポート利用履歴管理情報が存在するかを確認し、存在しない場合は、当該送信元IPアドレスのUDPポート利用履歴管理情報を作成する。つまり、UDPポート履歴情報管理部50は、当該送信元IPアドレスのUDPポート利用履歴管理情報を作成し、当該UDPポート利用履歴管理情報に当該UDPの通信フローの宛先ポートの情報として、発生数に1、送信元ポートリストに当該UDPフローの送信元ポート番号の値、発生日に当日の日付をそれぞれ設定したサブリストを追加する。一方、当該UDPフローの送信元IPアドレスに関するUDPポート利用履歴管理情報が存在する場合、UDPポート履歴情報管理部50は、当該送信元IPアドレスのUDPポート利用履歴管理情報を更新する。UDPポート履歴情報管理部50は、まず、当該送信元IPアドレスのUDPポート利用履歴管理情報から、当該宛先ポート番号のサブリストを取得する。次に、UDPポート履歴情報管理部50は、取得したサブリストのうち発生日が最も新しいサブリストを取得する。UDPポート履歴情報管理部50は、取得したサブリストの発生日が当日と同じ場合、当該サブリストの要素を更新する。つまり、UDPポート履歴情報管理部50は、当該サブリストの発生数をインクリメントし、送信元ポートのリストに当該フローの送信元ポートを追加(リストの要素で重複するポートがある場合は追加しない)する。取得したサブリストの発生日が当日と異なる場合、UDPポート履歴情報管理部50は、新しいサブリスト(当日のサブリスト)を追加する。つまり、UDPポート履歴情報管理部50は、発生数に1、送信元ポートリストに当該通信フローの送信元ポート番号の値、発生日に当日の日付を設定したサブリストを当該宛先ポートのリストに追加する。
【0174】
また、UDPポート履歴情報管理部50は、後述する再利用判定用ポートリスト、再利用フラグ及び発生日数閾値を管理し、受信したUDPフロー情報をもとに、これらの情報を更新する処理も行う。
【0175】
そして、UDPポート履歴情報管理部50は、更新したUDPポート利用履歴管理情報、発生日数閾値をサービスポートリスト管理部16Bに通知する。
【0176】
サービスポートリスト管理部16Bは、第1の実施形態の処理に加え、制御部12からUDPの通信フローを受信すると、受信したフロー情報をUDPポート履歴情報管理部に通知し、更新されたUDPポート履歴管理情報、および後述する発生日数閾値を受信し、UDPサービスポートリストを作成する処理を行う。
【0177】
図18は、サービスポートリスト管理部16BによるUDPサービスポートリストの作成方法について示した説明図である。
【0178】
図18は、第2の端末30-2(IPアドレス:XXX.YYY.ZZZ.B)のUDPポート履歴管理情報を表しており、宛先ポートとしては、1900番と12010番のリストが存在する。UDPサービスポートリストの作成では、UDPポート履歴管理情報に含まれる各宛先ポートについてUDPサービスポートリストに登録するかどうかを判定する処理(以下、「サービスポート判定処理」と呼ぶ)を行う。このサービスポートに登録するか判断するための条件は、任意の宛先ポートPXの発生数(サブリストが複数ある場合は、全てのサブリストの合算値;以下「ポート発生数C1」と呼ぶ)と、当該宛先ポートPXの送信元ポートリストに含まれる各ポート番号について、当該ポート番号を宛先ポートとしてみたときの発生数(以下、「ポート発生数C2」と呼ぶ)を比較し、C1>C2がいずれかの送信元ポート番号について成り立つとき、当該宛先ポートPXをサービスポートとしてUDPのサービスポートリストに登録する。なお、送信元ポートがUDPポート履歴管理情報の宛先ポートに存在しない場合は、当該送信元ポートの発生数は0とするものとする。
【0179】
UDPポート利用履歴管理情報が
図18のような内容であった場合、サービスポートリスト管理部16Bは、まず宛先ポート1900番についてUDPサービスポートリストに登録するかを判定するサービスポート判定処理(1900を宛先ポートPXとするサービスポート判定処理)を行う。
図18に示すように、1900番ポートのポート発生数C1は4(3つのサブリストの合算値)であり、送信元ポートリストには、20010,20011,20100,20300が含まれる。
【0180】
次に、サービスポートリスト管理部16Bは、送信元ポートリストの各ポート番号について、当該ポート番号を宛先ポートとしてみたときのポート発生数C2を参照する。
図18ではいずれの送信元ポート番号も宛先ポート番号に含まれないため、ポート発生数C2は0となる。最後に宛先ポート番号(発生数は4)と各送信元ポート番号を宛先ポートとしてみたときの発生数C2(いずれのポートも発生数は0)で条件比較し、この場合いずれのポートと比較しても1900番ポート(宛先ポートPX)の発生数C1の方が大きいため、1900番ポートが、UDPサービスポートリストに登録されることになる。
【0181】
次に、サービスポートリスト管理部16Bは、同じ手順で12010番ポートを宛先ポートPXとしてサービスポート判定処理(UDPサービスポートリストに登録するか判定する処理)を行う。
図18では、12010番のポート発生数C1は1であり、送信元ポートリストに含まれるポートは1900番のただ一つである。1900番ポートを宛先ポートとしてみたときのポート発生数C2は4であり、12010番の発生数C1より多いため、12010番ポートはサービスポートリストに登録しないという結果となる。一般に通信フローはクライアント端末からサーバに対して張られる(つまり宛先ポート番号がサービスポートである)ため、UDPポート履歴管理情報の宛先ポートにはほとんどの場合、正しいサービスポート番号が記録される。一方で通信フローの1パケットを取り逃した場合などで最初に受信したパケットがサーバからクライアントへのものだった場合、クライアント側のポート番号が宛先ポートに誤記録される。しかしこの場合、間違った宛先ポート番号の対向ポート(送信元ポート)はサービスポートであり、当該対向ポートが定常的に使われるサービスポートの場合、ほとんどのケースで当該サービスポートの通信フローの1パケット目を正しく受信するため、当該サービスポートを宛先ポートとしてみたときの発生数は間違った宛先ポート番号の発生数よりも多いはずである。このことから、サービスポートリスト管理部16Bのサービスポート判定処理について、上述の判定条件を適用することにより、間違った宛先ポート番号がサービスポートとしてみなされる可能性を排除し、正しいサービスポートだけをサービスポートリストとして登録することができる。
【0182】
ここで、上述のサービスポート判定処理における判定条件で、UDPサービスポートリストを作成する場合、UDPポート履歴管理情報に登録されて日の浅い宛先ポートはサービスポート判定で誤判定の恐れがある。例えば、通信トラフィックのキャプチャを開始した直後は、キャプチャ前に開始していた通信フローのサーバからクライアントに対するパケットを最初に受信しクライアント側のポートがUDPポート履歴管理情報の宛先ポートに登録され、かつ正しいサービスポートの情報がUDPポート履歴管理情報に登録されていない(つまり正しいサービスポート番号を宛先ポートとしたフローの発生数がゼロである)可能性があり、この場合クライアント側のポートがサービスポートとして登録されてしまう。また同様に、新しく使われ始めたばかりのサービスについても、当該サービスのサービスポートの通信フローの1パケットを取り逃した場合には、クライアント側のポートがサービスポートに登録される可能性がある。
【0183】
以上のようなサービスポート誤判定のケースを排除するために、UDPポート履歴情報管理部50では、UDPポート履歴管理情報のうち発生日数の少ない宛先ポートをサービスポート判定対象から除外する条件を設定するものとする。具体的には、UDPポート履歴情報管理部50では、UDPポート履歴管理情報が管理される端末30毎に宛先ポートの発生日数に閾値を設け、閾値より少ない発生日数の宛先ポートをサービスポート判定から除外する。閾値の決め方として、ここではクライアントポートが再利用されたことを契機に閾値をインクリメントする方法をとる。一般に機器がクライアントとして使用するポート番号の範囲は、OSや機器の設定によって決まっており、ポート番号の範囲を一通り使用すると以前に使用したポート番号を再利用するような使い方がされる場合が多い。ここで、UDPポート履歴情報管理部50において、ポート番号が再利用されると、UDPポート履歴管理情報の宛先ポートに間違って登録されたクライアント側のポートの発生日数が増える可能性がある。例えば、UDPポート履歴情報管理部50において、クライアント側のポート番号が50000番の通信フローについて1パケット目を取り逃した等の理由で送信元と宛先が逆転しUDPポート履歴管理情報の宛先ポートにクライアント側の50000番ポートが登録されたとする。その後、UDPポート履歴情報管理部50において、クライアントポートが再利用され再度50000番のポートの通信フローが発生し、ここでもまた送信元と宛先が逆転しUDPポート履歴管理情報の宛先ポートに50000番が登録されると、50000番のサブリストが追加され発生日数が2日になる。
【0184】
そのため、UDPポート履歴情報管理部50は、ポート番号再利用を検出したタイミングで発生日数の閾値をインクリメントすることで、クライアントポートをサービスポートと判定する確率を低減できる。クライアントポート番号再利用検知方法は、端末30のUDPポート履歴管理情報の各宛先ポートに含まれる送信元ポート番号のリストのうち、いずれかのポート番号と同じポート番号を送信元ポート番号に持つ通信フローを受信した時、またはこれを複数回検知したときに再利用検知とする。UDPポート履歴情報管理部50は、端末30ごとにクライアントポートの再利用を検知したときの送信元ポート番号を再利用判定用ポートリスト(複数回検知した場合に再利用検知する場合は複数のポート番号が入る)として管理する。UDPポート履歴情報管理部50は、再利用判定用ポートリストの要素数があらかじめ決められた閾値に達した時、クライアントポートが再利用されたと判断し発生数の閾値をインクリメントする。UDPポート履歴情報管理部50は、一度再利用判定用ポートリストの作成が完了すると、2回目以降の再利用検知では既存の再利用判定用ポートリストを利用して再利用判定する。具体的には、UDPポート履歴情報管理部50は、再利用判定用ポートリストのポート毎に再利用フラグを管理し、いずれかのポートの再利用を検知すると、当該ポートの再利用フラグを立てる。UDPポート履歴情報管理部50は、再利用判定用ポートリストの全てのポートに再利用フラグが立つと、クライアントポートが再利用されたと判断し、発生数の閾値をインクリメントするとともに、全てのポートの再利用フラグをリセットする。
【0185】
次に、UDPポート履歴情報管理部50によるクライアントポート再利用検知の一連の流れを
図19と
図20を用いて説明する。
【0186】
図19は、UDPポート履歴情報管理部50が、ある端末30(以下、「注目端末」と呼ぶ)について初回のクライアントポート再利用検知を行う際の処理の流れについて示した説明図である。
【0187】
図19(a)~
図19(d)では、時系列ごとの注目端末が送信元となる通信フローの送信元ポート番号(つまりクライアントポート)のリスト(以下、「クライアントポート利用リスト)PL1と、再利用判定用ポートリストPL2を図示している。
【0188】
図19(a)では、初期状態において、クライアントポート利用リストPL1として50000番から50050番までが連番で存在し、再利用判定ポートリストPL2は空の状態となっている。なお、注目端末では、再利用と判断する再利用判定用ポートリストの要素数の閾値は2であり、発生日数閾値(サービスポート判定条件に進むかどうか判断するための閾値)も2であるものとする。
【0189】
その後、通信分析装置10B(UDPポート履歴情報管理部50)が、注目端末が送信元となるUDPフローを受信し、その送信元ポートが50051番だったとすると、注目端末の注目端末のUDPポート履歴情報管理部50では、クライアントポート利用リストPL1に50051番のポートが含まれているか確認され、この例では含まれないため、
図19(b)に示すように、クライアントポート利用リストPL1に50051番が追加される。
【0190】
そして、その後、通信分析装置10B(UDPポート履歴情報管理部50)が、次に受信した注目端末を送信元とするUDPフローの送信元ポートが50000番だったとする。この場合、50000番はクライアントポート利用リストPL1に含まれるため、
図19(c)に示すように、再利用判定用ポートリストPL2に追加されることになる。
【0191】
この時点で、UDPポート履歴情報管理部50では、再利用判断閾値と現在の再利用判定用ポートリストの要素数が比較され、再利用と判断する閾値に達していないため、クライアントポート再利用とは判断されない。
【0192】
次に、通信分析装置10B(UDPポート履歴情報管理部50)が受信した注目端末を送信元とするUDPフローの送信元ポートが50002番だったとする。この場合、50002番はクライアントポート利用リストPL1に含まれるため、
図19(d)に示すように、UDPポート履歴情報管理部50は、再利用判定用ポートリストPL2に追加する。
【0193】
このとき、UDPポート履歴情報管理部50は、この時点で、再利用判断閾値と再利用判定用ポートリストの要素数を比較し、再利用判断閾値に達しているため、クライアントポート再利用があったと判断し、発生日数閾値をインクリメントし、発生日数閾値を3とする。UDPポート履歴情報管理部50では、この時点で注目端末についての再利用判定用ポートリストの作成は完了となり、以下は2回目以降の再利用検知のアルゴリズムで判断が行われるようになる。
【0194】
図20は、UDPポート履歴情報管理部50が、注目端末について2回目以降のクライアントポート再利用検知を行う際の処理の流れを示した図である。
【0195】
図20(a)~
図20(e)では、時系列ごとの注目端末に関する再利用判定用ポートリストをPL2と、再利用判定用ポートリストをPL2の各ポートに対応する再利用フラグのリスト(以下、「再利用フラグリスト」と呼ぶ)FLを図示している。
【0196】
図20(a)では、初期状態において、再利用判定用ポートリストPL2に50000番と50002番が含まれ、再利用フラグリストFLは「False、False」(つまり、50000番及び50002番の再利用フラグはいずれもFalse)となっている。
【0197】
その後、通信分析装置10B(UDPポート履歴情報管理部50)が、注目端末が送信元となるUDPフローを受信し、その送信元ポート番号が50000番であったものとする。この場合、UDPポート履歴情報管理部50は、50000番が再利用判定用ポートリストに含まれるか確認し、この場合含まれるため、
図20(b)に示すように再利用フラグリストFLにおいて50000番に対応する再利用フラグをTrueに変更する。
【0198】
次に、通信分析装置10B(UDPポート履歴情報管理部50)が受信した注目端末を送信元とするUDPフローの送信元ポートが50010番だったものとする。この場合、UDPポート履歴情報管理部50は、50010番が再利用判定用ポートリストPL2に含まれないため、
図20(c)に示すように再利用フラグリストFLは操作しない。
【0199】
次に、通信分析装置10B(UDPポート履歴情報管理部50)が受信した注目端末を送信元とするUDPフローの送信元ポートが50002番だったものとする。この場合、50002番は再利用判定用ポートリストに含まれるため、
図20(d)に示すように、UDPポート履歴情報管理部50は、再利用フラグリストFLにおいて50002番に対応する再利用フラグをTrueに変更する。この時、再利用フラグリストFLを構成する再利用フラグが全てTrueになるため、UDPポート履歴情報管理部50は、クライアントポート再利用と判断し、発生日数閾値をインクリメントし、発生日数閾値を4とする。
【0200】
最後に、UDPポート履歴情報管理部50は、
図20(e)に示すように、再利用フラグリストFLの再利用フラグの値を全てFalseに戻し(リセットし)、次の再利用検知に備える。
【0201】
サービスポートリスト管理部16Bは、UDPポート履歴情報管理部50から発生日数閾値(発生日数閾値の更新)を受けると、サービスポート判定では、注目端末の各宛先ポート番号について、発生日数閾値を超える宛先ポートのみを上述のサービスポート判定処理にかけることになる。
【0202】
(C-2)第3の実施形態の動作
次に、第3の実施形態の通信分析装置10Bの動作(実施形態に係る通信分析方法)について、第1及び第2の実施形態との差異を中心に説明する。
【0203】
図21~
図24は、サービスポートリスト管理部16B及びUDPポート履歴情報管理部50が、UDPのサービスポートリストを作成する処理の流れについて示したフローチャートである。
【0204】
通信分析装置10Bが、UDPの通信フローを受信してから、UDPのサービスポートリストが更新されるまでの一連の処理(S600)について、
図21を用いて説明する。
【0205】
まず、サービスポートリスト管理部16Bは、制御部12から通信フローの情報(5-tuplesの情報とサービスポート番号)を受信し、受信した通信フローがUDPの場合、UDPポート履歴情報管理部50に5-tuplesの情報を通知し、UDPポート利用履歴管理情報と発生日数閾値の更新を要求する(S601)。
【0206】
次に、UDPポート履歴情報管理部50は、受信した通信フローの送信元IPアドレスの端末(以後、注目端末)の発生日数閾値を更新する(S700)。
【0207】
次に、UDPポート履歴情報管理部50は、注目端末のUDPポート履歴管理情報を更新(S800)し、更新した情報をサービスポートリスト管理部16Bに通知する。
【0208】
次に、サービスポートリスト管理部16Bは、受信した注目端末の発生日数閾値およびUDPポート履歴管理情報をもとに、注目端末のUDPポート履歴管理情報に含まれる宛先ポート番号のうち、サービスポート判定にかけるポート番号を抽出し、抽出した各宛先ポート番号について、注目端末のUDPのサービスポートリストに登録するか否かを判定する。そして、サービスポートリスト管理部16Bは、判定の結果サービスポートとして登録された宛先ポート番号のリストを注目端末のUDPのサービスポートリストとして出力する(S900)。
【0209】
次に、UDPポート履歴情報管理部50が、発生日数閾値の更新処理(ステップS700の処理)の詳細について、
図22を用いて説明する。
【0210】
まず、UDPポート履歴情報管理部50は、サービスポートリスト管理部16Bから受信した5-tuplesのフロー情報の送信元IPアドレス(注目端末情報)から、注目端末の再利用判定用ポートリスト(クライアントポートが再利用されたときに当該ポート番号を格納しておくリスト)を取得する。そして、UDPポート履歴情報管理部50は、取得した再利用判定用ポートリストにクライアントポートが再利用されたと判断するだけの要素が含まれているか(ポート番号の種類数が再利用検知閾値以上あるか)を確認する(S701)。UDPポート履歴情報管理部50は、要素数が再利用検知閾値に満たない場合は初回の再利用検知処理(後述するステップS702)に移行し、要素数が再利用検知閾値に達している場合は2回目以降の再利用検知処理(後述するステップS707)に移行する。
【0211】
UDPポート履歴情報管理部50は、ステップS702に移行すると、初回の再利用検知処理では、まず注目端末のUDP履歴管理情報から過去に利用された送信元ポート番号のリストを取得する(S702)。つまり、UDPポート履歴情報管理部50は、注目端末のUDP履歴管理情報の各宛先ポートのサブリストに含まれる送信元ポート番号のリストを、重複を除いて一つのリストにまとめたものを用意し、注目端末のUDP履歴管理情報が存在しない場合は、空のリストとして扱う。
【0212】
次に、UDPポート履歴情報管理部50は、受信フローの送信元ポート番号を取得し、注目端末の送信元ポート番号の中に同じポート番号が含まれているか確認する(S703)。UDPポート履歴情報管理部50は、同じポート番号が含まれない場合は更新処理を終了し、同じポート番号が含まれる場合は、注目端末の再利用判定用ポートリストに当該ポート番号を追加する(S704)。このとき、UDPポート履歴情報管理部50は、もし再利用判定用ポートリストに既に当該ポート番号が登録されている場合は追加しない。
【0213】
次に、UDPポート履歴情報管理部50は、注目端末の再利用判定用ポートリストの要素数が、再利用検知閾値に達しているかを確認する(S705)。そして、UDPポート履歴情報管理部50は、再利用検知閾値に達していない場合は更新処理を終了し、再利用検知閾値に達した場合は、注目端末のクライアントポート再利用と判断し、注目端末の発生日数閾値をインクリメント(S706)してから更新処理を終了する。
【0214】
UDPポート履歴情報管理部50は、上述のステップS701から2回目以降の再利用検知処理に移行すると、まず、受信フローの送信元ポート番号を取得し、注目端末の再利用判定用ポートリストに当該ポート番号が含まれているかを確認する(S707)。UDPポート履歴情報管理部50は、当該ポート番号がリストに含まれない場合、更新処理を終了し、当該ポート番号がリストに含まれる場合、再利用判定用ポートリストの当該ポート番号に対応する再利用フラグをTrueにセットする(S708)。
【0215】
次に、UDPポート履歴情報管理部50は、再利用判定用ポートリストに含まれる全てのポート番号に対応するフラグがTrueにセットされているか確認する(S709)。いずれかのフラグがFalseにセットされている場合、UDPポート履歴情報管理部50は、更新処理を終了する。一方、すべてのフラグがTrueにセットされている場合、UDPポート履歴情報管理部50は、注目端末のクライアントポート再利用と判断してフラグを全てFalseにリセット(S710)し、注目端末の発生日数閾値をインクリメント(S706)してから、更新処理を終了する。
【0216】
次に、UDPポート履歴情報管理部50がUDPポート履歴管理情報の更新処理を行う際の動作(上述のステップS800の動作)について
図23を用いて説明する。
【0217】
まず、UDPポート履歴情報管理部50は、注目端末のUDPポート履歴管理情報が存在するか確認し(S801)、UDPポート履歴管理情報が存在する場合後述するステップS803に移行し、そうでない場合には後述するステップS802に移行する。
【0218】
上述のステップS801で、UDPポート履歴管理情報が存在しない場合、UDPポート履歴情報管理部50は、注目端末のUDPポート履歴情報を新規作成し(S802)、後述するステップS804に移行する。
【0219】
一方、上述のステップS801でUDPポート履歴管理情報が存在する場合、UDPポート履歴情報管理部50は、フロー情報から宛先ポート番号を取得し、注目端末のUDPポート履歴情報に当該ポート番号のリストが存在するか確認し(S803)、リストが存在する場合後述するステップS805に移行し、そうでない場合には、後述するステップS804に移行する。
【0220】
上述のステップS803でリストが存在しない場合又は上述のステップS802の処理後、UDPポート履歴情報管理部50は、注目端末のUDPポート履歴情報に当該ポート番号のリストを新規作成し(S804)、後述するステップS806に移行する。
【0221】
一方、上述のステップS803でリストが存在する場合、UDPポート履歴情報管理部50は、注目端末のUDPポート履歴情報の当該ポート番号のリスト内の最新の日付のサブリスト(発生数、送信元ポート番号のリスト、発生日)を取得して、現在の日付と比較し(S805)、最新の日付のサブリストと現在の日付が同じである場合後述するステップS807に移行し、最新の日付のサブリストと現在の日付が同じでない場合(最新の日付と現在の日付を比較し現在の日付の方が新しい場合)後述するステップS806に移行する。
【0222】
上述のステップS805で最新の日付のサブリストと現在の日付が同じでない場合又は上述のステップS804の処理後に、UDPポート履歴情報管理部50は、当該ポート番号のサブリストとして、発生数に1、送信元ポート番号のリストにフロー情報の送信元ポート番号の値、現在の日付を要素に持つサブリストを追加し(S806)、処理を終了する。
【0223】
一方、上述のステップS805で、最新の日付のサブリストと現在の日付が同じである場合、UDPポート履歴情報管理部50は、最新の日付のサブリストの要素を更新し(S807)、処理を終了する。つまり、UDPポート履歴情報管理部50は、発生数をインクリメントし、送信元ポート番号のリストにフロー情報の送信元ポート番号を追加する。
【0224】
UDPポート履歴情報管理部50は、以上で注目端末のUDPポート履歴管理情報の更新を終了し、上述の
図22のフローチャートの処理で更新した発生日数閾値の値とUDPポート履歴管理情報とを、サービスポートリスト管理部16Bに通知する。
【0225】
次に、サービスポートリスト管理部16Bでの、UDPサービスポートリスト更新処理(上述のステップS900の処理)について、
図24を用いて説明する。
【0226】
サービスポートリスト管理部16Bは、UDPポート履歴情報管理部50から注目端末の発生日数閾値とUDPポート履歴管理情報を受信すると、注目端末のUDPポート履歴管理情報に含まれる各宛先ポートについて、注目端末のUDPサービスポートリストに登録するかを判断していく。そして、サービスポートリスト管理部16Bは、注目端末のUDPポート履歴管理情報からまだサービスポート判定処理していない宛先ポートの情報(宛先ポートの値と当該ポートのサブリスト)取得を試み(S901)、取得できた場合は後述するステップS902に移行し、そうでない場合には後述するステップS906に移行する。
【0227】
上述のステップS901でサービスポート判定処理していない宛先ポートが取得できた場合、サービスポートリスト管理部16Bは、取得した宛先ポートのサブリストの数(つまり発生日数)を数え、サブリスト数が発生日数閾値より多いか確認し(S902)、発生日数閾値に満たない場合は、当該宛先ポートのサービスポート判定処理を終了して上述のステップS901に戻り、次の宛先ポートのサービスポート判定処理に移行する。
【0228】
一方、上述のステップS902で、サブリスト数が発生日数閾値以上となった場合、サービスポートリスト管理部16Bは、取得した宛先ポートについて、送信元ポートリストのうち未チェックのポート(後述するステップS904のチェックが行われていないポート)が残っているか否かを確認し(S903)、残っている場合には後述するステップS904に移行し、そうでない場合には、当該宛先ポートのサービスポート判定処理を終了して上述のステップS901に戻り、次の宛先ポートのサービスポート判定処理に移行する。
【0229】
上述のステップS903の判定で未チェックのポートが残っている場合、サービスポートリスト管理部16Bは、各サブリストの送信元ポート番号のリストからひとつずつ送信元ポート番号を取り出し、取り出した送信元ポート番号を宛先ポートとしたときの発生数(注目端末のUDPポート履歴管理情報に含まれる宛先ポートで、取り出した送信元ポート番号と一致する宛先ポートのサブリストに含まれる発生数を合算した値)を計算する。そして、サービスポートリスト管理部16Bは、判定対象の宛先ポートの発生数(ポート発生数C1)と、取り出した送信元ポート番号を宛先ポートとしたときの発生数(ポート発生数C2)を比較し(S904)、判定対象の宛先ポートの発生数の方が多い場合(C1>C2の場合)後述するステップS905に移行し、そうでない場合は上述のステップS903に戻って動作する。
【0230】
上述のステップS904で、判定対象の宛先ポートの発生数の方が多い場合(C1>C2の場合)、サービスポートリスト管理部16Bは、当該ポートをサービスポートリストに追加し(S905)、上述のステップS901に戻って動作する。
【0231】
ステップS901において、サービスポート判定処理していない宛先ポートが残っていない場合、サービスポートリスト管理部16Bは、注目端末のUDPポート履歴管理情報に含まれる全ての宛先ポートについてサービスポート判定処理を完了し、その時点のサービスポートリストを、注目端末のUDPサービスポートリストとして出力し(S906)、処理を終了する。
【0232】
(C-3)第3の実施形態の効果
第3の実施形態によれば、第1及び第2の実施形態と比較して以下のような効果を奏することができる。
【0233】
第3の実施形態(通信分析装置10B)では、UDPのサービスポートリストの作成方法として、端末30ごとに当該端末30が送信元となる過去のUDP通信フロー情報(宛先ポート毎に、発生数、当該宛先ポートのフローにおける送信元ポート番号の種類、発生日を1日単位のサブリストで保持)をUDPポート利用履歴管理情報として管理し、各宛先ポートの発生数と当該宛先ポートのリストに含まれる送信元ポート番号を宛先ポートとしてみたときの発生数を比較し、宛先ポートの発生数の方が多い場合にサービスポートとみなす。第3の実施形態(通信分析装置10B)では、このような単純な大小比較の条件をサービスポート判定に用いることで、人手での閾値設定が必要なく、完全自動でサービスポートを作成できる。
【0234】
また、第3の実施形態(通信分析装置10B)では、トラフィックのキャプチャを始めて間もない期間や新しいUDPサービスが使われ始めた段階で、クライアント側のポートがサービスポートに誤って登録されてしまうのを防ぐために、宛先ポートの発生日数を条件に、発生日数が少ないものはサービスポート判定処理にかけない。さらに、第3の実施形態(通信分析装置10B)では、サービスポート判定処理にかけるかの判断に使用する発生日数の閾値は、クライアントポートの再利用判定により動的に変化(増加)させる。第3の実施形態(通信分析装置10B)では、このような追加の条件の設定により、サービスポートを誤判定してしまう確率を運用期間全体に渡って安定して低減させることができる。
【0235】
(D)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【0236】
(D-1)第1の実施形態における通信パターン学習部17では、通信フロー履歴情報のパケットサイズや通信方向の情報を全て使用し特徴量に変換して通信パターン分析モデルを構築していたが、これに限定されない。例えばトラフィックキャプチャ以前に開始された通信フローのように、通信フローの先頭パケットが通信フロー情報に含まれない通信フローをサービスポート推定部15で分析する可能性を考慮し、通信パターン学習部17での学習データにバリエーションを持たせるようにしてもよい。例えば、通信パターン学習部17は、学習に使用される通信フロー履歴情報の先頭1パケット目の情報(パケットサイズと通信方向)を除いて特徴量に変換するようにしてもよい。同様に、通信パターン学習部17は、先頭2パケット目までの情報を除いて特徴量に変換するようにしてもよい。通信パターン学習部17は、これを最大先頭mパケット目分まで実施する。このように学習データにバリエーションを持たせることで、先頭パケットが含まれない通信フローのサービスポートを推定する場合にも、サービスポートを判定できる確率を高めることができる。
【0237】
(D-2)第1の実施形態では、通信パターン分析モデルをIP毎のサービスポートリストの各ポート番号に対応させる形で構築していたが、これに限定されない。例えば、ポート番号毎に唯一つの通信パターン分析モデルを構築し、サービスポート推定ではIPに依らず共通の通信パターン分析モデルとして使用する方法が考えられる。IP毎にサービスポート番号に対応する通信パターン分析モデルを構築する場合に比べ、構築するモデルの数を削減できるため、通信パターン学習部17での処理負荷を低減し、記憶部18でモデル保持用に確保する保存容量を削減することができる。
【0238】
(D-3)上記の各実施形態では、サービスポートリスト管理部16で、UDPのサービスポートリストの更新処理を、通信フロー情報受信の度に更新していたが、更新間隔を定めて更新間隔毎にサービスポートリストを更新してもよい。例えば、更新間隔として時間情報を用い、例えば24時間に1回の頻度で各IPのサービスポート候補リストからサービスポートリストを作成・更新する処理を実行する方法が考えられる。このように更新間隔を設定することで、通信フロー受信処理に係る時間を短縮することができる。同様に、通信パターン学習部17でのモデル構築も更新間隔を設けて、更新間隔毎に通信パターン分析モデルを構築するようにしてもよい。
【0239】
(D-4)第1の実施形態において、サービスポートリスト管理部16で管理される各種サービスポートリストは、受信した通信トラフィックを受けて、作成・更新されていくような運用方法になっていたが、これに限定されず、監視対象ネットワークN1で利用されていることが把握できている通信IPペアと当該ペア間で通信されるサービスポートを管理者などが予め手動で追加しておくようにしてもよい。また、上記の実施形態において、通信分析装置10の運用中に、管理者等によりサービスポートリスト管理部16で管理されるサービスポートリストの内容を編集可能とするようにしてもよい。例えば、通信分析装置10の運用中に、判明した通信IPペアと当該ペア間で通信されるサービスポートの追加を受け入れたり、サービスポートリスト管理部16で作成された各種サービスポートリストのなかで誤って登録されたサービスポートの修正を受け入れる等の処理が挙げられる。例えば、FTP(File Transfer Protocol)のアクティブモードではサーバから通信フローが開始され、サービスポートは送信元ポート番号(サーバ側のポート)が使用されるため(以下の参考文献1参照)、第1の実施形態の通信分析装置10のように、TCPの通信についてSYNフラグをみてサービスポートを判定する方式ではサービスポートリスト管理部16に誤ったサービスポートリストが設定されることになる。しかしながら、サービスポートリスト管理部16で管理されるサービスポートリストの内容を管理者等により編集可能とすることで、上記のFTPのような特殊なケースでも、サービスポートリスト管理部16のサービスポートリストを修正し、サービスポートの誤識別を低減させることができる。
【0240】
参考文献1:FTPにおけるアクティブモードとパッシブモードの違い CentOSサーバー構築入門,[Online],INTERNET,[2023年1月13日検索],<URL:http://cos.linux-dvr.biz/archives/131>
【0241】
(D-5)第1及び第3の実施形態(通信分析装置10、10B)では、UDPのサービスポートリスト作成にあたり、通信フローはクライアントからサーバに向かって張られ、サービスポートは宛先ポート側の番号である、という前提を置いていた。しかし一部のサービスにおいては、サーバからクライアントに張られるUDPの通信フローが存在する。例えば、Microsoft社のRDP(RemoteDesktopProtocol)では、最初にクライアントからサーバに対してTCPでセッションを張った後に、データ転送では、サーバからクライアントにUDPのフローが張られる場合がある(以下の、参考文献2参照)。この場合、サーバ側のポート番号(つまり送信元ポート番号)がサービスポートであり、宛先ポートをサービスポートの前提とする考え方ではこれらのサービスポートを正しく判定することができない。
【0242】
参考文献2:“Messages and Intersection with Other Protocols”,[Online],INTERNET,[2023年12月17日検索],<https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpemt/02d833db-5c7c-4c15-a18e-179df6d8a34d>
このようなサーバから張られるUDPの通信フローについて、送信元ポート番号をサービスポートと判定できるようにするために、送信元ポート番号についても発生頻度分析を行い、発生頻度の多いものをサービスポートとみなすような方法が考えられる。
【0243】
例えば、第1の実施形態(通信分析装置10)のUDPサービスポート判定方法では、UDPの宛先ポートの発生頻度を分析し、大きい方の外れ値として判断されたポートをサービスポートとみなしていたが、UDPの送信元ポートについても行うようにしてもよい。つまり、第1の実施形態(通信分析装置10)において、UDPの通信フローの送信元ポート番号についても発生頻度を記録しておき、発生頻度の外れ値検出で、大きい方の外れ値として判断された送信元ポート番号をサービスポートとみなすようにしてもよい。
【0244】
また、第3の実施形態(通信分析装置10B)のUDPサービスポート判定方法では、端末30ごとにUDPポート利用履歴管理情報として宛先ポート毎の発生数、送信元ポート番号、発生日数を管理していたが、送信元ポートについても行うようにしてもよい。つまり、第3の実施形態(通信分析装置10B)において、端末30ごとにUDPポート利用履歴管理情報に追加で送信元ポート毎の発生数、宛先ポート番号の種類、発生日数を管理するようにしてもよい。そして、第3の実施形態(通信分析装置10B)において、宛先ポートでのサービスポート判定と同じ方法で送信元ポートのUDPポート利用履歴管理情報からサービスポートとなるポート番号を抽出し、サービスポートリストに追加するようにしてもよい。以上のように、第1及び第3の実施形態(通信分析装置10、10B)において、宛先ポートだけでなく送信元ポートについても宛先ポートと同様の管理方法および条件判定方法により、送信元ポート番号をサービスポートとするポートも取り逃すことなく抽出することができる。
【0245】
(D―6)第2の実施形態(通信分析装置10A)では、通信パターン分析モデルを用いず、推定対象のポートがサービスポートリストに含まれるか否かのみでサービスポートを推定していた。この推定方法では、送信元ポートと宛先ポートの両方がサービスポートリストに含まれる場合に、どちらのポートの方がサービスポートらしいかの判断ができず、判定不能となるケースが増加してしまう。そこで、第2の実施形態(通信分析装置10A)において、通信パターン分析モデルを用いず別の手段でサービスポートの確からしさを判断する方法を適用するようにしてもよい。例えば、第2の実施形態(通信分析装置10A)において、サービスポートリストに含まれるポート毎に発生頻度を記録しておき、サービスポートの推定では、送信元ポートと宛先ポートの両方がサービスポートリストに含まれる場合に、発生頻度の多いポートの方をサービスポートに設定するようにしてもよい。これにより、第2の実施形態(通信分析装置10A)において、サービスポートリスト内で管理する情報にポート番号以外の情報を追加し、サービスポート推定に利用することで、サービスポート判定不能となる事象を低減することができる。
【0246】
(D-7)第3の実施形態(通信分析装置10B)では、UDPポート利用履歴管理情報の宛先ポートの発生日数を閾値に、発生日数が少ないものはサービスポートと判定しない条件を設定していた。つまり、第3の実施形態(通信分析装置10B)では、発生日数閾値の初期値は2であるため、少なくとも宛先ポートが使われ始めて丸一日経たないとサービスポートリストに登録されない。また、第3の実施形態(通信分析装置10B)では、運用中に新しく使われ始めたサービスポートは、その時点の発生日数閾値によっては2日よりもさらに長く経たないとサービスポートに登録されないことになる。
【0247】
そこで、第3の実施形態(通信分析装置10B)で、あるポート(以下、「注目ポート」という)についてサービスポート判定処理に進むか否かを決定する処理(以下、「移行判定処理」という)において、発生日数が短くてもサービスポートリストに登録されるようにするために、通信実績に基づきサービスポート判定処理に進むか否かを決定する処理(以下、「通信実績判定処理」という)を追加する方法を適用するようにしてもよい。以下では、通信実績判定処理に適用する条件を、「通信実績判定条件」と呼ぶものとする。
【0248】
ここでの通信実績判定条件とは、サービスポートと判定するのに十分な通信実績があるものとし、例えば、当該宛先ポートの送信元ポートリストに含まれるポート番号の種類(以下、「送信元ポート種類数」という)が一定以上(例えば、30以上)であったり、当該宛先ポートがUDPポート利用履歴管理情報に登録されている端末数(以下、「ポート利用端末数」という)が一定以上(例えば、監視対象となる全端末数の10%)であるといった条件を設定し得る。以下では、送信元ポート種類数に対応する閾値をXとし、ポート利用端末数に対応する閾値をYとする。これは、送信元ポートの種類数が多い宛先ポートは送信元ポートがクライアントポートとして使われている可能性が高いことを示し、利用端末数が多い宛先ポートはネットワーク内で一般に利用されるサービスポートである可能性が高いことを示すと考えられることからきている。ここで、これらの条件ではいずれも閾値を設定する必要があり、閾値が小さいほどより多くの宛先ポートが早期にサービスポートに登録されるが誤検知(クライアント側のポートがサービスポートとして登録される)の確率は高い。一方、閾値を大きくするほど、誤検知の確率は低くなるが、早期にサービスポートに登録されるのは、よりメジャーなサービスポートに限られる。そのため、通信実績判定条件において、誤検知数を重視(確度を重視)するか、早期の適用(適用スピード)を重視するかで、プリセットとしてこれらの閾値のパラメータ(X、Y)の組み合わせをいくつか用意しておく方法が考えられる。
【0249】
図25は、通信実績判定条件のプリセットの例について示した図である。
【0250】
図25では、通信実績判定条件に、適用スピード重視(適用スピードを重視した設定)、確度重視(確度重視した設定)、バランス(適用スピード及び角度の両方を考慮した設定)の3種類のプリセットについて設定する例について示しているが、プリセットの数や組み合わせはこれに限定されない。
図25では、「適用スピード重視」のプリセットとして、送信元ポート種類数X=30と、ポート利用端末数Y=(全端末数×0.1)を設定している。また、
図25では、「バランス」のプリセットとして、送信元ポート種類数X=100と、ポート利用端末数Y=(全端末数×0.2)を設定している。さらに、
図25では、「確度重視」として、条件(送信元ポート種類数X、ポート利用端末数Y)を設定しない(つまり、つまり発生日数の条件のみでサービスポート判定に進むかの判断を行う)という設定をしている。
【0251】
第3の実施形態(通信分析装置10B)において、上記のような複数のプリセットを設定可能とすることで、ネットワークの運用者の方針などによって、最初に適当なプリセットを設定(例えば、上記の3つのプリセットのいずれかを設定)し動作させることができる。なお、ここでは、サービスポートリスト管理部16Bが移行判定処理を行うものとする。
【0252】
図26は、第3の実施形態の変形実施例に係る通信分析装置10B(サービスポートリスト管理部16B)が、あるポート(以下、「注目ポート」と呼ぶ)についてサービスポート判定処理への移行判定処理を行う際の流れについて示したフローチャート(その1)である。
【0253】
ここでは、前提として、サービスポートリスト管理部16Bにおいて、通信実績判定条件(例えば、
図25に示すいずれかのプリセット)が予め設定されているものとする。
【0254】
サービスポートリスト管理部16Bは、注目ポートについて移行判定処理を開始すると、まず、注目ポートをサービスポートした場合における通信実績判定処理を行う(S1001)。具体的には、サービスポートリスト管理部16Bは、予め設定したプリセットの閾値(X,Y)を使用し、送信元ポート種類数が閾値Xを超える、またはポート利用端末数が閾値Yを超える場合、注目ポートについてサービスポートしての通信実績が十分あると判断し、注目ポートについてサービスポート判定処理(ステップS1003)に進む。
【0255】
一方ステップS1001の通信実績判定処理で、サービスポートしての通信実績が十分でないと判定された場合、サービスポートリスト管理部16Bは、注目ポートについて、発生日数や後述する一日あたりの利用端末数による条件でサービスポート判定処理に進むか判断し(S1102)、サービスポート判定処理(ステップS1003)又はサービスポートと判定しないことの決定(S1004)のいずれかに移行することになる。
【0256】
(D-8)第3の実施形態(通信分析装置10B)では、UDPポート利用履歴管理情報の宛先ポート(注目ポート)の発生日数を閾値にサービスポート判定処理に進むか判断していた。また、この発生日数閾値の決め方は端末30のクライアントポート再利用検知と連動してインクリメントされていく方法であった。ここで、通信サービスによっては、特定のサービスポートを使うのではなく、サービスポートの値を何らかの規則(例えば通信する度にサービスポートをインクリメントする)に従ってダイナミックに変更しながら通信するものがある。この場合、各ダイナミックに変化するサービスポートのフローは、フロー単位でみればサービスポートは宛先ポートで間違いないと考えられるが、これらのサービスポートは一般にハイポート(ウェルノウンポートより大きい値のポート番号)を用い、クライアント側で使われるポートと重複することも多いため、サービスポート判定で送信元ポートも宛先ポートもサービスポートリストに含まれ判定不能と判断される可能性があり、サービスポートリストに登録されるのは好ましくない。ダイナミックに変化するサービスポートの場合、クライアントポートの再利用とは異なるタイミング(より早いタイミング)で、利用されるサービスポートの範囲を一通り使用し、発生日数がより早くインクリメントされてしまう可能性がある。つまり、発生日数のみの条件ではダイナミックに変化するサービスポートがサービスポートリストに登録されてしまう可能性がある。
【0257】
そこで、ダイナミックに変化するサービスポートがサービスポートリストに登録されないようにするために、任意の宛先ポート(注目ポート)の移行判定処理において、発生日数以外に追加の判定条件を設けることが好ましい。ここでは、UDPポート利用履歴管理情報に含まれる宛先ポート毎に、「1日当りの利用端末数」(UDPポート利用履歴管理情報の各端末の宛先ポートとその発生日を取り出して、他の端末で宛先ポートと発生日が一致するものをカウントし、これを全ての発生日に対して計算し、その合計値をトータルの発生日数で除算した値)が一定値(例えば、2)より小さい宛先ポートはサービスポート判定処理から除外するものとする。これは、複数の端末がダイナミックに変化するサービスポートを使うサービスを利用する場合であっても、使われるサービスポートは端末ごとに異なる(サービスポートの範囲は同じかもしれないが、同じ日に同じサービスポートを使うことはほとんどない)と考えられるため、このようなポートの一日単位での利用端末数は2より小さい値になる可能性が高いと考えられることからきている。一方で、移行判定処理にこの条件を加えた場合、ネットワークで一つの端末でしか使われていないサービスポートがサービスポートリストに登録されなくなってしまうが、先述の通信実績ベースでのサービスポート判定条件と組み合わせることで回避できると考えられる。
【0258】
図27は、第3の実施形態の変形実施例に係る通信分析装置10B(サービスポートリスト管理部16B)が、注目ポートについてサービスポート判定処理への移行判定処理を行う際の流れについて示したフローチャート(その2)である。
【0259】
図27では、サービスポートリスト管理部16Bが、移行判定処理に際して、発生日数に加えてダイナミックに変化するサービスポート(1日当りの利用端末数を考慮)を考慮する流れになっている。
図27では、
図26のフローチャートにステップS1005(1日当りの利用端末数を考慮する処理)が追加されている点で異なっている。
【0260】
図27のフローチャートにおいて、サービスポートリスト管理部16Bは、ステップS1002で、注目ポートの発生日数が発生日数閾値より大きい場合に、1日当りの利用端末数と一定値(2)を比較し(S1005)、一日あたり利用端末数が2以上の場合にサービスポート判定処理(ステップS1003)に移行し、そうでない場合にはサービスポートと判定しないことの決定(S1004)に移行する。これにより、第3の実施形態の変形実施例に係る通信分析装置10Bでは、ダイナミックに変化するサービスポートが発生日数条件をすり抜けてサービスポート判定に進むケースを抑制し、より信頼のできるサービスポートリストを作成することができるようになる。
【0261】
(D-9)第3の実施形態(通信分析装置10B)では、端末30ごとにUDPポート利用履歴管理情報を管理していたが、これに限定されず、ネットワークで唯一のUDPポート利用履歴管理情報を持つような管理方法を適用してもよい。端末30ごとにUDPポート利用履歴管理情報を持つ場合、端末数が多くなるほどUDPポート利用履歴管理情報のファイルサイズが増大し、特に計算資源の限られた小型な装置上での管理が現実的でない場合がある。そのため、第3の実施形態(通信分析装置10B)において、ネットワークで一つのUDPポート利用履歴管理情報のみを持つことにより計算資源の大小に依らず様々な装置上で本実施例を適用することができる。
【符号の説明】
【0262】
10…通信分析装置、11…トラフィックキャプチャ部、12…制御部、13…サービスポート判定部、14…ブロードキャスト処理部、15…サービスポート推定部、16…サービスポートリスト管理部、17…通信パターン学習部、18…記憶部、19…タイマ部、30…監視対象機器、N1…監視対象ネットワーク。