解析システム、解析装置、検知方法、解析方法及びプログラム
【課題】ソフトウェアを実行する実行装置に対する不正なソフトウェアの入力経路を推定する解析システムを提供する。
【解決手段】実行装置100において、感染原因機能の動作履歴を記録(S113)し、実行中の監視対象プログラムの挙動情報を取得(S115)し、監視対象プログラムを正常に実行させた場合の挙動モデル情報に挙動情報が適合しない場合(S116でYES)に、不正なソフトウェアの入力経路に該当する条件を満たした感染原因機能と動作履歴に関する情報を含む異常機能情報を解析装置200に出力(S119)する。解析装置200は、各異常機能情報内の感染原因機能毎に動作履歴に関する情報を集計(S213)し、集計結果に基づいて感染原因機能を順位付け(S214)て感染経路危険度情報を出力(S215)する。
【解決手段】実行装置100において、感染原因機能の動作履歴を記録(S113)し、実行中の監視対象プログラムの挙動情報を取得(S115)し、監視対象プログラムを正常に実行させた場合の挙動モデル情報に挙動情報が適合しない場合(S116でYES)に、不正なソフトウェアの入力経路に該当する条件を満たした感染原因機能と動作履歴に関する情報を含む異常機能情報を解析装置200に出力(S119)する。解析装置200は、各異常機能情報内の感染原因機能毎に動作履歴に関する情報を集計(S213)し、集計結果に基づいて感染原因機能を順位付け(S214)て感染経路危険度情報を出力(S215)する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正なソフトウェアの入力経路を推定する技術に関する。
【背景技術】
【0002】
ウィルス、ワーム、スパイウェア等の不正なソフトウェアプログラムは、マルウェアと総称されている。このマルウェアの挙動を自動解析するマルウェア挙動解析システムが下記特許文献1に開示されている。この特許文献1のマルウェア挙動解析システムは、マルウェアを実行する実行端末とマルウェアの挙動に関するログデータを解析するダミーサーバとを擬似インターネット環境で接続して構成し、実行端末においてマルウェアがAPI呼び出しを行う毎にAPI呼び出しログを収集してダミーサーバに送信し、ダミーサーバにおいては、マルウェア実行端末からのサーバアクセスに関するアクセスログやパケットログを収集する。ダミーサーバは、実行端末からのログと、自身が収集したログ及びビヘイビア定義ファイルとに基づいてマルウェアの振る舞いを抽出する。また、悪意のあるコードの実行を検知するための具体的な方法として、例えばプロセスがカーネルに対して処理を依頼する際に行う命令であるシステムコールの発行順の正当性を検証する方法(例えば、非特許文献1)や、システムコール発行時のコールスタックの状況を検証するもの(例えば、非特許文献2及び特許文献2)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−334536号公報
【特許文献2】特開2007−179131号公報
【非特許文献1】S. Forrest et al, "Intrusion Detection using Sequences of System Calls", Journal of Computer Security Vol. 6, pp.151-180, 1998
【非特許文献2】H.Feng, "Anomaly Detection Using Call Stack Information", The proc. of IEEE Symposium on Security and Privacy, pp.62, 2003
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、マルウェアに対する対応策としては、そのマルウェアに感染したことを検知することに加え、どのような経路でマルウェアに感染したかを知ることが必要であるが、上述した従来技術では、感染経路を特定することは困難である。
【0005】
本発明は、ソフトウェアを実行する実行装置に対する不正なソフトウェアの入力経路を推定することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る解析システムは、 監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置と、当該実行装置に対する不正なソフトウェアの入力経路について解析する解析装置とを備え、各々の前記実行装置は、前記監視対象ソフトウェアを実行する実行手段と、前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、前記動作履歴解析手段により特定された前記機能と、当該機能の動作履歴に関する情報とを、前記解析装置に通知する通知手段とを備え、前記解析装置は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える。
【発明の効果】
【0007】
本発明によれば、ソフトウェアを実行する実行装置に対する不正なソフトウェアの入力経路を推定することができる。
また、前記実行装置において、前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つを前記機能毎に集計し、その集計結果が閾値を超えている前記機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定することととしてもよい。
【0008】
また、前記実行装置において、前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の前記集計結果が前記閾値を超えていることを示すフラグ情報を通知し、前記解析装置において、前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記フラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行うこととしてもよい。
【0009】
また、前記実行装置において、前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つが閾値を超えるたびに、当該機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定し、前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の回数又は動作の期間が前記閾値を超えていることを示すフラグ情報を前記解析装置に通知し、前記解析装置において、前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報が含まれるフラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行うこととしてもよい。
【0010】
また、本発明に係る解析装置は、監視対象となるソフトウェアである監視対象ソフトウェアを実行する実行手段と、前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、前記動作履歴解析手段により特定された前記機能の前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える。
【0011】
また、本発明に係る検知方法は、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する実行装置が行う不正なソフトウェアの検知方法であって、当該実行装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップとを有する。
【0012】
また、本発明に係る解析方法は、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析する解析装置が行う解析方法であって、前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップとを有する。
【0013】
また、本発明に係るプログラムは、監視の対象となるソフトウェアである監視対象ソフトウェアを実行するコンピュータに、当該コンピュータの外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップとを実行させる。
【0014】
また、本発明に係るプログラムは、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析するコンピュータに、前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップとを実行させる。
【図面の簡単な説明】
【0015】
【図1】実施形態に係るソフトウェア解析システムの構成図である。
【図2】実施形態における実行装置100の構成を示すブロック図である。
【図3】(a)は、実施形態のログ情報の例を示す図である。(b)は、実施形態の閾値テーブルの例を示す図である。(c)は、実施形態の挙動モデル情報の例を示す図である。
【図4】実施形態の実行装置100の機能ブロック図である。
【図5】実施形態の異常機能情報80の例を示す図である。
【図6】実施形態の解析装置200の構成図である。
【図7】実施形態の解析装置200の機能ブロック図である。
【図8】実施形態の感染経路危険度情報の例を示す図である。
【図9】実施形態の実行装置100及び解析装置200の動作フロー図である。
【図10】変形例に係るログ情報の例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態に係るソフトウェア解析システムについて説明する。以下の説明において、ソフトウェアプログラムとは、コンピュータプログラムやデータの総称である。
<実施形態>
<構成>
図1は、本実施形態に係るソフトウェア解析システムの構成例を示す図である。ソフトウェア解析システム1は、複数の実行装置100a〜100c(以下、各々の実行装置を区別する必要がない場合には、実行装置100と言う)と解析装置200とで構成され、実行装置100と解析装置200は、LAN(Local Area Network)、WAN(World Area Network)、インターネット等のネットワークを介して接続されている。
【0017】
本実施形態では、監視対象となるソフトウェアプログラム(以下、監視対象プログラムと言う)が実行装置100において実行される。この実行装置100には、電子メールの送受信機能やBluetooth(登録商標)規格に従った通信機能等のように、実行装置100の外部から提供される情報を取得可能な機能が複数設けられている。これらの機能を介して実行装置100に対し外部からウィルスなどが入力され、実行装置100そのもの又はこの実行装置100内の監視対象ソフトウェアがウィルスに感染することになる。そこで、このようなウィルス感染の入力経路となりうる機能を、以下では、感染原因機能と言う。ウィルスに感染することよって監視対象ソフトウェアの挙動が異常となったと判定された場合には、その判定結果が実行装置100から解析装置200に通知される。解析装置200は、その通知に応じて、実行装置100における感染原因機能の動作履歴に基づき、ウィルス感染経路(つまり実行装置100に対してウィルスが入力された経路)を推定する。以下、実行装置100と解析装置200の詳細について説明する。
【0018】
<実行装置100の構成>
図2は、実行装置100の構成を示すブロック図である。実行装置100は、携帯電話機、パーソナルコンピュータ、又はPDA(Personal Digital Assistants)等で実現され、以下の各部を含んで構成されている。
CPU110は、ROM(Read Only Memory)111又は後述の記憶部113に記憶されている監視対象プログラムを含む各種プログラムを、RAM(Random Access Memory)112をワークエリアとして実行することによって、CPU110に接続されている各部を制御する。実行装置100は、例えばWindows(登録商標)系のOS(Operating System)を用いており、各プログラムはこのOSのAPI(Application Program Interface)を介して外部割込みや内部割込みを行い、割込み種別に応じた各処理を行う。なお、OSは、Windows系OSに限らず、Linux等のUnix(登録商標)系の任意のOSを用いてもよい。
【0019】
記憶部113は、ハードディスク等の不揮発性記憶媒体で構成されており、監視対象プログラム、この監視対象プログラムの挙動が異常か否か判断するための検知プログラムや、電子メール用プログラム(不図示)等のアプリケーションソフトウェアプログラムを記憶している。また、記憶部113は、感染原因機能のログ情報、このログ情報に対する閾値が記述された閾値テーブル、及び挙動モデル情報等の各種データを記憶している。監視対象プログラムの挙動とは、CPU110がその監視対象プログラムに記述された手順に従って処理を行うときの、そのCPU110による処理内容のことである。
【0020】
入力部114は、キーボードやマウス等を含んで構成されており、ユーザからの入力操作を受付け、入力操作に応じた入力信号をCPU110へ供給する。表示部115は、液晶等のディスプレイで構成されており、実行装置100を起動した際の画面や各プログラムにより規定されている画面等、各種画像を表示する。ネットワーク通信部116は、CPU110の制御の下、ネットワークを介して接続された解析装置200との間でデータ通信を行う。外部メモリ接続部117は、USB(Universal Serial Bus)メモリやSDメモリカード等の外部メモリを接続するコネクタを有し、コネクタに接続された外部メモリとの間でデータの受け渡しを行う。Bluetooth(登録商標)通信部118は、Bluetooth(登録商標)規格に対応した機器との間で通信を確立し、当該機器との間でデータの送受信を行う。
【0021】
次に、記憶部113に記憶されているデータについて説明する。
図3(a)は、ログ情報の一例を示している。ログ情報50は、外部メモリ接続部117、Bluetooth(登録商標)通信部118及び入力部114が実現する各機能や、電子メール用プログラムが実行されることで実現されるメール送受信機能といった、各感染原因機能における動作履歴を表す情報であり、例えば、各々の感染原因機能による動作の回数又は動作の期間が含まれている。
例えば、図3(a)に示す「メール送受信」の機能に関しては、電子メール用プログラムを実行して送受信された送信メールの送信日時及び受信メールの受信日時がログ情報として記憶される。本実施形態では、ログ情報50の種別は2種類あり、ここでは、送信メールの送信日時がログ種別1で、受信メールの受信日時がログ種別2である。「送信日時」の記録数が集計されることにより、「メール送受信」の機能による電子メールの送信回数が特定される。なお、メールの受信日時としては、全ての受信メールの受信日時を記憶するようにしてもよいし、電子メールのアドレス帳に登録されていないアドレスからの電子メールの受信日時のみを記録するようにしてもよい。
【0022】
また、「Bluetooth(登録商標)」の機能に関しては、Bluetooth(登録商標)の規格に従って通信が行われた日時と、Bluetooth(登録商標)の規格に従って連続して通信可能となっている状態(以下、連続ON時間と言う)の時間がログ情報として記憶される。Bluetooth(登録商標)規格による通信(以下、Bluetooth(登録商標)通信と言う)を介して感染する“cabir”等のウィルスは、Bluetooth(登録商標)通信が長時間連続して可能になっている場合に感染しやすいため、連続ON時間は感染経路を特定する際の有用な情報となる。
【0023】
また、「外部メモリ」の機能に関しては、外部メモリ接続部117に外部メモリが着脱された着脱日時と、外部メモリとの間でアクセスが行われたアクセス日時がログ情報として記憶される。外部メモリは、実行装置100以外の他の機器で使用されることがあり、他の機器においてウィルスに感染したファイルが記憶された状態の外部メモリを実行装置100に接続して使用した場合には、実行装置100がウィルスに感染する可能性があるため、外部メモリの着脱頻度が多いほどウィルスに感染する可能性が高くなる。また、「キーボード入力」の機能に関しては、記号を連続して所定文字数以上入力する操作が行われた日時、及び所定回数以上の同一キー連続操作が行われた日時がログ情報として記憶される。このキーボードにおける入力操作によって、実行装置100にウィルスが入力される可能性もある。
【0024】
図3(b)は、閾値テーブルの一例を示している。同図に示すように、閾値テーブル60には、予め定められた所定期間分の図3(a)のログ情報50をログ種別1・2毎に集計した結果に対する閾値が記憶されている。ログ情報50を集計した結果がこの閾値を超えた場合、そのログ情報に対応する感染原因機能が頻繁に使用されたことを意味するから、その感染原因機能がウィルスの感染経路に該当する可能性は高い。つまり、閾値を超えるようなログ情報の集計結果は、ウィルスの入力経路に該当する条件を満たす動作履歴と言える。
【0025】
図3(c)は、挙動モデル情報の一例を示している。挙動モデル情報70は、監視対象プログラム30を正常に実行した場合の挙動を表す挙動情報であり、ここでは、監視対象プログラム30から呼び出されるシステムコールの列をモデル化した情報である。本実施形態では、挙動モデル情報70は記憶部113に予め記憶されているものとして説明を行うが、外部から挙動モデル情報70を取得して記憶部113に記憶するようにしてもよい。具体的には、挙動モデル情報70には、監視対象プログラム30を識別するプログラムIDと、システムコールの種別と、そのシステムコールの呼び出し順とが含まれている。同図の例において、プログラムID“001”の監視対象プログラム30を正常に動作させた場合のシステムコールの呼び出し順は、システムコールA→B→A→C・・・となる。本実施形態においては、説明の便宜上、監視対象プログラム30は1つであるものとして説明を行うが、複数の監視対象プログラム30がある場合には、各々の監視対象プログラム30について挙動モデル情報70が記憶されている。そして、上記のように記憶されている挙動モデルのシステムコール列と、監視対象プログラム30を実行させたときのシステムコール列とが適合するか否かが判断されることにより、監視対象プログラム30の挙動が異常か否かが判断される。
【0026】
次に、図4を用いて、本実施形態における実行装置100の機能の説明を行う。実行装置100においては、CPU110が記憶部113に記憶されている検知プログラムを読み出して実行することにより、図4に示す、プログラム実行部11、ログ記録部12、挙動情報取得部13、異常判定部14、ログ解析部15、及び異常通知部16の各機能が実現される。
プログラム実行部11は、OSの機能を含んでおり、記憶部113に記憶されている監視対象プログラム30を遂次読み出して実行する。本実施形態は、シングルプロセッサで構成されているため、プログラム実行部11が、監視対象プログラム30以外に、検知プログラムや他のアプリケーションプログラムの実行制御も行うが、マルチプロセッサで構成されている場合には、プログラム毎にプログラム実行部11を設けるようにしてもよい。
【0027】
ログ記録部12は、OS40を介して上述した感染原因機能のログ種別1・2の動作履歴を遂次取得し、記憶部113にログ情報50として記憶する。
挙動情報取得部13は、検知プログラムの起動後に、OS40で用意されているシステムコールをフックするフック処理を行い、監視対象プログラム30からAPIを介して呼び出したシステムコールの種別を順次取得し、取得したシステムコールの種別を監視対象プログラムの挙動情報として異常判定部14に供給する。
【0028】
ここで、システムコールのフック処理について説明する。本実施形態の検知プログラムは、OSの起動と同時に起動し、特権モードで動作するデバイスドライバを含んで構成されている。このデバイスドライバにより、システムコールの入口の命令、例えば、システムコールのアドレス等が配列されたテーブルから該当するシステムコールのアドレスを特定し、該当するシステムコールに制御を移行する命令を、システムコールをフックするコードが記述されたフック処理ルーチンにジャンプする命令に書き換えられる。この書き換えによって、フック処理ルーチンが実行され、監視対象プログラム30から呼び出したシステムコールが取得される。なお、フック処理ルーチンの実行により、命令の書き換え前に元の命令が保存され、フック処理ルーチンに移行した後の最初にレジスタ群の値を保存される。そして、フック処理ルーチンの最後に、呼び出し元の監視対象プログラム30のアドレスが、戻しアドレス用として予め設定されたレジスタに設定され、保存した命令とレジスタ群の値を書き戻す処理が行われ、監視対象プログラム30から呼び出された本来のシステムコールの処理に制御が移行される。
【0029】
異常判定部14は、挙動情報取得部13から供給された挙動情報と記憶部113に記憶されている挙動モデル情報70とを照合し、挙動モデル情報70に含まれるシステムコール列の順にシステムコールが呼び出されていない場合には監視対象プログラムが異常であると判断し、その判断結果をログ解析部15へ供給する。この異常であるか否かの判断は、本実施形態においては、挙動情報、即ちシステムコールを取得する毎に行う。
【0030】
ログ解析部15は、異常判定部14から異常である旨の判断結果を受付けた場合に、ウィルスに感染経路の可能性のある感染原因機能を特定する。具体的には、ログ解析部15は、記憶部113に記憶されているログ情報50のうち、所定期間分のログ情報をログ種別1・2 (以下、ログ種別1・2を特に区別しない場合にはログ種別と言う)について集計する。なお、図3(a)の各感染原因機能のログ種別毎にログ情報50が集計されることにより得られる集計内容は、図3(c)に示す各感染原因機能のログ集計種別1・2の各々で示される内容である。例えば、メールの機能の場合には、ログ種別1「送信日時」の記録数が集計されることによりログ集計種別1「送信件数」が求められ、ログ種別2「受信日時」の記録数が集計されることによりログ集計種別2「受信件数」が求められる。そして、ログ解析部15は、上記した集計結果が記憶部113に記憶されている閾値テーブル60の閾値を超えているログ集計種別1・2(以下、ログ集計種別1・2を区別しない場合にはログ集計種別と言う)に対応する感染原因機能を特定する。つまり、このとき特定された感染原因機能は、ウィルスの入力経路に該当する条件を満たす動作履歴が記録されている感染原因機能と言える。そして、ログ解析部15は、特定した感染原因機能のログ集計種別と、ログ集計種別毎の集計結果とを異常通知部16へ供給する。なお、異常が検知された後もユーザは実行装置100を継続して利用しているため、上記所定期間は、例えば、異常が検知された異常検知時点より前の一定期間や、異常検知時点より後の一定期間でもよいし、異常検知時点の前後一定期間であってもよく、ログ情報50の最小記録単位以上であればどのような期間であってもよい。
【0031】
異常通知部16は、異常判定部14から集計されたログ情報50を受付け、図5に示すように、閾値を超えている各感染原因機能の各ログ集計種別に対するフラグを1、閾値を超えていない各ログ集計種別に対するフラグを0に設定し、監視対象プログラム30のプログラムIDと対応付けた異常機能情報80を生成する。つまり、このフラグ情報は、ログ情報の集計結果が閾値を超えることを表すフラグ情報であり、感染原因機能の動作履歴に関する情報である。そして、異常通知部16は、生成した異常機能情報80をネットワーク通信部116を介して解析装置200へ送信する。これにより、感染原因機能の動作履歴に関する情報が、解析装置200に通知されることになる。
【0032】
<解析装置200の構成>
図6は、解析装置200の構成を示すブロック図である。解析装置200は、パーソナルコンピュータやサーバ装置等で実現され、以下の各部を含んで構成されている。
CPU210は、ROM211や後述する記憶部213に記憶されているプログラムを、RAM212をワークエリアとして実行することによって、CPU210に接続されている各部を制御する。記憶部213は、ハードディスク等の不揮発性記憶媒体で構成されており、実行装置100から送信された異常機能情報80などの各種データや制御プログラムを記憶している。入力部214は、キーボードやマウス等を含んで構成されており、ユーザからの入力操作を受付け、入力操作に応じた入力信号をCPU210へ供給する。表示部215は、液晶等のディスプレイで構成されており、解析装置200を起動した際の画面や制御プログラムにより規定されている画面等、各種画像を表示する。ネットワーク通信部216は、CPU210の制御の下、ネットワークを介して接続された実行装置100との間でデータ通信を行う。
【0033】
次に、解析装置200の機能について図7を用いて説明する。図7において、解析装置200のCPU210が記憶部213に記憶されている制御プログラムを読み出して実行することにより、情報抽出部21及び危険解析部22の機能が実現される。情報抽出部21は、ネットワーク通信部216を介して実行装置100から受信した異常機能情報80に含まれている各監視対象プログラムのフラグを感染原因機能毎に抽出し、抽出した各監視対象プログラムの感染原因機能毎のフラグを危険解析部22へ供給する。危険解析部22は、情報抽出部21から供給された各監視対象プログラムの感染原因機能毎のフラグを受け取り、各監視対象プログラムの感染原因機能毎のフラグの数を集計する。そして、感染原因機能毎の集計結果の降順で順位付けを行い、順位付けた結果を、実行装置100に対するウィルスの入力経路の危険度合を示す感染経路危険度情報として図8に示すようにして表示部215に表示する。図8の例では、Bluetooth通信に関する機能が、ウィルスの感染経路に該当する可能性が最も高く、キーボード入力に関する機能が、ウィルスの感染経路に該当する可能性が最も低いことを意味している。なお、フラグの集計値が同値である感染原因機能がある場合には、予め定めた感染原因機能の優先順位に従って順位付けを行うようにしてもよいし、ユーザが任意に選択して順位付けを行うようにしてもよい。
【0034】
(動作)
次に、ソフトウェア解析システム1の動作について説明する。図9は、実行装置100の動作フロー図である。実行装置100において、ユーザにより電源がONにされると、CPU110は、記憶部113のブートセクタを読み込んでOSを起動し(ステップS111)、記憶部113に記憶されている検知プログラムを読み出して起動し、システムコールの入口の命令をRAM112に保存してフック処理ルーチンのアドレスにジャンプする命令に書き換える(ステップS112)。次に、CPU110は、各感染原因機能のログ情報50の記録を開始し(ステップS113)、OSと検知プログラムが起動した後に、ユーザが、入力部114を介して監視対象プログラム30を実行する操作を行うと、CPU110は、記憶部113に記憶されている監視対象プログラム30を読み出して実行する(ステップS114)。
【0035】
CPU110は、ユーザが入力部114を介して行う操作に応じて、監視対象プログラム30に従った各処理を行い、監視対象プログラム30からシステムコールが呼び出される毎に、フック処理ルーチンを実行して現在のレジスタ値をRAM112に保存してシステムコールをフックし、フックしたシステムコールの種別を示す挙動情報をRAM112に順次記憶する(ステップS115)。なお、CPU110は、フック処理ルーチンの最後に、監視対象プログラム30のアドレスを戻しアドレス用レジスタに設定し、保存した命令とレジスタ値とを書き戻して本来のシステムコールの処理を行う。
【0036】
CPU110は、ステップS116においてRAM112に順次記憶された挙動情報を読み出し、記憶部113に記憶されている挙動モデル情報70と照合する(ステップS116)。CPU110は、取得した挙動情報のシステムコール列が挙動モデル情報70で示されるシステムコール列の順に含まれていなければ(ステップS116:NO)、監視対象プログラム30が異常であると判定し、記憶部113に遂次記録されているログ情報50を読み出し、所定期間分の各感染原因機能のログ情報50をログ種別毎に集計する(ステップS117)。なお、この所定期間が、異常であると判定された判定時点後の一定期間である場合や、判定時点を含む前後一定期間である場合には、判定時点の時刻情報を記憶部113の所定領域に記憶しておき、判定時点から一定期間が経過したときにステップS117以下の処理を行う。また、所定期間が判定時点以前の一定期間である場合には、ステップS117に続いて以下の処理を行う。
【0037】
CPU110は、記憶部113に記憶されている閾値テーブル60を読み出し、各感染原因機能のログ種別毎に集計されたログ情報50について、閾値を超えているか否か判断する (ステップS118)。CPU110は、各感染原因機能について集計されたログ情報50が閾値を超えていると判断した場合には(ステップS118:YES)、閾値を超えている感染原因機能のログ集計種別のフラグを1に設定し、閾値を超えていないログ集計種別のフラグを0に設定して異常機能情報80を生成し、ネットワーク通信部116を介して解析装置200へ送信する(ステップS119)。
【0038】
なお、ステップS116において、CPU110は、取得した挙動情報のシステムコール列が挙動モデル情報70で示されるシステムコール列の順序で含まれていると判断した場合には(ステップS116:YES)、実行中の監視対象プログラム30が終了するまでステップS115以下の処理を繰り返し行う(ステップS120:NO)。そして、監視対象プログラム30が終了した場合(ステップS120:YES)、CPU110は、ユーザによって実行装置100の電源がオフにされるまで各感染原因機能のログ情報50の記録を継続して行い(ステップ121:NO)、電源がオフにされたときに(ステップS121:YES)、ログ情報50の記録を終了して検知プログラムを終了する(ステップS122)。
また、ステップS118において、CPU110は、感染原因機能毎に集計されたログ情報50が閾値を超えていなければ(ステップS118:NO)、ステップS120以下の処理を行う。
【0039】
次に、解析装置200の動作について説明する。CPU210は、ネットワーク通信部216を介して実行装置100から各監視対象プログラム30の異常機能情報80を受信すると(ステップS211)、監視対象プログラム30毎に、異常機能情報80に含まれている各感染原因機能のフラグデータを抽出する(ステップS212)。そして、CPU210は、抽出した各監視対象プログラム30の感染原因機能のフラグデータを感染原因機能毎に集計し(ステップS213)、各監視対象プログラム30の集計結果の降順で感染原因機能に順位付けを行う(ステップS214)。CPU214は、ステップS214で順位付けた順位が高いほど感染経路の危険度が高いものとして表した感染経路危険度情報90を生成して表示部215に表示する(ステップS215)。
【0040】
上記実施形態では、ユーザを含め異なる実行環境下におかれた実行装置100毎に各監視対象プログラムを実行させて、監視対象プログラム30が異常であるか否か判断し、異常である場合には、各実行装置100において記録されている感染原因機能について集計したログ情報のうち閾値を超えている機能か否かを示す異常機能情報80を解析装置200へ通知することができる。また、解析装置200では、各実行装置100からの通知を集計することにより、ウィルスの感染経路の危険度を推定することができる。これにより、特に、未知のウィルス感染による監視対象プログラムの挙動に関する情報を幅広く収集することができる。また、ウィルスの種類に応じて感染経路が異なる場合があるが、その場合であっても、ウィルスの感染経路として考えられる感染原因機能の危険度合を順位で示すことができるので、ウィルスを特定した場合にどの機能が感染経路として危険であるかを確認することができ、ウィルスの特性を更に解析する場合やウィルスを除去する場合の対策が取りやすくなる。
【0041】
<変形例>
以下、本発明の変形例について説明する。
(1)上述した実施形態では、実行装置100において、監視対象プログラム30が異常であると判断された場合、所定期間分の感染原因機能毎のログ情報50を集計した結果が閾値を超えている感染原因機能を特定し、異常機能情報80を解析装置200へ通知する例であったが、以下のように構成してもよい。例えば、実行装置100のCPU110は、各感染原因機能の所定期間分のログ情報50を一定期間単位に累計し、累計値が閾値を超える毎に、実施形態と同様に、各感染原因機能のログ種別毎のフラグデータを含む異常機能情報80を解析装置200へ通知し、解析装置200において、実施形態と同様に、通知された異常機能情報80を感染原因機能毎に集計して順位付けを行うようにしてもよい。
【0042】
(2)また、上述した実施形態では、異常機能情報80として感染原因機能のログ集計種別毎に設定されたフラグデータを解析装置200へ出力する例であったが、実行装置100のCPU110は、異常機能情報80として、閾値を超えていると判断されたログ情報50の集計結果を出力してもよいし、上記変形例(1)のように一定期間単位に累計した累計値が閾値超えたか否かを判断する場合には、閾値を超えた各感染経路機能の回数を異常機能情報80として出力するようにしてもよい。
【0043】
(3)また、上述した実施形態では、実行装置100は、所定期間分のログ情報50を集計した集計結果が閾値を超えている感染原因機能を特定する例であったが、例えば、実行装置100のCPU110は、所定期間内において2つの期間を設定し、各期間における感染原因機能毎のログ情報50の累計値を求め、各期間の累計値の増加率が所定の閾値以上である感染原因機能を特定するように構成してもよい。
【0044】
(4)また、上述した実施形態では、実行装置100は、監視対象プログラム30の挙動が異常であると判断した場合に、閾値を超えている感染原因機能を特定するものとして説明したが、以下のように構成してもよい。実行装置100において、CPU110は、監視対象プログラム30の挙動が異常であると判断した場合に、所定期間分の感染原因機能のログ情報50を解析装置200に送信する。そして、解析装置200において閾値テーブル60を予め記憶しておき、実行装置100から送信されたログ情報50を用いて閾値を超えている感染原因機能を特定するようにしてもよい。
【0045】
(5)上述した実施形態では、解析装置200が複数の実行装置100から受信した異常機能情報80に基づいて感染原因機能の順位付けを行う構成であったが、各実行装置100の異常機能情報80から実行装置100毎に感染原因機能の順位付けを行うようにしてもよい。この場合には、その異常機能情報80の順位付けを行った感染経路危険度情報を解析装置200が各実行装置100に送信するように構成してもよい。
【0046】
(6)上述した実施形態では、実行装置100における閾値テーブル60は共通であるものとして説明したが、実行装置100毎に異なる閾値テーブル60を設定するようにしてもよい。また、各実行装置100のログ情報50に基づいて、各感染原因機能のログ種別毎に求めた平均値等を各感染原因機能のログ種別毎の閾値として設定するようにしてもよい。また、1日単位で各感染原因機能のログ種別毎のログ情報50を集計する場合には、休日と平日とで異なる閾値を設定する等、任意に閾値を設定するように構成してもよい。
【0047】
(7)上述した実施形態では、異常機能情報80には閾値を超えていない感染原因機能の情報も含むものとして説明したが、閾値を超えている感染原因機能と、その感染原因機能のログ種別毎に集計されたログ情報50、その感染原因機能のフラグデータ、その感染原因機能を示す情報のいずれかを異常機能情報80として送るようにしてもよいし、これらを組み合わせて異常機能情報80に含ませてもよい。
【0048】
(8)上述した実施形態では、実行装置100において監視対象プログラム30が異常であると判断されたときに、所定期間分の各感染原因機能のログ情報50を集計するものとして説明したが、予め一定の時間又は日単位にログ情報50をログ種別毎に累計した累計値を動作履歴として記憶するように構成してもよい。
【0049】
(9)また、上述した実施形態では、実行装置100は、挙動モデル情報70として、システムコール列をモデル化したものを記憶している例であったが、監視対象プログラムにおけるサブルーチンが呼び出されたときのコールスタック内のリターンアドレスの列をモデル化して記憶するようにしてもよい。この場合には、実行装置100において、監視対象プログラムを実行させた場合におけるサブルーチン呼び出し時にコールスタックの列を挙動情報として取得し、実施形態と同様に監視対象プログラム30のプログラムIDと対応づけて記憶するように構成する。
【0050】
(10)また、上述した実施形態では、実行装置100において、システムコールの入口の命令をフック処理ルーチンに制御を移行する命令に書き換えてシステムコールをフックする例であったが、システムコールのフックを以下のようにして行ってもよい。例えば、実行装置100において、ソフトウェア割込み時のジャンプ先としてフック処理ルーチンのアドレスを割込みベクタテーブルに予め設定しておくことによりシステムコールをフックしてもよいし、監視対象プログラム30と本来のdllファイルとの間にシステムコールをフックするためのフック用dllファイルを設け、監視対象プログラム30からのシステムコールの呼び出し要求をフック用dllファイルを介して本来のdllファイルに渡し、フック用dllファイルにより監視対象プログラム30が呼び出したシステムコールを取得してもよい。また、Linux等のUnix系OSの場合には、ptraceのシステムコールを用いて監視対象プログラム30が呼び出したシステムコールをフックするようにしてもよい。
【0051】
(11)また、上述した実施形態では、実行装置100は異常機能情報80を解析装置200へ送信する例であったが、異常機能情報80以外に監視対象プログラム30のバージョンやOS等の動作環境、監視対象プログラム30と同時に起動しているソフトウェア、時間、場所など、感染経路を解析するのに必要な各種情報を適宜送信してもよい。
【0052】
(12)また、上述した実施形態では、実行装置100は、外部メモリ接続機能、Bluetooth(登録商標)通信機能、電子メール送受信機能についてログ情報50を記録するものとして説明したが、実行装置100が、これら以外の機能、例えば、WEBページ閲覧機能、赤外線通信機能、パソコン接続機能、ICチップによる通信機能等を有している場合には、図10に示すように、上記各機能のログ種別1〜3の各ログ情報50'を記憶部113に記録するようにしてもよい。なお、WEBページ閲覧機能におけるログ種別3「非公式ページアクセス日時」は、所定の公式ページに対応する非公式ページのURLを予めユーザにより設定し、設定されている非公式ページがアクセスされた日時を記録するようにする。また、実施形態では、ログ種別は2種類の例について説明したが、実施形態及び上記変形例で示した種類以上でもよいし、1種類であってもよい。
【0053】
(13)また、上述した実施形態の動作フロー(図9)において、実行装置100は、所定期間内のログ情報50を集計した結果のうち閾値を超えている感染原因機能がない場合にはステップS120の処理を移行する(ステップS118:NO)ものとして説明したが、実行装置100は、ユーザから新たに所定期間を入力する操作を入力部114を介して受付けた場合には、入力された所定期間内のログ情報50を集計してステップS118以下の処理を行うようにしてもよい。
【0054】
(14)上述した実施形態では、実行装置100における挙動モデル情報70は、監視プログラム30を正常な状態で実行させた場合におけるシステムコール列の情報を予め記憶するものとして説明したが、正常ではないパターンのシステムコール列の情報を挙動モデル情報70として予め記憶するようにしてもよいし、外部から取得するようにしてもよい。この場合には、実行装置100は、監視プログラム30の実行中に取得した挙動情報が挙動モデル情報70で示されるシステムコール列の順に含まれていれば、監視プログラム30は異常であると判断し、挙動情報が挙動モデル情報70で示されるシステムコール列の順に含まれていなければ、監視プログラム30は正常であると判断するようにする。
また、挙動モデル情報70は、監視プログラム30のソースコードを解析してシステムコール列をモデル化したものを予め記憶するように構成してもよい。
【0055】
(15)上述した実施形態では、監視プログラム30を正常な状態で実行させた場合の挙動モデル情報70と、監視プログラム30の実行中に取得した挙動情報とを照合するものとして説明したが、既知のウィルスの挙動パターンと組み合わせて挙動情報を照合するようにしてもよい。
この場合には、実行装置100において、既知のウィルスの挙動パターンを示すウィルスパターン情報を記憶部113に記憶しておく。そして、実行装置100において、実施形態と同様に挙動情報と挙動モデル情報70とを照合し、監視プログラム30が異常であると判断した場合に、取得した挙動情報とウィルスパターン情報とを照合してウィルスパターンと一致した場合には、一致したウィルスパターンの情報を異常機能情報80と共に解析装置200へ出力し、一致しなかった場合には異常機能情報80だけを解析装置200へ出力するようにしてもよい。
(16)また、上述した実施形態では、各実行装置100において異常を検知した場合に解析装置200に異常機能情報80を送信し、解析装置200において異常機能情報を集計して感染原因機能について順位付けを行う例であったが、各実行装置100において、自装置における異常機能情報80に対し解析装置200と同様に感染原因機能毎にフラグの集計を行い、感染原因機能の順位付けを行うように構成してもよいし、順位づけた結果を解析装置200へ送信するようにしてもよい。
【0056】
(17)上述の実施形態における実行装置100及び解析装置200のCPU110及びCPU210によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどのコンピュータが読取可能な記録媒体に記憶した状態で提供し得る。また、インターネットのようなネットワーク経由で実行装置100及び解析装置200にダウンロードさせることも可能である。なお、このような制御を行う制御手段としてはCPU以外にも種々の装置を適用することができ、例えば、専用のプロセッサなどを用いてもよい。
【符号の説明】
【0057】
1・・・ソフトウェア解析システム、11・・・プログラム実行部、12・・・ログ記録部、13・・・挙動情報取得部、14・・・異常判定部、15・・・ログ解析部、16・・・異常通知部、21・・・情報抽出部、22・・・危険解析部、100・・・実行装置、110,210・・・CPU、113,213・・・記憶部、114,214・・・入力部、115,215・・・表示部、116,216・・・ネットワーク通信部、117・・・外部メモリ接続部、118・・・Bluetooth(登録商標)通信部、200・・・解析装置。
【技術分野】
【0001】
本発明は、不正なソフトウェアの入力経路を推定する技術に関する。
【背景技術】
【0002】
ウィルス、ワーム、スパイウェア等の不正なソフトウェアプログラムは、マルウェアと総称されている。このマルウェアの挙動を自動解析するマルウェア挙動解析システムが下記特許文献1に開示されている。この特許文献1のマルウェア挙動解析システムは、マルウェアを実行する実行端末とマルウェアの挙動に関するログデータを解析するダミーサーバとを擬似インターネット環境で接続して構成し、実行端末においてマルウェアがAPI呼び出しを行う毎にAPI呼び出しログを収集してダミーサーバに送信し、ダミーサーバにおいては、マルウェア実行端末からのサーバアクセスに関するアクセスログやパケットログを収集する。ダミーサーバは、実行端末からのログと、自身が収集したログ及びビヘイビア定義ファイルとに基づいてマルウェアの振る舞いを抽出する。また、悪意のあるコードの実行を検知するための具体的な方法として、例えばプロセスがカーネルに対して処理を依頼する際に行う命令であるシステムコールの発行順の正当性を検証する方法(例えば、非特許文献1)や、システムコール発行時のコールスタックの状況を検証するもの(例えば、非特許文献2及び特許文献2)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−334536号公報
【特許文献2】特開2007−179131号公報
【非特許文献1】S. Forrest et al, "Intrusion Detection using Sequences of System Calls", Journal of Computer Security Vol. 6, pp.151-180, 1998
【非特許文献2】H.Feng, "Anomaly Detection Using Call Stack Information", The proc. of IEEE Symposium on Security and Privacy, pp.62, 2003
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、マルウェアに対する対応策としては、そのマルウェアに感染したことを検知することに加え、どのような経路でマルウェアに感染したかを知ることが必要であるが、上述した従来技術では、感染経路を特定することは困難である。
【0005】
本発明は、ソフトウェアを実行する実行装置に対する不正なソフトウェアの入力経路を推定することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る解析システムは、 監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置と、当該実行装置に対する不正なソフトウェアの入力経路について解析する解析装置とを備え、各々の前記実行装置は、前記監視対象ソフトウェアを実行する実行手段と、前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、前記動作履歴解析手段により特定された前記機能と、当該機能の動作履歴に関する情報とを、前記解析装置に通知する通知手段とを備え、前記解析装置は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える。
【発明の効果】
【0007】
本発明によれば、ソフトウェアを実行する実行装置に対する不正なソフトウェアの入力経路を推定することができる。
また、前記実行装置において、前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つを前記機能毎に集計し、その集計結果が閾値を超えている前記機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定することととしてもよい。
【0008】
また、前記実行装置において、前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の前記集計結果が前記閾値を超えていることを示すフラグ情報を通知し、前記解析装置において、前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記フラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行うこととしてもよい。
【0009】
また、前記実行装置において、前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つが閾値を超えるたびに、当該機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定し、前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の回数又は動作の期間が前記閾値を超えていることを示すフラグ情報を前記解析装置に通知し、前記解析装置において、前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報が含まれるフラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行うこととしてもよい。
【0010】
また、本発明に係る解析装置は、監視対象となるソフトウェアである監視対象ソフトウェアを実行する実行手段と、前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、前記動作履歴解析手段により特定された前記機能の前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える。
【0011】
また、本発明に係る検知方法は、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する実行装置が行う不正なソフトウェアの検知方法であって、当該実行装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップとを有する。
【0012】
また、本発明に係る解析方法は、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析する解析装置が行う解析方法であって、前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップとを有する。
【0013】
また、本発明に係るプログラムは、監視の対象となるソフトウェアである監視対象ソフトウェアを実行するコンピュータに、当該コンピュータの外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップとを実行させる。
【0014】
また、本発明に係るプログラムは、監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析するコンピュータに、前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップとを実行させる。
【図面の簡単な説明】
【0015】
【図1】実施形態に係るソフトウェア解析システムの構成図である。
【図2】実施形態における実行装置100の構成を示すブロック図である。
【図3】(a)は、実施形態のログ情報の例を示す図である。(b)は、実施形態の閾値テーブルの例を示す図である。(c)は、実施形態の挙動モデル情報の例を示す図である。
【図4】実施形態の実行装置100の機能ブロック図である。
【図5】実施形態の異常機能情報80の例を示す図である。
【図6】実施形態の解析装置200の構成図である。
【図7】実施形態の解析装置200の機能ブロック図である。
【図8】実施形態の感染経路危険度情報の例を示す図である。
【図9】実施形態の実行装置100及び解析装置200の動作フロー図である。
【図10】変形例に係るログ情報の例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態に係るソフトウェア解析システムについて説明する。以下の説明において、ソフトウェアプログラムとは、コンピュータプログラムやデータの総称である。
<実施形態>
<構成>
図1は、本実施形態に係るソフトウェア解析システムの構成例を示す図である。ソフトウェア解析システム1は、複数の実行装置100a〜100c(以下、各々の実行装置を区別する必要がない場合には、実行装置100と言う)と解析装置200とで構成され、実行装置100と解析装置200は、LAN(Local Area Network)、WAN(World Area Network)、インターネット等のネットワークを介して接続されている。
【0017】
本実施形態では、監視対象となるソフトウェアプログラム(以下、監視対象プログラムと言う)が実行装置100において実行される。この実行装置100には、電子メールの送受信機能やBluetooth(登録商標)規格に従った通信機能等のように、実行装置100の外部から提供される情報を取得可能な機能が複数設けられている。これらの機能を介して実行装置100に対し外部からウィルスなどが入力され、実行装置100そのもの又はこの実行装置100内の監視対象ソフトウェアがウィルスに感染することになる。そこで、このようなウィルス感染の入力経路となりうる機能を、以下では、感染原因機能と言う。ウィルスに感染することよって監視対象ソフトウェアの挙動が異常となったと判定された場合には、その判定結果が実行装置100から解析装置200に通知される。解析装置200は、その通知に応じて、実行装置100における感染原因機能の動作履歴に基づき、ウィルス感染経路(つまり実行装置100に対してウィルスが入力された経路)を推定する。以下、実行装置100と解析装置200の詳細について説明する。
【0018】
<実行装置100の構成>
図2は、実行装置100の構成を示すブロック図である。実行装置100は、携帯電話機、パーソナルコンピュータ、又はPDA(Personal Digital Assistants)等で実現され、以下の各部を含んで構成されている。
CPU110は、ROM(Read Only Memory)111又は後述の記憶部113に記憶されている監視対象プログラムを含む各種プログラムを、RAM(Random Access Memory)112をワークエリアとして実行することによって、CPU110に接続されている各部を制御する。実行装置100は、例えばWindows(登録商標)系のOS(Operating System)を用いており、各プログラムはこのOSのAPI(Application Program Interface)を介して外部割込みや内部割込みを行い、割込み種別に応じた各処理を行う。なお、OSは、Windows系OSに限らず、Linux等のUnix(登録商標)系の任意のOSを用いてもよい。
【0019】
記憶部113は、ハードディスク等の不揮発性記憶媒体で構成されており、監視対象プログラム、この監視対象プログラムの挙動が異常か否か判断するための検知プログラムや、電子メール用プログラム(不図示)等のアプリケーションソフトウェアプログラムを記憶している。また、記憶部113は、感染原因機能のログ情報、このログ情報に対する閾値が記述された閾値テーブル、及び挙動モデル情報等の各種データを記憶している。監視対象プログラムの挙動とは、CPU110がその監視対象プログラムに記述された手順に従って処理を行うときの、そのCPU110による処理内容のことである。
【0020】
入力部114は、キーボードやマウス等を含んで構成されており、ユーザからの入力操作を受付け、入力操作に応じた入力信号をCPU110へ供給する。表示部115は、液晶等のディスプレイで構成されており、実行装置100を起動した際の画面や各プログラムにより規定されている画面等、各種画像を表示する。ネットワーク通信部116は、CPU110の制御の下、ネットワークを介して接続された解析装置200との間でデータ通信を行う。外部メモリ接続部117は、USB(Universal Serial Bus)メモリやSDメモリカード等の外部メモリを接続するコネクタを有し、コネクタに接続された外部メモリとの間でデータの受け渡しを行う。Bluetooth(登録商標)通信部118は、Bluetooth(登録商標)規格に対応した機器との間で通信を確立し、当該機器との間でデータの送受信を行う。
【0021】
次に、記憶部113に記憶されているデータについて説明する。
図3(a)は、ログ情報の一例を示している。ログ情報50は、外部メモリ接続部117、Bluetooth(登録商標)通信部118及び入力部114が実現する各機能や、電子メール用プログラムが実行されることで実現されるメール送受信機能といった、各感染原因機能における動作履歴を表す情報であり、例えば、各々の感染原因機能による動作の回数又は動作の期間が含まれている。
例えば、図3(a)に示す「メール送受信」の機能に関しては、電子メール用プログラムを実行して送受信された送信メールの送信日時及び受信メールの受信日時がログ情報として記憶される。本実施形態では、ログ情報50の種別は2種類あり、ここでは、送信メールの送信日時がログ種別1で、受信メールの受信日時がログ種別2である。「送信日時」の記録数が集計されることにより、「メール送受信」の機能による電子メールの送信回数が特定される。なお、メールの受信日時としては、全ての受信メールの受信日時を記憶するようにしてもよいし、電子メールのアドレス帳に登録されていないアドレスからの電子メールの受信日時のみを記録するようにしてもよい。
【0022】
また、「Bluetooth(登録商標)」の機能に関しては、Bluetooth(登録商標)の規格に従って通信が行われた日時と、Bluetooth(登録商標)の規格に従って連続して通信可能となっている状態(以下、連続ON時間と言う)の時間がログ情報として記憶される。Bluetooth(登録商標)規格による通信(以下、Bluetooth(登録商標)通信と言う)を介して感染する“cabir”等のウィルスは、Bluetooth(登録商標)通信が長時間連続して可能になっている場合に感染しやすいため、連続ON時間は感染経路を特定する際の有用な情報となる。
【0023】
また、「外部メモリ」の機能に関しては、外部メモリ接続部117に外部メモリが着脱された着脱日時と、外部メモリとの間でアクセスが行われたアクセス日時がログ情報として記憶される。外部メモリは、実行装置100以外の他の機器で使用されることがあり、他の機器においてウィルスに感染したファイルが記憶された状態の外部メモリを実行装置100に接続して使用した場合には、実行装置100がウィルスに感染する可能性があるため、外部メモリの着脱頻度が多いほどウィルスに感染する可能性が高くなる。また、「キーボード入力」の機能に関しては、記号を連続して所定文字数以上入力する操作が行われた日時、及び所定回数以上の同一キー連続操作が行われた日時がログ情報として記憶される。このキーボードにおける入力操作によって、実行装置100にウィルスが入力される可能性もある。
【0024】
図3(b)は、閾値テーブルの一例を示している。同図に示すように、閾値テーブル60には、予め定められた所定期間分の図3(a)のログ情報50をログ種別1・2毎に集計した結果に対する閾値が記憶されている。ログ情報50を集計した結果がこの閾値を超えた場合、そのログ情報に対応する感染原因機能が頻繁に使用されたことを意味するから、その感染原因機能がウィルスの感染経路に該当する可能性は高い。つまり、閾値を超えるようなログ情報の集計結果は、ウィルスの入力経路に該当する条件を満たす動作履歴と言える。
【0025】
図3(c)は、挙動モデル情報の一例を示している。挙動モデル情報70は、監視対象プログラム30を正常に実行した場合の挙動を表す挙動情報であり、ここでは、監視対象プログラム30から呼び出されるシステムコールの列をモデル化した情報である。本実施形態では、挙動モデル情報70は記憶部113に予め記憶されているものとして説明を行うが、外部から挙動モデル情報70を取得して記憶部113に記憶するようにしてもよい。具体的には、挙動モデル情報70には、監視対象プログラム30を識別するプログラムIDと、システムコールの種別と、そのシステムコールの呼び出し順とが含まれている。同図の例において、プログラムID“001”の監視対象プログラム30を正常に動作させた場合のシステムコールの呼び出し順は、システムコールA→B→A→C・・・となる。本実施形態においては、説明の便宜上、監視対象プログラム30は1つであるものとして説明を行うが、複数の監視対象プログラム30がある場合には、各々の監視対象プログラム30について挙動モデル情報70が記憶されている。そして、上記のように記憶されている挙動モデルのシステムコール列と、監視対象プログラム30を実行させたときのシステムコール列とが適合するか否かが判断されることにより、監視対象プログラム30の挙動が異常か否かが判断される。
【0026】
次に、図4を用いて、本実施形態における実行装置100の機能の説明を行う。実行装置100においては、CPU110が記憶部113に記憶されている検知プログラムを読み出して実行することにより、図4に示す、プログラム実行部11、ログ記録部12、挙動情報取得部13、異常判定部14、ログ解析部15、及び異常通知部16の各機能が実現される。
プログラム実行部11は、OSの機能を含んでおり、記憶部113に記憶されている監視対象プログラム30を遂次読み出して実行する。本実施形態は、シングルプロセッサで構成されているため、プログラム実行部11が、監視対象プログラム30以外に、検知プログラムや他のアプリケーションプログラムの実行制御も行うが、マルチプロセッサで構成されている場合には、プログラム毎にプログラム実行部11を設けるようにしてもよい。
【0027】
ログ記録部12は、OS40を介して上述した感染原因機能のログ種別1・2の動作履歴を遂次取得し、記憶部113にログ情報50として記憶する。
挙動情報取得部13は、検知プログラムの起動後に、OS40で用意されているシステムコールをフックするフック処理を行い、監視対象プログラム30からAPIを介して呼び出したシステムコールの種別を順次取得し、取得したシステムコールの種別を監視対象プログラムの挙動情報として異常判定部14に供給する。
【0028】
ここで、システムコールのフック処理について説明する。本実施形態の検知プログラムは、OSの起動と同時に起動し、特権モードで動作するデバイスドライバを含んで構成されている。このデバイスドライバにより、システムコールの入口の命令、例えば、システムコールのアドレス等が配列されたテーブルから該当するシステムコールのアドレスを特定し、該当するシステムコールに制御を移行する命令を、システムコールをフックするコードが記述されたフック処理ルーチンにジャンプする命令に書き換えられる。この書き換えによって、フック処理ルーチンが実行され、監視対象プログラム30から呼び出したシステムコールが取得される。なお、フック処理ルーチンの実行により、命令の書き換え前に元の命令が保存され、フック処理ルーチンに移行した後の最初にレジスタ群の値を保存される。そして、フック処理ルーチンの最後に、呼び出し元の監視対象プログラム30のアドレスが、戻しアドレス用として予め設定されたレジスタに設定され、保存した命令とレジスタ群の値を書き戻す処理が行われ、監視対象プログラム30から呼び出された本来のシステムコールの処理に制御が移行される。
【0029】
異常判定部14は、挙動情報取得部13から供給された挙動情報と記憶部113に記憶されている挙動モデル情報70とを照合し、挙動モデル情報70に含まれるシステムコール列の順にシステムコールが呼び出されていない場合には監視対象プログラムが異常であると判断し、その判断結果をログ解析部15へ供給する。この異常であるか否かの判断は、本実施形態においては、挙動情報、即ちシステムコールを取得する毎に行う。
【0030】
ログ解析部15は、異常判定部14から異常である旨の判断結果を受付けた場合に、ウィルスに感染経路の可能性のある感染原因機能を特定する。具体的には、ログ解析部15は、記憶部113に記憶されているログ情報50のうち、所定期間分のログ情報をログ種別1・2 (以下、ログ種別1・2を特に区別しない場合にはログ種別と言う)について集計する。なお、図3(a)の各感染原因機能のログ種別毎にログ情報50が集計されることにより得られる集計内容は、図3(c)に示す各感染原因機能のログ集計種別1・2の各々で示される内容である。例えば、メールの機能の場合には、ログ種別1「送信日時」の記録数が集計されることによりログ集計種別1「送信件数」が求められ、ログ種別2「受信日時」の記録数が集計されることによりログ集計種別2「受信件数」が求められる。そして、ログ解析部15は、上記した集計結果が記憶部113に記憶されている閾値テーブル60の閾値を超えているログ集計種別1・2(以下、ログ集計種別1・2を区別しない場合にはログ集計種別と言う)に対応する感染原因機能を特定する。つまり、このとき特定された感染原因機能は、ウィルスの入力経路に該当する条件を満たす動作履歴が記録されている感染原因機能と言える。そして、ログ解析部15は、特定した感染原因機能のログ集計種別と、ログ集計種別毎の集計結果とを異常通知部16へ供給する。なお、異常が検知された後もユーザは実行装置100を継続して利用しているため、上記所定期間は、例えば、異常が検知された異常検知時点より前の一定期間や、異常検知時点より後の一定期間でもよいし、異常検知時点の前後一定期間であってもよく、ログ情報50の最小記録単位以上であればどのような期間であってもよい。
【0031】
異常通知部16は、異常判定部14から集計されたログ情報50を受付け、図5に示すように、閾値を超えている各感染原因機能の各ログ集計種別に対するフラグを1、閾値を超えていない各ログ集計種別に対するフラグを0に設定し、監視対象プログラム30のプログラムIDと対応付けた異常機能情報80を生成する。つまり、このフラグ情報は、ログ情報の集計結果が閾値を超えることを表すフラグ情報であり、感染原因機能の動作履歴に関する情報である。そして、異常通知部16は、生成した異常機能情報80をネットワーク通信部116を介して解析装置200へ送信する。これにより、感染原因機能の動作履歴に関する情報が、解析装置200に通知されることになる。
【0032】
<解析装置200の構成>
図6は、解析装置200の構成を示すブロック図である。解析装置200は、パーソナルコンピュータやサーバ装置等で実現され、以下の各部を含んで構成されている。
CPU210は、ROM211や後述する記憶部213に記憶されているプログラムを、RAM212をワークエリアとして実行することによって、CPU210に接続されている各部を制御する。記憶部213は、ハードディスク等の不揮発性記憶媒体で構成されており、実行装置100から送信された異常機能情報80などの各種データや制御プログラムを記憶している。入力部214は、キーボードやマウス等を含んで構成されており、ユーザからの入力操作を受付け、入力操作に応じた入力信号をCPU210へ供給する。表示部215は、液晶等のディスプレイで構成されており、解析装置200を起動した際の画面や制御プログラムにより規定されている画面等、各種画像を表示する。ネットワーク通信部216は、CPU210の制御の下、ネットワークを介して接続された実行装置100との間でデータ通信を行う。
【0033】
次に、解析装置200の機能について図7を用いて説明する。図7において、解析装置200のCPU210が記憶部213に記憶されている制御プログラムを読み出して実行することにより、情報抽出部21及び危険解析部22の機能が実現される。情報抽出部21は、ネットワーク通信部216を介して実行装置100から受信した異常機能情報80に含まれている各監視対象プログラムのフラグを感染原因機能毎に抽出し、抽出した各監視対象プログラムの感染原因機能毎のフラグを危険解析部22へ供給する。危険解析部22は、情報抽出部21から供給された各監視対象プログラムの感染原因機能毎のフラグを受け取り、各監視対象プログラムの感染原因機能毎のフラグの数を集計する。そして、感染原因機能毎の集計結果の降順で順位付けを行い、順位付けた結果を、実行装置100に対するウィルスの入力経路の危険度合を示す感染経路危険度情報として図8に示すようにして表示部215に表示する。図8の例では、Bluetooth通信に関する機能が、ウィルスの感染経路に該当する可能性が最も高く、キーボード入力に関する機能が、ウィルスの感染経路に該当する可能性が最も低いことを意味している。なお、フラグの集計値が同値である感染原因機能がある場合には、予め定めた感染原因機能の優先順位に従って順位付けを行うようにしてもよいし、ユーザが任意に選択して順位付けを行うようにしてもよい。
【0034】
(動作)
次に、ソフトウェア解析システム1の動作について説明する。図9は、実行装置100の動作フロー図である。実行装置100において、ユーザにより電源がONにされると、CPU110は、記憶部113のブートセクタを読み込んでOSを起動し(ステップS111)、記憶部113に記憶されている検知プログラムを読み出して起動し、システムコールの入口の命令をRAM112に保存してフック処理ルーチンのアドレスにジャンプする命令に書き換える(ステップS112)。次に、CPU110は、各感染原因機能のログ情報50の記録を開始し(ステップS113)、OSと検知プログラムが起動した後に、ユーザが、入力部114を介して監視対象プログラム30を実行する操作を行うと、CPU110は、記憶部113に記憶されている監視対象プログラム30を読み出して実行する(ステップS114)。
【0035】
CPU110は、ユーザが入力部114を介して行う操作に応じて、監視対象プログラム30に従った各処理を行い、監視対象プログラム30からシステムコールが呼び出される毎に、フック処理ルーチンを実行して現在のレジスタ値をRAM112に保存してシステムコールをフックし、フックしたシステムコールの種別を示す挙動情報をRAM112に順次記憶する(ステップS115)。なお、CPU110は、フック処理ルーチンの最後に、監視対象プログラム30のアドレスを戻しアドレス用レジスタに設定し、保存した命令とレジスタ値とを書き戻して本来のシステムコールの処理を行う。
【0036】
CPU110は、ステップS116においてRAM112に順次記憶された挙動情報を読み出し、記憶部113に記憶されている挙動モデル情報70と照合する(ステップS116)。CPU110は、取得した挙動情報のシステムコール列が挙動モデル情報70で示されるシステムコール列の順に含まれていなければ(ステップS116:NO)、監視対象プログラム30が異常であると判定し、記憶部113に遂次記録されているログ情報50を読み出し、所定期間分の各感染原因機能のログ情報50をログ種別毎に集計する(ステップS117)。なお、この所定期間が、異常であると判定された判定時点後の一定期間である場合や、判定時点を含む前後一定期間である場合には、判定時点の時刻情報を記憶部113の所定領域に記憶しておき、判定時点から一定期間が経過したときにステップS117以下の処理を行う。また、所定期間が判定時点以前の一定期間である場合には、ステップS117に続いて以下の処理を行う。
【0037】
CPU110は、記憶部113に記憶されている閾値テーブル60を読み出し、各感染原因機能のログ種別毎に集計されたログ情報50について、閾値を超えているか否か判断する (ステップS118)。CPU110は、各感染原因機能について集計されたログ情報50が閾値を超えていると判断した場合には(ステップS118:YES)、閾値を超えている感染原因機能のログ集計種別のフラグを1に設定し、閾値を超えていないログ集計種別のフラグを0に設定して異常機能情報80を生成し、ネットワーク通信部116を介して解析装置200へ送信する(ステップS119)。
【0038】
なお、ステップS116において、CPU110は、取得した挙動情報のシステムコール列が挙動モデル情報70で示されるシステムコール列の順序で含まれていると判断した場合には(ステップS116:YES)、実行中の監視対象プログラム30が終了するまでステップS115以下の処理を繰り返し行う(ステップS120:NO)。そして、監視対象プログラム30が終了した場合(ステップS120:YES)、CPU110は、ユーザによって実行装置100の電源がオフにされるまで各感染原因機能のログ情報50の記録を継続して行い(ステップ121:NO)、電源がオフにされたときに(ステップS121:YES)、ログ情報50の記録を終了して検知プログラムを終了する(ステップS122)。
また、ステップS118において、CPU110は、感染原因機能毎に集計されたログ情報50が閾値を超えていなければ(ステップS118:NO)、ステップS120以下の処理を行う。
【0039】
次に、解析装置200の動作について説明する。CPU210は、ネットワーク通信部216を介して実行装置100から各監視対象プログラム30の異常機能情報80を受信すると(ステップS211)、監視対象プログラム30毎に、異常機能情報80に含まれている各感染原因機能のフラグデータを抽出する(ステップS212)。そして、CPU210は、抽出した各監視対象プログラム30の感染原因機能のフラグデータを感染原因機能毎に集計し(ステップS213)、各監視対象プログラム30の集計結果の降順で感染原因機能に順位付けを行う(ステップS214)。CPU214は、ステップS214で順位付けた順位が高いほど感染経路の危険度が高いものとして表した感染経路危険度情報90を生成して表示部215に表示する(ステップS215)。
【0040】
上記実施形態では、ユーザを含め異なる実行環境下におかれた実行装置100毎に各監視対象プログラムを実行させて、監視対象プログラム30が異常であるか否か判断し、異常である場合には、各実行装置100において記録されている感染原因機能について集計したログ情報のうち閾値を超えている機能か否かを示す異常機能情報80を解析装置200へ通知することができる。また、解析装置200では、各実行装置100からの通知を集計することにより、ウィルスの感染経路の危険度を推定することができる。これにより、特に、未知のウィルス感染による監視対象プログラムの挙動に関する情報を幅広く収集することができる。また、ウィルスの種類に応じて感染経路が異なる場合があるが、その場合であっても、ウィルスの感染経路として考えられる感染原因機能の危険度合を順位で示すことができるので、ウィルスを特定した場合にどの機能が感染経路として危険であるかを確認することができ、ウィルスの特性を更に解析する場合やウィルスを除去する場合の対策が取りやすくなる。
【0041】
<変形例>
以下、本発明の変形例について説明する。
(1)上述した実施形態では、実行装置100において、監視対象プログラム30が異常であると判断された場合、所定期間分の感染原因機能毎のログ情報50を集計した結果が閾値を超えている感染原因機能を特定し、異常機能情報80を解析装置200へ通知する例であったが、以下のように構成してもよい。例えば、実行装置100のCPU110は、各感染原因機能の所定期間分のログ情報50を一定期間単位に累計し、累計値が閾値を超える毎に、実施形態と同様に、各感染原因機能のログ種別毎のフラグデータを含む異常機能情報80を解析装置200へ通知し、解析装置200において、実施形態と同様に、通知された異常機能情報80を感染原因機能毎に集計して順位付けを行うようにしてもよい。
【0042】
(2)また、上述した実施形態では、異常機能情報80として感染原因機能のログ集計種別毎に設定されたフラグデータを解析装置200へ出力する例であったが、実行装置100のCPU110は、異常機能情報80として、閾値を超えていると判断されたログ情報50の集計結果を出力してもよいし、上記変形例(1)のように一定期間単位に累計した累計値が閾値超えたか否かを判断する場合には、閾値を超えた各感染経路機能の回数を異常機能情報80として出力するようにしてもよい。
【0043】
(3)また、上述した実施形態では、実行装置100は、所定期間分のログ情報50を集計した集計結果が閾値を超えている感染原因機能を特定する例であったが、例えば、実行装置100のCPU110は、所定期間内において2つの期間を設定し、各期間における感染原因機能毎のログ情報50の累計値を求め、各期間の累計値の増加率が所定の閾値以上である感染原因機能を特定するように構成してもよい。
【0044】
(4)また、上述した実施形態では、実行装置100は、監視対象プログラム30の挙動が異常であると判断した場合に、閾値を超えている感染原因機能を特定するものとして説明したが、以下のように構成してもよい。実行装置100において、CPU110は、監視対象プログラム30の挙動が異常であると判断した場合に、所定期間分の感染原因機能のログ情報50を解析装置200に送信する。そして、解析装置200において閾値テーブル60を予め記憶しておき、実行装置100から送信されたログ情報50を用いて閾値を超えている感染原因機能を特定するようにしてもよい。
【0045】
(5)上述した実施形態では、解析装置200が複数の実行装置100から受信した異常機能情報80に基づいて感染原因機能の順位付けを行う構成であったが、各実行装置100の異常機能情報80から実行装置100毎に感染原因機能の順位付けを行うようにしてもよい。この場合には、その異常機能情報80の順位付けを行った感染経路危険度情報を解析装置200が各実行装置100に送信するように構成してもよい。
【0046】
(6)上述した実施形態では、実行装置100における閾値テーブル60は共通であるものとして説明したが、実行装置100毎に異なる閾値テーブル60を設定するようにしてもよい。また、各実行装置100のログ情報50に基づいて、各感染原因機能のログ種別毎に求めた平均値等を各感染原因機能のログ種別毎の閾値として設定するようにしてもよい。また、1日単位で各感染原因機能のログ種別毎のログ情報50を集計する場合には、休日と平日とで異なる閾値を設定する等、任意に閾値を設定するように構成してもよい。
【0047】
(7)上述した実施形態では、異常機能情報80には閾値を超えていない感染原因機能の情報も含むものとして説明したが、閾値を超えている感染原因機能と、その感染原因機能のログ種別毎に集計されたログ情報50、その感染原因機能のフラグデータ、その感染原因機能を示す情報のいずれかを異常機能情報80として送るようにしてもよいし、これらを組み合わせて異常機能情報80に含ませてもよい。
【0048】
(8)上述した実施形態では、実行装置100において監視対象プログラム30が異常であると判断されたときに、所定期間分の各感染原因機能のログ情報50を集計するものとして説明したが、予め一定の時間又は日単位にログ情報50をログ種別毎に累計した累計値を動作履歴として記憶するように構成してもよい。
【0049】
(9)また、上述した実施形態では、実行装置100は、挙動モデル情報70として、システムコール列をモデル化したものを記憶している例であったが、監視対象プログラムにおけるサブルーチンが呼び出されたときのコールスタック内のリターンアドレスの列をモデル化して記憶するようにしてもよい。この場合には、実行装置100において、監視対象プログラムを実行させた場合におけるサブルーチン呼び出し時にコールスタックの列を挙動情報として取得し、実施形態と同様に監視対象プログラム30のプログラムIDと対応づけて記憶するように構成する。
【0050】
(10)また、上述した実施形態では、実行装置100において、システムコールの入口の命令をフック処理ルーチンに制御を移行する命令に書き換えてシステムコールをフックする例であったが、システムコールのフックを以下のようにして行ってもよい。例えば、実行装置100において、ソフトウェア割込み時のジャンプ先としてフック処理ルーチンのアドレスを割込みベクタテーブルに予め設定しておくことによりシステムコールをフックしてもよいし、監視対象プログラム30と本来のdllファイルとの間にシステムコールをフックするためのフック用dllファイルを設け、監視対象プログラム30からのシステムコールの呼び出し要求をフック用dllファイルを介して本来のdllファイルに渡し、フック用dllファイルにより監視対象プログラム30が呼び出したシステムコールを取得してもよい。また、Linux等のUnix系OSの場合には、ptraceのシステムコールを用いて監視対象プログラム30が呼び出したシステムコールをフックするようにしてもよい。
【0051】
(11)また、上述した実施形態では、実行装置100は異常機能情報80を解析装置200へ送信する例であったが、異常機能情報80以外に監視対象プログラム30のバージョンやOS等の動作環境、監視対象プログラム30と同時に起動しているソフトウェア、時間、場所など、感染経路を解析するのに必要な各種情報を適宜送信してもよい。
【0052】
(12)また、上述した実施形態では、実行装置100は、外部メモリ接続機能、Bluetooth(登録商標)通信機能、電子メール送受信機能についてログ情報50を記録するものとして説明したが、実行装置100が、これら以外の機能、例えば、WEBページ閲覧機能、赤外線通信機能、パソコン接続機能、ICチップによる通信機能等を有している場合には、図10に示すように、上記各機能のログ種別1〜3の各ログ情報50'を記憶部113に記録するようにしてもよい。なお、WEBページ閲覧機能におけるログ種別3「非公式ページアクセス日時」は、所定の公式ページに対応する非公式ページのURLを予めユーザにより設定し、設定されている非公式ページがアクセスされた日時を記録するようにする。また、実施形態では、ログ種別は2種類の例について説明したが、実施形態及び上記変形例で示した種類以上でもよいし、1種類であってもよい。
【0053】
(13)また、上述した実施形態の動作フロー(図9)において、実行装置100は、所定期間内のログ情報50を集計した結果のうち閾値を超えている感染原因機能がない場合にはステップS120の処理を移行する(ステップS118:NO)ものとして説明したが、実行装置100は、ユーザから新たに所定期間を入力する操作を入力部114を介して受付けた場合には、入力された所定期間内のログ情報50を集計してステップS118以下の処理を行うようにしてもよい。
【0054】
(14)上述した実施形態では、実行装置100における挙動モデル情報70は、監視プログラム30を正常な状態で実行させた場合におけるシステムコール列の情報を予め記憶するものとして説明したが、正常ではないパターンのシステムコール列の情報を挙動モデル情報70として予め記憶するようにしてもよいし、外部から取得するようにしてもよい。この場合には、実行装置100は、監視プログラム30の実行中に取得した挙動情報が挙動モデル情報70で示されるシステムコール列の順に含まれていれば、監視プログラム30は異常であると判断し、挙動情報が挙動モデル情報70で示されるシステムコール列の順に含まれていなければ、監視プログラム30は正常であると判断するようにする。
また、挙動モデル情報70は、監視プログラム30のソースコードを解析してシステムコール列をモデル化したものを予め記憶するように構成してもよい。
【0055】
(15)上述した実施形態では、監視プログラム30を正常な状態で実行させた場合の挙動モデル情報70と、監視プログラム30の実行中に取得した挙動情報とを照合するものとして説明したが、既知のウィルスの挙動パターンと組み合わせて挙動情報を照合するようにしてもよい。
この場合には、実行装置100において、既知のウィルスの挙動パターンを示すウィルスパターン情報を記憶部113に記憶しておく。そして、実行装置100において、実施形態と同様に挙動情報と挙動モデル情報70とを照合し、監視プログラム30が異常であると判断した場合に、取得した挙動情報とウィルスパターン情報とを照合してウィルスパターンと一致した場合には、一致したウィルスパターンの情報を異常機能情報80と共に解析装置200へ出力し、一致しなかった場合には異常機能情報80だけを解析装置200へ出力するようにしてもよい。
(16)また、上述した実施形態では、各実行装置100において異常を検知した場合に解析装置200に異常機能情報80を送信し、解析装置200において異常機能情報を集計して感染原因機能について順位付けを行う例であったが、各実行装置100において、自装置における異常機能情報80に対し解析装置200と同様に感染原因機能毎にフラグの集計を行い、感染原因機能の順位付けを行うように構成してもよいし、順位づけた結果を解析装置200へ送信するようにしてもよい。
【0056】
(17)上述の実施形態における実行装置100及び解析装置200のCPU110及びCPU210によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどのコンピュータが読取可能な記録媒体に記憶した状態で提供し得る。また、インターネットのようなネットワーク経由で実行装置100及び解析装置200にダウンロードさせることも可能である。なお、このような制御を行う制御手段としてはCPU以外にも種々の装置を適用することができ、例えば、専用のプロセッサなどを用いてもよい。
【符号の説明】
【0057】
1・・・ソフトウェア解析システム、11・・・プログラム実行部、12・・・ログ記録部、13・・・挙動情報取得部、14・・・異常判定部、15・・・ログ解析部、16・・・異常通知部、21・・・情報抽出部、22・・・危険解析部、100・・・実行装置、110,210・・・CPU、113,213・・・記憶部、114,214・・・入力部、115,215・・・表示部、116,216・・・ネットワーク通信部、117・・・外部メモリ接続部、118・・・Bluetooth(登録商標)通信部、200・・・解析装置。
【特許請求の範囲】
【請求項1】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置と、当該実行装置に対する不正なソフトウェアの入力経路について解析する解析装置と備え、
各々の前記実行装置は、
前記監視対象ソフトウェアを実行する実行手段と、
前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、
自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、
前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、
前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、
前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、
前記動作履歴解析手段により特定された前記機能と、当該機能の動作履歴に関する情報とを、前記解析装置に通知する通知手段とを備え、
前記解析装置は、
1又は複数の前記実行装置から通知された前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える
ことを特徴とする解析システム。
【請求項2】
前記実行装置において、
前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つを前記機能毎に集計し、その集計結果が閾値を超えている前記機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定する
ことを特徴とする請求項1記載の解析システム。
【請求項3】
前記実行装置において、
前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の前記集計結果が前記閾値を超えていることを示すフラグ情報を通知し、
前記解析装置において、
前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記フラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行う
ことを特徴とする請求項2記載の解析システム。
【請求項4】
前記実行装置において、
前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つが閾値を超えるたびに、当該機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定し、
前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の回数又は動作の期間が前記閾値を超えていることを示すフラグ情報を前記解析装置に通知し、
前記解析装置において、
前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報が含まれるフラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行う
ことを特徴とする請求項1記載の解析システム。
【請求項5】
監視対象となるソフトウェアである監視対象ソフトウェアを実行する実行手段と、
前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、
自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、
前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、
前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、
前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、
前記動作履歴解析手段により特定された前記機能の前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える
ことを特徴とする解析装置。
【請求項6】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する実行装置が行う不正なソフトウェアの検知方法であって、
当該実行装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、
前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、
前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、
前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、
前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップと
を有することを特徴とする検知方法。
【請求項7】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析する解析装置が行う解析方法であって、
前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、
前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップと
を有することを特徴とする解析方法。
【請求項8】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行するコンピュータに、
当該コンピュータの外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、
前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、
前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、
前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、
前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップと
を実行させるためのプログラム。
【請求項9】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析するコンピュータに、
前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、
前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップと
を実行させるためのプログラム。
【請求項1】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置と、当該実行装置に対する不正なソフトウェアの入力経路について解析する解析装置と備え、
各々の前記実行装置は、
前記監視対象ソフトウェアを実行する実行手段と、
前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、
自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、
前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、
前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、
前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、
前記動作履歴解析手段により特定された前記機能と、当該機能の動作履歴に関する情報とを、前記解析装置に通知する通知手段とを備え、
前記解析装置は、
1又は複数の前記実行装置から通知された前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える
ことを特徴とする解析システム。
【請求項2】
前記実行装置において、
前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つを前記機能毎に集計し、その集計結果が閾値を超えている前記機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定する
ことを特徴とする請求項1記載の解析システム。
【請求項3】
前記実行装置において、
前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の前記集計結果が前記閾値を超えていることを示すフラグ情報を通知し、
前記解析装置において、
前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記フラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行う
ことを特徴とする請求項2記載の解析システム。
【請求項4】
前記実行装置において、
前記動作履歴解析手段は、各々の前記機能の動作履歴に含まれる動作の回数、動作の期間、前記動作の回数及び前記動作の期間の組み合わせのうち、少なくとも一つが閾値を超えるたびに、当該機能を、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている機能として特定し、
前記通知手段は、前記動作履歴解析手段により特定された前記機能の動作履歴に関する情報として、当該機能の回数又は動作の期間が前記閾値を超えていることを示すフラグ情報を前記解析装置に通知し、
前記解析装置において、
前記入力経路解析手段は、1又は複数の前記実行装置から通知された前記動作履歴に関する情報が含まれるフラグ情報の数を前記機能毎に集計し、その集計結果の順に前記機能の順位付けを行う
ことを特徴とする請求項1記載の解析システム。
【請求項5】
監視対象となるソフトウェアである監視対象ソフトウェアを実行する実行手段と、
前記監視対象ソフトウェアを正常に実行させた場合の挙動を表す挙動情報を挙動モデルとして記憶する挙動モデル記憶手段と、
自装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録手段と、
前記実行手段が前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得手段と、
前記挙動情報取得手段により取得された前記挙動情報が前記挙動モデル記憶手段に記憶された前記挙動モデルと適合するか否かを判定する判定手段と、
前記判定手段により前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録手段により各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当する条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析手段と、
前記動作履歴解析手段により特定された前記機能の前記動作履歴に関する情報を前記機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を前記実行装置に対する不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析手段を備える
ことを特徴とする解析装置。
【請求項6】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する実行装置が行う不正なソフトウェアの検知方法であって、
当該実行装置の外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、
前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、
前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、
前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、
前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップと
を有することを特徴とする検知方法。
【請求項7】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析する解析装置が行う解析方法であって、
前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、
前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップと
を有することを特徴とする解析方法。
【請求項8】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行するコンピュータに、
当該コンピュータの外部から提供される情報を取得可能な複数の機能の各々について、当該機能の動作履歴を記録する記録ステップと、
前記監視対象ソフトウェアを実行したときの挙動を表す挙動情報を取得する挙動情報取得ステップと、
前記挙動情報取得ステップにより取得された前記挙動情報が、前記監視対象ソフトウェアを正常に実行した場合の挙動を表す挙動情報として予め記憶された挙動モデルと適合するか否かを判定する判定ステップと、
前記判定ステップにより前記挙動情報が前記挙動モデルに適合しないと判定された場合に、前記記録ステップにより各々の前記機能について記録された動作履歴を解析し、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている前記機能を特定する動作履歴解析ステップと、
前記動作履歴解析ステップにより特定された前記機能と、当該機能の動作履歴に関する情報とを、不正なソフトウェアの入力経路について解析する解析装置に通知する通知ステップと
を実行させるためのプログラム。
【請求項9】
監視の対象となるソフトウェアである監視対象ソフトウェアを実行する1又は複数の実行装置に対する不正なソフトウェアの入力経路について解析するコンピュータに、
前記1又は複数の実行装置から、当該実行装置が有する複数の機能のうち、不正なソフトウェアの入力経路に該当するための条件を満たす動作履歴が記録されている機能と、当該機能の動作履歴に関する情報とを取得する取得ステップと、
前記取得ステップにより取得された各々の前記機能の動作履歴に関する情報を当該機能毎に解析し、その解析結果に基づいて各々の前記機能の順位付けを行い、その順位付けの結果を不正なソフトウェアの入力経路の危険度合を示す情報として出力する入力経路解析ステップと
を実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2010−267128(P2010−267128A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−118748(P2009−118748)
【出願日】平成21年5月15日(2009.5.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【出願人】(504171134)国立大学法人 筑波大学 (510)
【Fターム(参考)】
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願日】平成21年5月15日(2009.5.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【出願人】(504171134)国立大学法人 筑波大学 (510)
【Fターム(参考)】
[ Back to top ]