(57)【要約】【課題】  不正なアプリケーションの使用を抑止する、簡易でより確実な方法の実現。【解決手段】  ハードウエア1と、Ｏ／Ｓと、複数のＤＬＬファイル12-1,12-nを記憶したＤＬＬ3と、ＤＬＬファイルを使用する複数のアプリケーションプログラム11とを備えるコンピュータシステムにおいて、ユーザ毎の禁止アプリケーションの不正使用を抑止するコンピュータシステムの管理方法であって、禁止アプリケーションを特定するのに必要な禁止ＤＬＬファイルの組合せを決定し、禁止ＤＬＬファイルの組合せを使用条件に対応付けて記憶し、アプリケーションプログラムの起動要求時に使用条件を検出し、アプリケーションプログラムの使用するＤＬＬファイルの組合せを検出し、検出したＤＬＬファイルの組合せが、検出した使用条件に対応する禁止ＤＬＬファイルの組合せをすべて含むかを判定し、含むと判定した時にはアプリケーションプログラムを終了する。【選択図】      図４
2006099619.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを含むハードウエアと、プログラムを実行するためのオペレーティング・システム（Ｏ／Ｓ）と、部品プログラムとして使用される複数のダイナミック・リンク・ライブラリ（ＤＬＬ）ファイルを記憶したダイナミック・リンク・ライブラリ（ＤＬＬ）と、少なくとも１つの前記ＤＬＬファイルを部品プログラムとして使用する複数のアプリケーションプログラムとを備えるコンピュータシステムにおいて、所定の使用条件下では使用が禁止された前記アプリケーションプログラムの不正使用を抑止するコンピュータシステムの管理方法であって、
禁止された前記アプリケーションプログラムが使用する前記ＤＬＬファイルのうちから、前記アプリケーションプログラムを特定する一つ又は複数のＤＬＬファイルの組合せを決定し、
決定した前記ＤＬＬファイルの組合せを前記所定の使用条件に対応付けて記憶し、
前記アプリケーションプログラムの起動要求がされた時に使用条件を検出し、
起動要求がされた前記アプリケーションプログラムの使用する前記ＤＬＬファイルの組合せを検出し、
検出した前記使用条件及び前記ＤＬＬファイルの組合せが、記憶された前記所定の使用条件で且つ前記所定の使用条件に対応付けて記憶された前記ＤＬＬファイルの組合せをすべて含むかを判定し、
前記所定の使用条件で且つ前記ＤＬＬファイルの組合せをすべて含むと判定した時には、起動要求がされた前記アプリケーションプログラムを終了することを特徴とするコンピュータシステムの管理方法。
【請求項２】
起動要求がされた前記アプリケーションプログラムの使用する前記ＤＬＬファイルの組合せの検出は、前記アプリケーションプログラムの前記ＤＬＬファイルの呼出を検出することにより行う請求項１に記載のコンピュータシステムの管理方法。
【請求項３】
前記ＤＬＬファイルの組合せを前記所定の使用条件に対応付けて記憶する時に、禁止された前記アプリケーションプログラムも前記所定の使用条件に対応付けて記憶し、
前記アプリケーションプログラムの起動要求がされた時に使用条件を検出した後、
検出した前記使用条件及び前記アプリケーションプログラムが、記憶された前記所定の使用条件及び対応付けて記憶された前記アプリケーションプログラムに一致するかを判定し、
一致する時には、起動要求がされた前記アプリケーションプログラムを終了することを行い、
前記アプリケーションプログラムを終了しない場合のみ、起動要求がされた前記アプリケーションプログラムの使用する前記ＤＬＬファイルの組合せを検出する以降の動作を行う請求項１に記載のコンピュータシステムの管理方法。
【請求項４】
プロセッサを含むハードウエアと、プログラムを実行するためのオペレーティング・システム（Ｏ／Ｓ）と、部品プログラムとして使用される複数のダイナミック・リンク・ライブラリ（ＤＬＬ）ファイルを記憶したダイナミック・リンク・ライブラリ（ＤＬＬ）と、少なくとも１つの前記ＤＬＬファイルを部品プログラムとして使用する複数のアプリケーションプログラムとを備えるコンピュータシステムにおいて、所定の使用条件下では使用が禁止された前記アプリケーションプログラムの不正使用を抑止するコンピュータ管理システムであって、
禁止された前記アプリケーションプログラムが使用する前記ＤＬＬファイルのうちから、前記アプリケーションプログラムを特定する一つまたは複数のＤＬＬファイルの組合せを前記所定の使用条件に対応付けて記憶した記憶手段と、
前記アプリケーションプログラムの起動要求がされた時に使用条件を検出する手段と、
起動要求がされた前記アプリケーションプログラムの使用する前記ＤＬＬファイルの組合せを検出する手段と、
検出した前記使用条件及び前記ＤＬＬファイルの組合せが、記憶された前記所定の使用条件で且つ前記所定の使用条件に対応付けて記憶された前記ＤＬＬファイルの組合せをすべて含むかを判定する手段と、
前記所定の使用条件で且つ前記ＤＬＬファイルの組合せをすべて含むと判定した時には、起動要求がされた前記アプリケーションプログラムを終了する手段とを備えることを特徴とするコンピュータ管理システム。
【請求項５】
プログラムの起動を抑止するコンピュータ管理プログラムであって、
コンピュータを、
起動を抑止すべきプログラムが呼び出す一つまたは複数のＤＬＬファイルの組み合わせを対応付けて管理する記憶手段と、
アプリケーションプログラムの起動要求がされた時に、当該アプリケーションプログラムが使用するＤＬＬファイルが、前記記憶手段に格納されているＤＬＬファイルの組み合わせを全て含むか否かを判定する判定手段と、
前記ＤＬＬファイルの組合せをすべて含むと判定した時には、起動要求がされた前記アプリケーションプログラムを終了する手段と
として動作させる特徴とするコンピュータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるアプリケーションの使用を管理する方法及び管理システムに関し、特にコンピュータシステムにおいてユーザ毎に使用できるアプリケーションが制限されている場合の不正使用を防止する方法及び管理システムに関する。
【背景技術】
【０００２】
パーソナルコンピュータのようなコンピュータシステムは、複数のユーザにより使用される場合がある。その場合、ユーザはまず各自のパスワードを入力し、パスワードが認証された後コンピュータシステムが使用可能になるのが一般的である。
【０００３】
コンピュータシステムには多数のアプリケーションがインストールされており、使用するアプリケーションを指定し（例えば、ダブルクリックして）、指定されたアプリケーションをロードして使用する。
【０００４】
コンピュータシステムが複数のユーザにより使用される場合、ユーザ毎に使用が許されるアプリケーションがあらかじめ決められており、ユーザが使用の許可されていない禁止アプリケーションを起動しても起動しないようにする管理システムが設けられている。管理システムがこのようなユーザ毎に特定の禁止アプリケーションの起動を抑止する方法としては、以下の２つの方法が使用されている。
【０００５】
１つの方法は、ユーザ毎に起動を抑止する禁止アプリケーションの実行ファイル名を管理テーブルなどに登録しておき、各ユーザがアプリケーションを起動した時には、その実行ファイル名を取得し、管理テーブルに抑止登録されている禁止アプリケーションであれば、直ちにそのアプリケーションを終了させる方法である。
【０００６】
もう１つの方法は、ユーザ毎に起動を抑止する禁止アプリケーションのウインドウタイトル名を管理テーブルなどに登録しておき、各ユーザがアプリケーションを起動した時には、そのウインドウタイトル名を取得し、管理テーブルに抑止登録されている禁止ウインドウタイトルであれば、直ちにそのアプリケーションを終了させる方法である。
【０００７】
また、特許文献１は、アプリケーションが起動要求がされたことを漏れなく監視するために、アプリケーションプログラムが部品プログラムとしてあらかじめダイナミック・リンク・ライブラリ（ＤＬＬ）に用意されたＤＬＬファイルを呼び出す時に、管理プログラムを呼び出すよう変更する構成を記載している。
【０００８】
【特許文献１】特開平７−２３０３８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
現在広く使用されているオペレーティング・システム（Ｏ／Ｓ）では、アプリケーションの実行ファイル名は、利用者によって任意に変更可能である。そのため、例えば、アプリケーションの実行ファイル名を変更した後、変更した実行ファイル名を使用して起動すると、そのアプリケーションを実行することが可能である。このように、上記の禁止アプリケーションの実行ファイル名を登録して管理する方法では、不正使用を十分に抑止することができない。
【００１０】
また、ウインドウタイトル名は、ファイル名のようにユーザが自由に変更することはでいないが、アプリケーションによっては、そのアプリケーションを介して開いているファイル名などをウインドウタイトル名に表示するなど、ウインドウタイトル名が変更される場合があり、ウインドウタイトル名は固定とはいえない。そのため、禁止ウインドウタイトル名を登録して管理する方法は、様々なアプリケーションに対応した十分な起動抑止方法とはいえない。
【００１１】
以上のように、従来の使用を禁止するアプリケーションの実行ファイル名又はウインドウタイトル名を登録して管理する方法は、実行ファイル名又はウインドウタイトル名が書き換えられるので、意図的な不正使用を抑止できない。特許文献１に記載された管理方法を使用しても、実行ファイル名又はウインドウタイトル名が書き換えられた場合には、不正使用を抑止できない。
【００１２】
本発明は、不正なアプリケーションの使用を抑止する、簡易でより確実な方法の実現を目的とする。
【課題を解決するための手段】
【００１３】
上記目的を実現するため、本発明のコンピュータシステムの管理方法は、部品プログラムとして使用されるＤＬＬファイルの組み合わせによりアプリケーションを特定する。
【００１４】
すなわち、本発明のコンピュータシステムの管理方法は、プロセッサを含むハードウエアと、プログラムを実行するためのオペレーティング・システム（Ｏ／Ｓ）と、部品プログラムとして使用される複数のダイナミック・リンク・ライブラリ（ＤＬＬ）ファイルを記憶したダイナミック・リンク・ライブラリ（ＤＬＬ）と、少なくとも１つの前記ＤＬＬファイルを部品プログラムとして使用する複数のアプリケーションプログラムとを備えるコンピュータシステムにおいて、所定の使用条件下では使用が禁止された前記アプリケーションプログラムの不正使用を抑止するコンピュータシステムの管理方法であって、禁止された前記アプリケーションプログラムが使用する前記ＤＬＬファイルのうちから、前記アプリケーションプログラムを特定する前記ＤＬＬファイルの組合せを決定し、決定した前記ＤＬＬファイルの組合せを前記所定の使用条件に対応付けて記憶し、前記アプリケーションプログラムの起動要求がされた時に使用条件を検出し、起動要求がされた前記アプリケーションプログラムの使用する前記ＤＬＬファイルの組合せを検出し、検出した前記使用条件及び前記ＤＬＬファイルの組合せが、記憶された前記所定の使用条件で且つ前記所定の使用条件に対応付けて記憶された前記ＤＬＬファイルの組合せをすべて含むかを判定し、前記所定の使用条件で且つ前記ＤＬＬファイルの組合せをすべて含むと判定した時には、起動要求がされた前記アプリケーションプログラムを終了することを特徴とする。
【００１５】
各アプリケーションは部品プログラムであるＤＬＬファイルを使用するので、使用するＤＬＬファイルの組合せにより、アプリケーションを特定することが可能である。本発明によれば、ＤＬＬファイルの組合せで禁止アプリケーションを特定するため、たとえアプリケーションの実行ファイル名又はウインドウタイトル名が書き換えられても、禁止アプリケーションであることを判別して起動を抑止することが可能である。
【００１６】
使用条件は、主として使用するユーザ名であるが、他の条件と対応付けることも可能である。
【００１７】
現在広く使用されているＯ／Ｓでは、ＤＬＬファイルのファイル名も同様に書き換え可能である。しかし、ＤＬＬファイルのファイル名を書き換えた場合、アプリケーションから必要なＤＬＬファイルを呼び出すことができなくなり、アプリケーションを実行することはできないので、禁止アプリケーションの起動を抑止するという点では問題はない。
【００１８】
通常、アプリケーションは多数のＤＬＬファイルを使用し、複数のアプリケーションで共通に使用されるＤＬＬファイルもある。そのため、少なくとも２つ以上のＤＬＬファイルを含む組合せで、アプリケーションを特定することが望ましい。
【００１９】
本発明の管理方法は、アプリケーションの起動要求を常時監視して行うようにしてもよいが、特許文献１と同様に、ＤＬＬファイルの呼出に応じて自動的に行われるようにすることも可能である。
【００２０】
また、使用するＤＬＬファイルの組合せの検出は、アプリケーションプログラムが呼び出すＤＬＬファイルを検出することにより行うことが望ましい。
【００２１】
なお、本願発明の管理方法を、従来の禁止アプリケーションの実行ファイル名を登録しておく方法と併用することも可能である。この場合、まずアプリケーションの起動要求がされた時に、その実行ファイル名を取得し、禁止アプリケーションであるか判定する。禁止アプリケーションである時にはそのままアプリケーションを終了し、禁止アプリケーションでない場合のみ、ＤＬＬファイルの組合せを検出して、禁止された組合せであるかを判定する。
【発明の効果】
【００２２】
本発明によれば、コンピュータシステムにおいて禁止されたアプリケーションの起動を、簡易に且つ確実に抑制することが可能であり、コンピュータシステムの信頼性を一層向上できる。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の実施例のコンピュータシステムの階層構造を示す図である。実施例のコンピュータシステムは、パソコンやワークステーションであり、複数の権限の異なるユーザが使用するシステムである。このコンピュータシステムは、図１に示すように、ＣＰＵ、ＲＯＭやＲＡＭなどのメモリ、ハードディスクドライブ（ＨＤＤ）、及びモニター、プリンタ及び通信機能端末などの各種周辺機器を含むハードウエア層１と、オペレーティング・システム（Ｏ／Ｓ）２と、部品プログラムとして使用される各種のＤＬＬファイルを記憶したダイナミック・リンク・ライブラリ（ＤＬＬ）３と、アプリケーション層４とを有する。本発明は、ＤＬＬファイルを使用するアプリケーションの起動を管理対象とする。アプリケーションの中には、ＤＬＬファイルを使用しないものもあるが、そのようなアプリケーションは、一般に非常に簡易なプログラムであり、保護の対象とされないので、本発明が適用できなくても特に問題はない。
【００２４】
図２は、アプリケーションからのＤＬＬファイルの呼出動作を説明する図である。ＤＬＬファイルは、各種のアプリケーションで共通に使用される基本的な処理を行うプログラムであり、各種の基本処理を他の処理と容易に組み合わせて使用できる形でプログラム化してある。アプリケーションプログラムを作成する場合、すべてのプログラムを最初から作成するのではなく、基本処理についてはあらかじめ用意されているＤＬＬファイルを呼び出して使用する。これにより、アプリケーションプログラムの作成が容易になるだけでなく、共通なプログラム部分を重複して記憶することがなくなるのでコンピュータシステム全体のプログラムの記憶容量を低減でき、しかも良質なＤＬＬファイルを使用するので、コンピュータシステムの信頼性も向上する。
【００２５】
アプリケーションプログラムファイル１１は、使用するＤＬＬファイルのリストを記憶したヘッダ部分を有し、起動時にＤＬＬファイル１２−１、…、１２−ｎを呼び出す処理を行う。この処理がうまく実行できない場合、アプリケーションプログラムのロード又は実行は行われない。
【００２６】
図３は、本実施例のコンピュータシステムのプログラム利用管理システムの構成を示す図である。図示のように、各種のアプリケーション１１−Ａ、…、１１−Ｐ、…、１１−Ｒ、…と共に、管理プログラム２１が設けられている。もちろん、図１に示すように、Ｏ／ＳやＤＬＬも設けられているが、階層が異なるので、ここでは図示を省略している。上記のように、各アプリケーションは、ＤＬＬファイルを使用している。管理プログラム２１は、各種の管理を行うが、その中の不正起動抑止処理部は、アプリケーションが起動された時に、正当なユーザであるかを判定して、正当なユーザであればそのまま起動するが、不正なユーザの場合にはアプリケーションを終了させる処理を行う。
【００２７】
図３に示すように、アプリケーションＡは、ユーザＸ及びＹが使用することを禁止されたアプリケーションであり、ＤＬＬファイルのうち、ＤＬＬ１、ＤＬＬ２、ＤＬＬ３、…、ＤＬＬｌなどを使用する。また、アプリケーションＰは、ユーザＺが使用することを禁止されたアプリケーションであり、ＤＬＬファイルのうち、ＤＬＬ１、ＤＬＬ２、ＤＬＬ４、…、ＤＬＬｊ、ＤＬＬｍなどを使用する。更に、アプリケーションＲは、使用が禁止されたユーザがないアプリケーション、すなわちだれでも使用できるアプリケーションであり、ＤＬＬファイルのうち、ＤＬＬ１、ＤＬＬ２、…、ＤＬＬｊなどを使用する。
なお、図３は、アプリケーションプログラム毎に使用を禁止されるユーザが異なること、及び、呼び出すＤＬＬが異なること、を示す図であり、アプリケーションプログラム内に使用が禁止されるユーザの情報を保持しているわけではない。
【００２８】
図４は、本実施例の管理プログラム２１内に設けられた不正起動抑止処理部の機能を示すブロック図である。図４に示すように、Ｏ／Ｓは、マウスやキーボードなどが操作されてアプリケーションの起動が指示されると、対象とするアプリケーション１１を起動すると共に、管理プログラム２１に起動を指示したユーザ名を送る。管理プログラム２１は、アプリケーション１１に対して、起動されたアプリケーション１１が呼び出すＤＬＬファイルを監視して使用するＤＬＬファイルのリストを取得すると共に、不正使用の場合はアプリケーションを終了させる。また、管理プログラム２１は、取得したＤＬＬファイルのリスト及びユーザ名と、レジストリ２２に記憶されたユーザ別使用禁止ＤＬＬファイル組のリストを比較する。
【００２９】
図５は、レジストリ２２に記憶されたユーザ別使用禁止ＤＬＬファイル組のリストの例を示す図である。図示のように、ユーザ毎に、使用が抑止される禁止アプリケーション名と、禁止アプリケーションを特定するのに必要な一つのＤＬＬファイルもしくは複数のＤＬＬファイルの組合せが記憶されている。なお、リストに禁止アプリケーションを記憶せず、ＤＬＬファイルの組合せのみを記憶するようにしてもよい。
【００３０】
図５に示すように、ユーザＸはアプリケーションＡ、Ｂなどの使用が禁止され、ユーザＹはアプリケーションＡ、Ｄなどの使用が禁止され、ユーザＺはアプリケーションＰのみの使用が禁止され、ユーザＳは使用の禁止されたアプリケーションはなく、すべてのアプリケーションの使用が許される。また、その他のユーザは、アプリケーションＡ、Ｂ、Ｄ、Ｐなどの使用が禁止される。アプリケーションは、ＤＬＬ１、ＤＬＬ２、…、ＤＬＬｌの組みが含まれる時にアプリケーションＡであると判定され、ＤＬＬ１、ＤＬＬ５、ＤＬＬ７、…、ＤＬＬｔの組みが含まれる時にアプリケーションＢであると判定され、ＤＬＬ１０、ＤＬＬｉの組みが含まれる時にアプリケーションＤであると判定され、ＤＬＬ１、ＤＬＬ２、…、ＤＬＬｍの組みが含まれる時にアプリケーションＰであると判定される。
【００３１】
アプリケーションを特定するのに、各アプリケーションが使用するアプリケーションのすべてを記載する必要はなく、例えば、あるアプリケーションが他のすべてのアプリケーションが使用しない１つのＤＬＬファイルを使用する場合には、そのＤＬＬファイルのみをリストに記憶するようにしてもよい。また、あるユーザが使用を禁止された２つのアプリケーションは５個の共通のＤＬＬファイルを使用し、更にそれぞれ異なるＤＬＬファイルを１つずつ使用する場合、５個の共通のＤＬＬファイルの組みで他のユーザが禁止されたＤＬＬファイルの組みと差別可能であれば、５個の共通のＤＬＬファイルの組みをリストに記載すればよい。
【００３２】
図６は、実施例における管理プログラム２１の不正起動抑制処理部の処理手順を示すフローチャートである。図６に示すように、ステップ１００では、Ｏ／Ｓからマウス及びキーボードによるアプリケーション起動の操作イベントを検知する。ステップ１０１では、Ｏ／Ｓからアプリケーション起動の操作イベントを行ったユーザ名を取得する。ステップ１０２では、起動を指示されたアプリケーションが使用するＤＬＬファイルを呼び出すのを監視して、使用するＤＬＬファイル名のリストを取得する。
【００３３】
ステップ１０３では、レジストリ２２に記憶されているユーザ名に対応付けて登録されているＤＬＬファイルの組が、取得したＤＬＬファイル名のリストにすべて含まれるか判定する。すべて含まれている場合には、禁止されているアプリケーションが起動されたので、ステップ１０４に進んでアプリケーションを終了する。すべては含まれていない場合、すなわち、レジストリ２２に記憶されている取得したユーザ名に対応付けて登録されているＤＬＬファイルの組内に、取得したＤＬＬファイル名のリストに含まれないＤＬＬファイルが存在する場合、禁止されているアプリケーションではないので、ステップ１０５に進んでアプリケーションをそのまま起動させる。すなわち、管理プログラム２１は何もせず、アプリケーションに終了命令が出されないので、アプリケーションはそのまま起動することになる。
【００３４】
上記の実施例では、使用するＤＬＬファイルのみで禁止アプリケーションであるか判定したが、アプリケーションの実行ファイル名で禁止アプリケーションであるか判定する従来の方法を併用する変形例も可能である。この場合、禁止アプリケーションであるかの判定がより早く行える従来の方法をまず実行し、禁止アプリケーションでないと判定された場合に上記の実施例の使用するＤＬＬファイルで禁止アプリケーションであるかの判定を行うようにする。
【００３５】
図７は、この変形例で追加される処理を示すフローチャートである。図６のステップ１００と１０１を行った後、図７のステップ１１１で、アプリケーションの実行ファイル名を取得する。そして、図５に示すレジストリ２２に記憶されているユーザ名及びそれに対応付けて登録されている禁止アプリケーション名が、取得したユーザ名及びアプリケーション名と一致するか判定する。一致する場合には、禁止されているアプリケーションが起動されたので、ステップ１１２に進んでアプリケーションを終了する。一致しない場合には、図６のステップ１０２へ進む。
【００３６】
以上、本発明の実施例を説明したが、他にも各種の変形例が可能であることはいうまでもない。例えば、上記の実施例では、管理プログラムはＯ／Ｓからアプリケーションの起動指示が行われたことを検知したが、前述の特許文献１に記載されたように、各アプリケーションがＤＬＬファイルを呼び出す時に管理プログラムが自動的に起動されるようにすることも可能である。
【産業上の利用可能性】
【００３７】
本発明により、コンピュータシステムの不正使用防止の信頼性が向上するので、厳重な管理が要求される分野で使用されるコンピュータシステムに本発明を適用して低コストでシステムを構築することができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施例のコンピュータシステムの階層構造を示す図である。
【図２】アプリケーションがＤＬＬファイルを呼び出す動作を説明する図である。
【図３】実施例のコンピュータシステムのプログラム利用管理システムの構成を示す図である。
【図４】実施例の管理プログラムの機能ブロック図である。
【図５】レジストリのリスト例を示す図である。
【図６】実施例における処理を示すフローチャートである。
【図７】変形例において追加される処理を示すフローチャートである。
【符号の説明】
【００３９】
１    ハードウエア
２    オペレーティング・システム（Ｏ／Ｓ）
３    ダイナミック・リンク・ライブラリ（ＤＬＬ）
４    アプリケーション
１１    アプリケーションプログラムファイル
１２−１、１２−ｎ    ＤＬＬファイル
２１    管理プログラム
２２    レジストリ
【図１】
2006099619.tif 000003
【図２】
2006099619.tif 000004
【図３】
2006099619.tif 000005
【図４】
2006099619.tif 000006
【図５】
2006099619.tif 000007
【図６】
2006099619.tif 000008
【図７】
2006099619.tif 000009