WO2020261438A1 - 実行制御システム、実行制御方法、及びプログラム - Google Patents
実行制御システム、実行制御方法、及びプログラム Download PDFInfo
- Publication number
- WO2020261438A1 WO2020261438A1 PCT/JP2019/025414 JP2019025414W WO2020261438A1 WO 2020261438 A1 WO2020261438 A1 WO 2020261438A1 JP 2019025414 W JP2019025414 W JP 2019025414W WO 2020261438 A1 WO2020261438 A1 WO 2020261438A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- determination
- target application
- information
- introduction
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Abstract
実行制御システム(2000)は、対象アプリケーション(30)の実行許否を判定する。上記判定は、第1判定及び第2判定を含む。第2判定は、第1判定で対象アプリケーション(30)の実行許否を決定できなかった場合に行われる。実行制御システム(2000)は、第1判定が終了した後であって第2判定が行われている間、対象アプリケーション(30)をプロテクト環境で実行する。
Description
本発明はソフトウエアの動作の制御に関する。
ソフトウエアの動作を制御するシステムが開発されている。例えば特許文献1には、ソフトウエアのインストールをサンドボックス環境で行い、サンドボックス環境内で行われたインストールの間に生成されたアクションに基づいて、そのソフトウエアのインストールが望ましいものであるかどうかを判定する技術が開示されている。
本発明者は、ソフトウエアの動作を制御する新たな技術を見出した。本発明は、上述の課題に鑑みてなされたものであり、その目的の一つは、ソフトウエアの動作を制御する新たな技術を提供することである。
本発明の実行制御システムは、対象ソフトウエアの動作の許否を判定する判定部を有する。判定は、第1判定と、第1判定で対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含む。
本発明の実行制御システムは、さらに、第1判定が終わった後であって第2判定が行われている間に、対象ソフトウエアをプロテクト環境で動作させる制御部を有する
本発明の実行制御システムは、さらに、第1判定が終わった後であって第2判定が行われている間に、対象ソフトウエアをプロテクト環境で動作させる制御部を有する
本発明の実行制御方法は、コンピュータによって実行される。
当該実行制御方法は、対象ソフトウエアの動作の許否を判定する判定ステップを有する。判定は、第1判定と、第1判定で対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含む。
当該実行制御方法は、さらに、第1判定が終わった後であって第2判定が行われている間に、対象ソフトウエアをプロテクト環境で動作させる制御ステップを有する。
当該実行制御方法は、対象ソフトウエアの動作の許否を判定する判定ステップを有する。判定は、第1判定と、第1判定で対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含む。
当該実行制御方法は、さらに、第1判定が終わった後であって第2判定が行われている間に、対象ソフトウエアをプロテクト環境で動作させる制御ステップを有する。
本発明の制御方法はコンピュータによって実行される。制御方法は、1)アプリケーションの異常を検知する処理が行われたアプリケーションについて、そのアプリケーションの導入に関する導入実績情報を取得する取得ステップと、2)取得した導入実績情報を用いて、アプリケーションの評価を行う評価ステップと、を有する。
本発明のプログラムは、本発明の実行制御方法の各ステップをコンピュータに実行させる。
本発明によれば、ソフトウエアの動作を制御する新たな技術が提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本実施形態の実行制御システムの動作の概要を例示する図である。
実施形態1の実行制御システムの構成を例示する図である。
実行制御システムを実現するための計算機を例示する図である。
実施形態1の実行制御システムによって実行される処理の流れを例示するフローチャートである。
実行制御システムの装置構成を例示する第1の図である。
実行制御システムの装置構成を例示する第2の図である。
導入実績情報をテーブル形式で例示する図である。
導入基準情報をテーブル形式で例示する図である。
導入基準情報を管理する構成を例示する図である。
出力部を有する実行制御システムの機能構成を例示するブロック図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
<概要>
図1は、本実施形態の実行制御システム2000の動作の概要を例示する図である。図1は、実行制御システム2000の動作についての理解を容易にするための概念的な説明を表す図であり、実行制御システム2000の動作を具体的に限定するものではない。
図1は、本実施形態の実行制御システム2000の動作の概要を例示する図である。図1は、実行制御システム2000の動作についての理解を容易にするための概念的な説明を表す図であり、実行制御システム2000の動作を具体的に限定するものではない。
実行制御システム2000は、ソフトウエアの動作の許否の判定、及びソフトウエアの動作の制御を行う。以下、本実施形態では、「ソフトウエアの動作」として、「アプリケーションの実行」を扱う。「ソフトウエアの動作」のその他の例である「共有ライブラリのロード」については、後述する変形例で説明する。
アプリケーションの実行許否の判定、及びアプケーションの実行の制御を行う。ここで、実行制御システム2000による判定の対象となっているアプリケーションを、対象アプリケーション30と呼ぶ。例えば、ユーザや他のアプリケーションによって起動されたアプリケーションが、対象アプリケーション30として扱われる。すなわち、或るアプリケーションが起動されたら、そのアプリケーションの実行が開始される前に、そのアプリケーションの実行許否が実行制御システム2000によって判定される。ただし、対象アプリケーション30の実行許否を判定するタイミングは、対象アプリケーション30が起動されたタイミングに限定されない。
例えば実行許否の判定は、対象アプリケーション30が正常なアプリケーションであるかどうかを判定することで行われる。このような判定を行うことで、異常なアプリケーション(例えば、マルウエアである蓋然性が高いアプリケーション)を実行することによって被害が生じることを防ぐことができる。
実行制御システム2000による対象アプリケーション30の実行許否の判定は、第1判定及び第2判定を含む。第2判定は、第1判定では対象アプリケーション30の実行許否を決定できなかった場合に実行される。
実行制御システム2000において、対象アプリケーション30は、少なくとも2種類の実行環境で動作しうる。この実行環境には、プロテクト環境と通常環境が含まれる。プロテクト環境で実行される対象アプリケーション30の動作は、通常環境で実行される場合よりも制限される。制限の例としては、データの書き込み(記憶領域への書き込みや外部への送信など)が挙げられる。データの書き込みについて制限する場合、例えば、通常環境で実行される対象アプリケーション30がデータを書き込める記憶領域の少なくとも一部について、プロテクト環境で実行される対象アプリケーション30はデータを書き込めないようにする。
実行制御システム2000は、第1判定が完了するまでは、対象アプリケーション30を実行しない。そして、第1判定では対象アプリケーション30の実行許否を決定できず、第2判定が行われる場合、実行制御システム2000は、対象アプリケーション30の実行許否の判定が終わるまでの間、対象アプリケーションをプロテクト環境で動作させる。
<作用効果の一例>
対象アプリケーション30のユーザは、対象アプリケーション30をより早く利用したいと考えられる。そこで、対象アプリケーション30の実行許否を判定する間、対象アプリケーション30をプロテクト環境で実行することが考えられる。このようにすることで、実行してよいか否かがまだ定かでない対象アプリケーションを早く実行できるようにしつつ、対象アプリケーションによって他のアプリケーション等がコンプロマイズされることを防ぐことができる。すなわち、アプリケーションのより早い実行開始を望むユーザの要望に応えつつ、そのアプリケーションを実行させることによって問題が生じることを防ぐことができる。
対象アプリケーション30のユーザは、対象アプリケーション30をより早く利用したいと考えられる。そこで、対象アプリケーション30の実行許否を判定する間、対象アプリケーション30をプロテクト環境で実行することが考えられる。このようにすることで、実行してよいか否かがまだ定かでない対象アプリケーションを早く実行できるようにしつつ、対象アプリケーションによって他のアプリケーション等がコンプロマイズされることを防ぐことができる。すなわち、アプリケーションのより早い実行開始を望むユーザの要望に応えつつ、そのアプリケーションを実行させることによって問題が生じることを防ぐことができる。
しかしながら、例えば以下の理由から、実行許否の判定中である対象アプリケーション30について、必ずしもプロテクト環境で実行することが最良であるとは言えない。プロテクト環境で実行されている対象アプリケーション30について実行が許可された場合、その後は、対象アプリケーション30を通常環境で実行する必要がある。そのためには、後述する様に、対象アプリケーション30の実行環境をプロテクト環境から通常環境に切り替えたり、対象アプリケーション30の実行を一旦終了して、再度通常環境で対象アプリケーション30を起動したりする必要がある。これに対し、起動が中断されている状態の対象アプリケーション30について実行が許可された場合には、中断されている起動を再開すればよい。そのため、対象アプリケーション30の実行が許可された後に要する処理が比較的シンプルなものとなる。そのため、対象アプリケーション30の実行許否の判定が完了した後の処理を考慮すると、対象アプリケーション30の実行許否の判定が短い時間で終わるのであれば、対象アプリケーション30をプロテクト環境で実行するよりも、対象アプリケーション30の起動を一時中断しておく方が好ましいと考えられる。
そこで、実行制御システム2000では、対象アプリケーション30の実行許否の判定は、第1判定及び第2判定が含まれており、第1判定では実行許否を決定できず、第2判定が必要となった場合に、対象アプリケーション30がプロテクト環境で実行される。このようにすることで、対象アプリケーション30の実行が許可された後に要する処理についても考慮した上で、対象アプリケーション30のより早い実行開始を望むユーザの要望に応えること、及びその対象アプリケーション30を実行させることによって問題が生じることを防ぐことができる。
以下、本実施形態の実行制御システム2000についてさらに詳細に説明する。
<実行制御システム2000の機能構成の例>
図2は、実施形態1の実行制御システム2000の構成を例示する図である。実行制御システム2000は、判定部2020及び制御部2040を有する。判定部2020は、対象アプリケーション30の実行許否を判定する。実行許否の判定は、第1判定及び第2判定を含む。制御部2040は、第1判定が終わった後、第2判定が行われている間に、対象アプリケーション30をプロテクト環境で実行する。
図2は、実施形態1の実行制御システム2000の構成を例示する図である。実行制御システム2000は、判定部2020及び制御部2040を有する。判定部2020は、対象アプリケーション30の実行許否を判定する。実行許否の判定は、第1判定及び第2判定を含む。制御部2040は、第1判定が終わった後、第2判定が行われている間に、対象アプリケーション30をプロテクト環境で実行する。
<実行制御システム2000のハードウエア構成>
実行制御システム2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、実行制御システム2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
実行制御システム2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、実行制御システム2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
例えば実行制御システム2000は、1つの計算機で実現される。図3は、実行制御システム2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、実行制御システム2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などのプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスクドライブ、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。ただし、ストレージデバイス1080は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
ストレージデバイス1080は、実行制御システム2000の機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
実行制御システム2000は、2つ以上の計算機で実現されてもよい。この場合における各計算機も、例えば、図3に示したハードウエア構成を持つ。
<処理の流れ>
図4は、実施形態1の実行制御システム2000によって実行される処理の流れを例示するフローチャートである。判定部2020は、対象アプリケーション30の実行許否について第1判定を行う(S102)。第1判定で対象アプリケーション30の実行許否を決定できた場合(S104:完了)、制御部2040は、判定結果に基づいて対象アプリケーション30の実行を制御する(S110)。一方、第1判定で対象アプリケーション30の実行許否を決定できなかった場合(S104:未完了)、判定部2020は、対象アプリケーション30の実行許否について第2判定を行う(S106)。また、第2判定が行われている間、制御部2040は、対象アプリケーション30をプロテクト環境で実行する(S108)。
図4は、実施形態1の実行制御システム2000によって実行される処理の流れを例示するフローチャートである。判定部2020は、対象アプリケーション30の実行許否について第1判定を行う(S102)。第1判定で対象アプリケーション30の実行許否を決定できた場合(S104:完了)、制御部2040は、判定結果に基づいて対象アプリケーション30の実行を制御する(S110)。一方、第1判定で対象アプリケーション30の実行許否を決定できなかった場合(S104:未完了)、判定部2020は、対象アプリケーション30の実行許否について第2判定を行う(S106)。また、第2判定が行われている間、制御部2040は、対象アプリケーション30をプロテクト環境で実行する(S108)。
第2判定が完了したら、制御部2040は、判定結果に基づいて対象アプリケーション30の実行を制御する(S110)。
実行制御システム2000による処理が開始されるタイミング、例えば、或るアプリケーションがユーザや他のアプリケーションによって起動されたタイミングである。実行制御システム2000は、起動されたアプリケーションを対象アプリケーション30として扱って、実行許否の判定を行う。
ただし、実行制御システム2000がアプリケーションの実行許否を判定するタイミングは、そのアプリケーションが起動する前であってもよい。例えば、実行制御システム2000は、新たなアプリケーションが第1装置10に導入されたら、そのアプリケーションを対象アプリケーション30として扱って、実行許否の判定を行う。このケースでは、対象アプリケーション30を起動させた際、既にその対象アプリケーション30の実行許否の判定が完了していることもありうる。そこで例えば、対象アプリケーション30が起動されたとき、その対象アプリケーション30について既に実行許否の判定が完了していれば、実行制御システム2000は、既に完了している判定の結果に基づいて、対象アプリケーション30の実行を制御する。また、対象アプリケーション30が起動されたとき、その対象アプリケーション30について第1判定が行われていたら、実行制御システム2000は、第1判定が終わるまで対象アプリケーション30の起動を中断する。また、対象アプリケーション30が起動されたとき、その対象アプリケーション30について第2判定が行われていたら、実行制御システム2000は、対象アプリケーション30をプロテクト環境で実行する。
その他にも例えば、対象アプリケーション30の実行許否の判定は、定期的なタイミング(例えば、一日に1回)で行われてもよい。この場合、実行制御システム2000は、定期的なタイミングで、新たに第1装置10に導入された各アプリケーション(実行許否の判定がまだ行われていない各アプリケーション)について、実行許否の判定を行う。ただし、このような定期的なタイミングが到来する前に起動された対象アプリケーション30については、その起動のタイミングで、対象アプリケーション30の実行許否を判定することが好適である。
<実行制御システム2000の装置構成の具体例>
実行制御システム2000は、様々な装置構成で実現しうる。ここでは、その具体例をいくつか例示する。
実行制御システム2000は、様々な装置構成で実現しうる。ここでは、その具体例をいくつか例示する。
<<構成例1>>
図5は、実行制御システム2000の装置構成を例示する第1の図である。この例において、実行制御システム2000は、第1装置10及び第2装置20で構成される。第1装置10は、対象アプリケーション30が実行される装置である。第2装置20は、対象アプリケーション30の実行許否を判定する装置である。
図5は、実行制御システム2000の装置構成を例示する第1の図である。この例において、実行制御システム2000は、第1装置10及び第2装置20で構成される。第1装置10は、対象アプリケーション30が実行される装置である。第2装置20は、対象アプリケーション30の実行許否を判定する装置である。
第1装置10は、アプリケーションが起動されたことを検知する機能を有する。第1装置10においてアプリケーションの起動が検知されたら、そのアプリケーションが対象アプリケーション30として扱われる。第1装置10は、第2装置20に対し、対象アプリケーション30の実行許否を問い合わせるリクエストを送信する。このリクエストには、対象アプリケーション30の識別情報が含まれている。
また、第2装置20には、制御部2040が含まれている。制御部2040は、対象アプリケーション30をプロテクト環境で実行する。
第2装置20には、判定部2020が設けられている。判定部2020は、第1装置10から上記リクエストを受信し、リクエストに示されている識別情報で特定される対象アプリケーション30について、実行許否を判定する。判定部2020は、第1判定の判定結果を示す通知を第1装置10に送信する。この通知には、例えば、「対象アプリケーション30の識別情報、判定結果」の組み合わせが示されている。
上記通知が示す判定結果が許可または不許可である場合、制御部2040は、その判定結果に基づいて、対象アプリケーション30の実行を制御する。これにより、実行制御システム2000による一連の処理は終了する。
一方、上記通知が示す判定結果に、実行許否を決定できなかったこと(すなわち、第2判定が行われること)が示されている場合、制御部2040は、対象アプリケーション30をプロテクト環境で実行する。その後、判定部2020は、第2判定の判定結果を示す通知を制御部2040に送信する。制御部2040は、この通知が示す判定結果に基づいて、対象アプリケーション30の実行を制御する。
<<構成例2>>
図6は、実行制御システム2000の装置構成を例示する第2の図である。この例では、判定部2020と制御部2040の双方が、第1装置10の中に設けられている。すなわち、対象アプリケーション30が実行される装置の中で、対象アプリケーション30の実行許否の判定、及び対象アプリケーション30の実行の制御が行われる。
図6は、実行制御システム2000の装置構成を例示する第2の図である。この例では、判定部2020と制御部2040の双方が、第1装置10の中に設けられている。すなわち、対象アプリケーション30が実行される装置の中で、対象アプリケーション30の実行許否の判定、及び対象アプリケーション30の実行の制御が行われる。
<実行許否の判定:S102、S106>
判定部2020は、対象アプリケーション30の実行許否を判定する(S102、S106)。対象アプリケーション30の実行許否の判定は、任意の基準を利用して行うことができる。対象アプリケーション30の実行許否の判定に利用する具体的な基準については後述する。
判定部2020は、対象アプリケーション30の実行許否を判定する(S102、S106)。対象アプリケーション30の実行許否の判定は、任意の基準を利用して行うことができる。対象アプリケーション30の実行許否の判定に利用する具体的な基準については後述する。
判定部2020が行う判定処理は、少なくとも、第1判定及び第2判定という2段階の判定を含む。第2判定は、第1判定で実行許否の決定をできなかった場合(第1判定では対象アプリケーション30の実行許否の判定を完了できなかった場合)に実行される。そのため、第1判定の結果は、1)対象アプリケーション30の実行を許可する、2)対象アプリケーション30の実行を許可しない、及び3)第2判定に進むといういずれかの結果となる。
ここで、第1判定の前や、第2判定の後に、さらに別の判定が行われてもよい。すなわち、実行制御システム2000では、1)判定部2020による判定には2以上の複数の段階の判定が含まれ、2)特定の判定(第1判定)が完了するまでは対象アプリケーション30が実行されず、3)特定の判定が完了しても実行可否を決定できなかったら、次の判定(第2判定)に進むと共に、対象アプリケーション30がプロテクト環境で実行される。なお、各段階の判定は、1)対象アプリケーション30の実行を許可する、2)対象アプリケーション30の実行を許可しない、及び3)次の判定に進むといういずれかの結果となる。
なお、第2判定よりも後に別の判定が行われる場合、その間も、対象アプリケーション30はプロテクト環境で実行される。すなわち、第2判定が始まって以降、対象アプリケーション30の実行許否の判定が完了するまでの間、対象アプリケーション30はプロテクト環境で実行される。
判定部2020による多段階の判定は、例えば、段階が進むほど判定に時間を要するものになるように構成される。言い換えれば、所要時間が比較的短い判定を優先的に(より先に)行い、そのような短い時間で終わる判定では対象アプリケーション30の実行許否を判定することが難しい場合に限って、所要時間が比較的長い判定処理を行うようにする。こうすることで、対象アプリケーション30の実行許否の判定に要する時間をできる限り短くすることができる。
例えば、判定部2020による各段階の判定は、それぞれ異なる基準を用いて行われる。例えば、判定の段階が上がるほど、その判定に利用する情報の取得に時間がかかるという構成が考えられる。ここで、第1判定で用いられる基準を示す情報を第1基準情報と呼び、第2判定で用いられる基準を示す情報を第2基準情報と呼ぶ。例えば、第1基準情報は既に記憶装置に格納されている一方で、第2基準情報はその場で生成されるといったケースが考えられる。
<<判定の再利用について>>
一度実行許否の判定が行われた対象アプリケーション30については、その判定結果を保存しておき、再度の判定は不要とすることが好適である。具体的には、判定部2020によって対象アプリケーション30の実行許否について判定が行われたら、「判定が行われたアプリケーションの識別情報、判定結果」という組み合わせを、所定の記憶装置に格納する。以下、上述の組み合わせで構成される情報を、判定結果情報と呼ぶ。また、判定結果情報が格納される記憶装置を、判定結果情報記憶装置と呼ぶ。
一度実行許否の判定が行われた対象アプリケーション30については、その判定結果を保存しておき、再度の判定は不要とすることが好適である。具体的には、判定部2020によって対象アプリケーション30の実行許否について判定が行われたら、「判定が行われたアプリケーションの識別情報、判定結果」という組み合わせを、所定の記憶装置に格納する。以下、上述の組み合わせで構成される情報を、判定結果情報と呼ぶ。また、判定結果情報が格納される記憶装置を、判定結果情報記憶装置と呼ぶ。
判定部2020は、対象アプリケーション30の実行許否の判定をする際、まずは、対象アプリケーション30の識別情報で、判定結果情報記憶装置に格納されている情報を検索する。対象アプリケーション30の識別情報を示す判定結果情報が格納されていたら、判定部2020は、その判定結果情報に示されている判定結果を利用する。一方、対象アプリケーション30の識別情報を示す判定結果情報が格納されていなかったら、判定部2020は、対象アプリケーション30について、実行許否の判定を行う。
ここで、実行許否の判定の基準が更新されるなどの理由により、一度実行許否の判定が行われた対象アプリケーション30についても、再度判定を行う必要が生じうる。そこで、実行許否の判定の基準が更新されたら、判定部2020は、その更新以前に判定結果情報記憶装置に格納された判定結果情報を利用しないようにすることが好適である。そのために、例えば、実行許否の判定の基準が更新されたら、その更新以前に生成された判定結果情報については、判定結果情報記憶装置から削除する。
<プロテクト環境における実行:S108>
制御部2040は、第2判定が行われている間、対象アプリケーション30をプロテクト環境で実行する(S108)。ここでいうプロテクト環境とは、通常環境と比較して、対象アプリケーション30の動作の少なくとも一部がより制限されており、対象アプリケーション30の動作が他のアプリケーションに対して影響を与えにくい環境である。このような環境は、サンドボックス環境などとも呼ぶことができる。
制御部2040は、第2判定が行われている間、対象アプリケーション30をプロテクト環境で実行する(S108)。ここでいうプロテクト環境とは、通常環境と比較して、対象アプリケーション30の動作の少なくとも一部がより制限されており、対象アプリケーション30の動作が他のアプリケーションに対して影響を与えにくい環境である。このような環境は、サンドボックス環境などとも呼ぶことができる。
プロテクト環境において対象アプリケーション30に与える制限には、任意のものを採用できる。例えばプロテクト環境では、対象アプリケーション30によるデータの読み書きやプロセスの起動などが制限される。例えばデータの書き込みを制限する場合、プロテクト環境で動作する対象アプリケーション30は、他のアプリケーションからアクセスできない記憶領域に対してデータを書き込むように制御される。例えば、他のアプリケーションと共有されているデータ(ストレージデバイスに格納されているファイル、メモリにマップされたファイル、レジストリ、又は共有メモリ上のデータなど)に対して対象アプリケーション30が変更を加える場合には、他のアプリケーションからアクセスできない記憶領域にそのデータのコピーを作成し、そのコピーに対して変更が加えられるようにする。このようにすることで、対象アプリケーション30によって行われたデータの変更が、他のアプリケーションからは認識できなくなる。そのため、対象アプリケーション30によって書き込まれたデータが他のアプリケーションに悪影響を与えることを防ぐことができる。
なお、プロテクト環境で動作している対象アプリケーション30と他のアプリケーション(通常環境で動作しているものであってもよいし、別のプロテクト環境で動作しているアプリケーションであってもよい)が同一のデータに対して書き込みを行うことも考えられる。このような場合、何らかの基準で書き込みの競合を解決する必要がある。例えば、制御部2040は、書き込み時点が最も後の書き込みを優先して適用し(有効にし)、その他の書き込みは適用されないようにする(無効にする)。この場合、書き込みが適用されなかったアプリケーションに関し、そのアプリケーションによる書き込みが適用されなかったことの通知を行うことが好適である。
なお、プロテクト環境で動作している対象アプリケーション30と他のアプリケーションが、同一のデータの互いに重複しない箇所に対して書き込みを行ったとする。この場合、制御部2040は、双方の書き込みを適用するようにしてもよい。
競合の解決方法の他の例として、制御部2040は、対象アプリケーション30の動作環境がプロテクト環境から通常環境に移行するタイミングで、データへの書き込みに競合があったことをユーザに通知し、どのアプリケーションによる書き込みを適用するのかをユーザに選択させてもよい。この場合、制御部2040は、ユーザによって選択されたアプリケーションによる書き込みを適用し、その他のアプリケーションによる書き込みは適用しないようにする。
その他にも例えば、制御部2040は、通常環境で動作しているアプリケーションによる書き込みを優先して適用するようにしてもよい。この場合、プロテクト環境で動作している対象アプリケーション30によってデータに対する書き込みが行われたら、制御部2040は、そのデータのコピーを作成し、そのコピーに対して書き込みを適用する。そして、制御部2040は、任意のタイミング(例えば、対象アプリケーション30がプロテクト環境から通常環境へ移行したタイミング)で、書き込みの競合によりデータのコピーに対して書き込みが行われたこと、及びそのコピーの保存場所などをユーザに通知する。
その他にも例えば、制御部2040は、プロテクト環境で動作している対象アプリケーション30が或るデータに対して書き込みを行ったら、それ以降、そのデータに対する他のアプリケーションによる書き込みを禁止してもよい。この場合、制御部2040は、書き込みの競合により書き込みが禁止されていることをユーザに通知することが好適である。
データの読み込みを制限する場合、例えば、プロテクト環境で動作する対象アプリケーション30は、特定の記憶領域に対するリードアクセスが制限される。言い換えれば、リードアクセスできる記憶領域が制限される。例えば特定の領域は、機密情報が記憶されている記憶領域や、OS やミドルウエアが利用するシステム領域などである。このようにすることで、悪意ある対象アプリケーション30によって機密情報などの重要なデータが盗まれたり、対象アプリケーション30によって第1装置10がコンプロマイズされたりすることを防ぐことができる。ただし、データの書き込みを制限しておけば、たとえ悪意ある対象アプリケーション30にデータを読まれたとしても、その対象アプリケーション30による外部へのデータの流出(書き込み)は防ぐことができる。
なお、データの読み書きが制限されるのは、記憶領域に限定されない。例えば、ネットワークに対するデータの読み書き(外部の装置との通信)が制限されてもよい。これにより、ネットワークを介したデータの漏洩などを防ぐことができる。
他のアプリケーションの起動を制限する場合、プロテクト環境で動作する対象アプリケーション30は、全て又は一部のアプリケーションを起動することができないように制限される。後者の場合、言い換えれば、起動できるアプリケーションが一部のものに限定される。ここで、マルウエアの中には、他のアプリケーション(例えばシェル)を利用して悪意ある動作を行うものもある。対象アプリケーション30による他のアプリケーションの起動を制限することで、このようなマルウエアによる悪意ある動作を防ぐことができる。
また、対象アプリケーション30が他のアプリケーションを起動する場合、当該他のアプリケーションについてもプロテクト環境内で実行されるようにしてもよい。この場合、対象アプリケーション30と当該他のアプリケーションについては、互いにデータを共有できるようにすることが好適である。
その他にも例えば、プロテクト環境では、対象アプリケーション30が利用できる計算機リソースの量が制限されてもよい。計算機リソースとしては、例えば、プロセッサ資源、メモリ資源、ディスク帯域、及びネットワーク帯域などが挙げられる。このように使用できる計算機リソースの量が制限された環境で対象アプリケーション30を実行することで、例えば、対象アプリケーション30が過度に計算機リソースを使用することによる他のアプリケーションへの悪影響を防ぐことができる。
ここで、上述した種々の制御を実現する具体的な方法については、既存の方法を採用することができる。
<実行が許可された場合の制御>
判定部2020によって対象アプリケーション30の実行が許可された場合、制御部2040は、対象アプリケーション30の実行環境を通常の環境に変更する。例えば、プロテクト環境において、対象アプリケーション30によるデータの読み書きやアプリケーションの起動、又は対象アプリケーション30によって使用可能なリソースの量などが、通常の環境の場合よりも制限されていたとする。この場合、対象アプリケーション30に対する制限が、通常の環境と同様の制限に変更される。
判定部2020によって対象アプリケーション30の実行が許可された場合、制御部2040は、対象アプリケーション30の実行環境を通常の環境に変更する。例えば、プロテクト環境において、対象アプリケーション30によるデータの読み書きやアプリケーションの起動、又は対象アプリケーション30によって使用可能なリソースの量などが、通常の環境の場合よりも制限されていたとする。この場合、対象アプリケーション30に対する制限が、通常の環境と同様の制限に変更される。
ここで、プロテクト環境において対象アプリケーション30によるデータの書き込みが制限される場合、プロテクト環境で実行されていた時に対象アプリケーション30が書き込んだデータは、通常の環境に移行した後でも利用できることが好適である。そこで例えば、制御部2040は、プロテクト環境において対象アプリケーション30が書き込んだデータを、通常の環境で動作するアプリケーションからもアクセスできる記憶領域に移動又はコピーする。
例えば、プロテクト環境で実行されている対象アプリケーション30が、他のアプリケーションと共有されているデータに対して変更を加えたため、他のアプリケーションからアクセスできない記憶領域にそのデータのコピーを作成し、そのデータに対して変更が加えられたとする。この場合、制御部2040は、このコピーに対して加えられた内容を、オリジナルのデータにも反映するようにする。
<実行が許可されなかった場合の制御>
判定部2020によって対象アプリケーション30の実行が許可されなかった場合、例えば制御部2040は、対象アプリケーション30の実行を終了する。こうすることで、セキュリティ上の脅威である可能性があるアプリケーションなど、実行することが好ましくない対象アプリケーション30が実行され続けることを防ぐことができる。
判定部2020によって対象アプリケーション30の実行が許可されなかった場合、例えば制御部2040は、対象アプリケーション30の実行を終了する。こうすることで、セキュリティ上の脅威である可能性があるアプリケーションなど、実行することが好ましくない対象アプリケーション30が実行され続けることを防ぐことができる。
対象アプリケーション30の実行を終了する際、制御部2040は、プロテクト環境で実行されていた対象アプリケーション30によって記憶領域に書き込まれたデータを破棄してもよい。なお、制御部2040は、対象アプリケーション30によって書き込まれたデータは、対象アプリケーション30による活動の記録を表す情報として記録されてもよい。ただしこの場合、記憶領域の最終的な内容だけではなく、対象アプリケーション30による一連のデータの書き込みの記録を残しておくことが好適である。
その他にも例えば、制御部2040は、判定部2020によって対象アプリケーション30の実行が許可されなかった場合に、対象アプリケーション30をプロテクト環境内で実行させ続けてもよい。こうすることで、対象アプリケーション30が他のアプリケーション等に悪影響を及ぼすことを防ぎつつ、ユーザが対象アプリケーション30の実行を継続することができるようになる。
<実行許否を判定する基準について>
判定部2020は、種々の基準で、対象アプリケーション30の実行許否を判定する。例えば、対象アプリケーション30の実行許否の判定には、対象アプリケーション30の導入に関連する基準を利用することができる。以下、詳細に説明する。
判定部2020は、種々の基準で、対象アプリケーション30の実行許否を判定する。例えば、対象アプリケーション30の実行許否の判定には、対象アプリケーション30の導入に関連する基準を利用することができる。以下、詳細に説明する。
アプリケーションは、そのアプリケーションを実行する装置に導入される。ここでいう導入とは、装置上で対象アプリケーション30を実行可能な状態にすることである。例えば対象アプリケーション30は、第1装置10に導入されている。
対象アプリケーション30が第1装置10の外部から取得される場合、第1装置10に対する対象アプリケーション30の導入には、対象アプリケーション30を取得する処理も含まれる。そのため、例えば第1装置10に対する対象アプリケーション30の導入は、1)対象アプリケーション30を入手する処理、2)入手した対象アプリケーション30をファイルシステム上に配置する処理、及び3)対象アプリケーション30に関する設定を行う処理などを含む。
対象アプリケーション30の入手は、例えば、対象アプリケーション30が提供されているサーバから対象アプリケーション30をダウンロードしたり、対象アプリケーション30が記憶されている記憶装置から対象アプリケーション30を読み出したりする処理である。対象アプリケーション30をファイルシステム上に配置する処理は、例えば、対象アプリケーション30の実行ファイルや設定ファイルを、所定のディレクトリに格納する処理である。対象アプリケーション30に関する設定を行う処理は、例えば、レジストリや設定ファイルなどに対し、対象アプリケーション30の実行に必要な設定データを書き込む処理である。
なお、対象アプリケーション30の実行ファイルを所定のディレクトリに配置する処理や、対象アプリケーション30に関する設定を行う処理は、対象アプリケーション30のインストーラを実行することで自動で行われる場合もあれば、対象アプリケーション30の導入作業を行うユーザによって手動で行われる場合もある。また、対象アプリケーション30を入手する処理も自動で行われうる。例えば、或るアプリケーションXが別のアプリケーションYを必要としている場合に、アプリケーションXのインストーラがアプリケーションYの入手を自動で行うようなケースがある。
対象アプリケーション30の導入に関する基準で対象アプリケーション30の実行の許否を判定する場合、判定部2020は、第1装置10に対する対象アプリケーション30の導入に関連する情報を取得し、この情報を対象アプリケーション30の導入に関する基準と比較する。以下、第1装置10に対する対象アプリケーション30の導入に関連する情報を導入実績情報と呼ぶ。また、基準情報のうち、第1装置10に対する対象アプリケーション30の導入に着目して対象アプリケーション30の実行許否を判定するために利用されるものを、特に、導入基準情報と呼ぶ。
導入実績情報は、対象アプリケーション30の識別情報に対応づけて、その対象アプリケーション30の導入に関する情報を示す。対象アプリケーション30の識別情報は、例えば、対象アプリケーション30の名称や、対象アプリケーション30の実行ファイルのパスなどで表される。ただし、対象アプリケーション30の実行可否の基準が、対象アプリケーション30が導入されている装置や装置のグループなどによって異なる場合、対象アプリケーション30の識別情報には、「対象アプリケーション30が導入されている第1装置10の識別情報、対象アプリケーション30の名称など」という組み合わせで表される。
導入実績情報に含まれる対象アプリケーション30の導入に関する情報としては、様々なものを採用できる。例えば導入実績情報は、以下の情報を含みうる。
1)経路情報:対象アプリケーション30の導入経路に関する情報
2)配置情報:対象アプリケーション30が配置された場所に関する情報
3)設定情報:対象アプリケーション30の導入に伴う設定に関する情報
1)経路情報:対象アプリケーション30の導入経路に関する情報
2)配置情報:対象アプリケーション30が配置された場所に関する情報
3)設定情報:対象アプリケーション30の導入に伴う設定に関する情報
以下、上述した種々の情報について、その詳細な内容及びそれらの情報を得る方法について説明する。
<<1)経路情報について>>
経路情報は、対象アプリケーション30の導入に関わるソフトウエア、ハードウエア、及びサービスなどに関する情報を含む。対象アプリケーション30の導入に関わるソフトウエアは、例えば、対象アプリケーション30をダウンロードするために利用されるダウンローダや、対象アプリケーション30のインストールに利用されるインストーラである。また、対象アプリケーション30のインストーラ等が圧縮されたファイルを入手する場合、その圧縮ファイルの解凍に利用される解凍ソフトウエアも、対象アプリケーション30の導入に関わるソフトウエアといえる。対象アプリケーション30の導入に関わるハードウエアは、例えば、対象アプリケーション30のインストーラや実行ファイルなどが格納されている記憶装置などである。対象アプリケーション30の導入に関わるサービスは、例えば、対象アプリケーション30のインストーラなどを提供する Web サイトや、対象アプリケーション30の提供元と第1装置10との間に配置されるプロキシなどである。
経路情報は、対象アプリケーション30の導入に関わるソフトウエア、ハードウエア、及びサービスなどに関する情報を含む。対象アプリケーション30の導入に関わるソフトウエアは、例えば、対象アプリケーション30をダウンロードするために利用されるダウンローダや、対象アプリケーション30のインストールに利用されるインストーラである。また、対象アプリケーション30のインストーラ等が圧縮されたファイルを入手する場合、その圧縮ファイルの解凍に利用される解凍ソフトウエアも、対象アプリケーション30の導入に関わるソフトウエアといえる。対象アプリケーション30の導入に関わるハードウエアは、例えば、対象アプリケーション30のインストーラや実行ファイルなどが格納されている記憶装置などである。対象アプリケーション30の導入に関わるサービスは、例えば、対象アプリケーション30のインストーラなどを提供する Web サイトや、対象アプリケーション30の提供元と第1装置10との間に配置されるプロキシなどである。
例えば、アプリケーションXのインストーラIの圧縮ファイルであるファイルFがサーバSで提供されているとする。そして、ダウンローダDを用いてサーバSからファイルFをダウンロードし、ファイルFを解凍ソフトウエアBで解凍し、この解凍によって得られたアプリケーションXのインストーラIを実行することで、第1装置10にアプリケーションXが導入されたとする。この場合、例えばアプリケーションXについての経路情報は、「サーバS、ダウンローダD、解凍ソフトウエアB、インストーラI」という情報を示す。
経路情報の生成は、例えば、対象アプリケーション30の導入に関連しうる種々のイベントの履歴を利用することで実現できる。イベントは、例えば、「主体、客体、内容」の組み合わせで表される。対象アプリケーション30の導入に関連しうるイベントは、例えば、ファイルのダウンロード、圧縮ファイルの解凍、及びインストーラの実行などである。ここで、これらのイベントの履歴は、記憶装置に記憶させておく。なお、これらのイベントの履歴を記録する技術には既存の技術を利用することができる。例えば、第1装置10上で実行されたシステムコールがイベントとして記録される。
経路情報の生成は、例えば、第1装置10に常駐させておくエージェントソフトウエアによって行われる。例えば、エージェントソフトウエアは、対象アプリケーション30の導入に伴って発生しうる特定のイベント(以下、キーイベント)の発生を検知する。例えばキーイベントは、インストーラの実行である。さらにエージェントソフトウエアは、キーイベントの検知に応じて、そのキーイベントに関連する他のイベントを特定していく。例えばキーイベントがインストーラの実行である場合、エージェントソフトウエアは、イベントの履歴の中から、そのインストーラが含まれていた圧縮ファイルの解凍というイベントや、その圧縮ファイルのダウンロードというイベントを抽出する。
上述したイベントの抽出により、「インストーラが含まれる圧縮ファイルのダウンロード->圧縮ファイルの解凍->インストーラの実行」という、対象アプリケーション30の導入に関連するイベント列を抽出できる。導入経路の情報は、このイベント列から生成することができる。例えば、圧縮ファイルのダウンロードイベントに基づいて、対象アプリケーション30のインストーラの提供元(ウェブサイトなど)の特定、及びダウンロードに利用されたダウンローダの特定が行える。また、インストーラが含まれる圧縮ファイル解凍というイベントに基づいて、解凍に利用された解凍ソフトウエアを特定することができる。さらに、インストーラの実行というイベントに基づいて、対象アプリケーション30のインストールに利用されたインストーラを特定することができる。経路情報は、これら特定された種々の情報で構成される。
なお、キーイベントには、所定の条件に当てはまるイベントを利用できる。例えば、アプリケーションが配置される標準的なディレクトリは OS やミドルウエアごとに予め決まっており、このようなディレクトリに対するファイルの書き込みは、対象アプリケーション30の導入に関連する蓋然性が高いイベントであると考えられる。そこで例えば、エージェントソフトウエアは、アプリケーションが配置されるべき標準的なディレクトリに対してファイルを書き込むイベントを、キーイベントとして検知する。
その他にも例えば、アプリケーションの導入は、レジストリや所定の設定ファイル(環境変数が格納されているファイルなど)の更新を伴うことが多い。そこで例えば、エージェントソフトウエアは、レジストリや所定の設定ファイルに対する書き込みのイベントをキーイベントとして検知する。
その他にも例えば、アプリケーションの導入は、既知のインストーラ(例えば、OS に標準で用意されているインストーラ)を利用して行われることが多い。そこで例えば、エージェントソフトウエアは、このような既知のインストーラの実行を表すイベント(所定のプログラムの実行を表すイベント)をキーイベントとして検知する。
なお、キーイベントの検出に用いる所定の条件は、エージェントソフトウエアからアクセス可能な記憶装置に予め記憶させておく。
<<2)配置情報について>>
配置情報は、対象アプリケーション30に関連するファイル(実行ファイルや設定ファイルなど)が書き込まれた場所(ディレクトリなど)に関する情報などを示す。
配置情報は、対象アプリケーション30に関連するファイル(実行ファイルや設定ファイルなど)が書き込まれた場所(ディレクトリなど)に関する情報などを示す。
例えば配置情報の生成は、以下のようにして行われる。まず、前提として、ファイルの書き込みイベントの履歴を記録しておく。そして、前述したエージェントソフトウエアが、このイベントの履歴を利用して、配置情報を生成する。例えばエージェントソフトウエアは、まず、インストーラの実行のイベントを検知する。さらにエージェントソフトウエアは、そのインストーラによって行われたファイルの書き込みイベントを特定する。そして、エージェントソフトウエアは、特定した各イベントにおいてファイルが書き込まれた場所を示す配置情報を生成する。
<<3)設定情報について>>
対象アプリケーション30によっては、そのインストールに伴い、レジストリや既存の設定ファイルに対して変更が加えられる。設定情報は、このように対象アプリケーション30の導入に伴って加えられる設定の変更を表す。
対象アプリケーション30によっては、そのインストールに伴い、レジストリや既存の設定ファイルに対して変更が加えられる。設定情報は、このように対象アプリケーション30の導入に伴って加えられる設定の変更を表す。
例えば設定情報は、配置情報と同様に、ファイルの書き込みイベントの履歴を利用して生成される。例えばエージェントソフトウエアは、まず、インストーラの実行のイベントを検知する。さらにエージェントソフトウエアは、そのインストーラによって行われた、レジストリや所定の設定ファイルに対する書き込みイベントを特定する。そして、エージェントソフトウエアは、特定した各イベントについて「イベントにおいて書き込みが行われたファイルの識別情報(パスなど)、そのファイルに対して書き込まれたデータの内容」という組み合わせを示す設定情報を生成する。
図7は、導入実績情報をテーブル形式で例示する図である。図7のテーブルを、テーブル200と呼ぶ。テーブル200は、識別情報202、属性名204、及び属性値206という2つの列を有する。識別情報202は、対象アプリケーション30の識別情報を表す。属性名204は、提供元、ダウンローダ、解凍ソフトウエア、インストーラ、配置情報、及び設定情報などといった情報の種類を表す。属性値206は、属性名202が示す種類の情報について、その内容を表す。例えば、「識別情報202:端末XのアプリケーションA、属性名204:ダウンローダ、属性値206:ブラウザX」という組みを示すレコードは、端末Xで実行されているアプリケーションAを導入する際、ダウンローダとしてブラウザXが利用されたことを表す。
なお、導入実績情報の生成は、必ずしも第1装置10によって行われる必要はなく、第2装置20やその他の装置によって行われてもよい。この場合、導入実績情報を生成する装置は、第1装置10について記録されたイベントの履歴を用いて、第1装置10に対して導入された各アプリケーションについての導入実績情報を生成する。
ここで、導入実績情報が生成されるタイミングは、判定部2020による判定に利用されるタイミング、又はその前の任意のタイミングである。後者の場合、例えば、第1装置10に対して新たなアプリケーションが導入されたタイミングで、そのアプリケーションについての導入実績情報が生成される。
判定部2020が導入実績情報を取得する方法は任意である。例えば導入実績情報が記憶装置に格納される場合、判定部2020は、その記憶装置から対象アプリケーション30についての導入実績情報を取得する。その他にも例えば、判定部2020は、前述したエージェントソフトウエアに対して、対象アプリケーション30の導入実績情報の取得リクエストを送信することで、導入実績情報を取得してもよい。
判定部2020は、対象アプリケーション30について導入実績情報を取得し、取得した導入実績情報を導入基準情報と比較することで、対象アプリケーション30の実行許否を判定する導入基準情報は、ルールやポリシーなどとも呼ぶことができる。
例えば導入基準情報は、正常なアプリケーションについての導入経路などを定めた情報である。このような導入基準情報を利用すると、例えば、導入実績情報と導入基準情報との一致度合いが高い場合に、対象アプリケーション30の正常度が高いと判断することができる。このような導入基準情報を、正常導入基準情報と呼ぶ。
例えば正常導入基準情報には、以下の情報が含まれる。
1)正常経路情報:対象アプリケーション30の正常な導入経路
2)正常配置情報:対象アプリケーション30の正常な配置場所
3)正常設定情報:対象アプリケーション30のインストールに伴う正常な設定
1)正常経路情報:対象アプリケーション30の正常な導入経路
2)正常配置情報:対象アプリケーション30の正常な配置場所
3)正常設定情報:対象アプリケーション30のインストールに伴う正常な設定
正常経路情報は、対象アプリケーション30の導入に関連する正常なソフトウエア、正常なハードウエア、及び正常なサービスなどの情報を表す。例えば、正常経路情報は、対象アプリケーション30の提供元となる正常なサービスやハードウエア(ウェブサイトや記憶装置など)を表す。さらに例えば、正常経路情報は、正常なインストーラ、正常な解凍ソフトウエア、及び正常なダウンローダなど、アプリケーションの導入に利用されうる正常なソフトウエアを示す。正常導入基準情報は、例えば、アプリケーションごとに定められる。その他にも例えば、正常導入基準情報は、OS 等の実行環境ごとに定められていてもよい。
また、正常経路情報は、正常な提供元やソフトウエアのセットを表してもよい。例えばこの情報は、「サーバS1、ダウンローダD1、インストーラI1」などといった情報である。
正常配置情報は、アプリケーションがインストールされるべき正常な場所(ディレクトリなど)を示す。なお、アプリケーションがインストールされるべき場所は、アプリケーションごとや、OS などの実行環境ごとに定められていてもよい。
正常設定情報は、アプリケーションの導入に伴って行われる正常な設定を表す。正常設定情報は、例えば、アプリケーションごとに定められる。例えば、アプリケーションXが導入された場合にレジストリに所定のレコードRが追加されることが分かっているとする。この場合、アプリケーションXについての正常設定情報は、「レジストリに対するレコードRの追加」を示す。
導入基準情報は、異常なアプリケーションについての導入経路などを定めた情報であってもよい。このような導入基準情報を利用すると、例えば、導入実績情報と導入基準情報との一致度合いが高い場合に、対象アプリケーション30の異常度が高い(正常度が低い)と判断することができる。このような導入基準情報を、異常導入基準情報と呼ぶ。
異常導入基準情報には、例えば、以下の情報が含まれうる。
1)異常経路情報:アプリケーションの異常な導入経路
2)異常配置情報:アプリケーションの異常な配置場所
3)異常設定情報:アプリケーションのインストールに伴う異常な設定
1)異常経路情報:アプリケーションの異常な導入経路
2)異常配置情報:アプリケーションの異常な配置場所
3)異常設定情報:アプリケーションのインストールに伴う異常な設定
異常導入基準情報の詳細は、基本的に、正常導入基準情報の説明において「正常」と「異常」を入れ替えることで把握することができる。例えば、正常経路情報がアプリケーションの導入に利用されうる正常なソフトウエアなどを示す一方で、異常経路情報はアプリケーションの導入に利用されうる異常なソフトウエアなどを示す。例えば、マルウエアを拡散させていることで知られている既知の悪意あるウェブサイトがある場合、異常経路情報には、異常なソフトウエアの提供元として、そのウェブサイトの URL などを含めることができる。
ここで、導入基準情報を正常と異常に二分する代わりに、導入基準情報において、各属性値にその属性値の正常度(又は異常度)を対応づけて示してもよい。例えば、「属性名:インストーラ、属性値:インストーラI1、正常度合い:c1」などのような情報を、導入基準情報として利用することができる。
図8は、導入基準情報をテーブル形式で例示する図である。このテーブルをテーブル300と呼ぶ。テーブル300は、識別情報302、属性名304、属性値306、及び正常度308という4つの列を含む。識別情報302、属性名304、及び属性値306については、テーブル200の識別情報202、属性名204、及び属性値306と同様である。ただし、識別情報202にデータが示されていないレコードは、アプリケーションや実行環境に依存しないことを表す。正常度308は、対応する属性値の正常度を表す。
判定部2020は、導入実績情報と導入基準情報とを比較することで、対象アプリケーション30の実行許否を判定する。例えば判定部2020は、導入実績情報と導入基準情報とを比較することで、対象アプリケーション30の正常度又は異常度を表す評価値を算出する。評価値が対象アプリケーション30の正常度を表す場合、判定部2020は、例えば、評価値が所定の閾値以上であれば対象アプリケーション30の実行を許可し、評価値が所定の閾値未満であれば対象アプリケーション30の実行を許可しない。一方、評価値が対象アプリケーション30の異常度を表す場合、判定部2020は、例えば、評価値が所定の閾値以下であれば対象アプリケーション30の実行を許可し、評価値が所定の閾値より大きければ対象アプリケーション30の実行を許可しない。
対象アプリケーション30の評価値は、例えば、導入実績情報と導入基準情報との一致度合いに基づいて算出される。ここで、ルールやポリシー(本発明における導入基準情報)と実際の状況(本発明における導入実績情報)との一致度合いを算出する技術自体には、種々の既存の技術を利用することができる。
例えば、導入実績情報と導入基準情報との一致度合いは、以下の式(1)などを用いて算出することができる。
ここで、v は評価値を表す。E は、導入実績情報に示されている属性値の集合であり、|E| はその集合の要素数を表す。また、S は、導入実績情報と導入基準情報とで互いに一致する属性値の集合であり、|S| はその集合の要素数を表す。
導入実績情報と正常導入基準情報とを比較する場合、これらの一致度合いは、対象アプリケーション30の正常度合いを表す。一方、導入実績情報と異常導入基準情報とを比較する場合、これらの一致度合いは、対象アプリケーション30の異常度合いを表す。
また、導入基準情報が各属性についてその正常度を示すとする。この場合、導入実績情報と正常導入基準情報との間で一致する属性値の正常度の積算値や統計値(平均値、中央値、最頻値、最大値、及び最小値など)を、対象アプリケーション30の正常度を表す評価値として利用することができる。例えば、以下の数式(2)などを用いて評価値を算出することができる。
ここで、wi は属性値 i に付されている正常度である。
一方、導入基準情報が各属性についてその異常度を示すとする。この場合、導入実績情報と異常導入基準情報との間で一致する属性値の異常度の積算値や統計値を、対象アプリケーション30の異常度を表す評価値として利用することができる。その算出方法は、正常度を表す評価値と同様である。
なお、判定部2020は、導入実績情報と導入基準情報との不一致の度合いを評価に利用してもよい。例えば判定部2020は、導入実績情報と正常導入基準情報との一致度合いを表す評価値から、導入実績情報と正常導入基準情報との不一致度合いを表す評価値を引くことで、対象アプリケーション30の正常度を表す評価値を算出する。同様に、例えば判定部2020は、導入実績情報と異常導入基準情報との一致度合いを表す評価値から、導入実績情報と異常導入基準情報との不一致度合いを表す評価値を引くことで、対象アプリケーション30の異常度を表す評価値を算出してもよい。
前述した導入基準情報を生成する方法は様々である。例えば導入基準情報は、実行制御システム2000を運用する組織の IT 管理者などによって手動で生成される。その他にも例えば、導入基準情報は、装置によって自動で生成されてもよい。導入基準情報を生成する装置は、第1装置10であってもよいし、第2装置20であってもよいし、その他の装置であってもよい。以下、導入基準情報を生成する装置を、基準情報生成装置と呼ぶ。基準情報生成装置は、例えば、第1装置10や第2装置20と同様に図3で例示されるハードウエア構成を持つ計算機である。
例えば基準情報生成装置は、実行制御システム2000に含まれる1つ以上の第1装置10における対象アプリケーション30の導入の実績に基づいて導入基準情報を生成する。概念的には、1つ以上の第1装置10それぞれにおけるこれまでのアプリケーションの導入において、より多く利用された導入経路、配置場所、及び設定ほど、それぞれ、正常度が高い導入経路、配置場所、及び設定として扱われる。例えば、各対象アプリケーション30について、対象アプリケーション30が導入されたタイミングなどで、導入実績情報を生成しておく。そして、基準情報生成装置は、これまでに生成された導入実績情報を統計処理することで、導入基準情報を生成する。
例えば、各属性値の正常度は、これまでに生成された導入実績情報のうち、その属性値を示すものの個数と正の相関を持つように定められる。例えば、正常度は、上記個数を所定の非単調減少関数に入力することで得られる値として定められる。ただし、導入実績情報の個数ではなく、第1装置10の個数をカウントするようにしてもよい。すなわち、属性値の正常度を、その属性値を示す導入実績情報が生成された第1装置10の個数と正の相関を持つように定める。
正常度を示す導入基準情報を生成する場合、例えば基準情報生成装置は、前述した方法で正常度が算出された属性値について、その属性値と正常度との組み合わせを含む導入基準情報を生成する。正常導入基準情報を生成する場合、例えば基準情報生成装置は、前述した方法で算出された正常度が所定の閾値以上である属性値を含む正常導入基準情報を生成する。異常導入基準情報を生成する場合、例えば基準情報生成装置は、前述した方法で算出された正常度が所定の閾値以下である属性値を含む正常導入基準情報を生成する。なお、正常導入基準情報の生成に利用する閾値と、異常導入基準情報の生成に利用する閾値は、同じであってもよいし、異なっていてもよい。
また、基準情報生成装置は、実行制御システム2000が運用されているグループや外部組織などにおける評判(reputation)に基づいて、各属性値の正常度等を決定してもよい。実行制御システム2000が運用されているグループにおける評判は、例えば、グループのメンバーに対して行ったアンケートを集計したり、グループ内で運用されている SNS(Social Networking Service)に投稿された情報を収集したりすることで得ることができる。また、外部組織における評判は、例えば、マルウエアなどの悪意あるソフトウエアや悪意あるウェブサイトなどに関する情報を公開しているサイトにアクセスしたりすることで収集することができる。基準情報生成装置は、これらの方法により、導入基準情報に含めうる種々の属性値(アプリケーションの提供元となるサービスやハードウエア、導入に利用されるソフトウエア、アプリケーションの配置場所、アプリケーションの導入によって行われる設定など)について、その評判の情報を収集する。そして、基準情報生成装置は、収集した評判の情報に基づいて、各属性値の正常度や異常度を算出する処理や、各属性値が正常と異常のどちらであるかを判定する処理を行う。そして、基準情報生成装置は、これらの処理結果に基づいて、導入基準情報を生成する。
また、対象アプリケーション30が信頼度の高い有名なアプリケーションである場合、そのアプリケーションの導入経路や配置場所、及びそのアプリケーションの導入に伴って行われる設定についての情報が、信頼できるウェブサイトなど(例えば対象アプリケーション30の提供元のウェブサイト)などで公開されていることがある。そこで基準情報生成装置は、対象アプリケーション30の導入について信頼度の高い情報を提供していると考えられるウェブサイト等にアクセスして情報を得ることで、導入基準情報を生成してもよい。
判定部2020が導入基準情報を取得する方法は様々である。例えば判定部2020は、導入基準情報が記憶されている記憶装置から導入基準情報を取得する。その他にも例えば、判定部2020は、導入基準情報生成装置から導入基準情報を取得してもよい。
その他にも例えば、判定部2020は、以下で説明する方法で導入基準情報を取得してもよい。図9は、導入基準情報を管理する構成を例示する図である。この例では、判定部2020が第2装置20に設けられていることを前提としている。
まず、導入基準情報が格納されうる記憶装置として、判定部2020からのアクセスに要する時間が比較的短い第1記憶装置70と、判定部2020からのアクセスに要する時間が比較的長い第2記憶装置80が設けられている。例えば第1記憶装置70は、判定部2020が設けられている装置の内部に設けられている記憶装置や、判定部2020が設けられている装置と LAN で接続されている記憶装置である。一方、第2記憶装置80は、判定部2020が設けられている装置と WAN で接続されている記憶装置(例えば、クラウドストレージ)である。
導入基準情報は、第1記憶装置70と第2記憶装置80の双方に格納されうる。以下、第1記憶装置70に格納される導入基準情報を第1導入基準情報と呼び、第2記憶装置80に格納される導入基準情報を第2導入基準情報と呼ぶ。基準情報生成装置の運用開始時における第1導入基準情報は、例えば、IT 管理者によって手動で生成されたものである。また、基準情報生成装置は、実行制御システム2000における対象アプリケーション30の導入の実績に基づいて、第1導入基準情報を更新してもよい。第2導入基準情報は、サーバ90がインターネット上の情報を収集することによって随時更新されていく。
判定部2020は、取得した導入実績情報との比較に利用する導入基準情報を取得する際、まずは第1記憶装置70にアクセスして、第1導入基準情報の取得を試みる。第1導入基準情報の中に、導入実績情報に示されている属性値と一致する属性値が含まれていれば、判定部2020は、第1導入基準情報を利用する。一方、導入実績情報に示されている属性値の中に、一致する属性値が第1導入基準情報には存在しないものがあれば、判定部2020はサーバ90にアクセスする。
具体的には、判定部2020は、属性値を示すリクエストをサーバ90へ送信する。サーバ90は、第2記憶装置80にアクセスし、リクエストに示される属性値が第2導入基準情報に含まれるか否かを判定する。リクエストに示される属性値が第2導入基準情報に含まれている場合、サーバ90は、その属性値を示す第2導入基準情報のレコードが含まれるレスポンスを、判定部2020へ送信する。判定部2020は、受信したレコードに含まれる情報を対象アプリケーション30の実行許否の判定に利用する。また、判定部2020は、このようにして取得したレコードを、第1導入基準情報に追加する。こうすることで、次回以降の評価では、同じ情報を第2記憶装置80ではなく第1記憶装置70から取得することができるため、情報の取得をより早く行える。一方、リクエストに示される属性値が第2導入基準情報に含まれていない場合、サーバ90は、所望の情報が第2導入基準情報に含まれない旨を示すレスポンスを判定部2020へ送信する。
例えば、第1導入基準情報のみを利用した判定を第1判定とし、第2導入基準情報も用いられる判定を第2判定とする。すなわち、第1導入基準情報では情報が不足しており、第2導入基準情報の取得(サーバ90へのアクセス)が必要になったら、判定部2020による判定は、第1判定から第2判定に進む。そのため、第2装置20は、第2導入基準情報を取得することになったら、第1装置10に対し、「第2判定に進む」という通知を送信する。
また、第2導入基準情報を用いても実行許否を決定できなかった場合、さらに第3判定として、IT 管理者による人手の判定を加えてもよい。例えば、正常度を表す評価値の定義域について2つの閾値 T1 及び T2 を設けておく(T1>T2)。この場合、第2判定において、1)評価値が T1 以上であれば対象アプリケーション30の実行を許可し、2)評価値が T2 未満であれば対象アプリケーション30の実行を許可せず、3)評価値が T2 以上かつ T1 未満であれば第3判定を行うようにする。
対象アプリケーション30について第3判定を行う場合、例えば、IT 管理者等の端末(以下、管理者端末)に対し、第3判定が必要な対象アプリケーション30が存在することを通知する。この通知を受け取った IT 管理者等は、管理者端末に対し、その対象アプリケーション30の実行を許可するか否かを選択する入力を行う。この入力結果が、判定部2020による判定の結果として扱われる。
対象アプリケーション30の実行許否の判定には、対象アプリケーション30の導入に関する基準以外が利用されてもよい。その他の基準としては、例えば、以下の基準を利用することができる。
1)対象アプリケーション30の作成者
2)対象アプリケーション30のシグニチャ(バイナリのハッシュ値など)
3)対象アプリケーション30自体に関する評判
1)対象アプリケーション30の作成者
2)対象アプリケーション30のシグニチャ(バイナリのハッシュ値など)
3)対象アプリケーション30自体に関する評判
対象アプリケーション30の作成者が有名な人物や組織である場合、対象アプリケーション30の正常度は高いと考えられる。また、対象アプリケーション30のシグニチャが、信頼性が担保されている(例えば、正当な認証局によって認証済みである)アプリケーションについて公開されているシグニチャと一致する場合、対象アプリケーション30の正常度は高いと考えられる。同様に、第1装置10に導入された対象アプリケーション30のシグニチャが、既知にマルウエアのシグニチャと一致する場合、対象アプリケーション30の正常度は低いと考えられる。さらに、実行制御システム2000が運用されているグループや外部組織など(例えばインターネット上)における対象アプリケーション30の評判が高ければ、対象アプリケーション30の正常度は高いと考えられる。
このように、対象アプリケーション30の導入に関する以外の種々の情報も、対象アプリケーション30の実行許否を判定する行う上で有用なものになりうる。そこで例えば、判定部2020は、これら種々の情報をさらに利用して、対象アプリケーション30の実行許否を判定する。この場合、例えば基準情報に、前述した導入基準情報に加え、対象アプリケーション30の作成者、シグニチャ、及び評判などに関する基準も加える。例えば、「属性名:作成者、属性値:xyz.inc」などの基準である。また、判定部2020は、対象アプリケーション30について、導入実績情報に加え、対象アプリケーション30の作成者、シグニチャ、及び評判などに関する情報も取得する。そして、判定部2020は、取得した各種の情報を基準情報と比較することで、対象アプリケーション30の実行許否を判定する。
ここで、対象アプリケーション30について取得した作成者、シグニチャ、及び評判などに関する情報と、基準情報に含まれるこれらの情報とを比較する方法は、導入実績情報と基準情報とを比較する方法と同様である。例えば判定部2020は、前述した式(1)や(2)に示した評価値の算出式に、対象アプリケーション30の導入に関連する情報の一致度合いだけでなく、作成者、シグニチャ、及び評判などの一致度合いも含めるようにする。
なお、基準情報には、必ずしも導入基準情報が含まれる必要はない。すなわち、対象アプリケーション30の実行許否の判定は、対象アプリケーション30の作者についての基準など、対象アプリケーション30の導入に関する基準以外の基準のみを用いて行われてもよい。
<情報の出力>
実行制御システム2000の動作に関する種々の情報が対象アプリケーション30のユーザに対して提供されるようにしてもよい。このように対象アプリケーション30のユーザに対して情報を提供する機能構成部を出力部と呼び、出力部によって出力される情報を出力情報と呼ぶ。図10は、出力部2060を有する実行制御システム2000の機能構成を例示するブロック図である。出力部2060は、第1装置10と第2装置20のいずれか一方、又は双方に設けられる。
実行制御システム2000の動作に関する種々の情報が対象アプリケーション30のユーザに対して提供されるようにしてもよい。このように対象アプリケーション30のユーザに対して情報を提供する機能構成部を出力部と呼び、出力部によって出力される情報を出力情報と呼ぶ。図10は、出力部2060を有する実行制御システム2000の機能構成を例示するブロック図である。出力部2060は、第1装置10と第2装置20のいずれか一方、又は双方に設けられる。
出力部2060によって出力された出力情報は、第1装置10により、第1装置10のユーザがその内容を把握できる任意の対象で出力される。例えば第1装置10は、出力情報の内容を表す画面を、第1装置10に接続されているディスプレイ装置に表示させる。
出力情報の内容には、様々なものを採用できる。例えば出力情報には、判定部2020による判定の最終結果や途中経過に関する情報が含まれる。例えば最終結果に関する情報には、対象アプリケーション30の実行が許可されたか否かを表す情報が含まれる。最終結果に関する情報は、例えば、判定部2020による判定が終了したタイミングで出力される。
対象アプリケーション30の実行が許可された場合、対象アプリケーション30を正常に利用できることをユーザが把握できるようにするメッセージなどが出力される。例えば、「対象アプリケーション30の実行が許可されました。対象アプリケーション30は正常に利用できます。」などといったメッセージである。
一方、対象アプリケーション30の実行が許可されなかった場合、対象アプリケーション30を正常に利用できないことをユーザが把握できるようにするメッセージなどが出力される。例えば、「対象アプリケーション30の実行が許可されませんでした。対象アプリケーション30を終了します。」などといったメッセージである。
判定の途中経過に関する情報としては、例えば、対象アプリケーション30の実行許否の判定が行われていることをユーザが把握できるようにするメッセージが出力される。例えばこの情報は、判定部2020による判定が開始されたタイミングで出力される。例えば、「対象アプリケーション30の実行許否を判定しています」などといったメッセージが出力される。
判定部2020による判定が複数の段階を含む場合、判定の途中経過に関する情報は、例えば、どの段階の判定が行われているのかをユーザが把握できるようにするメッセージなどである。例えば、第1判定では対象アプリケーション30の実行許否を判断できなかったために第2判定が行われるとする。この場合、「第1判定を完了しました。第2判定を開始します。」や「第2判定実行中」などといったメッセージが出力される。これらのメッセージは、例えば、判定が次の段階に移行するタイミングで出力される。
なお、対象アプリケーション30をプロテクト環境で実行する際、その旨を出力情報に含めることが好適である。例えば、「対象アプリケーション30の実行許否を判定します。対象アプリケーション30はプロテクト環境で実行されます。」などといったメッセージが出力される。また、対象アプリケーション30の実行環境をプロテクト環境から通常の環境へ変更する際には、そのことをユーザが把握できるメッセージ等が出力されることが好適である。例えば、「対象アプリケーション30の実行環境を通常の環境に変更します」などといったメッセージが出力される。
<変形例>
これまでは、実行制御システム2000が、アプリケーションについてその実行許否の判定や制御を行うことを説明した。しかしながら、実行制御システム2000は、アプリケーションに加え、又はこれに代えて、共有ライブラリのロードの許否の判定及び制御を行ってもよい。すなわち、実行制御システム2000は、アプリケーションの実行許否の判定及びアプリケーションの実行の制御を行う方法と同様の方法で、共有ライブラリのロードの許否の判定及び共有ライブラリーを利用した処理の制御を行う。以下、実行制御システム2000による判定及び制御の対象となる共有ライブラリを、対象ライブラリと呼ぶ。
これまでは、実行制御システム2000が、アプリケーションについてその実行許否の判定や制御を行うことを説明した。しかしながら、実行制御システム2000は、アプリケーションに加え、又はこれに代えて、共有ライブラリのロードの許否の判定及び制御を行ってもよい。すなわち、実行制御システム2000は、アプリケーションの実行許否の判定及びアプリケーションの実行の制御を行う方法と同様の方法で、共有ライブラリのロードの許否の判定及び共有ライブラリーを利用した処理の制御を行う。以下、実行制御システム2000による判定及び制御の対象となる共有ライブラリを、対象ライブラリと呼ぶ。
対象ライブラリのロードの許否の判定は、対象アプリケーション30の実行許否の判定と同様に、第1判定と第2判定を含む(前述した様に、3つ以上の判定が含まれてもよい)。実行制御システム2000は、第1判定が完了するまでは、対象ライブラリのロードを行わない。そして、第1判定では対象ライブラリのロードの許否を決定できず、第2判定が行われる場合、実行制御システム2000は、対象ライブラリを利用した処理(共有ライブラリで定義されている関数の実行など)がプロテクト環境で行われるように、共有ライブラリをロードする。
対象ライブラリを利用した処理がプロテクト環境で実行される場合、その処理には、前述した種々の制限(データの読み書きやプロセスの起動の制限など)が適用される。なお、その制限の具体的な実現方法には、対象アプリケーション30に対する制限を実現する方法と同様の方法を利用することができる。
対象ライブラリは、実行制御システム2000による判定の結果に応じた扱いに関しても、対象アプリケーション30と同様とすることができる。すなわち、その処理がプロテクト環境で実行されるようにロードされた対象ライブラリについて、そのロードを許可すると判定された場合、制御部2040は、対象ライブラリを利用した処理が通常環境で実行されるようにする(通常環境に移行する)。また、その処理がプロテクト環境で実行されるようにロードされた対象ライブラリについて、そのロードを許可しないと判定された場合、例えば制御部2040は、対象ライブラリのアンロードを行う。
共有ライブラリのロードの許否の判定の基準には、対象アプリケーション30の実行の許否の判定の基準と同様のものを利用することができる。例えば一般に、共有ライブラリは、アプリケーションと同様に、何らかの方法で端末に導入される(例えば、インターネット経由でインストールされる)。そのため、共有ライブラリについても、アプリケーションと同様に、その導入経路を把握することができる。そこで例えば、実行制御システム2000は、対象ライブラリの導入経路を、共有ライブラリの導入に関する基準と比較することにより、対象ライブラリのロードの許否を判定する。その具体的な方法には、対象アプリケーション30の導入経路に基づいて対象アプリケーション30の実行の許否を判定する方法と同様の方法を採用することができる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
1. 対象ソフトウエアの動作の許否を判定する判定部を有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御部を有する、実行制御システム。
2. 前記判定部による判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、1.に記載の実行制御システム。
3. 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、1.又は2.に記載の実行制御システム。
4. 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、1.乃至3.いずれか一つに記載の実行制御システム。
5. 前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、1.乃至4.いずれか一つに記載の実行制御システム。
6. 前記対象ソフトウエアの動作が許可されなかった場合、前記制御部は、前記対象ソフトウエアの動作を終了する、1.乃至5.いずれか一つに記載の実行制御システム。
7. コンピュータによって実行される実行制御方法であって、
対象ソフトウエアの動作の許否を判定する判定ステップを有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御ステップを有する、実行制御方法。
8. 前記判定ステップによる判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、7.に記載の実行制御方法。
9. 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、7.又は8.に記載の実行制御方法。
10. 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、7.乃至9.いずれか一つに記載の実行制御方法。
11. 前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、7.乃至10.いずれか一つに記載の実行制御方法。
12. 前記対象ソフトウエアの動作が許可されなかった場合、前記制御ステップにおいて、前記対象ソフトウエアの動作を終了する、7.乃至11.いずれか一つに記載の実行制御方法。
13. 7.乃至12.いずれか一つに記載の実行制御方法の各ステップをコンピュータに実行させるプログラム。
1. 対象ソフトウエアの動作の許否を判定する判定部を有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御部を有する、実行制御システム。
2. 前記判定部による判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、1.に記載の実行制御システム。
3. 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、1.又は2.に記載の実行制御システム。
4. 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、1.乃至3.いずれか一つに記載の実行制御システム。
5. 前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、1.乃至4.いずれか一つに記載の実行制御システム。
6. 前記対象ソフトウエアの動作が許可されなかった場合、前記制御部は、前記対象ソフトウエアの動作を終了する、1.乃至5.いずれか一つに記載の実行制御システム。
7. コンピュータによって実行される実行制御方法であって、
対象ソフトウエアの動作の許否を判定する判定ステップを有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御ステップを有する、実行制御方法。
8. 前記判定ステップによる判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、7.に記載の実行制御方法。
9. 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、7.又は8.に記載の実行制御方法。
10. 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、7.乃至9.いずれか一つに記載の実行制御方法。
11. 前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、7.乃至10.いずれか一つに記載の実行制御方法。
12. 前記対象ソフトウエアの動作が許可されなかった場合、前記制御ステップにおいて、前記対象ソフトウエアの動作を終了する、7.乃至11.いずれか一つに記載の実行制御方法。
13. 7.乃至12.いずれか一つに記載の実行制御方法の各ステップをコンピュータに実行させるプログラム。
Claims (13)
- 対象ソフトウエアの動作の許否を判定する判定部を有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御部を有する、実行制御システム。 - 前記判定部による判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、請求項1に記載の実行制御システム。
- 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、請求項1又は2に記載の実行制御システム。
- 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、請求項1乃至3いずれか一項に記載の実行制御システム。 - 前記対象ソフトウエアの動作が許可された場合、前記制御部は、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、請求項1乃至4いずれか一項に記載の実行制御システム。
- 前記対象ソフトウエアの動作が許可されなかった場合、前記制御部は、前記対象ソフトウエアの動作を終了する、請求項1乃至5いずれか一項に記載の実行制御システム。
- コンピュータによって実行される実行制御方法であって、
対象ソフトウエアの動作の許否を判定する判定ステップを有し、
前記判定は、第1判定と、前記第1判定で前記対象ソフトウエアの動作の許否を決定できなかった場合に行わる第2判定とを含み、
前記第1判定が終わった後であって前記第2判定が行われている間に、前記対象ソフトウエアをプロテクト環境で動作させる制御ステップを有する、実行制御方法。 - 前記判定ステップによる判定は、前記対象ソフトウエアの動作が開始された時、及び前記対象ソフトウエアが導入された時の少なくとも一方で開始される、請求項7に記載の実行制御方法。
- 前記第2判定に要する時間は前記第1判定に要する時間よりも長い、請求項7又は8に記載の実行制御方法。
- 前記プロテクト環境で動作する前記対象ソフトウエアによって行われるデータの書き込みは、他のソフトウエアからアクセスできない第1記憶領域に対して行われ、
前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記第1記憶領域に書き込まれたデータを、少なくとも1つの他のソフトウエアからアクセス可能な第2記憶領域に書き込む、請求項7乃至9いずれか一項に記載の実行制御方法。 - 前記対象ソフトウエアの動作が許可された場合、前記制御ステップにおいて、前記対象ソフトウエアの動作環境をプロテクト環境から通常の実行環境に変更する、請求項7乃至10いずれか一項に記載の実行制御方法。
- 前記対象ソフトウエアの動作が許可されなかった場合、前記制御ステップにおいて、前記対象ソフトウエアの動作を終了する、請求項7乃至11いずれか一項に記載の実行制御方法。
- 請求項7乃至12いずれか一項に記載の実行制御方法の各ステップをコンピュータに実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/619,314 US20220366035A1 (en) | 2019-06-26 | 2019-06-26 | Execution control system, execution control method, and program |
JP2021528745A JP7255681B2 (ja) | 2019-06-26 | 2019-06-26 | 実行制御システム、実行制御方法、及びプログラム |
PCT/JP2019/025414 WO2020261438A1 (ja) | 2019-06-26 | 2019-06-26 | 実行制御システム、実行制御方法、及びプログラム |
JP2023052782A JP2023078441A (ja) | 2019-06-26 | 2023-03-29 | 実行制御システム、実行制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/025414 WO2020261438A1 (ja) | 2019-06-26 | 2019-06-26 | 実行制御システム、実行制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020261438A1 true WO2020261438A1 (ja) | 2020-12-30 |
Family
ID=74061072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/025414 WO2020261438A1 (ja) | 2019-06-26 | 2019-06-26 | 実行制御システム、実行制御方法、及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220366035A1 (ja) |
JP (2) | JP7255681B2 (ja) |
WO (1) | WO2020261438A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007074565A1 (ja) * | 2005-12-27 | 2007-07-05 | Nec Corporation | プログラム実行制御方法および装置ならびに実行制御プログラム |
US20080120611A1 (en) * | 2006-10-30 | 2008-05-22 | Jeffrey Aaron | Methods, systems, and computer program products for controlling software application installations |
JP2010079906A (ja) * | 2008-09-26 | 2010-04-08 | Symantec Corp | マルウェアの誤検出を低減する方法及び装置 |
JP2013540303A (ja) * | 2010-08-25 | 2013-10-31 | ルックアウト、アイエヌシー. | サーバで結合されたマルウェア防止のためのシステムと方法 |
JP2014021929A (ja) * | 2012-07-23 | 2014-02-03 | Toshiba Corp | 情報処理装置および制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479286B2 (en) * | 2009-12-15 | 2013-07-02 | Mcafee, Inc. | Systems and methods for behavioral sandboxing |
WO2015060833A1 (en) * | 2013-10-22 | 2015-04-30 | Empire Technology Development, Llc | Sandboxed application data redirection to datacenters |
JP2016181208A (ja) * | 2015-03-25 | 2016-10-13 | 三菱電機株式会社 | 不正監視装置および不正監視プログラム |
-
2019
- 2019-06-26 US US17/619,314 patent/US20220366035A1/en active Pending
- 2019-06-26 JP JP2021528745A patent/JP7255681B2/ja active Active
- 2019-06-26 WO PCT/JP2019/025414 patent/WO2020261438A1/ja active Application Filing
-
2023
- 2023-03-29 JP JP2023052782A patent/JP2023078441A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007074565A1 (ja) * | 2005-12-27 | 2007-07-05 | Nec Corporation | プログラム実行制御方法および装置ならびに実行制御プログラム |
US20080120611A1 (en) * | 2006-10-30 | 2008-05-22 | Jeffrey Aaron | Methods, systems, and computer program products for controlling software application installations |
JP2010079906A (ja) * | 2008-09-26 | 2010-04-08 | Symantec Corp | マルウェアの誤検出を低減する方法及び装置 |
JP2013540303A (ja) * | 2010-08-25 | 2013-10-31 | ルックアウト、アイエヌシー. | サーバで結合されたマルウェア防止のためのシステムと方法 |
JP2014021929A (ja) * | 2012-07-23 | 2014-02-03 | Toshiba Corp | 情報処理装置および制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220366035A1 (en) | 2022-11-17 |
JP2023078441A (ja) | 2023-06-06 |
JP7255681B2 (ja) | 2023-04-11 |
JPWO2020261438A1 (ja) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10511616B2 (en) | Method and system for detecting and remediating polymorphic attacks across an enterprise | |
US9154517B2 (en) | System and method for preventing spread of malware in peer-to-peer network | |
US9635041B1 (en) | Distributed split browser content inspection and analysis | |
US9953162B2 (en) | Rapid malware inspection of mobile applications | |
JP4936294B2 (ja) | マルウェアに対処する方法及び装置 | |
JP4676744B2 (ja) | セキュリティ関連プログラミング・インターフェース | |
US8621608B2 (en) | System, method, and computer program product for dynamically adjusting a level of security applied to a system | |
US11086983B2 (en) | System and method for authenticating safe software | |
US20130160126A1 (en) | Malware remediation system and method for modern applications | |
US8108686B2 (en) | Method and system for detecting modified pages | |
EP3497917B1 (en) | Detection of bulk operations associated with remotely stored content | |
KR101977428B1 (ko) | 애플리케이션용 콘텐츠 핸들링 기법 | |
CN114253579A (zh) | 一种基于白名单机制的软件更新方法、装置及介质 | |
US9785775B1 (en) | Malware management | |
US10880316B2 (en) | Method and system for determining initial execution of an attack | |
US8881291B2 (en) | System and method for inhibiting the processing of new code modules by an outdated runtime environment | |
WO2023124041A1 (zh) | 一种勒索病毒检测方法以及相关系统 | |
WO2020261438A1 (ja) | 実行制御システム、実行制御方法、及びプログラム | |
JP6884652B2 (ja) | ホワイトリスト管理システムおよびホワイトリスト管理方法 | |
JP7268742B2 (ja) | ポリシー評価装置、制御方法、及びプログラム | |
JP7235109B2 (ja) | 評価装置、システム、制御方法、及びプログラム | |
US11714907B2 (en) | System, method, and apparatus for preventing ransomware | |
US20220342985A1 (en) | Anomaly detection and characterization in app permissions | |
JP2017215799A (ja) | 情報処理方装置、情報処理装置の制御方法、およびコンピュータプログラム | |
JP2022190970A (ja) | 情報処理装置、情報処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19934673 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021528745 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19934673 Country of ref document: EP Kind code of ref document: A1 |