特許第6646494号(P6646494)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ エヌ・ティ・ティ・コミュニケーションズ株式会社の特許一覧

<>
  • 特許6646494-監視装置、監視方法、及びプログラム 図000002
  • 特許6646494-監視装置、監視方法、及びプログラム 図000003
  • 特許6646494-監視装置、監視方法、及びプログラム 図000004
  • 特許6646494-監視装置、監視方法、及びプログラム 図000005
  • 特許6646494-監視装置、監視方法、及びプログラム 図000006
  • 特許6646494-監視装置、監視方法、及びプログラム 図000007
  • 特許6646494-監視装置、監視方法、及びプログラム 図000008
  • 特許6646494-監視装置、監視方法、及びプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6646494
(24)【登録日】2020年1月15日
(45)【発行日】2020年2月14日
(54)【発明の名称】監視装置、監視方法、及びプログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20200203BHJP
   G06F 21/56 20130101ALI20200203BHJP
【FI】
   G06F21/55
   G06F21/56 360
【請求項の数】7
【全頁数】12
(21)【出願番号】特願2016-62680(P2016-62680)
(22)【出願日】2016年3月25日
(65)【公開番号】特開2017-174354(P2017-174354A)
(43)【公開日】2017年9月28日
【審査請求日】2018年7月25日
(73)【特許権者】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】荻原 利彦
(72)【発明者】
【氏名】野村 研仁
(72)【発明者】
【氏名】山下 達也
【審査官】 平井 誠
(56)【参考文献】
【文献】 特開2008−243034(JP,A)
【文献】 国際公開第2005/029328(WO,A1)
【文献】 特開2012−185547(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
コンピュータからCPUの状態情報を取得する取得手段と、
前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、
前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段とを備える監視装置であって、
前記学習手段は、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する
ことを特徴とする監視装置。
【請求項2】
コンピュータからCPUの状態情報を取得する取得手段と、
前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、
前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段とを備える監視装置であって、
前記異常判定手段は、前記取得手段により取得される状態情報に基づいて、前記メモリにおけるデータの格納アドレスを検出し、当該データの格納アドレスが、前記学習手段により得られた前記領域情報におけるデータ領域の範囲を超える場合に、異常があると判定する
ことを特徴とする監視装置。
【請求項3】
コンピュータからCPUの状態情報を取得する取得手段と、
前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、
前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段とを備える監視装置であって、
前記学習手段は、マルウェアが実行されているコンピュータから得られたCPUの状態情報に基づき、当該状態情報の特徴を算出し、
前記異常判定手段は、当該特徴と、マルウェアの実行有無が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、異常の有無を判定する
ことを特徴とする監視装置。
【請求項4】
コンピュータを、請求項1ないしのうちいずれか1項に記載の監視装置における各手段として機能させるためのプログラム。
【請求項5】
コンピュータの異常検知を行う監視装置が実行する監視方法であって、
コンピュータからCPUの状態情報を取得する取得ステップと、
前記取得ステップにより取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習ステップと、
前記領域情報と、前記コンピュータから取得されるCPUの状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定ステップとを備える監視方法であり、
前記学習ステップにおいて、前記監視装置は、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する
ことを特徴とする監視方法。
【請求項6】
コンピュータの異常検知を行う監視装置が実行する監視方法であって、
コンピュータからCPUの状態情報を取得する取得ステップと、
前記取得ステップにより取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習ステップと、
前記領域情報と、前記コンピュータから取得されるCPUの状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定ステップとを備える監視方法であり、
前記異常判定ステップにおいて、前記監視装置は、前記取得ステップにより取得される状態情報に基づいて、前記メモリにおけるデータの格納アドレスを検出し、当該データの格納アドレスが、前記学習ステップにより得られた前記領域情報におけるデータ領域の範囲を超える場合に、異常があると判定する
ことを特徴とする監視方法。
【請求項7】
コンピュータの異常検知を行う監視装置が実行する監視方法であって、
コンピュータからCPUの状態情報を取得する取得ステップと、
前記取得ステップにより取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習ステップと、
前記領域情報と、前記コンピュータから取得されるCPUの状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定ステップとを備える監視方法であり、
前記学習ステップにおいて、前記監視装置は、マルウェアが実行されているコンピュータから得られたCPUの状態情報に基づき、当該状態情報の特徴を算出し、
前記異常判定ステップにおいて、前記監視装置は、当該特徴と、マルウェアの実行有無が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、異常の有無を判定する
ことを特徴とする監視方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに対する攻撃を検知する技術に関連するものである。
【背景技術】
【0002】
コンピュータに対する攻撃手法として、"Injection"、"Buffer Overflow:xBoF"、"標的型:APT(Advanced Persistent Threat)"等がある。比較的攻撃技術レベルの低いInjection 系は、HTML等のプログラム言語を用いて想定外/異常/脅威な動作を行わせるものである。このため、セキュアコーディング方法も確立しており、かつ、コードの静的解析でも検出可能である。これに対して、コードをデータだと詐称、もしくは、安全なコードだと詐称するAPT系やBuffer Overflow系は、セキュアコーディングを行ったとしても、根本的対応が困難である。以下、APT系やBuffer Overflow系において攻撃を行うデータ/コードをマルウェアと呼ぶ。
【0003】
各種の攻撃方法において、マルウェアは、常に"変種"(所謂、亜種)が現れてZero-Day が恒常化している。換言すると、セキュアコーディングや静的解析を行ったとしても、これをかわす攻撃手法が常に脅威となり、プログラムの安全な実行が困難である状況にある。
【0004】
上記にようなマルウェアに対する対策として、例えば、syslog等のログ解析に機械学習(Deep Learning)を適用して、マルウェア攻撃の有無の検知を行うこと等が検討されている。しかし、ログ解析だけでは,基本的に攻撃の回避が非常に困難である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−076135号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来より、不安定なプログラムを安全に走行させることを目的とした、リングプロテクション(Ring Protection)の技術がある。図1に示すように、リングプロテクションは、リング状の階層構造を有し、各階層はOSから提供されたアクセス権を示している。リング間には特別なゲートがあり、内側のリングのリソースから外側のリングのリソースへのアクセスは許可されるが、外側のリングのリソースから内側のリングのリソースへのアクセスは原則禁止される。
【0007】
リングプロテクションは、元来、あるプロセスの異常が他プロセスに影響を与えない仕組みとして提案されたものであり、マルウェアに対しても有効である。しかし、現状の一般のコンピュータにおいては、リングプロテクションが実装されていない。たとえ、CPUにリングプロテクションの機能が用意されていても、コンピュータの他のハードウェア/ソフトウェアが未対応なので、リングプロテクションの機能を活用できない。従って、既存のリングプロテクションの技術をマルウェア対策に用いることができない。
【0008】
一般に普及しているノイマン型のコンピュータは、単一のメモリ上にプログラム領域とデータ領域が混在することを前提とするアーキテクチャとなっており、これがマルウェアの活動(攻撃の成立)を引き起こす主要な要因となっている。
【0009】
本発明は上記の点に鑑みてなされたものであり、監視対象装置におけるメモリの領域を判別することにより、監視対象装置の異常を検知することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の実施の形態によれば、コンピュータからCPUの状態情報を取得する取得手段と、
前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、
前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段とを備える監視装置であって、
前記学習手段は、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する
ことを特徴とする監視装置が提供される。
【0011】
本発明の実施の形態によれば、コンピュータの異常検知を行う監視装置が実行する監視方法であって、
コンピュータからCPUの状態情報を取得する取得ステップと、
前記取得ステップにより取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習ステップと、
前記領域情報と、前記コンピュータから取得されるCPUの状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定ステップとを備える監視方法であり、
前記学習ステップにおいて、前記監視装置は、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する
ことを特徴とする監視方法が提供される。
【発明の効果】
【0012】
本発明の実施の形態によれば、監視対象装置におけるメモリの領域を判別することにより、監視対象装置の異常を検知することを可能とする技術が提供される。
【図面の簡単な説明】
【0013】
図1】リングプロテクションの概念を説明するための図である。
図2】本発明の実施の形態におけるシステムの全体構成図である。
図3】監視対象装置200の構成図である。
図4】VM環境の例を示す図である。
図5】監視対象装置200の基本的な動作を説明するための図である。
図6】監視装置100の構成図である。
図7】監視装置100の動作を示すフローチャートである。
図8】異常判定の例を説明するための図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明を適用可能な形態は、以下の実施の形態に限られるわけではない。
【0015】
(システム全体構成)
図2に、本実施の形態におけるシステムの全体構成図を示す。図2に示すように、本実施の形態におけるシステムは、監視装置100と複数の監視対象装置200とを含む。監視装置100と各監視対象装置200との間では、インターネット等のネットワークを介してデータ通信が可能である。
【0016】
監視対象装置200は、ネットワークに接続される一般的なコンピュータである。また、当該コンピュータに使用されるOSも一般的なもの(例えば、Linux(登録商標)、Windows(登録商標)等)である。各監視対象装置200は、サービスを提供するサーバとして使用される装置であってもよいし、ユーザのクライアント端末として使用される装置であってもよい。また、監視対象装置200は物理的なコンピュータであってもよいし、仮想マシンとしてのコンピュータであってもよい。監視装置100は、各監視対象装置200の監視を行って、異常を検知する。
【0017】
(監視対象装置200の構成)
図3に、監視対象装置200の構成図を示す。図3に示すように、監視対象装置200は、メモリ201、CPU202、コンテキスト格納部203を含む。図3に示すように、メモリには、データとプログラムが混在して格納されるが、データとプログラムともにビットの羅列であり、一般には、外部からは、メモリ201の各アドレスに格納されているビットが、データかプログラムかの識別はできない。
【0018】
CPU202は、プログラムカウンタ(PC)、スタックポインタ(SP)、汎用レジスタ等の複数のレジスタを有する。プログラムカウンタには、CPU202が次に読み取る命令が格納されたメモリのアドレスが格納されており、基本的に、命令の実行の都度、インクリメントされる。CPU202は、プログラムカウンタにより示されるアドレスの命令をメモリ201から読み出して実行する。
【0019】
スタックポインタは、スタックと呼ばれる領域のうち最も最近参照された位置のアドレスを保持するためのレジスタである。スタックは最初に格納したデータを最後に、最後に格納されたデータを最初に取り出すことができる領域であり、新たにデータが格納されるとスタックポインタの値はそのデータ量の分だけ増え、取り出されるとその分だけ減る。
【0020】
コンテキスト格納部203は、CPU202の状態(コンテキスト)を格納する機能部である。コンテキストは、CPU202が持つプログラムカウンタ(PC)、スタックポインタ(SP)、汎用レジスタ等の各レジスタの値を含む。なお、CPU202からコンテキストを取得して、保持する機能は、例えばコンテキストスイッチ等のために、一般的なOSにより動作するコンピュータに一般的に備えられている機能である。
【0021】
また、コンテキストを保持するタイミングは、例えば、監視装置100からのアクセス(情報要求)を受けたタイミング(何等かの割り込みを発生させたタイミング)でもよいし、常時コンテキストを保持・更新(つまり、常にCPUの状態と同じ情報を保持)することとしてもよい。
【0022】
図4は、監視対象装置200が仮想マシン(VM)である場合における、VM環境の例を示す図である。本例のVM環境は、ハードウェア251、ハイパバイザ252、監視対象装置200としてのVMを含む。VM環境では、ハイパバイザ252により各VMが管理されており、ハイパバイザ252が、各VMについて、図3に示す構成を管理している。すなわち、監視対象装置200が仮想マシン(VM)である場合、コンテキスト格納部203は、ハイパバイザ252が保持するが、以下では、コンテキスト格納部203は、仮想的にVM内(つまり、監視対象装置200内)にあるものとする。つまり、監視対象装置200が仮想マシンであっても、物理マシンであっても、図3に示す構成が適用される。
【0023】
図5を参照して、監視対象装置200の動作の一例を説明する。左側の状態において、プログラムカウンタ(PC)に2が格納され、レジスタR1に4が格納されている。CPUは、PCに従って、メモリのアドレス2の命令を読み出す。この命令は、「レジスタR1に格納されているメモリアドレス4の値をレジスタR2にコピー」するという命令である。CPUはこの命令を実行することで、右側の状態になる。つまり、命令の実行の結果、アドレス4の値(100)が、R2に格納されている、また、PCがインクリメントされている。
【0024】
(監視装置100の構成)
図6に、監視装置100の構成図を示す。図6に示すように、監視装置100は、学習部101、監視部102、異常判定部103を備える。各機能部の動作については、以下の動作説明のところで詳しく説明する。なお、以下の説明では、特に断らない限り、複数の監視対象装置200における1つの監視対象装置200を対象にしているが、実際には同様の処理を他の監視対象装置200に対しても行っている。ただし、複数の監視対象装置200を対象とすることは必須ではなく、1つの監視対象装置200を対象としてもよい。
【0025】
本実施の形態における監視装置100は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、監視装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0026】
(監視装置100の動作)
以下、図6に示す構成を有する監視装置100の動作を図7のフローチャートに沿って説明する。
【0027】
監視部102は、例えば定期的に、監視対象装置200から、コンテキスト格納部203に格納されているコンテキストを取得する(ステップS101)。コンテキストの取得は、例えば、監視部102が監視対象装置200に対してコンテキスト要求を送信し、監視対象装置200が、コンテキスト応答としてコンテキストを監視部102に返すことにより行われる。当該コンテキストには、現時点でのCPUの状態情報(レジスタの値等)が含まれる。監視部102により取得されたコンテキストは、学習部101に渡される。
【0028】
学習部101は、監視部102により取得されたコンテキストに基づいて、監視対象装置200のメモリ201におけるプログラム領域のアドレス範囲とデータ領域のアドレス範囲とを学習(決定)する(ステップS102)。具体的には以下のとおりである。以下、プログラム領域のアドレス範囲とデータ領域のアドレス範囲を「領域情報」と呼ぶ。また、以下の処理は一例である。
【0029】
学習部101は、定期的に取得された監視対象装置200のコンテキストの集合を保持する記憶部を含む。また、学習部101は、教師あり学習機能を有する。この場合、まず、学習部101に、正解の領域情報を与え、更に、この正解が得られた監視対象装置200から取得されたコンテキスト集合を与える。この正解が得られた監視対象装置200は、メモリの領域情報が既知であるコンピュータの一例である。
【0030】
そして、学習部101は、当該コンテキスト集合の特徴を算出する。この特徴は、例えば、コンテキスト集合におけるプログラムカウンタの値(時系列データ)の変化パターン(例:アドレスの遷移等)、コンテキスト集合におけるデータのアドレスを示すレジスタの値(時系列データ)の変化パターン、コンテキスト集合におけるスタックポインタの値(時系列データ)の変化パターン等のうちいずれか1つ又はいずれか複数又は全部である。また、上記の特徴(変化パターン)は、ベクトル等で表わされてもよいし、時系列モデルとして表わされてもよいし、他の形式で表わされてもよい。
【0031】
学習部101は、例えば、上記のような特徴算出を、複数の監視対象装置200における複数の「正解領域情報とコンテクスト集合の組」に対して行うことで、複数の「特徴と領域情報の組」を得て、記憶部に格納する。このようにして得られた特徴を「特徴A」と呼び、対応する領域情報を領域情報Aと呼ぶことにする。つまり、記憶部には、複数の「特徴Aと領域情報Aの組」が格納される。正解を与えて複数の「特徴Aと領域情報Aの組」を学習する処理は、頻繁に行う必要はなく、ある程度の間隔を開けて行えばよい。また、正解を与えて複数の「特徴Aと領域情報Aの組」を学習する処理を1回だけ行い、その後は、後述する領域情報Bを正解と見なして(領域情報Aと見なして)、順次、複数の「特徴Aと領域情報Aの組」を更新することとしてもよい。
【0032】
また、学習部101は、監視部102から定期的に受け取り、記憶部に蓄積されたコンテキスト集合(領域情報が未知)に対して、特徴Aを求めた方法と同じ方法で特徴(これを特徴Bとする)を算出する。学習部101は、特徴Bを、複数の「特徴Aと領域情報Aの組」における各特徴Aと比較することにより、特徴Bに最も近い特徴Aを特定し、当該特徴Aに対応する領域情報Aを、対象としている監視対象装置200の領域情報(これを領域情報Bと呼ぶ)として学習する。
【0033】
なお、複数の「特徴Aと領域情報Aの組」の中の該当する領域情報Aそのものを、監視対象装置200の領域情報Bとして決定してもよいし、特徴Bと複数の特徴Aとの距離に応じて、複数の「特徴Aと領域情報Aの組」の中の該当する領域情報Aを変更したものを監視対象装置200の領域情報Bとして決定してもよい。例えば、特徴Bと、特徴A1と特徴A2とが同程度に近い場合において、特徴Bの領域情報Bとして、特徴A1の領域情報A1(例:プログラム領域が0〜100)と特徴A2の領域情報A2(例:プログラム領域が0〜110)の平均(例:プログラム領域が0〜105)を用いることができる。
【0034】
なお、上記の例では、学習部101は、教師あり学習により領域情報Bを得ているが、教師なし学習により領域情報Bを取得することとしてもよい。この場合、例えば、コンテクスト集合におけるレジスタの値と、その変化のパターンに基づいて、メモリのアドレスを、データ領域のアドレスと、プログラム領域のアドレスにクラス分けすることで、領域情報Bを取得することができる。
【0035】
学習部101により得られた監視対象装置200の領域情報Bは、異常判定部103に渡される。また、監視部102は、定期的に取得されたコンテキストを順次、異常判定部103に渡す。
【0036】
異常判定部103は、監視部102から渡されたコンテキストにおける、データのアドレスを示すレジスタ(例:スタックポインタ)の値を参照して、当該レジスタの値が領域情報Bに示されるデータ領域のアドレス範囲を超えるかどうかを判定する(ステップS103)。言いかえると、レジスタの値がプログラム領域のアドレス範囲に侵入しているか否かを判定する。
【0037】
異常判定部103は、レジスタの値が領域情報Bに示されるデータ領域のアドレス範囲を超えることを検知した場合に、異常が発生したと判断し、例えば、アラームを出力する(ステップS104)。アラームには、異常を検知した監視対象装置200を識別する情報が含まれる。また、アラームに代えて、対象の監視対象装置200を停止させる命令を当該監視対象装置200に送信してもよい。当該アラーム、当該命令のいずれも「異常を示す情報」の例である。
【0038】
図8は、異常と判定される場合の例を説明するための図である。図8に示す例では、領域情報Bとして、プログラム領域=アドレス0〜40、データ領域=アドレス40〜100が得られている。そして、コンテキストにおける、データのアドレスを示すレジスタの値(例えばスタックポインタの値)が35であることを検知すると、異常であると判定する。なお、閾値を設け、「プログラム領域のアドレス範囲+閾値」を超えた場合に異常であると判定してもよい。
【0039】
また、複数の監視対象装置200において、同じプログラム(アプリケーション)が実行されている環境においては、ある監視対象装置200において上記の異常を検知した場合でも、他の監視対象装置200において同様の事象が生じている場合には、現時点の領域情報Bが十分に正確でない可能性が考えられるため、アラームを出力しないこととしてもよい。また、下記のような処理を行ってもよい。
【0040】
学習部101に対し、マルウェアが実行されていることが分かっている監視対象装置のコンテクスト集合を与え、学習部101が、当該コンテクスト集合の中のプログラムカウンタの値(時系列データ)の特徴(変化パターンを示すベクトル、時系列モデル等)を算出する。この特徴を特徴Aと呼ぶ。複数種類のマルウェアに対して複数種類の特徴Aを取得することとしてもよい。そして、特徴Aは異常判定部103に渡される。異常判定部103は、マルウェアの実行有無が未知であるコンピュータからのコンテクストを順次、監視部102から受信し、得られたコンテクスト集合から、プログラムカウンタの値の特徴(特徴Bと呼ぶ)を算出し、特徴Aと特徴Bを比較して、特徴Bに近い(例:閾値以下)特徴Aが存在する場合に、異常を検知することとしてもよい。なお、前述した異常検知(領域情報に基づく異常検知)で異常が検知され、かつ、この異常検知(マルウェアのコンテクスト特徴に基づく異常検知)で異常が検知された場合にアラームを出力することとしてもよいし、いずれかの異常が検知された場合に、アラームを出力することとしてもよい。
【0041】
(実施の形態のまとめ)
以上、説明したように、コンピュータからCPUの状態情報を取得する取得手段と、前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段とを備えることを特徴とする監視装置が提供される。
【0042】
前記学習手段は、例えば、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する。
【0043】
前記異常判定手段は、例えば、前記取得手段により取得される状態情報に基づいて、前記メモリにおけるデータの格納アドレスを検出し、当該データの格納アドレスが、前記学習手段により得られた前記領域情報におけるデータ領域の範囲を超える場合に、異常があると判定する。
【0044】
前記学習手段は、マルウェアが実行されているコンピュータから得られたCPUの状態情報に基づき、当該状態情報の特徴を算出し、前記異常判定手段は、当該特徴と、マルウェアの実行有無が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、異常の有無を判定することとしてもよい。
【0045】
(第1項)
コンピュータからCPUの状態情報を取得する取得手段と、
前記取得手段により取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習手段と、
前記領域情報と、前記取得手段により取得される状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定手段と
を備えることを特徴とする監視装置。
(第2項)
前記学習手段は、メモリの領域情報が既知であるコンピュータから得られたCPUの状態情報に基づいて特徴を算出し、当該特徴と、領域情報が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、領域情報が未知であるコンピュータにおけるメモリの領域情報を学習する
ことを特徴とする第1項に記載の監視装置。
(第3項)
前記異常判定手段は、前記取得手段により取得される状態情報に基づいて、前記メモリにおけるデータの格納アドレスを検出し、当該データの格納アドレスが、前記学習手段により得られた前記領域情報におけるデータ領域の範囲を超える場合に、異常があると判定する
ことを特徴とする第1項又は第2項に記載の監視装置。
(第4項)
前記学習手段は、マルウェアが実行されているコンピュータから得られたCPUの状態情報に基づき、当該状態情報の特徴を算出し、
前記異常判定手段は、当該特徴と、マルウェアの実行有無が未知であるコンピュータから得られたCPUの状態情報に基づき算出された特徴とを比較することにより、異常の有無を判定する
ことを特徴とする第1項ないし第3項のうちいずれか1項に記載の監視装置。
(第5項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載の監視装置における各手段として機能させるためのプログラム。
(第6項)
コンピュータの異常検知を行う監視装置が実行する監視方法であって、
コンピュータからCPUの状態情報を取得する取得ステップと、
前記取得ステップにより取得した状態情報に基づいて、前記コンピュータにおけるメモリの領域情報を学習する学習ステップと、
前記領域情報と、前記コンピュータから取得されるCPUの状態情報とに基づいて、前記コンピュータにおける異常の有無を判定し、異常があると判定した場合に、異常を示す情報を出力する異常判定ステップと
を備えることを特徴とする監視方法。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0046】
100 監視装置
101 学習部
102 監視部
103 異常判定部
200 監視対象装置
201 メモリ
202 CPU
203 コンテキスト格納部
251 ハードウェア
252 ハイパーバイザ
図1
図2
図3
図4
図5
図6
図7
図8