(57)【特許請求の範囲】
【請求項１】
機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、
複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、
操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段と、
複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段と、
当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段と、
前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、
操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段と、
当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段と、
前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、
前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段と
を備えることを特徴とする操作検出装置。
【請求項２】
機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、
複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、
操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段と、
複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段と、
当該複数の特徴ベクトルのそれぞれにつき、前記操作名データベースにおける当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段と、
前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、
操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段と、
当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段と、
前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、
前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段と
を備えることを特徴とする操作検出装置。
【請求項３】
前記第１の特徴量算出手段と前記第２の特徴量算出手段は、特徴量を標準化することを特徴とする請求項１または２記載の操作検出装置。
【請求項４】
前記第１の特徴ベクトル生成手段と前記第２の特徴ベクトル生成手段は、特徴ベクトルを正規化することを特徴とする請求項１ないし３のいずれかに記載の操作検出装置。
【請求項５】
前記類似度算出手段は、特徴ベクトルと中心ベクトルの間の距離が小さいほど類似度を高くすることを特徴とする請求項１ないし４のいずれかに記載の操作検出装置。
【請求項６】
前記類似度算出手段は、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くすることを特徴とする請求項１ないし４のいずれかに記載の操作検出装置。
【請求項７】
請求項１ないし６のいずれかに記載の操作検出装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器にアプリケーションをインストールせずに機器に対する操作を検出する技術に関する。
【背景技術】
【０００２】
ＰＣ及びプリンタなどの機器をネットワークに接続するに際して障害が発生した場合、ネットワークの専門知識を有する者が対応にあたることが多いが、その際、利用者がどのような操作を行ったかを知ることができれば対応が容易となる。
しかし、利用者が操作を記憶していない場合や、複数人で機器を使用している場合や、電源断などやアプリケーションに起因する障害の場合は、どのような操作が行われたかを知ることが困難であり、原因の探求に時間がかかる。
【０００３】
この問題に対し、非特許文献１及び特許文献１では、例えば、ＰＣにアプリケーションをインストールし、アプリケーションにより操作情報を収集する技術を開示している。
しかし、アプリケーションのインストールは面倒であり、利用者の負担となる。また、アプリケーションがオペレーティングシステムに依存する場合、設定の手間が生じる。また、アプリケーションを常時動作させる必要があり、機器への負荷がかかる。
【０００４】
一方、特許文献２では、ネットワーク上を流れるトラヒックを分析することで、利用しているアプリケーション種別を検出する技術を開示している。この技術を使用すれば、アプリケーションのインストールは不要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３５０４１０号公報
【特許文献２】特開２０１２−０３４２６２号公報
【非特許文献】
【０００６】
【非特許文献１】田中明通他，“PC操作履歴収集システム「メモリ・リトリーバ」”，NTT技術ジャーナル，Vol.22，No.7，2010．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、この技術では、通信を行うアプリケーション種別しか検出できない。つまり、操作は検出できない。例えば、ＰＣの再起動やネットワーク設定の変更のような操作、オペレーティングシステムのアップデートのような操作が行われたことがわかれば有用だが、特許文献２の技術では不可能である。
さらに、ウェブブラウザを経由して新たなソフトウェアをダウンロードし、インストールした場合、特許文献２の技術では、ウェブブラウザを使用したことは検出できるが、ソフトウェアをダウンロードする操作が行われたことは検出できない。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、機器にアプリケーションをインストールせずに機器に対する操作を検出できる操作検出装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、第１の本発明は、機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段と、当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段と、当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段とを備えることを特徴とする。
【００１０】
第２の本発明は、機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段と、当該複数の特徴ベクトルのそれぞれにつき、前記操作名データベースにおける当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段と、当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、機器にアプリケーションをインストールせずに機器に対する操作を検出できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る操作検出装置を利用する通信環境を例示する図である。
【図２】操作検出装置１の概略構成を示すブロック図である。
【図３】ポート番号記憶部１５の構成を示す図である。
【図４】操作名データベース１６の構成を示す図である。
【図５】操作を検出する前の準備期間における処理の流れを示すフローチャートである。
【図６】図５におけるステップＳ２の詳細なフローチャートである。
【図７】中心ベクトルと中央値を例示する図である。
【図８】操作を検出する際の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。
【００１４】
[第１の実施の形態]
図１は、第１の実施の形態に係る操作検出装置を利用する通信環境を例示する図である。
操作検出装置１は、機器２（例えば、ＰＣ（パーソナルコンピュータ））が通信を行うのに使用されるパケットを基に機器２に対してどのような操作が行われたかを検出する装置である。ここでいう操作とは、利用者による操作（いわゆる手動操作）のみならず、機器２にインストールされたアプリケーションによる操作（すなわち見かけ上では自動処理）、外部要因による操作（例えば、停電時などの電源断）なども含む。なお、検出対象の機器はＰＣに限らない。
【００１５】
機器２は、例えば、スイッチ３とゲートウェイ装置４を介して、インターネット５に接続される。操作検出装置１は、例えば、スイッチ３のミラーリングポートに接続される。スイッチ３には、例えば周辺機器６が接続される。
【００１６】
スイッチ３は、スイッチ３に流れるパケットをミラーリングし、ミラーリングポートから操作検出装置１に送信するようになっている。スイッチ３は、機器２から送信または機器２で受信されるパケット以外に、周辺機器６から送信または周辺機器６で受信されるパケットを操作検出装置１に送信する。
【００１７】
操作検出装置１の入力部１１は、例えば、予めゲートウェイ装置４のルーティングテーブルやＡＲＰテーブルを参照し、機器２のＩＰアドレスおよびＭＡＣアドレスを取得しておき、これらに該当する送信元ＩＰアドレスや送信元ＭＡＣアドレスや宛先ＩＰアドレスや宛先ＭＡＣアドレスを含むパケットのみを受信するようになっている。
【００１８】
図２は、操作検出装置１の概略構成を示すブロック図である。
操作検出装置１は、パケットを受信する入力部１１、操作を検出する前の期間においてパケットにおける特徴量からなる特徴ベクトルを生成し、予め定められたルールに適合する特徴ベクトルをクラスタリングし、各クラスタ内の特徴ベクトルの中心ベクトルを操作パターンとして生成する操作パターン抽出部１２、操作を検出する期間において特徴ベクトルを生成し、中心ベクトルとの類似度を算出し、類似度に基づいて操作を検出する操作検出部１３、検出された操作名を出力する出力部１４、予めポート番号が記憶されるポート番号記憶部１５、予めルールと操作名を含むレコードが記憶される操作名データベース１６を備える。
【００１９】
図３は、ポート番号記憶部１５の構成を示す図である。
ポート番号記憶部１５は、例えば、Well-Knownポートと称される０番から１０２３番までのポート番号と当該ポート番号に対応するプロトコル名を記憶している。
【００２０】
図４は、操作名データベース１６の構成を示す図である。
操作名データベース１６には、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される。ルールは、例えば、式などで表現される。操作名に対しては、後に、操作パターン抽出部１２が生成した中心ベクトルと閾値ｔｈが対応づけて記憶される。
【００２１】
図５は、操作を検出する前の準備期間における処理の流れを示すフローチャートである。図５の処理は、操作を検出する前に、つまり事前に行われるものである。
【００２２】
Ｓ１：入力部１１は、予め取得した機器２のＩＰアドレスおよびＭＡＣアドレスに該当する送信元ＩＰアドレスや送信元ＭＡＣアドレスや宛先ＩＰアドレスや宛先ＭＡＣアドレスを含むパケットのみを一定期間に渡って受信し、図示しない記憶領域へ受信時刻に対応づけて記憶させる。この期間は、機器２に一通りの操作が実行される期間であり、例えば、１ヶ月である。
【００２３】
Ｓ２：次に、操作パターン抽出部１２は、予め定められた単位時間ごとに、複数のプロトコルのそれぞれにつき、当該単位時間における当該プロトコルに該当するパケットのデータ量である特徴量を算出する。単位時間は、最も短い時間で行われる操作の時間とするのが好ましく、ここでは１秒とする。
【００２４】
図６は、図５におけるステップＳ２の詳細なフローチャートである。
Ｓ２１：操作パターン抽出部１２は、１ヶ月間に受信された全パケットを、パケットの受信開始から１秒後までの単位時間に受信されたパケットからなるパケット群、その後の１秒間（単位時間）に受信されたパケットからなるパケット群、その後の１秒間（単位時間）に受信されたパケットからなるパケット群、…というように分類する。
【００２５】
次に操作パターン抽出部１２は、１つのパケット群内のパケットごとにＳ２２〜Ｓ２６を行う。また、操作パターン抽出部１２は、他の各パケット群についても同じ処理を行う。
【００２６】
Ｓ２２：操作パターン抽出部１２は、対象のパケットのヘッダを参照し、パケットのプロトコルがＴＣＰまたはＵＤＰであるか否かを判定する。
Ｓ２３：操作パターン抽出部１２は、プロトコルがＴＣＰまたはＵＤＰであるなら（Ｓ２２：ＹＥＳ）、パケットのヘッダから宛先ポート番号を取得し、同じポート番号がポート番号記憶部１５に記憶されているか否かを判定する。
【００２７】
Ｓ２４：操作パターン抽出部１２は、プロトコルがＴＣＰでなくかつＵＤＰでないなら（Ｓ２２：ＮＯ）、または、ポート番号がポート番号記憶部１５に記憶されていないなら（Ｓ２３：ＮＯ）、パケットの最上位のプロトコル名を取得する。ポート番号がポート番号記憶部１５に記憶されていない場合は（Ｓ２３：ＮＯ）、ＴＣＰまたはＵＤＰが取得される（Ｓ２４）。
【００２８】
Ｓ２５：操作パターン抽出部１２は、ポート番号がポート番号記憶部１５に記憶されているなら（Ｓ２３：ＹＥＳ）、ポート番号に対応するプロトコル名を取得する。ここでは、ＨＴＴＰなどが取得される。
【００２９】
Ｓ２６：操作パターン抽出部１２は、プロトコル名を取得したなら（Ｓ２４、Ｓ２５）、該当のパケット群における当該プロトコル名の全パケットの合計データ量（予め０で初期化される）に対し、対象のパケットのデータ量を加算し、処理を終了する。
以下、合計のデータ量を特徴量という。
【００３０】
図５に戻り、説明を続ける。
Ｓ３：操作パターン抽出部１２は、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する。
【００３１】
例えば、操作パターン抽出部１２は、まず、１ヶ月の中の最初の時間Ｗ（時間窓という）に含まれる各単位時間に対応するパケット群について算出されたプロトコル名ごとの特徴量からなる特徴ベクトルを生成する。時間窓Ｗは、ここでは１分とする。
ここでは、理解を容易にすべく、プロトコル名ｉの単位時間ｊでの特徴量をｆ（ｉ，ｊ）と表現し、プロトコル名の総数をｍとする。
【００３２】
操作パターン抽出部１２は、具体的には、特徴ベクトル｛ｆ（１，１），ｆ（１，２）,…,ｆ（１，６０），ｆ（２，１），ｆ（２，２），…，ｆ（ｍ，１），ｆ（ｍ，２），…，ｆ（ｍ，６０）｝を生成する。つまり、操作パターン抽出部１２は、連続する６０の単位時間（１分）について算出された特徴量からなる特徴ベクトルを生成する。
次に、操作パターン抽出部１２は、１ヶ月の中の最初の時間Ｓを除く期間の最初の時間Ｗに含まれる各単位時間に対応するパケット群について算出されたプロトコル名ごとの特徴量からなる特徴ベクトルを生成する。時間窓Ｗは同じく１分とし、Ｓは３０秒とする。
【００３３】
操作パターン抽出部１２は、具体的には、特徴ベクトル｛ｆ（１，３１），ｆ（１，３２）,…,ｆ（１，９０），ｆ（２，３１），ｆ（２，３２），…，ｆ（ｍ，３１），ｆ（ｍ，３２），…，ｆ（ｍ，９０）｝を生成する。
【００３４】
つまり、操作パターン抽出部１２は、時間窓Ｗを一定時間Ｓだけスライドさせ、同じように時間窓Ｗに該当する特徴量からなる特徴ベクトルを生成する。
【００３５】
操作パターン抽出部１２は、以下、同様に時間窓ＷをＳづつスライドさせ、その都度、特徴ベクトルを生成し、時間窓Ｗの一部が１ヶ月の終了時点を超えたなら、処理を終了させる。
なお、時間窓Ｗとスライド量Ｓは、１分と３０秒に限らない。
【００３６】
Ｓ４：次に、操作パターン抽出部１２は、生成した複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成する。各特徴ベクトルは、いずれかのクラスタに含まれる。
【００３７】
ここでは、操作パターン抽出部１２は、例えば、非階層型クラスタリング手法の１つであるk-means法を用いる。つまり、操作パターン抽出部１２は、クラスタ数をまず２とし、クラスタの中心ベクトルとクラスタに含まれる特徴ベクトルの距離の総和である群内平方和を求める。次に、操作パターン抽出部１２は、クラスタ数を１増加させて、群内平方和とその減少量を計算する。これをクラスタ数ｎまで行う。ｎは、例えば、機器２に対する操作数のｘ倍（ｘは、Ｗ／Ｓ）とする。次に、操作パターン抽出部１２は、減少量が最も大きくなったときの増加後のクラスタ数と同じとなるように、クラスタを生成する。
【００３８】
Ｓ５：次に、操作パターン抽出部１２は、各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベース１６から、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける。つまり、操作パターン抽出部１２は、各クラスタが何の操作を示すかを判定する。
【００３９】
Ｓ５では、操作パターン抽出部１２は、全ての中心ベクトルにおいて、各単位時間につき、当該単位時間に対応する要素（特徴量）の上位３つを選択する。
Ｓ５では、次に、操作パターン抽出部１２は、各プロトコル名につき、全ての中心ベクトルから当該プロトコル名に対応する要素（特徴量）を抽出し、抽出した特徴量の中央値を求める。
Ｓ５では、次に、操作パターン抽出部１２は、上位３つとして選択された特徴量以外の特徴量について、対応する中央値の１０倍以上ならば、その特徴量を選択する。
【００４０】
図７は、中心ベクトルと中央値を例示する図である。
ここでは、理解を容易にすべく、プロトコル名の総数ｍを１２とし、１つの中心ベクトルに対応する単位時間の数を５とし、中心ベクトルをマトリクスの形式で示す。
【００４１】
図７（ａ）の中心ベクトルでは、点模様の背景で示すように、単位時間１、２では、上位３つに含まれるＴＣＰ、ＤＮＳ、ＨＴＴＰの特徴量が選択され、単位時間３では、上位３つに含まれるＴＣＰ、ＨＴＴＰの特徴量が選択される。中央値の１０倍以上の特徴量はない。
【００４２】
図７（ｂ）の中心ベクトルでは、点模様の背景で示すように、単位時間１では、上位３つに含まれるＴＣＰ、ＨＴＴＰ、ＩＭＡＰの特徴量が選択される。また、斜め線模様の背景で示すように、中央値の１０倍以上であるＤＮＳの特徴量が選択される。
【００４３】
Ｓ５では、操作パターン抽出部１２は、操作名データベース１６から、中心ベクトルの選択された特徴量のパターンに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける。
【００４４】
Ｓ５では、例えば、図７（ａ）のように、ＴＣＰ、ＤＮＳ、ＨＴＴＰから、ＴＣＰ、ＨＴＴＰ、ＩＭＡＰへの遷移は、メール受信の際に見られるものなので、図７（ａ）の中心ベクトルは、操作名「メール受信」に対応づけられる。
【００４５】
Ｓ６：次に、操作パターン抽出部１２は、各クラスタにつき、当該クラスタ内の各特徴ベクトルと当該クラスタの中心ベクトルとの距離の平均値を算出し、例えば、その平均値の逆数を当該中心ベクトルとともに後述の操作検出で用いる閾値ｔｈとして、操作名データベース１６において、当該中心ベクトルに対応づけて記憶させ、処理を終了する。
【００４６】
図８は、操作を検出する際の処理の流れを示すフローチャートである。
図８の処理は、図５の処理後、操作を検出する際に行われるものである。ここでは、図５の処理が終了していることとする。
Ｓ３１：入力部１１は、機器２のＩＰアドレスおよびＭＡＣアドレスに該当する送信元ＩＰアドレスや送信元ＭＡＣアドレスや宛先ＩＰアドレスや宛先ＭＡＣアドレスを含むパケットのみを時間窓Ｗと同じ１分間に渡って受信する。
【００４７】
Ｓ３２：操作検出部１３は、受信されたパケットを用い、単位時間ごとに、各プロトコルにつき、当該単位時間における当該プロトコルに該当するパケットのデータ量である特徴量を算出する。
【００４８】
つまり、Ｓ３２では、操作検出部１３は、受信したパケットに対し、図６のステップＳ２２〜Ｓ２６の処理を行う。
【００４９】
Ｓ３３：次に、操作検出部１３は、当該特徴量からなる特徴ベクトルを生成する。
つまり、Ｓ３３では、操作検出部１３は、図５のステップＳ３で特徴ベクトルを生成したように特徴ベクトルを生成する。
【００５０】
Ｓ３４：次に、操作検出部１３は、操作名データベース１６における各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する。
Ｓ３４では、操作検出部１３は、例えば、式（１）により特徴ベクトルと中心ベクトルの距離ｄを算出し、例えば、距離ｄの逆数を計算し、これを類似度とする。つまり、距離が小さいほど類似度を高くする。
【数１】
0006046653.tif 000002
ここで、ｘｉは、特徴ベクトルのプロトコル名ｉに対応する特徴量、
ｙｉは、中心ベクトルのプロトコル名ｉに対応する特徴量、
ｍは、プロトコル名の総数である。
【００５１】
Ｓ３５：次に、操作検出部１３は、類似度の最大値に対応する中心ベクトルに対応づけて記憶した閾値ｔｈを操作名データベース１６から読み出し、類似度の最大値が閾値以上か否かを判定する。
操作検出部１３は、類似度の最大値が閾値未満なら（Ｓ３５：ＮＯ）、処理を終える。
【００５２】
Ｓ３６：操作検出部１３は、類似度の最大値が閾値以上なら（Ｓ３５：ＹＥＳ）、操作名データベース１６から当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す。
Ｓ３７：次に、出力部１４が、読み出された操作名を、例えば、図示しない表示装置などに表示し、処理を終える。
【００５３】
なお、第１の実施の形態では、ステップＳ６で、距離が小さいほど閾値を高くし、ステップＳ３４で、距離が小さいほど類似度を高くし、ステップＳ３５で、類似度の最大値が閾値以上か否かを判定し、類似度の最大値が閾値以上なら、ステップＳ３６で、最大値に対応する操作名を読み出したが、ステップＳ６で、例えば距離を閾値とし、ステップＳ３４で、距離を類似度とし、ステップＳ３５で、類似度の最小値が閾値以下か否かを判定し、類似度の最小値が閾値以下なら、ステップＳ３６で、最小値に対応する操作名を読み出してもよい。つまり、前者の処理は、実質的に後者の処理と同じである。
【００５４】
すなわち、いずれにしてもＳ３６の処理は、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出すという処理である。
【００５５】
また、第１の実施の形態では、プロトコルごとに特徴量を算出したが、例えば、パケットの宛先ごとに特徴量を算出してもよい。
また、第１の実施の形態では、パケットのデータ量の積算値を特徴量としたが、例えば、パケットの総数を特徴量としてもよい。
【００５６】
したがって、第１の実施の形態に係る操作検出装置１は、機器２が通信を行うのに使用されるパケットを基に機器２に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベース１６と、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段（ステップＳ２）と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段（ステップＳ３）と、当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段（ステップＳ４）と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段（ステップＳ５）と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段（ステップＳ３２）と、当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段（ステップＳ３３）と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段（ステップＳ３４）と、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段（ステップＳ３６）とを備えるので、特徴ベクトル、中心ベクトルは、複数の特徴量の増減パターンを示すものとなり、よって、増減パターンにより、機器２に対する操作を検出することができる。
【００５７】
[第２の実施の形態]
次に、本発明の第２の実施の形態について説明する。第２の実施の形態では、第１の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第１の実施の形態で使用した符号を使用して重複説明を略し、第１の実施の形態とは異なる事項を中心に説明を行う。
【００５８】
第２の実施の形態では、第１の実施の形態に対し、ステップＳ４の処理が以下のように異なり、その他は、第１の実施の形態と同様である。
【００５９】
Ｓ４：操作パターン抽出部１２は、ステップＳ３で生成された複数の特徴ベクトルのそれぞれにつき、操作名データベース１６における当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成する。
ここでは、特徴ベクトルに適合するルールの有無の判定は、パターンマッチングにより行う。
【００６０】
Ｓ４では、まず、操作パターン抽出部１２は、各ルールにつき、当該ルールに対応する操作名の操作を示す特徴ベクトルを複数含むクラスタを生成し、その操作の際の通信で使用されるプロトコル名の組を当該クラスタに対応づける。
【００６１】
Ｓ４では、操作パターン抽出部１２は、次に、全ての特徴ベクトルにおいて、各単位時間につき、当該単位時間に対応する要素（特徴量）の上位３つを選択する。
【００６２】
Ｓ４では、次に、操作パターン抽出部１２は、各プロトコル名につき、全ての特徴ベクトルから当該プロトコル名に対応する要素（特徴量）を抽出し、抽出した特徴量の中央値を求める。
【００６３】
Ｓ４では、次に、操作パターン抽出部１２は、上位３つとして選択された特徴量以外の特徴量について、対応する中央値の１０倍以上ならば、その特徴量を選択する。
【００６４】
Ｓ４では、次に、操作パターン抽出部１２は、各特徴ベクトルにつき、上位３つまたは中央値の１０倍以上として選択された特徴量に対応するプロトコル名の組と、クラスタに対応づけたプロトコル名の組のそれぞれを比較し、いずれかのクラスタに対応するプロトコル名の組に一致すれば（つまりルールと特徴ベクトルが適合すれば）、当該特徴ベクトルを当該クラスタに含ませる。いずれのクラスタに対応づけたプロトコル名の組とも一致しなければ、ルールで規定されない操作が行われた可能性があるので、例えば、その他の操作のクラスタに含ませる。
【００６５】
したがって、第２の実施の形態に係る操作検出装置１によれば、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベース１６と、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第１の特徴量算出手段（ステップＳ２）と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第１の特徴ベクトル生成手段（ステップＳ３）と、当該複数の特徴ベクトルのそれぞれにつき、操作名データベース１６における当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段（第２の実施の形態のステップＳ４）と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段（ステップＳ５）と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第２の特徴量算出手段（ステップＳ３２）と、当該特徴量からなる特徴ベクトルを生成する第２の特徴ベクトル生成手段（ステップＳ３３）と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段（ステップＳ３４）と、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段（ステップＳ３６）とを備えるので、特徴ベクトル、中心ベクトルは、複数の特徴量の増減パターンを示すものとなり、よって、増減パターンにより、機器２に対する操作を検出することができる。
【００６６】
また、第２の実施の形態では、非階層型クラスタリング手法などにより行う第１の実施の形態の方法に比べ，ノイズデータの混入が少なく、また、ルールに適合しない特徴ベクトルをクラスタから除外できるので、その後に生成する中心ベクトルがより正確になる。その結果、より正確に操作を検出できる。
【００６７】
[第３の実施の形態]
次に、本発明の第３の実施の形態について説明する。第３の実施の形態では、第１または第２の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第１の実施の形態等で使用した符号を使用して重複説明を略し、第１の実施の形態等とは異なる事項を中心に説明を行う。
【００６８】
第３の実施の形態では、第１の実施の形態等に対し、ステップＳ２、Ｓ３２で求めた特徴量を標準化し、その他は、第１の実施の形態等と同様である。
【００６９】
つまり、Ｓ２（第１の特徴量算出手段）では、操作パターン抽出部１２は、例えば、１ヶ月分の特徴量を求めたなら、各プロトコル名につき、当該プロトコル名に対応する特徴量を選択し、その平均が０、分散が１となるように当該特徴量を変換する（標準化する）。
【００７０】
また、Ｓ３２（第２の特徴量算出手段）では、操作検出部１３は、例えば、１分間分の特徴量を求めたなら、各プロトコル名につき、当該プロトコル名に対応する特徴量を選択し、その平均が０、分散が１となるように当該特徴量を変換する（標準化する）。
【００７１】
第３の実施の形態によれば、特徴量を標準化するので、パケットの数が少ないプロトコルを使用する操作であっても検出することができる。
【００７２】
[第４の実施の形態]
次に、本発明の第４の実施の形態について説明する。第４の実施の形態では、第１または第２または第３の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第１の実施の形態等で使用した符号を使用して重複説明を略し、第１の実施の形態等とは異なる事項を中心に説明を行う。
【００７３】
第４の実施の形態では、第１の実施の形態等に対し、ステップＳ３、Ｓ３３で求めた特徴ベクトルを正規化し、その他は、第１の実施の形態等と同様である。
【００７４】
つまり、Ｓ３（第１の特徴ベクトル生成手段）では、操作パターン抽出部１２は、特徴ベクトルを求めたなら、各特徴ベクトルにつき、当該特徴ベクトルの大きさが１となるように、当該特徴ベクトルを変換する（正規化する）。
【００７５】
また、Ｓ３３（第２の特徴ベクトル生成手段）では、操作検出部１３は、特徴ベクトルを求めたなら、特徴ベクトルの大きさが１となるように、特徴ベクトルを変換する（正規化する）。
【００７６】
第４の実施の形態によれば、特徴ベクトルを正規化するので、特徴ベクトルは、対応する操作が行われた際のパケットのデータ量の比率を示し、つまり、データ量の多い少ないは無関係となるので、パケットの数が少ないプロトコルを使用する操作であっても検出することができる。
【００７７】
[第５の実施の形態]
次に、本発明の第５の実施の形態について説明する。第５の実施の形態では、第１または第２または第３または第４の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第１の実施の形態等で使用した符号を使用して重複説明を略し、第１の実施の形態等とは異なる事項を中心に説明を行う。
【００７８】
第５の実施の形態では、第１の実施の形態等に対し、ステップＳ６における閾値の求め方と、Ｓ３４以降の処理が異なり、その他は、第１の実施の形態等と同様である。
【００７９】
Ｓ６で、操作パターン抽出部１２は、各クラスタにつき、当該クラスタ内の各特徴ベクトルと当該クラスタの中心ベクトルとの類似度ｓｉｍ（コサイン類似度）を式（２）により求める。
【数２】
0006046653.tif 000003
ここで、ｘは、特徴ベクトル、
ｙは、中心ベクトル、
ｘ・ｙは、ｘとｙの積、
｜ｘ｜は、ｘの長さ、
｜ｙ｜は、ｙの長さである。
類似度ｓｉｍは、特徴ベクトルと中心ベクトルの間の角度が小さいほど小さくなる。
【００８０】
Ｓ６では、操作パターン抽出部１２は、次に、類似度ｓｉｍの平均を計算し、これを当該中心ベクトルに対応する閾値ｔｈとする。
【００８１】
Ｓ３４では、操作検出部１３は、操作名データベース１６における各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を式（２）により算出する。
【００８２】
Ｓ３５では、操作検出部１３は、類似度の最小値に対応する中心ベクトルに対応づけて記憶した閾値ｔｈを操作名データベース１６から読み出し、類似度の最小値が閾値以下か否かを判定する。
【００８３】
Ｓ３６では、操作検出部１３は、類似度の最小値が閾値以下なら（Ｓ３５：ＹＥＳ）、操作名データベース１６から当該最小値に対応する中心ベクトルに対応づけられた操作名を読み出す。
【００８４】
なお、ステップＳ６で、類似度ｓｉｍの平均値の逆数を閾値とし、つまり、特徴ベクトルと中心ベクトルの間の角度が小さいほど閾値を高くし、ステップＳ３４で、類似度ｓｉｍの逆数を類似度とし、つまり、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くし、ステップＳ３５で、類似度の最大値が閾値以上か否かを判定し、類似度の最大値が閾値以上なら、ステップＳ３７で、最大値に対応する操作名を読み出してもよい。つまり、第５の実施の形態の処理は、このような処理と実質的に同じである。
【００８５】
よって、第５の実施の形態では、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くし、類似度の最大値が閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出していることになる。
【００８６】
なお、各実施の形態に係る操作検出装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００８７】
１  操作検出装置
１１  入力部
１２  操作パターン抽出部
１３  操作検出部
１４  出力部
１５  ポート番号記憶部
１６  操作名データベース
【図１】
0006046653.tif 000004
【図２】
0006046653.tif 000005
【図３】
0006046653.tif 000006
【図４】
0006046653.tif 000007
【図５】
0006046653.tif 000008
【図６】
0006046653.tif 000009
【図７】
0006046653.tif 000010
【図８】
0006046653.tif 000011