JP5381670B2 - Execution control method, execution control program, and execution control apparatus - Google Patents
Execution control method, execution control program, and execution control apparatus Download PDFInfo
- Publication number
- JP5381670B2 JP5381670B2 JP2009280948A JP2009280948A JP5381670B2 JP 5381670 B2 JP5381670 B2 JP 5381670B2 JP 2009280948 A JP2009280948 A JP 2009280948A JP 2009280948 A JP2009280948 A JP 2009280948A JP 5381670 B2 JP5381670 B2 JP 5381670B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- change
- storage destination
- list
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、実行制御方法、実行制御プログラムおよび実行制御装置に関する。 The present invention relates to an execution control method, an execution control program, and an execution control apparatus.
近年、インターネットの普及にともなってコンピュータウィルス等の悪意をもったプログラムによる被害が増大している。このような悪意をもったプログラムは、例えば、正常なプログラムを自らと置き換え、正常なプログラムに成りすまして、不正な処理を実行する。 In recent years, with the spread of the Internet, damage caused by malicious programs such as computer viruses has increased. Such a malicious program, for example, replaces a normal program with itself, impersonates a normal program, and executes unauthorized processing.
それを発見するために、正常なプログラムのハッシュ値を事前に保存し、それと他プログラムへの処理(書込や読取など)を要求している同名のプログラムの実行ファイルのハッシュ値を比較することによって、実行ファイルの改ざんの有無を検査する。改ざんを発見した場合は、処理要求の拒否を行う。 To find it, store the hash value of the normal program in advance, and compare it with the hash value of the executable file of the program of the same name that requests processing (such as writing or reading) to another program To check if the executable file has been tampered with. If tampering is found, the processing request is rejected.
しかしながら、上記の従来技術では、改ざんの検出には有効であるものの、プログラムを正当に更新する場合に問題が生ずる。この問題について具体的に説明すると、上記の従来技術で用いられるハッシュ値は、プログラム内のビット列の値を利用して算出される。このため、正当な権限を有する者がプログラムの不具合を改修した場合や、バージョンアップを行った場合であっても、更新前後のプログラムのハッシュ値が異なってしまう。このため、正当な権限を有する者が作成したプログラムが、正当な目的で他のプログラムを更新しても、更新後のプログラムのハッシュ値が異なるため、更新後のプログラムを実行しようとしても実行できなくなってしまう。 However, although the above-described conventional technique is effective for detecting tampering, a problem arises when the program is properly updated. This problem will be described in detail. The hash value used in the above conventional technique is calculated using the value of the bit string in the program. For this reason, the hash value of the program before and after the update is different even if a person with a legitimate authority corrects the problem of the program or upgrades the version. For this reason, even if a program created by a person with legitimate authority updates another program for a legitimate purpose, the hash value of the updated program is different, so it can be executed even if it tries to execute the updated program. It will disappear.
このように、正当な目的で更新されたプログラムを実行させるには、更新後のプログラムのハッシュ値を管理者に登録させる必要がある。ところが、プログラムの不具合の改修やバージョンアップは日常茶飯事に実施されるものであり、プログラムの更新が行われる度にそのハッシュ値を登録させるのは現実的ではない。 Thus, in order to execute a program updated for a legitimate purpose, it is necessary to register the hash value of the updated program with the administrator. However, it is not practical to register the hash value every time the program is updated, since the trouble of the program is repaired and the version is updated every day.
開示の技術は、上記に鑑みてなされたものであって、プログラムの正当な更新を許容しつつ、プログラムの不正な更新を防止することができる実行制御方法、実行制御プログラムおよび実行制御装置を提供することを目的とする。 The disclosed technique has been made in view of the above, and provides an execution control method, an execution control program, and an execution control apparatus that can prevent unauthorized update of a program while allowing the program to be properly updated The purpose is to do.
本願の開示する実行制御方法は、複数の記憶部を有する情報処理装置による実行制御方法であって、特定のプログラムの動作の許可または制限のいずれかを定義したプログラムリストを読み込むリスト読込ステップと、所定のプログラムから他のプログラムの書込み要求を受け付けた場合に前記プログラムリストを参照し、前記所定のプログラムが前記プログラムリストにおいて動作が許可されている場合には、当該書込み要求で指定された前記他のプログラムの保存先を変更せず、前記所定のプログラムが前記プログラムリストにおいて動作が許可されていない場合には、当該書込み要求で指定された前記他のプログラムの保存先を所定の記憶部へ変更する変更制御ステップと、前記変更制御ステップによって前記他のプログラムの保存先が変更された場合に、当該書込み要求を行った前記所定のプログラムと変更前の保存先及び変更後の保存先とを対応付けて変更情報として記録する変更情報記録ステップと、前記プログラムリストへ追加されたプログラムが前記変更情報に含まれる場合に、該追加されたプログラムに対応付けられた変更前の保存先及び変更後の保存先に基づき、該変更後の保存先に書き込まれた他のプログラムを該変更前の保存先へ書き換えるように制御する書換え制御ステップとを含む。 The execution control method disclosed in the present application is an execution control method by an information processing apparatus having a plurality of storage units, and a list reading step for reading a program list that defines either permission or restriction of the operation of a specific program; When a write request for another program is received from a predetermined program, the program list is referred to. When the predetermined program is permitted to operate in the program list, the other specified by the write request If the predetermined program is not permitted to operate in the program list without changing the storage destination of the program, the storage destination of the other program specified in the write request is changed to a predetermined storage unit. Change control step to be performed, and the storage destination of the other program by the change control step A change information recording step of recording the change information in association with the predetermined program that has made the write request, the storage destination before the change, and the storage destination after the change when the change is made, and is added to the program list When the changed program is included in the change information, another program written in the changed storage destination is changed based on the storage destination before the change and the storage destination after the change associated with the added program. And a rewrite control step for controlling to rewrite the storage destination before the change.
本願の開示する実行制御方法の一つの態様によれば、プログラムの正当な更新を許容しつつ、プログラムの不正な更新を防止することができるという効果を奏する。 According to one aspect of the execution control method disclosed in the present application, it is possible to prevent unauthorized updating of a program while allowing authorized updating of the program.
以下に、本願の開示する実行制御方法、実行制御プログラムおよび実行制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。 Hereinafter, embodiments of an execution control method, an execution control program, and an execution control apparatus disclosed in the present application will be described in detail with reference to the drawings. Note that this embodiment does not limit the disclosed technology.
図1は、実施例1に係る情報処理装置の構成を示すブロック図である。図1に示すように、情報処理装置1は、内部記憶部2と、外部記憶部3と、変更制御部4と、変更情報記録部5と、書換え制御部6とを有する。
FIG. 1 is a block diagram illustrating the configuration of the information processing apparatus according to the first embodiment. As illustrated in FIG. 1, the
内部記憶部2は、ハードディスク装置など情報処理装置1が内蔵する記憶装置である。この内部記憶部2は、特定のプログラムの動作を定義するプログラムリスト2aと、保存先の変更が行われたデータの保存先の変更内容を示す変更履歴2bと、情報処理装置1で実行され得るプログラム2cとを記憶する。
The
このプログラムリスト2aは、情報処理装置1における動作を無条件に許可するプログラムと情報処理装置1における動作を制限するプログラムとを予め定義したリストである。これによって、情報処理装置1において管理者が指定するプログラムだけが制約を受けずに利用できるようにする。
The
外部記憶部3は、USB(Universal Serial Bus)メモリなど情報処理装置1とは別体の外部装置であるとともに、所定の条件、例えばUSB接続されるなどの条件を満たした場合に情報処理装置1からアクセス可能となる記憶装置である。この外部記憶部3には、変更制御部4によって保存先が変更されたプログラム3cが記憶される。
The
変更制御部4は、プログラムリスト2aにおいて動作が許可されていないプログラムによって書込み要求がなされたプログラムの保存先を内部記憶部2から外部記憶部3へ変更する。そして、変更制御部4は、保存先の変更を行った場合には、書込み対象のプログラムを内部記憶部2に書込む。一方、変更制御部4は、保存先の変更を行わなかった場合には、書込み対象のプログラムを外部記憶部3に書込む。
The
すなわち、変更制御部4は、プログラムリスト2aに登録されていない導入プログラムだからといって情報処理装置1へのプログラムの導入を禁止するわけではない。なお、導入プログラムとは、導入対象のプログラムや設定ファイルと、それらを導入するための各種手続とを含むプログラムである。このように、プログラムリスト2aに非登録である導入プログラムがプログラムを導入するのを一律に禁止としないのは、ある時点でプログラムリスト2aに非登録であったとしてもそれ以降にプログラムリスト2aに追加される余地があるからである。言い換えれば、プログラムリスト2aへの追加が行われるまでプログラムの導入を禁止することにより、そのプログラムが導入されている他の装置から受け取ったデータを情報処理装置1で扱うことができない機会が生じるのを防止するためである。
That is, the
ただし、変更制御部4は、プログラムリスト2aに登録されていない導入プログラムによって導入されるプログラムについては内部記憶部2ではなく外部記憶部3へ書き込む。かかる保存先の変更によって、新規に導入したプログラムにより情報処理装置1に不具合が生じた場合でも、外部記憶部3を切り離すことで情報処理装置1がプログラムリスト2aに登録されたプログラムだけを格納したクリーンな状態に戻すことができる。このように、被導入プログラムを外部記憶部3へ格納することにより、プログラムリスト2aに非登録である導入プログラムが情報処理装置1にプログラムを導入することによるリスクを低減する。
However, the
変更情報記録部5は、保存先の変更を行った場合に、書込み要求を行ったプログラムに変更前の保存先及び変更後の保存先を対応付けて変更履歴2bとして内部記憶部2へ記録する。
When the storage destination is changed, the change
書換え制御部6は、プログラムリスト2aへ追加されたプログラムが変更履歴2bに含まれる場合に、変更後の保存先に書き込まれているプログラムを変更前の保存先へ書き換えるように制御する。このように、変更後の保存先に書き込まれているプログラムを変更前の保存先へ書き換えることにより、外部記憶部3が取り外された場合でも内部記憶部2へプログラムを再導入する手間を不要化する。
When the program added to the
すなわち、プログラムが外部記憶部3に書き込まれた状態では、外部記憶部3が取り外されるとそのプログラムは実行できなくなってしまう。この場合には、情報処理装置1の使用者に既に導入したはずのプログラムを再導入する手間が発生してしまう。このような不要な手間をなくすために、書換え制御部6は、外部記憶部3に書き込まれているプログラムを内部記憶部2へ書き換える。
That is, in a state where the program is written in the
上述してきたように、本実施例に係る情報処理装置1では、プログラムリスト2aを使用するとともにプログラムリスト2aに非登録の導入プログラムにより導入されるプログラムの保存先を内部記憶部2から外部記憶部3へ変更する。このため、プログラムの正当な更新を許容しつつ、プログラムの不正な更新を防止できる。加えて、本実施例に係る情報処理装置1では、プログラムリスト2aへ追加されたプログラムが変更履歴2bに含まれる場合に、変更後の保存先に書き込まれているプログラムを変更前の保存先へ書き換えるように制御する。このため、外部記憶部3が取り外された場合でも内部記憶部2へプログラムを再導入する手間を不要化できる。
As described above, in the
続いて、実施例2に係る情報処理システムについて説明する。図2は、実施例2に係る情報処理システムの構成を示す図である。情報処理システム100は、ホワイトリストに登録されていないプログラムの動作を制限する制御を実行する。ホワイトリストとは、通常通り実行させてよいプログラムに関する情報が登録されたファイルであり、ここに登録されていないプログラムは、実行時に何らかの制約を受ける。
Subsequently, an information processing system according to the second embodiment will be described. FIG. 2 is a diagram illustrating the configuration of the information processing system according to the second embodiment. The
図2に示すように、情報処理システム100は、情報処理装置10a〜10cと、サーバ20と、それらを接続するネットワーク30とを含む。情報処理装置10a〜10cは、例えば、パソコンであり、それぞれ、外部記憶装置11a〜11cが接続されている。情報処理装置10a〜10cは、利用者や他の装置等から要求された情報処理を実行するとともに、上述したプログラム実行制御方法等も実行する。
As shown in FIG. 2, the
サーバ20は、ホワイトリスト21を集中管理する。サーバ20に記憶されたホワイトリスト21は、サーバ20から情報処理装置10a〜10cへ配信され、情報処理装置10a〜10cにおいて、プログラムを通常通り実行させてよいか否かを判定するために用いられる。ホワイトリスト21は、情報処理装置10a〜10cにおいて更新されることもあり、その場合、更新されたホワイトリスト全部または差分が情報処理装置10a〜10cからサーバ20へ送信される。
The server 20 centrally manages the
ネットワーク30は、インターネット31と接続されている。そして、情報処理装置10a〜10cは、ネットワーク30およびインターネット31を介して、更新ファイル提供装置22と接続されている。更新ファイル提供装置22は、プログラムを更新するための更新ファイルを保持する装置である。
The
なお、図2に示す情報処理システム100は一例であり、情報処理システム100に含まれる各装置の数や各装置間の接続経路は、図2の通りである必要はない。例えば、情報処理装置10a〜10cへ配信するホワイトリスト21さえ共有されていれば、サーバの負荷分散の観点からサーバ20を複数設けることとしてもよい。
Note that the
次に、図2に示した情報処理装置10a〜10cの構成について説明する。なお、情報処理装置10a〜10cは、いずれも同様の構成を有するので、ここでは情報処理装置10aを例にして構成の説明を行う。
Next, the configuration of the
図3は、情報処理装置10aの構成を示すブロック図である。図3に示すように、情報処理装置10aは、CPU(Central Processing Unit)110と、入力部120と、表示部130と、ネットワークインターフェース部(以下、「ネットワークI/F部」という)140とを有する。さらに、情報処理装置10aは、入出力インターフェース部(以下、「入出力I/F部」という)150と、記憶媒体読書部160と、ハードディスク装置170と、RAM(Random Access Memory)180と、各部を接続するバス190とを有する。
FIG. 3 is a block diagram illustrating a configuration of the
CPU110は、各種演算処理を実行する演算回路である。入力部120は、利用者が指示や情報を入力する装置であり、例えば、キーボードやマウスである。表示部130は、文字や図形を表示する装置であり、例えば、液晶表示装置である。ネットワークI/F部140は、ネットワーク30を介して接続された他の装置との通信を実現する。入出力I/F部150は、外部記憶装置11aとの間でのデータの入出力を実現する。
The CPU 110 is an arithmetic circuit that executes various arithmetic processes. The
記憶媒体読書部160は、光ディスク等の記憶媒体に対してデータの読書きを行う。ハードディスク装置170は、各種ファイルを記憶する記憶装置である。RAM180は、プログラムやデータが展開されるワークメモリである。
The storage
ハードディスク装置170は、例えば、OSプログラム171、アプリケーションプログラム172、実行制御プログラム173、ホワイトリスト174、導入履歴175、更新履歴176、変更履歴177を記憶する。
The hard disk device 170 stores, for example, an
OSプログラム171は、OSの各種機能を実現するプログラムである。OSプログラム171は、情報処理装置10aの起動時にCPU110によってハードディスク装置170から読み出されてRAM180に展開され、OS181として機能するようになる。
The
アプリケーションプログラム172は、CPU110によってハードディスク装置170から読み出され、RAM180に展開されて実行プロセス183となり、OS181に対して各種要求を行いながら所定の目的の処理を実行する。アプリケーションプログラム172には、他のプログラムを更新する更新プログラムも含まれる。
The application program 172 is read from the hard disk device 170 by the CPU 110 and expanded into the
実行制御プログラム173は、ホワイトリスト174に基づいてプログラムの動作を制御するとともに、プログラムが他のプログラムによって不正に上書きされることを防止する。実行制御プログラム173は、OS181の指示によって、OS181の起動後にCPU110によってハードディスク装置170から読み出され、RAM180に展開され、実行制御プロセス182として機能するようになる。また、実行制御プログラム173の一部は、OS181に組み込まれて、ファイルアクセス制御部181aとして機能するようになる。
The execution control program 173 controls the operation of the program based on the
ファイルアクセス制御部181aは、各種実行プロセス183からの要求に基づいてOS181がハードディスク装置170に対して実行する読出処理および書込処理の監視と制御を行う。
The file
ここでファイルアクセス制御部181aは、実行プロセス183がOS181を介してハードディスク装置170のファイルアクセスを行うために利用されるOS181が用意するアプリケーション・プログラム・インタフェース「API」をトラップする。この他にファイルアクセス制御部181aの機能を実行制御プログラム173から分離し、OS181のファイルシステムドライバとして実装する。これによって、OS181の起動時からファイルアクセス制御部181aが起動し、実行プロセス183からOS181を介して行われるハードディスク装置170へのファイルアクセスをトラップすることができる。または、実行制御プログラム173そのものがドライバとしてOS181に含まれても良い。
Here, the file
具体的には、ファイルアクセス制御部181aは、OS181が、ハードディスク装置170を制御するドライバに対して読出し指示または書込み指示を発行すると、その指示を一時的にトラップする。そして指示の内容と指示を行ったプロセスの実体であるアプリケーションプログラム172をOS181の管理テーブルから取得し、それらをフォーマットの情報とし、実行制御プロセス182に通知する。
Specifically, when the
このOS181が、ハードディスク装置170に対して読出し指示または書込み指示を行うコマンドのデータフォーマットを図4に示す。図4は、プログラムがファイル操作を行う場合にOSがファイルシステム発行する操作命令の一例を示す図である。
FIG. 4 shows a data format of a command for the
図4に示すように、このコマンドは、指示を行った実行プロセス183のプロセス番号と、ハードディスク装置170に対する書込処理や読み取り処理などのファイル操作コマンドと、ファイル操作用データとが含まれている。ファイル操作用データには、書込または読み取り処理の場合の対象ファイル名や、書込処理が指定された場合は更に書込を行う情報が含まれている。 As shown in FIG. 4, this command includes the process number of the execution process 183 that issued the instruction, a file operation command such as a write process or a read process for the hard disk device 170, and file operation data. . The file operation data includes the target file name in the case of writing or reading processing, and information for further writing when the writing processing is designated.
プロセス番号とは、OS181が複数ある実行プロセスを管理するために、アプリケーションプログラム172が実行プロセス183となった場合に割り当てられるユニークな番号である。
The process number is a unique number assigned when the application program 172 becomes the execution process 183 in order to manage an execution process having a plurality of
次に、プロセス番号からアプリケーションプログラム172を特定する手順を示す。図5は、OSがプロセスを管理する管理テーブルの一例の図である。図6は、ファイル操作を行ったプロセスを特定するために必要な情報の一例の図である。 Next, a procedure for specifying the application program 172 from the process number is shown. FIG. 5 is a diagram illustrating an example of a management table in which the OS manages processes. FIG. 6 is a diagram illustrating an example of information necessary for specifying a process that has performed a file operation.
ファイルアクセス制御部181aは、OS181に対して読出処理や書込処理を要求した実行プロセスに関する情報をOS181内の管理テーブル(図5)から取得する。ファイルアクセス制御部181aが取得した指示(図4)からプロセス番号を取り出し、OS181の管理テーブル(図5)と比較し、アプリケーションのプログラムパスを取得する。このアプリケーションのプログラムパスは、図3のハードディスク装置170に保存されているアプリケーションプログラム172の情報である。次に、管理テーブル(図5)からプロセス番号に対応した親プロセス番号を取得し、これが全てのプロセスの起点であるIDLEプロセスを示す0でない場合は、親プロセス番号を新たなプロセス番号として管理テーブル(図5)と比較する。そして親プロセス番号が0となるまで遡りアプリケーションのプログラムパスを取得する。
The file
結果として、ファイルアクセス制御部181aは、動作制御部182aへ渡すための情報である図6に示すような、プロセス番号、親プロセス番号、モジュール名、アプリケーションのプログラムパスをまとめた情報を生成する。
As a result, the file
なお、図4、図5は一例であり、OSによって構成が異なる。 4 and 5 are examples, and the configuration differs depending on the OS.
そして、ファイルアクセス制御部181aは、実行制御プロセス182からの応答に従って、読出し指示や書込み指示をそのまま実行させたり、キャンセルさせたり、指示の内容を変更したりする処理を行う。
Then, the file
例えば、ファイルアクセス制御部181aは、ホワイトリスト174に登録されていない導入プログラムが書込み要求を行うプログラムやホワイトリスト174に登録されていないプログラムによって生成されたデータの書込み要求で指定された保存先を変更する。すなわち、ファイルアクセス制御部181aは、情報処理装置10aの使用者が内部記憶装置であるハードディスク装置170に保存先を指定していたとしても外部記憶装置11aへ保存先をリダイレクトする処理を行う。このようにして保存先を変更した場合には、ファイルアクセス制御部181aは、後述する変更履歴管理部182fへ保存先の変更内容を通知し、その変更内容を変更履歴177として変更履歴管理部182fに登録させる。
For example, the file
図7は、ファイルパスを変更する場合にファイルアクセス制御部181aが変更履歴管理部182fへ発行する命令の一例を示す図である。図7に示すように、このコマンドには、変更履歴管理部182fを制御するためのコマンドと、書込み要求を行ったソフトウェアと、変更前の保存先と、変更後の保存先とが含まれる。
FIG. 7 is a diagram illustrating an example of an instruction issued by the file
図7に示す例で言えば、変更履歴177を登録する場合には、ファイルアクセス制御部181aは、制御コマンドに「add」を配置する。さらに、ファイルアクセス制御部181aは、作成に使用したプログラム名に「書込み要求を行ったプログラム名」を配置する。さらに、ファイルアクセス制御部181aは、変更前の保存先には「書込み要求で指定された内部記憶装置のファイルパス」を配置するとともに変更後の保存先には「外部記憶装置へリダイレクトしたファイルパス」を配置する。このような配置を行った上で、ファイルアクセス制御部181aは、その命令を変更履歴管理部182fへ送信する。
In the example shown in FIG. 7, when registering the change history 177, the file
また、ファイルアクセス制御部181aは、ホワイトリスト174に新たなプログラムが追加された場合に、そのプログラムが変更履歴177に含まれるか否かを変更履歴管理部182fに検索させる。図7に示す例で言えば、ファイルアクセス制御部181aは、制御コマンドに「search」を配置する。さらに、ファイルアクセス制御部181aは、作成に使用したプログラム名に「検索対象とするプログラム名」を配置し、変更前の保存先と変更後の保存先にはそれぞれ「NULL」を配置する。このような配置を行った上で、ファイルアクセス制御部181aは、その命令を変更履歴管理部182fへ送信する。
In addition, when a new program is added to the
また、ファイルアクセス制御部181aは、変更前の保存先へプログラムまたはデータを書き戻した後にその変更履歴177を変更履歴管理部182fに削除させる。図7に示す例で言えば、ファイルアクセス制御部181aは、制御コマンドに「del」を配置し、作成に使用したプログラム名に「書き戻しを行ったプログラム名」を配置する。さらに、ファイルアクセス制御部181aは、変更前の保存先には「書込み要求で指定された内部記憶装置のファイルパス」を配置するとともに変更後の保存先には「外部記憶装置へリダイレクトしたファイルパス」を配置する。このような配置を行った上で、ファイルアクセス制御部181aは、その命令を変更履歴管理部182fへ送信する。
In addition, the file
実行制御プロセス182は、動作制御部182aと、動作判定部182bと、導入制御部182cと、更新制御部182dと、ホワイトリスト更新部182eと、変更履歴管理部182fとを有する。動作制御部182aは、実行制御プロセス182を全体制御する制御部であり、ファイルアクセス制御部181aからの通知内容に応じて、動作判定部182b、導入制御部182c、更新制御部182dまたは変更履歴管理部182fの機能を呼び出す。
The
動作判定部182bは、指定されたプログラムが通常通り実行させてよいプログラムとしてホワイトリスト174に登録されているか否かを判定する。ここで、ホワイトリスト174の一例を図8に示す。図8に示すように、ホワイトリスト174は、名称、ファイル名、バージョン、ハッシュ値といった項目を有する。
The
名称は、プログラムの呼称である。ファイル名は、プログラムの物理的なファイル名である。バージョンは、プログラムの版を識別するための番号である。ハッシュ値は、プログラムをハッシュ関数に入力して生成されたハッシュ値である。 The name is the name of the program. The file name is a physical file name of the program. The version is a number for identifying the version of the program. The hash value is a hash value generated by inputting a program into a hash function.
具体的には、動作判定部182bは、指定されたプログラムのアプリケーションのプログラムからハッシュ値を生成する。そして、動作判定部182bは、生成したハッシュ値と同一のハッシュ値をもつ行がホワイトリスト174にあれば、そのプログラムが通常通り実行させてよいプログラムであると判定する。また、生成したハッシュ値と同一のハッシュ値をもつ行がホワイトリスト174になければ、その親のプロセスのプログラムからハッシュ値を生成し、再度ホワイトリスト174と比較し判定を行う。そして親のプロセスも全てチェックしてもホワイトリスト174に該当しなければ、そのプログラムが通常通り実行させてよいプログラムではないと判定する。
Specifically, the
導入制御部182cは、導入プログラムによる導入処理を監視して、導入プログラムと被導入プログラムの対応を導入履歴175に記録する。ここで、導入履歴175の一例を図9に示す。図9に示すように、導入履歴175は、導入プログラムID、導入プログラム名、被導入プログラムパス名、バージョン、ハッシュ値といった項目を有し、導入されたプログラム毎に行が追加される。
The
導入プログラムIDは、導入プログラムによる導入処理毎に割り当てられるユニークな番号である。導入プログラム名は、導入プログラムの呼称である。被導入プログラムパス名は、導入プログラムによって導入されたプログラムのパス付きのファイル名である。バージョンは、導入プログラムによって導入されたプログラムの版を示す番号である。ハッシュ値は、導入プログラムによって導入されたプログラムのハッシュ値である。 The introduction program ID is a unique number assigned for each introduction process by the introduction program. The introduction program name is the name of the introduction program. The installed program path name is a file name with a path of a program installed by the installed program. The version is a number indicating the version of the program installed by the installation program. The hash value is a hash value of a program introduced by the introduction program.
図9に示した導入履歴175の1行目と2行目の導入プログラムIDの値は、「INS001」で共通している。このことは、1行目と2行目に対応する被導入プログラムが同一の導入処理で導入されたこと、すなわち、同一の導入プログラムによって導入されたことを示している。
The value of the introduction program ID in the first and second lines of the
更新制御部182dは、導入プログラムによる導入処理以外の書込処理を監視して、プログラムが不正に上書きされないようにするとともに、プログラムが正当に更新された場合は、その結果を更新履歴176に記録する。ここで、更新履歴176の一例を図10に示す。図10に示すように、更新履歴176は、連番、被更新プログラムパス名、前バージョン、新バージョン、前ハッシュ値、新ハッシュ値といった項目を有する。
The
連番は、行が追加される度にカウントアップされるユニークな番号である。被更新プログラムパス名は、更新プログラムによって更新されたプログラムのパス付きのファイル名である。前バージョンは、更新プログラムによって更新されたプログラムの更新前の版の番号である。新バージョンは、更新プログラムによって更新されたプログラムの更新後の版の番号である。前ハッシュ値は、更新プログラムによって更新されたプログラムの更新前のハッシュ値である。新ハッシュ値は、更新プログラムによって更新されたプログラムの更新後のハッシュ値である。 The serial number is a unique number that is counted up each time a row is added. The update program path name is a file name with the path of the program updated by the update program. The previous version is the number of the version before the update of the program updated by the update program. The new version is an updated version number of the program updated by the update program. The previous hash value is a hash value before the update of the program updated by the update program. The new hash value is an updated hash value of the program updated by the update program.
図10に示した更新履歴176の1行目と3行目は、同一のプログラムに関するものであり、このプログラムが2回更新されていることを示している。すなわち、1行目に対応する1回目の更新ではバージョンが「9.0」でハッシュ値が「873jd75d」のプログラムが、バージョンが「9.1」でハッシュ値が「83s84j7z」のプログラムへ更新されている。そして、3行目に対応する2回目の更新ではバージョンが「9.1」でハッシュ値が「83s84j7z」のプログラムが、バージョンが「9.2」でハッシュ値が「93fg492s」のプログラムへ更新されている。
The first and third lines of the
更新制御部182dは、他のプログラムを更新しようとしているプログラムが正当であるかを判断するために、それらのプログラムが同一の導入プログラムによって導入されたか否かを検証する。この検証のために、更新制御部182dは、導入履歴175に加えて更新履歴176を参照する。
The
導入履歴175には、プログラムが導入された時点のハッシュ値しか残っていないため、プログラムが既に更新を受けている場合には、プログラムの現在のハッシュ値を導入履歴175と照合しても、どの導入プログラムによって導入されたか特定できない。被導入プログラムパス名で照合することも考えられるが、何らかの理由でファイル名を含めて、パスが変更されていることがあり得るため好ましくない。
Since only the hash value at the time of introduction of the program remains in the
そこで、更新制御部182dは、プログラムの現在のハッシュ値を導入履歴175と照合し、どの導入プログラムによって導入されたか特定できない場合には、更新履歴176を参照して導入時のプログラムのハッシュ値を取得する。そして、取得した導入時のハッシュ値を導入履歴175と照合して、どの導入プログラムによって導入されたかを特定する。
Therefore, the
例えば、図10に示した例で2回更新されているプログラムの場合、現在のハッシュ値である「93fg492s」が新ハッシュの項目の値として設定されている3行目のデータから、1つ前のハッシュ値である「83s84j7z」が取得される。続いて、1つ前のハッシュ値である「83s84j7z」が新ハッシュの項目の値として設定されている1行目のデータから、2つ前のハッシュ値である「873jd75d」が取得される。 For example, in the case of the program updated twice in the example shown in FIG. 10, the current hash value “93fg492s” is set to the previous one from the data in the third row in which the value of the new hash item is set. The hash value “83s84j7z” is acquired. Subsequently, “873jd75d” that is the second previous hash value is acquired from the data in the first row in which “83s84j7z” that is the previous hash value is set as the value of the item of the new hash.
そして、2つ前のハッシュ値である「873jd75d」が新ハッシュの項目の値として設定されている行は更新履歴176には存在しないため、「873jd75d」が導入時のプログラムのハッシュ値として取得される。この「873jd75d」を図9に示した導入履歴175と照合することにより、導入プログラムの導入プログラムIDである「INS001」が取得される。
And since there is no row in the
また、更新制御部182dは、プログラムが正当に更新された場合、更新されたプログラムがホワイトリスト174に登録されていれば、更新後のプログラムの情報をホワイトリスト174に追加する。更新後のプログラムは、ハッシュ値が変わっているため、このようにしないと、更新後のプログラムが通常通り実行されなくなってしまうためである。
The
ホワイトリスト更新部182eは、ホワイトリスト174の更新処理を実行する。具体的には、ホワイトリスト更新部182eは、サーバ20に対して問い合わせを行い、ホワイトリスト21が更新されていれば、ホワイトリスト21をダウンロードする。そして、ホワイトリスト更新部182eは、ホワイトリスト21をホワイトリスト174へ統合する。統合処理の時に更新履歴も更新される。この更新履歴の更新は、ホワイトリスト更新部182eが行わず、更新制御部182dに対して更新処理を依頼する形で更新を行う。
The white
そして、ホワイトリスト更新部182eは、統合後のホワイトリスト174をホワイトリスト21と比較し、差分があれば、差分をサーバ20へ送信する。この差分は、更新プログラムによって更新されたプログラムを正常に動作させるために更新制御部182dによって追加されたものであり、サーバ20におけるホワイトリスト21の更新作業に利用される。
Then, the white
変更履歴管理部182fは、ファイルアクセス制御部181aから受信した制御コマンドに基づき、変更履歴177の登録、検索または削除などの処理を行う。
The change
例えば、図7に示す例で言えば、制御コマンドが「add」である場合には、変更履歴管理部182fは、制御コマンドとともに受信した作成に使用したプログラム名、変更前の保存先及び変更後の保存先を対応付けて変更履歴177として登録する。
For example, in the example illustrated in FIG. 7, when the control command is “add”, the change
また、制御コマンドが「search」である場合には、変更履歴管理部182fは、制御コマンドとともに受信した作成に使用したプログラム名に含まれる「検索対象とするプログラム名」を用いて、同一のプログラム名を持つ変更履歴177を検索する。なお、変更履歴管理部182fは、変更履歴177の検索結果を制御コマンドに「reply」を配置してファイルアクセス制御部181aへ返信する。このとき、変更履歴177の検索結果が得られた場合には、その変更履歴、すなわち作成に使用したプログラム名、変更前の保存先及び変更後の保存先を併せて返信する。
When the control command is “search”, the change
また、制御コマンドが「del」である場合には、変更履歴管理部182fは、制御コマンドとともに受信した作成に使用したプログラム名、変更前の保存先及び変更後の保存先に対応する変更履歴177を削除する。
When the control command is “del”, the change
ここで、変更履歴177の一例を図11に示す。図11に示すように、変更履歴177は、作成に使用したプログラム名、変更前の保存先、変更後の保存先といった項目を有し、保存先の変更が行われた書込み要求ごとに行が追加される。 An example of the change history 177 is shown in FIG. As shown in FIG. 11, the change history 177 includes items such as the program name used for creation, the storage destination before the change, and the storage destination after the change, and there is a line for each write request in which the storage destination is changed. Added.
作成に使用したプログラム名は、OS181に対して書込み要求を行ったプログラムであり、例えば導入プログラム、更新プログラムや特定用途に使用するプログラムを含む。変更前の保存先は、情報処理装置10aの使用者によって指定された保存先であり、基本として情報処理装置1内部のハードディスク装置170へのファイルパスが指定される。また、変更後の保存先は、ファイルアクセス制御部181aによって外部記憶装置10aへリダイレクトされたファイルパスである。
The program name used for creation is a program that has made a write request to the
図11に示した変更履歴177の1行目から3行目までは、「docviewer」によって生成されたファイルの保存先が内部記憶装置であるハードディスク装置170が外部記憶装置10aへ変更されたことを示す。例えば、1行目の例で言えば、「docviewer」によって生成された「A.dat」のファイルが「C:\A.dat」から「D:\redirect\C\A.dat」へリダイレクトされたことを示す。また、2行目の例で言えば、「docviewer」によって生成された「B.dat」のファイルが「C:\B.dat」から「D:\redirect\C\B.dat」へリダイレクトされたことを示す。3行目の例で言えば、「docviewer」によって生成された「C.dat」のファイルが「C:\C.dat」から「D:\redirect\C\C.dat」へリダイレクトされたことを示す。
The first to third lines of the change history 177 shown in FIG. 11 indicate that the storage destination of the file generated by “docviewer” is changed from the hard disk device 170, which is an internal storage device, to the
また、図11に示した変更履歴177の4行目では、「A.exe」によって作成された「D.dat」のファイルが「C:\D.dat」から「D:\redirect\C\D.dat」へリダイレクトされたことを示す。図11に示した変更履歴177の5行目では、「B.exe」によって作成された「C.tmp」のファイルが「C:\00001\C.tmp」から「D:\redirect\C00001\C.tmp」へリダイレクトされたことを示す。図11に示した変更履歴177の6行目では、「D.exe」によって作成された「D.bak」のファイルが「C:\00001\D.bak」から「D:\redirect\C00001\D.bak」へリダイレクトされたことを示す。 Further, in the fourth line of the change history 177 shown in FIG. 11, the file “D.dat” created by “A.exe” is changed from “C: \ D.dat” to “D: \ redirect \ C \”. D.dat ”is redirected. In the fifth line of the change history 177 shown in FIG. 11, the file “C.tmp” created by “B.exe” is changed from “C: \ 00001 \ C.tmp” to “D: \ redirect \ C00001 \”. Redirected to “C.tmp”. In the sixth line of the change history 177 shown in FIG. 11, the file “D.bak” created by “D.exe” is changed from “C: \ 00001 \ D.bak” to “D: \ redirect \ C00001 \”. D.bak ”is redirected.
また、図11に示した変更履歴177の7行目及び8行目では、「dvInstall」によって導入されたプログラムの保存先が内部記憶装置でハードディスク装置170が外部記憶装置10aへ変更されたことを示す。例えば、7行目の例で言えば、「dvInstall」によってインストールされる「docviewer.exe」が「C:\Program Files\dv\docviewer.exe」から「D:\redirect\C\Program Files\dv\docviewer.exe」へリダイレクトされたことを示す。8行目の例で言えば、「dvInstall」によってインストールされる「dvupdate.exe」が「C:\Program Files\dv\dvupdate.exe」から「D:\redirect\C\Program Files\dv\dvupdate.exe」へリダイレクトされたことを示す。
In addition, in the seventh and eighth lines of the change history 177 shown in FIG. 11, the storage destination of the program introduced by “dvInstall” is the internal storage device and the hard disk device 170 is changed to the
また、図11に示した変更履歴177の9行目から12行目では、「A Install.exe」〜「D Install.exe」によって導入されたプログラムの保存先が内部記憶装置でハードディスク装置170が外部記憶装置10aへ変更されたことを示す。例えば、9行目の例で言えば、「A Install.exe」によってインストールされる「A.exe」が「C:\00001\A.exe」から「D:\redirect\C\00001\A.exe」へリダイレクトされたことを示す。10行目の例で言えば、「B Install.exe」によってインストールされる「B.exe」が「C:\00001\B.exe」から「D:\redirect\C\00001\B.exe」へリダイレクトされたことを示す。11行目の例で言えば、「C Install.exe」によってインストールされる「C.exe」が「C:\00001\C.exe」から「D:\redirect\C\00001\C.exe」へリダイレクトされたことを示す。12行目の例で言えば、「D Install.exe」によってインストールされる「C.exe」が「C:\00001\D.exe」から「D:\redirect\C\00001\D.exe」へリダイレクトされたことを示す。また、最終行の例で言えば、「Softxxx.exe」によって作成された「X.bak」のファイルが「C:\0000x\file_X.bak」から「D:\redirect\C\0000x\file_X.bak」へリダイレクトされたことを示す。
Further, in the ninth to twelfth lines of the change history 177 shown in FIG. 11, the storage destinations of the programs introduced by “A Install.exe” to “D Install.exe” are the internal storage devices and the hard disk device 170 is stored. This indicates that the
なお、図11の例では、プログラムが作成するファイルとして「dat」、「tmp」、「bak」の3種類のファイルを例示したが他のファイルでもよく、ホワイトリスト174に非登録のプログラムが生成した他のファイルを保存する場合にも同様にリダイレクトされる。
In the example of FIG. 11, three types of files “dat”, “tmp”, and “bak” are illustrated as files created by the program, but other files may be used, and a program that is not registered in the
次に、図3に示した実行制御プログラム173によって実行される処理の手順について説明する。図12は、実行制御プログラム173の処理手順を示すフローチャートである。図12に示すように、実行制御プログラム173が起動すると、ホワイトリスト更新部182eが後述するするホワイトリスト更新処理を実行して、ホワイトリスト174を更新する(ステップS301)。
Next, the procedure of processing executed by the execution control program 173 shown in FIG. 3 will be described. FIG. 12 is a flowchart showing the processing procedure of the execution control program 173. As shown in FIG. 12, when the execution control program 173 is activated, the white
続いて、動作制御部182aは、ファイルアクセス制御部181aからファイルアクセスの通知が来るのを待ち受ける(ステップS302)。そして、書込処理に関する通知があった場合は(ステップS303肯定)、動作制御部182aは、通知に含まれる情報等に基づいて、書込処理をOS181に依頼したプロセスを特定する(ステップS304)。
Subsequently, the
ここで、書込処理を依頼したプロセスが、導入プログラムが実行状態となったものであれば(ステップS305肯定)、動作制御部182aは、後述する導入プログラム用書込処理を導入制御部182cに実行させる(ステップS306)。なお、導入プログラムが実行状態となったものであるか否かの判定は、例えば、プログラムの拡張子や、プロセスの挙動に基づいて行うことができる。例えば、マイクロソフト社のWindows(登録商標) OSでは、導入プログラムはマイクロソフト社が規定した手順で実装を行い、拡張子としてmsiを使用することが定められている。また、この導入プログラムを規定する以前は、導入プログラムによって導入される被導入プログラムは、キャビネット形式と呼ばれる拡張子がcabの形式で纏められることが推奨されていた。以上からWindows(登録商標) OSでは、msiやcabといった拡張子で、導入プログラムかどうかの判断を行う。
Here, if the process that requested the writing process is the one in which the introduction program is in an execution state (Yes at Step S305), the
その他のOS、例えばUNIX(登録商標)やそれらの派生OSである、Linux(登録商標)、BSDにおいては、個々のOSで被導入プログラムを管理する管理プログラムが決まっている。このため、その管理プログラムを起動したファイルが導入プログラムであると判定することが可能である。 In other OSs, for example, UNIX (registered trademark) and their derived OSs, such as Linux (registered trademark) and BSD, a management program for managing the installed program in each OS is determined. Therefore, it is possible to determine that the file that started the management program is the introduction program.
一方、書込処理を依頼したプロセスが、導入プログラムが実行状態となったものでなければ(ステップS305否定)、動作制御部182aは、後述する非導入プログラム用書込処理を更新制御部182dに実行させる(ステップS307)。
On the other hand, if the process that requested the writing process is not the one in which the introduction program is in an execution state (No in step S305), the
また、ファイルアクセス制御部181aから読出処理に関する通知があった場合は(ステップS303否定)、動作制御部182aは、通知に含まれる情報等に基づいて、読出処理をOS181に依頼したプロセスを特定する(ステップS308)。ここで、読出処理を依頼したプロセスが、導入プログラムが実行状態となったものであれば(ステップS309肯定)、動作制御部182aは、そのまま読出処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS313)。
When the file
一方、読出処理を依頼したプロセスが、導入プログラムが実行状態となったものでなければ(ステップS309否定)、動作制御部182aは、後述する動作判定処理を動作判定部182bに実行させる(ステップS310)。その結果、読出処理を依頼したプロセスが通常通りの処理を実行してよいものであることが分かれば(ステップS311肯定)、動作制御部182aは、そのまま読出処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS313)。
On the other hand, if the process that requested the read process is not the one in which the introduction program is in the execution state (No at Step S309), the
また、読出処理を依頼したプロセスが通常通りの処理を実行してよいものでないことが分かれば(ステップS311否定)、動作制御部182aは、読出処理をキャンセルさせるようにファイルアクセス制御部181aに指示する(ステップS312)。
If it is found that the process that requested the reading process is not a process that can execute the normal process (No in step S311), the
以上の処理手順を終了した後、動作制御部182aは、ステップS302に戻って、ファイルアクセス制御部181aから次の通知が来るのを待ち受ける。
After completing the above processing procedure, the
図13は、図12に示した導入プログラム用書込処理(ステップS306)の処理手順を示すフローチャートである。図13に示すように、まず、動作判定部182bによる動作判定処理が実行される(ステップS401)。
FIG. 13 is a flowchart showing a processing procedure of the introductory program writing process (step S306) shown in FIG. As illustrated in FIG. 13, first, an operation determination process by the
ここで、導入プログラムが通常通りの処理を実行してよいものでないことが分かれば(ステップS402否定)、導入制御部182cは、書込先のパスを外部記憶装置11aへ変更させるようにファイルアクセス制御部181aに指示する(ステップS403)。そして、ファイルアクセス制御部181aは、書込み要求を行ったプログラム名、変更前の保存先及び変更後の保存先を変更履歴177として変更履歴管理部182fに登録させる(ステップS404)。
Here, if it is found that the introduction program may not execute the normal processing (No at Step S402), the
このように、実行制御プログラム173は、ホワイトリストに登録されていない導入プロセスであっても、プログラムの導入先を通常とは異なる場所に変更して導入させる。そして、導入後のプログラムについては、ファイルの読み書きを外部記憶装置11aに制限するものの、起動は認める。このような制御により、正式に実行が認められていないプログラムの動作や機能を安全な状態で確認することが可能になる。なお、保存先のパスの変更先は、他のプログラムに悪影響を生じない場所であれば、外部記憶装置11aでなくてもよい。例えば、他の情報処理装置の外部装置11bや11cのほか、サーバ20であってもかまわない。
As described above, the execution control program 173 changes the installation destination of the program to a place different from the normal place, even if the introduction process is not registered in the white list. The program after installation is permitted to start up although the reading and writing of the file is restricted to the
一方、導入プログラムが通常通りの処理を実行してよいものであることが分かれば(ステップS402肯定)、導入制御部182cは、通知に含まれる情報等に基づいて、書込先のファイルに関する情報を取得する(ステップS405)。そして、書込先のファイルがプログラムでなければ(ステップS406否定)、導入制御部182cは、そのまま書込処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS408)。
On the other hand, if it is found that the introduction program can execute the normal processing (Yes at Step S402), the
また、書込先のファイルがプログラムであれば(ステップS406肯定)、導入制御部182cは、導入プログラムと被導入プログラムの情報を対応づけて導入履歴175に記憶させる(ステップS407)。そして、導入制御部182cは、そのまま書込処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS408)。
If the write destination file is a program (Yes at step S406), the
図14は、図12に示した非導入プログラム用書込処理(ステップS307)の処理手順を示すフローチャートである。図14に示すように、まず、動作判定部182bによる動作判定処理が実行される(ステップS501)。
FIG. 14 is a flowchart showing a processing procedure of the non-introduction program writing process (step S307) shown in FIG. As shown in FIG. 14, first, an operation determination process by the
ここで、要求元のプログラムが通常通りの処理を実行してよいものでないことが分かれば(ステップS502否定)、更新制御部182dは、書込先のパスを外部記憶装置11aへ変更させるようにファイルアクセス制御部181aに指示する(ステップS503)。そして、ファイルアクセス制御部181aは、書込み要求を行ったプログラム名、変更前の保存先及び変更後の保存先を変更履歴177として変更履歴管理部182fに登録させる(ステップS504)。
Here, if it is found that the request source program may not execute normal processing (No in step S502), the
一方、要求元のプログラムが通常通りの処理を実行してよいものであることが分かれば(ステップS502肯定)、更新制御部182dは、通知に含まれる情報等に基づいて、書込先のファイルに関する情報を取得する(ステップS505)。そして、書込先のファイルがホワイトリスト174に登録されたものでなければ(ステップS506否定)、更新制御部182dは、そのまま書込処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS516)。
On the other hand, if it is found that the request source program can execute normal processing (Yes in step S502), the
書込先のファイルがホワイトリスト174に登録されたものであれば(ステップS506肯定)、更新制御部182dは、導入履歴175と更新履歴176を参照して、書込先のプログラムに対応する導入プログラムIDを取得する(ステップS507)。また、更新制御部182dは、導入履歴175と更新履歴176を参照して、書込処理の要求元のプログラムに対応する導入プログラムIDを取得する(ステップS509)。
If the write destination file is registered in the white list 174 (Yes in step S506), the
ここで、一方でも取得できなければ(ステップS508否定またはステップS510否定)、同一の導入プログラムによって導入されたプログラム同士ではないことになるので、更新制御部182dは、書込処理をキャンセルさせる(ステップS513)。
Here, if neither of them can be acquired (No in step S508 or No in step S510), the programs are not installed by the same introduction program, so the
また、導入プログラムIDをいずれも取得できた場合(ステップS508肯定かつステップS510肯定)、更新制御部182dは、取得された導入プログラムIDを比較する(ステップS511)。ここで、導入プログラムIDが一致しなかった場合も(ステップS512否定)、同一の導入プログラムによって導入されたプログラム同士ではないことになるので、更新制御部182dは、書込処理をキャンセルさせる(ステップS513)。
Further, when both of the introduction program IDs can be acquired (Yes at Step S508 and Yes at Step S510), the
一方、導入プログラムIDが一致した場合(ステップS512肯定)、更新制御部182dは、更新履歴176に情報を追加する(ステップS514)。さらに、更新制御部182dは、更新後のプログラムを通常通り実行できるように、書込先のプログラムに対応するホワイトリスト174の情報を更新する(ステップS515)。そして、更新制御部182dは、そのまま書込処理を実行させるようにファイルアクセス制御部181aに指示する(ステップS516)。
On the other hand, when the introduction program IDs match (Yes at Step S512), the
なお、図14に示した処理手順では、プログラムが上書きされそうになったときに導入プログラムの一致を確認する処理を、ホワイトリスト174に登録されているプログラムのみを対象として行っている。このように制御することにより、導入プログラムの一致を確認する処理によって生じる負荷を軽減することができる。
In the processing procedure shown in FIG. 14, the process of confirming the matching of the installed programs when the program is about to be overwritten is performed only for the programs registered in the
図15は、図12〜14に示した動作判定処理(ステップS310、ステップS401、ステップS501)の処理手順を示すフローチャートである。図15に示すように、動作判定部182bは、判定対象のプロセスに関する情報をファイルアクセス制御部181aが取得し動作制御部182aに通知した情報から取得する(ステップS601)。そして、動作判定部182bは、判定対象のプロセスに対応するプログラムからハッシュ値を生成し(ステップS602)、ハッシュ値を検索キーとしてホワイトリスト174を検索する(ステップS603)。
FIG. 15 is a flowchart showing a processing procedure of the operation determination processing (step S310, step S401, step S501) shown in FIGS. As illustrated in FIG. 15, the
ここで、検索がヒットした場合は(ステップS604肯定)、動作判定部182bは、判定対象のプロセスは通常通り実行して構わないと判定する(ステップS605)。一方、検索がヒットしない場合は(ステップS604否定)、動作判定部182bは、判定対象のプロセスに関する情報から親プロセスの有無を確認する(ステップS606)。親プロセスが存在しない場合は(ステップS607否定)、判定対象のプロセスは通常通り実行させることはできないと判定する(ステップS608)。親プロセスが存在する場合は(ステップS607肯定)、親プロセスのプログラムからハッシュ値を生成し(ステップS609)、親プロセスのハッシュ値を検索キーとしてホワイトリスト174を再検索する(ステップS603)。
If the search is hit (Yes at Step S604), the
図16は、図12に示したホワイトリスト更新処理の処理手順を示すフローチャートである。図11に示すように、ホワイトリスト更新部182eは、ホワイトリスト21の更新の有無をサーバ20に問い合わせる(ステップS701)。ここで、更新がなければ(ステップS702否定)、ホワイトリスト更新処理は終了する。
FIG. 16 is a flowchart of a process procedure of the white list update process shown in FIG. As shown in FIG. 11, the white
更新があれば(ステップS702肯定)、ホワイトリスト更新部182eは、ホワイトリスト21をサーバ20からダウンロードし(ステップS703)、ホワイトリスト174へ統合させる(ステップS704)。そして、ホワイトリスト更新部182eは、統合後のホワイトリスト174をホワイトリスト21と比較し(ステップS705)、差分があれば(ステップS706肯定)、差分をサーバ20へ送信する(ステップS707)。
If there is an update (Yes at Step S702), the white
このとき、ホワイトリスト174へ新たに追加されたプログラムがあれば(ステップS708肯定)、ファイルアクセス制御部181aは、追加プログラム名を変更履歴管理部182fへ送信することにより後述する書換え処理を起動する(ステップS709)。
At this time, if there is a program newly added to the white list 174 (Yes at step S708), the file
図17は、図16に示したホワイトリスト統合処理(ステップS704)の処理手順を示すフローチャートである。ホワイトリスト21から1行読み取り(ステップS801)、読み取りができた場合は(ステップS802肯定)、ホワイトリスト21と統合前のホワイトリスト174を比較し、ハッシュ値の確認を行う(ステップS803)。ハッシュ値が一致したプログラムについては(ステップS804肯定)、ホワイトリスト21とホワイトリスト174で同一プログラムということで統合済みと判断し、ステップS801に戻ってホワイトリスト21から次の1行を読み取る。
FIG. 17 is a flowchart showing a processing procedure of the white list integration processing (step S704) shown in FIG. One line is read from the white list 21 (step S801). If the reading is successful (Yes in step S802), the
ハッシュ値が一致しなかったプログラムについて(ステップS804否定)、ホワイトリスト更新部182eは、次に名称とファイル名のどちらか一方が一致するか確認を行う(ステップS805)。そして、一致した場合は(ステップS806肯定)、ホワイトリスト更新部182eは、バージョン番号を比較する(ステップS807)。続いて、ホワイトリスト21がホワイトリスト174より同一または大きい場合に(ステップS808肯定)、ホワイトリスト更新部182eは、ホワイトリスト174に統合を行う(ステップS809)。統合処理に続いて更新履歴176に情報を追加する必要がある(ステップS810)。この時はホワイトリスト更新部182eが更新制御部182dに通知を行い、更新履歴176に情報の追加を依頼する。そして、ステップS801に戻ってホワイトリスト21から次の1行を読み取る。
For programs whose hash values do not match (No at step S804), the white
逆にバージョン番号を比較しホワイトリスト21よりホワイトリスト174が大きい場合には(ステップS808否定)、ホワイトリスト更新部182eは、ホワイトリスト21よりもホワイトリスト174の方がより新しい情報と見做す。すなわち、ホワイトリスト更新部182e、ホワイトリスト174への統合を行わずに、ステップS801に戻ってホワイトリスト21から次の1行を読み取る。名称とファイル名のどちらも一致しなかった場合は(ステップS806否定)、ホワイトリスト更新部182e新規プログラムとして、ホワイトリスト21をホワイトリスト174に統合を行う(ステップS811)。そして、ステップS801に戻ってホワイトリスト21から次の1行を読み取る。
Conversely, when the version numbers are compared and the
そして、ホワイトリスト21の全ての行を処理し終えたならば(ステップS802否定)、ホワイトリストを統合する処理を終了する。
If all the lines of the
図18は、図16に示した書換え処理(ステップS709)の処理手順を示すフローチャートである。図18に示すように、変更履歴管理部182fは、ファイルアクセス制御部181aから受信したプログラム名、すなわちホワイトリスト174へ追加されたプログラム名を変更履歴177から検索する(ステップS901)。
FIG. 18 is a flowchart showing a processing procedure of the rewrite processing (step S709) shown in FIG. As illustrated in FIG. 18, the change
そして、変更履歴177の検索結果が得られた場合(ステップS902肯定)には、変更履歴管理部182fは、ホワイトリスト174へ追加されたプログラム名を含む変更履歴177をファイルアクセス制御部181aへ返信する。
When the search result of the change history 177 is obtained (Yes at Step S902), the change
その後、ファイルアクセス制御部181aは、変更履歴177から1行読み取る(ステップS903)。このとき、読み取りができた場合は(ステップS904肯定)、ファイルアクセス制御部181aは、変更履歴177に含まれる変更後の保存先に書き込まれているデータを変更前の保存先へ書き換える(ステップS905)。そして、ファイルアクセス制御部181aは、変更前の保存先へ書き戻した変更履歴を変更履歴管理部182fに削除させる(ステップS906)。なお、この時にファイルアクセス制御部181aが欠き戻すデータには、ホワイトリスト174に追加登録されたプログラムによって導入されたプログラム、或いはホワイトリスト174に追加登録されたプログラムによって生成されたデータが含まれる。
Thereafter, the file
そして、変更履歴管理部182fから取得した変更履歴177の全ての行を処理し終えたならば(ステップS904否定)、変更前の保存先への書換え処理を終了する。なお、変更履歴177の検索結果が得られた場合(ステップS902否定)には、ファイルパスの書換えへ行うことなく処理を終了する。
When all the rows of the change history 177 acquired from the change
上述してきたように、本実施例に係る情報処理装置10aによれば、ホワイトリスト174へ追加されたプログラムが変更履歴177に含まれる場合に、変更後の保存先に書き込まれているプログラムを変更前の保存先へ書き換えるように制御する。このため、外部記憶装置11aが取り外された場合でも情報処理装置10a内部のハードディスク装置170へプログラムを再導入する手間を不要化できる。
As described above, according to the
また、本実施例に係る情報処理装置10aによれば、ホワイトリスト174へ追加されたプログラムが変更履歴177に含まれる場合に、変更後の保存先に書き込まれているデータを変更前の保存先へ書き換えるように制御する。このため、外部記憶装置11aが取り外された場合でも同じデータを再び生成する手間を不要化できる。
Further, according to the
また、本実施例に係る情報処理装置10aによれば、書込み元のプログラムと書込み先のプログラムが同一の導入プログラムによって導入された否かに基づいて上書きの可否を判定することにより、プログラムの不正な上書きを防止することができる。すなわち、導入処理時に導入プログラムと被導入プログラムの対応を導入履歴175に記録しておくことにより、システム管理者に負担をかけることなく、上記の可否判定を実現することができる。さらに、本実施例に係る情報処理装置10aによれば、悪意によってプログラムが上書きされることだけでなく、不具合、誤操作、誤動作等によってプログラムが誤って上書きされることも防止することができる。
Further, according to the
なお、上記の実施例2では、情報処理装置10aとしてパーソナルコンピュータを想定して説明を行った。しかし、開示の実行制御方法は、携帯電話、PHS(Personal Handyphone System)、PDA(Personal Digital Assistants)などの他の情報処理装置にも同様に適用できる。
In the second embodiment, the description has been given assuming that the
なお、上記の実施例2では、サーバ20からホワイトリスト21をダウンロードした場合に、ホワイトリスト21と既存のホワイトリスト174とを統合し、ダウンロードしたホワイトリスト21と統合後のホワイトリストを比較する場合を説明した。ところが、情報処理装置10a〜10cでは、サーバ20からダウンロードしたホワイトリスト21をホワイトリスト174としてそのまま上書きすることとしてもかまわない。
In the second embodiment, when the
なお、上記の実施例1及び2では、内部記憶部2から外部記憶部3へ書込みをリダイレクトする場合を説明した。しかし、たとえば、外部記憶装置の代わりに情報処理装置1にもう1台の内部記憶装置を接続し、すなわち、情報処理装置1に2台の内部記憶装置を接続し、一方の内部記憶装置からもう片方の内部記憶装置へ書込みをリダイレクトする構成としてもかまわない。また、情報処理装置1に接続した1台の記憶装置を複数のパーティションに論理的に分割しておき、あるパーティションから別のパーティションへ書込みをリダイレクトする構成としてもかまわない。
In the first and second embodiments, the case where the writing is redirected from the
1 情報処理装置
2 内部記憶装置
2a プログラムリスト
2b 変更履歴
2c プログラム
3 外部記憶装置
3c プログラム
4 変更制御部
5 変更情報記録部
6 書換え制御部
10a〜10c 情報処理装置
100 情報処理システム
110 CPU
120 入力部
130 表示部
140 ネットワークI/F部
150 入出力I/F部
160 記憶媒体読書部
170 ハードディスク装置
171 OSプログラム
172 アプリケーションプログラム
173 実行制御プログラム
174 ホワイトリスト
175 導入履歴
176 更新履歴
177 変更履歴
180 RAM
181 OS
181a ファイルアクセス制御部
182 実行制御プロセス
182a 動作制御部
182b 動作判定部
182c 導入制御部
182d 更新制御部
182e ホワイトリスト更新部
182f 変更履歴管理部
183 実行プロセス
190 バス
11a〜c 外部記憶装置
20 サーバ
21 ホワイトリスト
22 更新ファイル提供装置
30 ネットワーク
31 インターネット
DESCRIPTION OF
120 Input unit 130
181 OS
181a File
Claims (4)
特定のプログラムの動作の許可または制限のいずれかを定義したプログラムリストを読み込むリスト読込ステップと、
所定のプログラムから他のプログラムの書込み要求を受け付けた場合に前記プログラムリストを参照し、前記所定のプログラムが前記プログラムリストにおいて動作が許可されている場合には、当該書込み要求で指定された前記他のプログラムの保存先を変更せず、前記所定のプログラムが前記プログラムリストにおいて動作が許可されていない場合には、当該書込み要求で指定された前記他のプログラムの保存先を所定の記憶部へ変更する変更制御ステップと、
前記変更制御ステップによって前記他のプログラムの保存先が変更された場合に、当該書込み要求を行った前記所定のプログラムと変更前の保存先及び変更後の保存先とを対応付けて変更情報として記録する変更情報記録ステップと、
前記プログラムリストへ追加されたプログラムが前記変更情報に含まれる場合に、該追加されたプログラムに対応付けられた変更前の保存先及び変更後の保存先に基づき、該変更後の保存先に書き込まれた他のプログラムを該変更前の保存先へ書き換えるように制御する書換え制御ステップと
を含んだことを特徴とする実行制御方法。 An execution control method by an information processing apparatus having a plurality of storage units,
A list reading step that reads a program list that defines either the allowed or restricted behavior of a particular program;
When a write request for another program is received from a predetermined program, the program list is referred to. When the predetermined program is permitted to operate in the program list, the other specified by the write request If the predetermined program is not permitted to operate in the program list without changing the storage destination of the program, the storage destination of the other program specified in the write request is changed to a predetermined storage unit. A change control step to
When the storage destination of the other program is changed by the change control step, the predetermined program that has made the write request is associated with the storage destination before the change and the storage destination after the change and is recorded as change information. Change information recording step,
When the program added to the program list is included in the change information, based on the pre-change storage destination and the post-change storage destination associated with the added program, writing to the post-change storage destination And a rewrite control step for controlling to rewrite the other program to the storage destination before the change.
前記変更情報記録ステップは、前記変更制御ステップによって前記データの保存先が変更された場合に、当該書込み要求を行った前記所定のプログラムと変更前の保存先及び変更後の保存先とを対応付けて変更情報として記録し、
前記書換え制御ステップは、前記プログラムリストへ追加されたプログラムが前記変更情報に含まれる場合に、該追加されたプログラムに対応付けられた変更前の保存先及び変更後の保存先に基づき、該変更前の保存先に書き込まれたデータを該変更後の保存先へ書き換えるように制御することを特徴とする請求項1に記載の実行制御方法。 The change control step refers to the program list when a write request for data generated by a predetermined program is received, and when the predetermined program is permitted to operate in the program list, the change control step When the storage destination of the data specified by the request is not changed and the operation of the predetermined program is not permitted in the program list, the storage destination of the data specified by the write request is changed to the predetermined storage Change to storage,
In the change information recording step, when the data storage destination is changed by the change control step, the predetermined program that has made the write request is associated with the storage destination before the change and the storage destination after the change. Recorded as change information,
The rewrite control step, when a program added to the program list is included in the change information, based on the storage destination before the change and the storage destination after the change associated with the added program 2. The execution control method according to claim 1, wherein control is performed so that data written in a previous storage destination is rewritten to the storage destination after the change.
特定のプログラムの動作の許可または制限のいずれかを定義したプログラムリストを読み込むリスト読込ステップと、
所定のプログラムから他のプログラムの書込み要求を受け付けた場合に前記プログラムリストを参照し、前記所定のプログラムが前記プログラムリストにおいて動作が許可されている場合には、当該書込み要求で指定された前記他のプログラムの保存先を変更せず、前記所定のプログラムが前記プログラムリストにおいて動作が許可されていない場合には、当該書込み要求で指定された前記他のプログラムの保存先を所定の記憶部へ変更する変更制御ステップと、
前記変更制御ステップによって前記他のプログラムの保存先が変更された場合に、当該書込み要求を行った前記所定のプログラムと変更前の保存先及び変更後の保存先とを対応付けて変更情報として記録する変更情報記録ステップと、
前記プログラムリストへ追加されたプログラムが前記変更情報に含まれる場合に、該追加されたプログラムに対応付けられた変更前の保存先及び変更後の保存先に基づき、該変更後の保存先に書き込まれた他のプログラムを該変更前の保存先へ書き換えるように制御する書換え制御ステップと
をコンピュータに実行させることを特徴とする実行制御プログラム。 An execution control program to be executed by a computer having a plurality of storage units,
A list reading step that reads a program list that defines either the allowed or restricted behavior of a particular program;
When a write request for another program is received from a predetermined program, the program list is referred to. When the predetermined program is permitted to operate in the program list, the other specified by the write request If the predetermined program is not permitted to operate in the program list without changing the storage destination of the program, the storage destination of the other program specified in the write request is changed to a predetermined storage unit. A change control step to
When the storage destination of the other program is changed by the change control step, the predetermined program that has made the write request is associated with the storage destination before the change and the storage destination after the change and is recorded as change information. Change information recording step,
When the program added to the program list is included in the change information, based on the pre-change storage destination and the post-change storage destination associated with the added program, writing to the post-change storage destination An execution control program that causes a computer to execute a rewrite control step of controlling to rewrite another program to a storage destination before the change.
特定のプログラムの動作の許可または制限のいずれかを定義したプログラムリストを読み込むリスト読込部と、
所定のプログラムから他のプログラムの書込み要求を受け付けた場合に前記プログラムリストを参照し、前記所定のプログラムが前記プログラムリストにおいて動作が許可されている場合には、当該書込み要求で指定された前記他のプログラムの保存先を変更せず、前記所定のプログラムが前記プログラムリストにおいて動作が許可されていない場合には、当該書込み要求で指定された前記他のプログラムの保存先を所定の記憶部へ変更する変更制御部と、
前記変更制御部によって前記他のプログラムの保存先が変更された場合に、当該書込み要求を行った前記所定のプログラムと変更前の保存先及び変更後の保存先とを対応付けて変更情報として記録する変更情報記録部と、
前記プログラムリストへ追加されたプログラムが前記変更情報に含まれる場合に、該追加されたプログラムに対応付けられた変更前の保存先及び変更後の保存先に基づき、該変更後の保存先に書き込まれた他のプログラムを該変更前の保存先へ書き換えるように制御する書換え制御部と
を含んだことを特徴とする実行制御装置。 A plurality of storage units;
A list reading section that reads a program list that defines whether the operation of a specific program is permitted or restricted;
When a write request for another program is received from a predetermined program, the program list is referred to. When the predetermined program is permitted to operate in the program list, the other specified by the write request If the predetermined program is not permitted to operate in the program list without changing the storage destination of the program, the storage destination of the other program specified in the write request is changed to a predetermined storage unit. A change control unit to
When the storage destination of the other program is changed by the change control unit, the predetermined program that has made the write request is associated with the storage destination before the change and the storage destination after the change and is recorded as change information. A change information recording unit to
When the program added to the program list is included in the change information, based on the pre-change storage destination and the post-change storage destination associated with the added program, writing to the post-change storage destination And a rewrite control unit that controls to rewrite the other program to the storage destination before the change.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009280948A JP5381670B2 (en) | 2009-12-10 | 2009-12-10 | Execution control method, execution control program, and execution control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009280948A JP5381670B2 (en) | 2009-12-10 | 2009-12-10 | Execution control method, execution control program, and execution control apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011123675A JP2011123675A (en) | 2011-06-23 |
JP5381670B2 true JP5381670B2 (en) | 2014-01-08 |
Family
ID=44287505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009280948A Expired - Fee Related JP5381670B2 (en) | 2009-12-10 | 2009-12-10 | Execution control method, execution control program, and execution control apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5381670B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013109553A (en) * | 2011-11-21 | 2013-06-06 | Hitachi Ltd | Program white list distribution device and method |
JP6009290B2 (en) * | 2012-09-12 | 2016-10-19 | 株式会社ケーヒン | Electronic control device for vehicle |
WO2014057668A1 (en) * | 2012-10-09 | 2014-04-17 | キヤノン電子株式会社 | Information processing device and control method therefor, information processing system, as well as information processing method |
JP6253333B2 (en) * | 2012-10-09 | 2017-12-27 | キヤノン電子株式会社 | Information processing apparatus, information processing system, and information processing method |
US9767280B2 (en) | 2012-10-09 | 2017-09-19 | Canon Denshi Kabushiki Kaisha | Information processing apparatus, method of controlling the same, information processing system, and information processing method |
JP6254414B2 (en) * | 2012-10-09 | 2017-12-27 | キヤノン電子株式会社 | Information processing apparatus, information processing system, and information processing method |
JP5682978B2 (en) * | 2013-01-16 | 2015-03-11 | Necプラットフォームズ株式会社 | Security system, security control method, and security control program |
JP6063321B2 (en) * | 2013-03-27 | 2017-01-18 | 株式会社富士通エフサス | Server apparatus and hash value processing method |
JP6077115B2 (en) * | 2013-06-27 | 2017-02-08 | 株式会社日立製作所 | Control device and software rewriting system using the same |
JP6478026B2 (en) * | 2015-01-28 | 2019-03-06 | 株式会社リコー | Information processing apparatus, program, and recording medium |
JP6759169B2 (en) | 2017-09-11 | 2020-09-23 | 株式会社東芝 | Information processing equipment, information processing methods, and information processing programs |
JP6725564B2 (en) * | 2018-03-01 | 2020-07-22 | 日本電信電話株式会社 | Creating apparatus, creating system, creating method and creating program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277511A (en) * | 2005-03-30 | 2006-10-12 | Nec Saitama Ltd | Program update method and restart method in device operated by program, and program executing update method for program |
JP2007140798A (en) * | 2005-11-16 | 2007-06-07 | Eugrid Kk | Information leakage prevention system for computer |
JP2007316780A (en) * | 2006-05-24 | 2007-12-06 | Nec Corp | Computer system, computer and file operation limiting method to be used therefor, and its program |
-
2009
- 2009-12-10 JP JP2009280948A patent/JP5381670B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011123675A (en) | 2011-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5381670B2 (en) | Execution control method, execution control program, and execution control apparatus | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
KR101477080B1 (en) | Memory access security management | |
US8196208B2 (en) | Method and apparatus for creating and applying secure file identifier of rights object by using random numbers | |
TWI430174B (en) | Approaches for installing software using bios | |
EP2455882A2 (en) | Memory protection systems and methods for writable memory | |
JP2014142960A (en) | Method and system of preventing browser-based fraud | |
KR102008668B1 (en) | Security system and method for protecting personal information of file stored in external storage device | |
CN107644174B (en) | Data leakage prevention system and data leakage prevention method | |
JP2007140798A (en) | Information leakage prevention system for computer | |
JP2018124893A (en) | Computer system and file access controlling method | |
JP5402169B2 (en) | Execution control program and information processing system | |
US20160217289A1 (en) | System and method for controlling hard drive data change | |
JP6820073B2 (en) | Program management device, program management method, and program | |
JP4674479B2 (en) | Security management system, server device, client terminal, and security management method used therefor | |
JP2010044656A (en) | Information processing terminal and management server | |
KR101672962B1 (en) | Adaptive device software management system and management method of device software | |
JP6253333B2 (en) | Information processing apparatus, information processing system, and information processing method | |
JP6884652B2 (en) | White list management system and white list management method | |
US9442667B2 (en) | Apparatus and method for protection of stored data | |
JP4539240B2 (en) | File management system and file management server | |
JP2005284573A (en) | Access management system | |
KR20200122014A (en) | Data security method based on program protection | |
US11822699B1 (en) | Preventing surreptitious access to file data by malware | |
JP6617551B2 (en) | SETTING VALUE MANAGEMENT DEVICE, COMPUTER DEVICE, METHOD, AND PROGRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130828 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130916 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |