特許第6046653号(P6046653)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧
特許6046653操作検出装置およびコンピュータプログラム
<>
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000004
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000005
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000006
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000007
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000008
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000009
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000010
  • 特許6046653-操作検出装置およびコンピュータプログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6046653
(24)【登録日】2016年11月25日
(45)【発行日】2016年12月21日
(54)【発明の名称】操作検出装置およびコンピュータプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20161212BHJP
【FI】
   G06F17/30 210D
   G06F17/30 170Z
   G06F17/30 350C
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2014-54745(P2014-54745)
(22)【出願日】2014年3月18日
(65)【公開番号】特開2015-176553(P2015-176553A)
(43)【公開日】2015年10月5日
【審査請求日】2016年1月26日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】足利 えりか
(72)【発明者】
【氏名】近藤 重邦
(72)【発明者】
【氏名】東島 由佳
(72)【発明者】
【氏名】玉城 幹介
【審査官】 川▲崎▼ 博章
(56)【参考文献】
【文献】 特開2012−034262(JP,A)
【文献】 山下 剛史、星 健太郎、市野 将嗣、小松 尚久、竹下 恵、辻野 雅之,トラヒックの時系列データを用いたサービス分類手法に関する一検討,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2009年11月 5日,Vol.109、No.274,p.85−90
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、
複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、
操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段と、
複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段と、
当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段と、
前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、
操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段と、
当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段と、
前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、
前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段と
を備えることを特徴とする操作検出装置。
【請求項2】
機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、
複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、
操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段と、
複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段と、
当該複数の特徴ベクトルのそれぞれにつき、前記操作名データベースにおける当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段と、
前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、
操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段と、
当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段と、
前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、
前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段と
を備えることを特徴とする操作検出装置。
【請求項3】
前記第1の特徴量算出手段と前記第2の特徴量算出手段は、特徴量を標準化することを特徴とする請求項1または2記載の操作検出装置。
【請求項4】
前記第1の特徴ベクトル生成手段と前記第2の特徴ベクトル生成手段は、特徴ベクトルを正規化することを特徴とする請求項1ないし3のいずれかに記載の操作検出装置。
【請求項5】
前記類似度算出手段は、特徴ベクトルと中心ベクトルの間の距離が小さいほど類似度を高くすることを特徴とする請求項1ないし4のいずれかに記載の操作検出装置。
【請求項6】
前記類似度算出手段は、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くすることを特徴とする請求項1ないし4のいずれかに記載の操作検出装置。
【請求項7】
請求項1ないし6のいずれかに記載の操作検出装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器にアプリケーションをインストールせずに機器に対する操作を検出する技術に関する。
【背景技術】
【0002】
PC及びプリンタなどの機器をネットワークに接続するに際して障害が発生した場合、ネットワークの専門知識を有する者が対応にあたることが多いが、その際、利用者がどのような操作を行ったかを知ることができれば対応が容易となる。
しかし、利用者が操作を記憶していない場合や、複数人で機器を使用している場合や、電源断などやアプリケーションに起因する障害の場合は、どのような操作が行われたかを知ることが困難であり、原因の探求に時間がかかる。
【0003】
この問題に対し、非特許文献1及び特許文献1では、例えば、PCにアプリケーションをインストールし、アプリケーションにより操作情報を収集する技術を開示している。
しかし、アプリケーションのインストールは面倒であり、利用者の負担となる。また、アプリケーションがオペレーティングシステムに依存する場合、設定の手間が生じる。また、アプリケーションを常時動作させる必要があり、機器への負荷がかかる。
【0004】
一方、特許文献2では、ネットワーク上を流れるトラヒックを分析することで、利用しているアプリケーション種別を検出する技術を開示している。この技術を使用すれば、アプリケーションのインストールは不要となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第5350410号公報
【特許文献2】特開2012−034262号公報
【非特許文献】
【0006】
【非特許文献1】田中明通他,“PC操作履歴収集システム「メモリ・リトリーバ」”,NTT技術ジャーナル,Vol.22,No.7,2010.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、この技術では、通信を行うアプリケーション種別しか検出できない。つまり、操作は検出できない。例えば、PCの再起動やネットワーク設定の変更のような操作、オペレーティングシステムのアップデートのような操作が行われたことがわかれば有用だが、特許文献2の技術では不可能である。
さらに、ウェブブラウザを経由して新たなソフトウェアをダウンロードし、インストールした場合、特許文献2の技術では、ウェブブラウザを使用したことは検出できるが、ソフトウェアをダウンロードする操作が行われたことは検出できない。
【0008】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、機器にアプリケーションをインストールせずに機器に対する操作を検出できる操作検出装置を提供することにある。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、第1の本発明は、機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段と、当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段と、当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段とを備えることを特徴とする。
【0010】
第2の本発明は、機器が通信を行うのに使用されるパケットを基に当該機器に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベースと、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段と、当該複数の特徴ベクトルのそれぞれにつき、前記操作名データベースにおける当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段と、当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段と、前記類似度の最大値が予め定めた閾値以上なら、前記操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、機器にアプリケーションをインストールせずに機器に対する操作を検出できる。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態に係る操作検出装置を利用する通信環境を例示する図である。
図2】操作検出装置1の概略構成を示すブロック図である。
図3】ポート番号記憶部15の構成を示す図である。
図4】操作名データベース16の構成を示す図である。
図5】操作を検出する前の準備期間における処理の流れを示すフローチャートである。
図6図5におけるステップS2の詳細なフローチャートである。
図7】中心ベクトルと中央値を例示する図である。
図8】操作を検出する際の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照して説明する。
【0014】
[第1の実施の形態]
図1は、第1の実施の形態に係る操作検出装置を利用する通信環境を例示する図である。
操作検出装置1は、機器2(例えば、PC(パーソナルコンピュータ))が通信を行うのに使用されるパケットを基に機器2に対してどのような操作が行われたかを検出する装置である。ここでいう操作とは、利用者による操作(いわゆる手動操作)のみならず、機器2にインストールされたアプリケーションによる操作(すなわち見かけ上では自動処理)、外部要因による操作(例えば、停電時などの電源断)なども含む。なお、検出対象の機器はPCに限らない。
【0015】
機器2は、例えば、スイッチ3とゲートウェイ装置4を介して、インターネット5に接続される。操作検出装置1は、例えば、スイッチ3のミラーリングポートに接続される。スイッチ3には、例えば周辺機器6が接続される。
【0016】
スイッチ3は、スイッチ3に流れるパケットをミラーリングし、ミラーリングポートから操作検出装置1に送信するようになっている。スイッチ3は、機器2から送信または機器2で受信されるパケット以外に、周辺機器6から送信または周辺機器6で受信されるパケットを操作検出装置1に送信する。
【0017】
操作検出装置1の入力部11は、例えば、予めゲートウェイ装置4のルーティングテーブルやARPテーブルを参照し、機器2のIPアドレスおよびMACアドレスを取得しておき、これらに該当する送信元IPアドレスや送信元MACアドレスや宛先IPアドレスや宛先MACアドレスを含むパケットのみを受信するようになっている。
【0018】
図2は、操作検出装置1の概略構成を示すブロック図である。
操作検出装置1は、パケットを受信する入力部11、操作を検出する前の期間においてパケットにおける特徴量からなる特徴ベクトルを生成し、予め定められたルールに適合する特徴ベクトルをクラスタリングし、各クラスタ内の特徴ベクトルの中心ベクトルを操作パターンとして生成する操作パターン抽出部12、操作を検出する期間において特徴ベクトルを生成し、中心ベクトルとの類似度を算出し、類似度に基づいて操作を検出する操作検出部13、検出された操作名を出力する出力部14、予めポート番号が記憶されるポート番号記憶部15、予めルールと操作名を含むレコードが記憶される操作名データベース16を備える。
【0019】
図3は、ポート番号記憶部15の構成を示す図である。
ポート番号記憶部15は、例えば、Well-Knownポートと称される0番から1023番までのポート番号と当該ポート番号に対応するプロトコル名を記憶している。
【0020】
図4は、操作名データベース16の構成を示す図である。
操作名データベース16には、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される。ルールは、例えば、式などで表現される。操作名に対しては、後に、操作パターン抽出部12が生成した中心ベクトルと閾値thが対応づけて記憶される。
【0021】
図5は、操作を検出する前の準備期間における処理の流れを示すフローチャートである。図5の処理は、操作を検出する前に、つまり事前に行われるものである。
【0022】
S1:入力部11は、予め取得した機器2のIPアドレスおよびMACアドレスに該当する送信元IPアドレスや送信元MACアドレスや宛先IPアドレスや宛先MACアドレスを含むパケットのみを一定期間に渡って受信し、図示しない記憶領域へ受信時刻に対応づけて記憶させる。この期間は、機器2に一通りの操作が実行される期間であり、例えば、1ヶ月である。
【0023】
S2:次に、操作パターン抽出部12は、予め定められた単位時間ごとに、複数のプロトコルのそれぞれにつき、当該単位時間における当該プロトコルに該当するパケットのデータ量である特徴量を算出する。単位時間は、最も短い時間で行われる操作の時間とするのが好ましく、ここでは1秒とする。
【0024】
図6は、図5におけるステップS2の詳細なフローチャートである。
S21:操作パターン抽出部12は、1ヶ月間に受信された全パケットを、パケットの受信開始から1秒後までの単位時間に受信されたパケットからなるパケット群、その後の1秒間(単位時間)に受信されたパケットからなるパケット群、その後の1秒間(単位時間)に受信されたパケットからなるパケット群、…というように分類する。
【0025】
次に操作パターン抽出部12は、1つのパケット群内のパケットごとにS22〜S26を行う。また、操作パターン抽出部12は、他の各パケット群についても同じ処理を行う。
【0026】
S22:操作パターン抽出部12は、対象のパケットのヘッダを参照し、パケットのプロトコルがTCPまたはUDPであるか否かを判定する。
S23:操作パターン抽出部12は、プロトコルがTCPまたはUDPであるなら(S22:YES)、パケットのヘッダから宛先ポート番号を取得し、同じポート番号がポート番号記憶部15に記憶されているか否かを判定する。
【0027】
S24:操作パターン抽出部12は、プロトコルがTCPでなくかつUDPでないなら(S22:NO)、または、ポート番号がポート番号記憶部15に記憶されていないなら(S23:NO)、パケットの最上位のプロトコル名を取得する。ポート番号がポート番号記憶部15に記憶されていない場合は(S23:NO)、TCPまたはUDPが取得される(S24)。
【0028】
S25:操作パターン抽出部12は、ポート番号がポート番号記憶部15に記憶されているなら(S23:YES)、ポート番号に対応するプロトコル名を取得する。ここでは、HTTPなどが取得される。
【0029】
S26:操作パターン抽出部12は、プロトコル名を取得したなら(S24、S25)、該当のパケット群における当該プロトコル名の全パケットの合計データ量(予め0で初期化される)に対し、対象のパケットのデータ量を加算し、処理を終了する。
以下、合計のデータ量を特徴量という。
【0030】
図5に戻り、説明を続ける。
S3:操作パターン抽出部12は、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する。
【0031】
例えば、操作パターン抽出部12は、まず、1ヶ月の中の最初の時間W(時間窓という)に含まれる各単位時間に対応するパケット群について算出されたプロトコル名ごとの特徴量からなる特徴ベクトルを生成する。時間窓Wは、ここでは1分とする。
ここでは、理解を容易にすべく、プロトコル名iの単位時間jでの特徴量をf(i,j)と表現し、プロトコル名の総数をmとする。
【0032】
操作パターン抽出部12は、具体的には、特徴ベクトル{f(1,1),f(1,2),…,f(1,60),f(2,1),f(2,2),…,f(m,1),f(m,2),…,f(m,60)}を生成する。つまり、操作パターン抽出部12は、連続する60の単位時間(1分)について算出された特徴量からなる特徴ベクトルを生成する。
次に、操作パターン抽出部12は、1ヶ月の中の最初の時間Sを除く期間の最初の時間Wに含まれる各単位時間に対応するパケット群について算出されたプロトコル名ごとの特徴量からなる特徴ベクトルを生成する。時間窓Wは同じく1分とし、Sは30秒とする。
【0033】
操作パターン抽出部12は、具体的には、特徴ベクトル{f(1,31),f(1,32),…,f(1,90),f(2,31),f(2,32),…,f(m,31),f(m,32),…,f(m,90)}を生成する。
【0034】
つまり、操作パターン抽出部12は、時間窓Wを一定時間Sだけスライドさせ、同じように時間窓Wに該当する特徴量からなる特徴ベクトルを生成する。
【0035】
操作パターン抽出部12は、以下、同様に時間窓WをSづつスライドさせ、その都度、特徴ベクトルを生成し、時間窓Wの一部が1ヶ月の終了時点を超えたなら、処理を終了させる。
なお、時間窓Wとスライド量Sは、1分と30秒に限らない。
【0036】
S4:次に、操作パターン抽出部12は、生成した複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成する。各特徴ベクトルは、いずれかのクラスタに含まれる。
【0037】
ここでは、操作パターン抽出部12は、例えば、非階層型クラスタリング手法の1つであるk-means法を用いる。つまり、操作パターン抽出部12は、クラスタ数をまず2とし、クラスタの中心ベクトルとクラスタに含まれる特徴ベクトルの距離の総和である群内平方和を求める。次に、操作パターン抽出部12は、クラスタ数を1増加させて、群内平方和とその減少量を計算する。これをクラスタ数nまで行う。nは、例えば、機器2に対する操作数のx倍(xは、W/S)とする。次に、操作パターン抽出部12は、減少量が最も大きくなったときの増加後のクラスタ数と同じとなるように、クラスタを生成する。
【0038】
S5:次に、操作パターン抽出部12は、各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベース16から、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける。つまり、操作パターン抽出部12は、各クラスタが何の操作を示すかを判定する。
【0039】
S5では、操作パターン抽出部12は、全ての中心ベクトルにおいて、各単位時間につき、当該単位時間に対応する要素(特徴量)の上位3つを選択する。
S5では、次に、操作パターン抽出部12は、各プロトコル名につき、全ての中心ベクトルから当該プロトコル名に対応する要素(特徴量)を抽出し、抽出した特徴量の中央値を求める。
S5では、次に、操作パターン抽出部12は、上位3つとして選択された特徴量以外の特徴量について、対応する中央値の10倍以上ならば、その特徴量を選択する。
【0040】
図7は、中心ベクトルと中央値を例示する図である。
ここでは、理解を容易にすべく、プロトコル名の総数mを12とし、1つの中心ベクトルに対応する単位時間の数を5とし、中心ベクトルをマトリクスの形式で示す。
【0041】
図7(a)の中心ベクトルでは、点模様の背景で示すように、単位時間1、2では、上位3つに含まれるTCP、DNS、HTTPの特徴量が選択され、単位時間3では、上位3つに含まれるTCP、HTTPの特徴量が選択される。中央値の10倍以上の特徴量はない。
【0042】
図7(b)の中心ベクトルでは、点模様の背景で示すように、単位時間1では、上位3つに含まれるTCP、HTTP、IMAPの特徴量が選択される。また、斜め線模様の背景で示すように、中央値の10倍以上であるDNSの特徴量が選択される。
【0043】
S5では、操作パターン抽出部12は、操作名データベース16から、中心ベクトルの選択された特徴量のパターンに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける。
【0044】
S5では、例えば、図7(a)のように、TCP、DNS、HTTPから、TCP、HTTP、IMAPへの遷移は、メール受信の際に見られるものなので、図7(a)の中心ベクトルは、操作名「メール受信」に対応づけられる。
【0045】
S6:次に、操作パターン抽出部12は、各クラスタにつき、当該クラスタ内の各特徴ベクトルと当該クラスタの中心ベクトルとの距離の平均値を算出し、例えば、その平均値の逆数を当該中心ベクトルとともに後述の操作検出で用いる閾値thとして、操作名データベース16において、当該中心ベクトルに対応づけて記憶させ、処理を終了する。
【0046】
図8は、操作を検出する際の処理の流れを示すフローチャートである。
図8の処理は、図5の処理後、操作を検出する際に行われるものである。ここでは、図5の処理が終了していることとする。
S31:入力部11は、機器2のIPアドレスおよびMACアドレスに該当する送信元IPアドレスや送信元MACアドレスや宛先IPアドレスや宛先MACアドレスを含むパケットのみを時間窓Wと同じ1分間に渡って受信する。
【0047】
S32:操作検出部13は、受信されたパケットを用い、単位時間ごとに、各プロトコルにつき、当該単位時間における当該プロトコルに該当するパケットのデータ量である特徴量を算出する。
【0048】
つまり、S32では、操作検出部13は、受信したパケットに対し、図6のステップS22〜S26の処理を行う。
【0049】
S33:次に、操作検出部13は、当該特徴量からなる特徴ベクトルを生成する。
つまり、S33では、操作検出部13は、図5のステップS3で特徴ベクトルを生成したように特徴ベクトルを生成する。
【0050】
S34:次に、操作検出部13は、操作名データベース16における各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する。
S34では、操作検出部13は、例えば、式(1)により特徴ベクトルと中心ベクトルの距離dを算出し、例えば、距離dの逆数を計算し、これを類似度とする。つまり、距離が小さいほど類似度を高くする。
【数1】

ここで、xiは、特徴ベクトルのプロトコル名iに対応する特徴量、
yiは、中心ベクトルのプロトコル名iに対応する特徴量、
mは、プロトコル名の総数である。
【0051】
S35:次に、操作検出部13は、類似度の最大値に対応する中心ベクトルに対応づけて記憶した閾値thを操作名データベース16から読み出し、類似度の最大値が閾値以上か否かを判定する。
操作検出部13は、類似度の最大値が閾値未満なら(S35:NO)、処理を終える。
【0052】
S36:操作検出部13は、類似度の最大値が閾値以上なら(S35:YES)、操作名データベース16から当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す。
S37:次に、出力部14が、読み出された操作名を、例えば、図示しない表示装置などに表示し、処理を終える。
【0053】
なお、第1の実施の形態では、ステップS6で、距離が小さいほど閾値を高くし、ステップS34で、距離が小さいほど類似度を高くし、ステップS35で、類似度の最大値が閾値以上か否かを判定し、類似度の最大値が閾値以上なら、ステップS36で、最大値に対応する操作名を読み出したが、ステップS6で、例えば距離を閾値とし、ステップS34で、距離を類似度とし、ステップS35で、類似度の最小値が閾値以下か否かを判定し、類似度の最小値が閾値以下なら、ステップS36で、最小値に対応する操作名を読み出してもよい。つまり、前者の処理は、実質的に後者の処理と同じである。
【0054】
すなわち、いずれにしてもS36の処理は、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出すという処理である。
【0055】
また、第1の実施の形態では、プロトコルごとに特徴量を算出したが、例えば、パケットの宛先ごとに特徴量を算出してもよい。
また、第1の実施の形態では、パケットのデータ量の積算値を特徴量としたが、例えば、パケットの総数を特徴量としてもよい。
【0056】
したがって、第1の実施の形態に係る操作検出装置1は、機器2が通信を行うのに使用されるパケットを基に機器2に対する操作を検出する操作検出装置であって、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベース16と、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段(ステップS2)と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段(ステップS3)と、当該複数の特徴ベクトルから当該特徴ベクトル間の類似性に基づいて複数のクラスタを生成するクラスタ生成手段(ステップS4)と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段(ステップS5)と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段(ステップS32)と、当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段(ステップS33)と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段(ステップS34)と、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段(ステップS36)とを備えるので、特徴ベクトル、中心ベクトルは、複数の特徴量の増減パターンを示すものとなり、よって、増減パターンにより、機器2に対する操作を検出することができる。
【0057】
[第2の実施の形態]
次に、本発明の第2の実施の形態について説明する。第2の実施の形態では、第1の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第1の実施の形態で使用した符号を使用して重複説明を略し、第1の実施の形態とは異なる事項を中心に説明を行う。
【0058】
第2の実施の形態では、第1の実施の形態に対し、ステップS4の処理が以下のように異なり、その他は、第1の実施の形態と同様である。
【0059】
S4:操作パターン抽出部12は、ステップS3で生成された複数の特徴ベクトルのそれぞれにつき、操作名データベース16における当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成する。
ここでは、特徴ベクトルに適合するルールの有無の判定は、パターンマッチングにより行う。
【0060】
S4では、まず、操作パターン抽出部12は、各ルールにつき、当該ルールに対応する操作名の操作を示す特徴ベクトルを複数含むクラスタを生成し、その操作の際の通信で使用されるプロトコル名の組を当該クラスタに対応づける。
【0061】
S4では、操作パターン抽出部12は、次に、全ての特徴ベクトルにおいて、各単位時間につき、当該単位時間に対応する要素(特徴量)の上位3つを選択する。
【0062】
S4では、次に、操作パターン抽出部12は、各プロトコル名につき、全ての特徴ベクトルから当該プロトコル名に対応する要素(特徴量)を抽出し、抽出した特徴量の中央値を求める。
【0063】
S4では、次に、操作パターン抽出部12は、上位3つとして選択された特徴量以外の特徴量について、対応する中央値の10倍以上ならば、その特徴量を選択する。
【0064】
S4では、次に、操作パターン抽出部12は、各特徴ベクトルにつき、上位3つまたは中央値の10倍以上として選択された特徴量に対応するプロトコル名の組と、クラスタに対応づけたプロトコル名の組のそれぞれを比較し、いずれかのクラスタに対応するプロトコル名の組に一致すれば(つまりルールと特徴ベクトルが適合すれば)、当該特徴ベクトルを当該クラスタに含ませる。いずれのクラスタに対応づけたプロトコル名の組とも一致しなければ、ルールで規定されない操作が行われた可能性があるので、例えば、その他の操作のクラスタに含ませる。
【0065】
したがって、第2の実施の形態に係る操作検出装置1によれば、複数種類の操作につき、当該操作の操作名と当該操作の際に適用されるルールとを含むレコードが記憶される操作名データベース16と、操作を検出する前の期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第1の特徴量算出手段(ステップS2)と、複数の単位時間につき、当該単位時間から始まる予め定められた複数の連続する単位時間について算出された特徴量からなる特徴ベクトルを生成する第1の特徴ベクトル生成手段(ステップS3)と、当該複数の特徴ベクトルのそれぞれにつき、操作名データベース16における当該特徴ベクトルに適合するルールの有無を判定し、適合すると判定された各ルールにつき、当該ルールに適合する特徴ベクトルからなるクラスタを生成するクラスタ生成手段(第2の実施の形態のステップS4)と、前記各クラスタにつき、当該クラスタ内の特徴ベクトルの中心ベクトルを生成し、操作名データベースから、当該中心ベクトルに適合するルールを含むレコードを検索し、当該中心ベクトルを当該レコード内の操作名に対応づける中心ベクトル生成手段(ステップS5)と、操作を検出する期間において、単位時間ごとに、パケットのヘッダに含まれる所定の情報のそれぞれにつき、当該単位時間における当該所定の情報に該当するパケットの特徴量を算出する第2の特徴量算出手段(ステップS32)と、当該特徴量からなる特徴ベクトルを生成する第2の特徴ベクトル生成手段(ステップS33)と、前記各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を算出する類似度算出手段(ステップS34)と、類似度の最大値が予め定めた閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出す操作名読出手段(ステップS36)とを備えるので、特徴ベクトル、中心ベクトルは、複数の特徴量の増減パターンを示すものとなり、よって、増減パターンにより、機器2に対する操作を検出することができる。
【0066】
また、第2の実施の形態では、非階層型クラスタリング手法などにより行う第1の実施の形態の方法に比べ,ノイズデータの混入が少なく、また、ルールに適合しない特徴ベクトルをクラスタから除外できるので、その後に生成する中心ベクトルがより正確になる。その結果、より正確に操作を検出できる。
【0067】
[第3の実施の形態]
次に、本発明の第3の実施の形態について説明する。第3の実施の形態では、第1または第2の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第1の実施の形態等で使用した符号を使用して重複説明を略し、第1の実施の形態等とは異なる事項を中心に説明を行う。
【0068】
第3の実施の形態では、第1の実施の形態等に対し、ステップS2、S32で求めた特徴量を標準化し、その他は、第1の実施の形態等と同様である。
【0069】
つまり、S2(第1の特徴量算出手段)では、操作パターン抽出部12は、例えば、1ヶ月分の特徴量を求めたなら、各プロトコル名につき、当該プロトコル名に対応する特徴量を選択し、その平均が0、分散が1となるように当該特徴量を変換する(標準化する)。
【0070】
また、S32(第2の特徴量算出手段)では、操作検出部13は、例えば、1分間分の特徴量を求めたなら、各プロトコル名につき、当該プロトコル名に対応する特徴量を選択し、その平均が0、分散が1となるように当該特徴量を変換する(標準化する)。
【0071】
第3の実施の形態によれば、特徴量を標準化するので、パケットの数が少ないプロトコルを使用する操作であっても検出することができる。
【0072】
[第4の実施の形態]
次に、本発明の第4の実施の形態について説明する。第4の実施の形態では、第1または第2または第3の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第1の実施の形態等で使用した符号を使用して重複説明を略し、第1の実施の形態等とは異なる事項を中心に説明を行う。
【0073】
第4の実施の形態では、第1の実施の形態等に対し、ステップS3、S33で求めた特徴ベクトルを正規化し、その他は、第1の実施の形態等と同様である。
【0074】
つまり、S3(第1の特徴ベクトル生成手段)では、操作パターン抽出部12は、特徴ベクトルを求めたなら、各特徴ベクトルにつき、当該特徴ベクトルの大きさが1となるように、当該特徴ベクトルを変換する(正規化する)。
【0075】
また、S33(第2の特徴ベクトル生成手段)では、操作検出部13は、特徴ベクトルを求めたなら、特徴ベクトルの大きさが1となるように、特徴ベクトルを変換する(正規化する)。
【0076】
第4の実施の形態によれば、特徴ベクトルを正規化するので、特徴ベクトルは、対応する操作が行われた際のパケットのデータ量の比率を示し、つまり、データ量の多い少ないは無関係となるので、パケットの数が少ないプロトコルを使用する操作であっても検出することができる。
【0077】
[第5の実施の形態]
次に、本発明の第5の実施の形態について説明する。第5の実施の形態では、第1または第2または第3または第4の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第1の実施の形態等で使用した符号を使用して重複説明を略し、第1の実施の形態等とは異なる事項を中心に説明を行う。
【0078】
第5の実施の形態では、第1の実施の形態等に対し、ステップS6における閾値の求め方と、S34以降の処理が異なり、その他は、第1の実施の形態等と同様である。
【0079】
S6で、操作パターン抽出部12は、各クラスタにつき、当該クラスタ内の各特徴ベクトルと当該クラスタの中心ベクトルとの類似度sim(コサイン類似度)を式(2)により求める。
【数2】

ここで、xは、特徴ベクトル、
yは、中心ベクトル、
x・yは、xとyの積、
|x|は、xの長さ、
|y|は、yの長さである。
類似度simは、特徴ベクトルと中心ベクトルの間の角度が小さいほど小さくなる。
【0080】
S6では、操作パターン抽出部12は、次に、類似度simの平均を計算し、これを当該中心ベクトルに対応する閾値thとする。
【0081】
S34では、操作検出部13は、操作名データベース16における各中心ベクトルにつき、当該特徴ベクトルと当該中心ベクトルの類似度を式(2)により算出する。
【0082】
S35では、操作検出部13は、類似度の最小値に対応する中心ベクトルに対応づけて記憶した閾値thを操作名データベース16から読み出し、類似度の最小値が閾値以下か否かを判定する。
【0083】
S36では、操作検出部13は、類似度の最小値が閾値以下なら(S35:YES)、操作名データベース16から当該最小値に対応する中心ベクトルに対応づけられた操作名を読み出す。
【0084】
なお、ステップS6で、類似度simの平均値の逆数を閾値とし、つまり、特徴ベクトルと中心ベクトルの間の角度が小さいほど閾値を高くし、ステップS34で、類似度simの逆数を類似度とし、つまり、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くし、ステップS35で、類似度の最大値が閾値以上か否かを判定し、類似度の最大値が閾値以上なら、ステップS37で、最大値に対応する操作名を読み出してもよい。つまり、第5の実施の形態の処理は、このような処理と実質的に同じである。
【0085】
よって、第5の実施の形態では、特徴ベクトルと中心ベクトルの間の角度が小さいほど類似度を高くし、類似度の最大値が閾値以上なら、操作名データベースから当該最大値に対応する中心ベクトルに対応づけられた操作名を読み出していることになる。
【0086】
なお、各実施の形態に係る操作検出装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【0087】
1 操作検出装置
11 入力部
12 操作パターン抽出部
13 操作検出部
14 出力部
15 ポート番号記憶部
16 操作名データベース
図1
図2
図3
図4
図5
図6
図7
図8