(57)【要約】【課題】不正なデータの持ち出し並びにインストールを制限し得る命令制限方法及びプログラムを提供すること。【解決手段】オペレーティングシステム１を実装し、入出力インターフェイスを備えたコンピュータシステムにおいて、前記コンピュータシステムに接続されたストレージデバイスへのアクセスを制限する方法であって、前記オペレーティングシステム１の入出力制御部３１が発行した命令のうち、前記ストレージデバイスまたは前記入出力インターフェイスのデバイスドライバ３２に対して発行された読み込み命令および書き込み命令の少なくとも一方をフィルタリングする。【選択図】    図２
2004318720.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを実装し、入出力インターフェイスを備えたコンピュータシステムにおいて、前記コンピュータシステムに接続されたストレージデバイスへのアクセスを制限する方法であって、
前記オペレーティングシステムの入出力制御部が発行した命令のうち、前記ストレージデバイス及び前記入出力インターフェイスの少なくとも一方のデバイスドライバに対して発行された読み込み命令および書き込み命令の少なくとも一方をフィルタリングすることを特徴とするアクセス制限方法。
【請求項２】
前記コンピュータシステムにハードウェアキーが接続されているか否かを判断し、正しいハードウェアキーが接続されていない場合には読み込み命令および書き込み命令の少なくとも一方をフィルタリングし、正しいハードウェアキーが接続されている場合には読み込み命令および書き込み命令の少なくとも一方の実行を許可することを特徴とする請求項１に記載のアクセス制限方法。
【請求項３】
前記ストレージデバイスは、前記コンピュータシステムに着脱自在であることを特徴とする請求項１または請求項２に記載のアクセス制限方法。
【請求項４】
前記ストレージデバイスは、交換可能な記録媒体にデータを記録することを特徴とする請求項１から請求項３のいずれか１項に記載のアクセス制御方法。
【請求項５】
オペレーティングシステムを実装したコンピュータに、オペレーティングシステムの入出力制御部がデバイスドライバに対して発行した命令のうち、特定のデバイスドライバに対する読み込み命令および書き込み命令の少なくとも一方をフィルタリングする処理を実行させることを特徴とするアクセス制限プログラム。
【請求項６】
前記アクセス制限プログラムは、階層的なドライバ構造の一層をなすことを特徴とする請求項５に記載のアクセス制限プログラム。
【請求項７】
前記アクセス制限プログラムは、パスワードによる認証機構を有していることを特徴とする請求項５又は６に記載のアクセス制限プログラム。
【請求項８】
パスワードは、前記デバイスドライバに対応したデバイスに格納されていることを特徴とする請求項７に記載のアクセス制限プログラム。
【請求項９】
前記アクセス制限プログラムは、前記デバイスドライバに対応したデバイスに対するアクセスのログを記録する請求項５乃至８のいずれか１項に記載のアクセス制限プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オペレーティングシステムを実装し、ストレージデバイスを備えたコンピュータシステムにおいて、当該オペレーティングシステムの発行する命令を制限する方法、及びプログラムに関するものである。
【０００２】
【従来の技術】
現在、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）、サーバ等のコンピュータシステムは幅広く利用されており、企業、研究機関、学校、公的機関、官公庁等においても業務の大部分は複数のコンピュータシステムによって実現されている状況である。
【０００３】
このような場面で利用されるコンピュータシステムにおいては、社員、顧客、学生等の個人情報や、経営情報、会計情報、新製品情報、技術情報等のデータを管理保存しているため、このようなデータが漏洩することを防止する必要がある。さらに、近時において運用の開始された住民基本台帳ネットワーク（住基ネット）では、全国民／住民にユニークな識別番号を付与して一元管理し、住民票発行や個人認証のために使用することが計画されており、電子政府の実現も目前となっているが、このような場面で使用されるコンピュータシステムにおいては一層厳密な情報漏洩対策を採る必要がある。
【０００４】
ここで、通常のコンピュータシステムには、ハードディスクドライブのような大容量の２次記憶装置だけでなく、さらにフロッピーディスクドライブ、ＣＤ−Ｒ／ＲＷドライブや書き込み型ＤＶＤドライブのような外部記憶装置が標準で搭載されている場合が多い。さらに、昨今のコンピュータシステムにはＵＳＢポートを備えたものも増えているが、このようなＵＳＢポートに接続することでデータを書き込み可能なＵＳＢメモリモジュール等の外部記憶装置も一般的になってきている。
【０００５】
このため、通常のコンピュータシステムでは、業務担当者や侵入者が、ハードディスクに格納されたデータを、外部記憶装置を使用してコピーし、外部に持ち出すこと（以下、「不正なデータ持ち出し」という）が容易に可能である。かかる不正なデータ持ち出しは近時において頻発するようになってきており、これを低コストで確実に防止することが一つの課題となっている。
【０００６】
また、上記の課題に加えて、システム管理者の意図しないデータが外部記憶装置から読み出されると、システム管理者の把握していないソフトウェアがインストールされてコンピュータシステムの管理を煩雑にするばかりでなく、ウィルスやトロイの木馬の進入を許すことにも繋がるので、ＣＤ−ＲＯＭドライブのような読み出し専用のものを含めて外部記憶装置からデータの読み出しを禁止したいという要請もある。
【０００７】
上述のような不正なデータの持ち出しや、データの読み出しを防止するために、種々の提案がなされている。例えば、コンピュータシステムに搭載されたオペレーティングシステムによっては、１台のマシンに複数のユーザーまたはユーザーグループを設定し、そのユーザー／ユーザーグループ毎に各デバイスのそれぞれについてのアクセス可否を登録するサービスを提供可能となっている。このようなサービスによれば、コンピュータシステムのメンテナンス・保守等を行うシステム管理者と、コンピュータシステムを使用して業務を行う業務担当者とをユーザー登録し、システム管理者については外部記憶装置を含む全デバイスへのアクセスを可能に設定し、業務担当者については外部記憶装置へのアクセスおよび外部記憶装置の追加を禁止した設定とすることにより、業務担当者または侵入者による不正なデータの持ち出しおよびデータの読み出しを防止することができる。
【０００８】
ところが、オペレーティングシステムがこのような機能を有していても、メンテナンス等の作業を補助するために、システム管理者のＩＤおよびパスワードが業務担当者に知らされていることが多い。これは、業務担当者がメンテナンス等の作業を一切行わないと、スムースなメンテナンス作業が困難となり、また、システム管理者の負担が極めて重くなってしまうためである。そのような場合には、実際には業務担当者であってもシステム管理者としてコンピュータシステムにログインすることが可能であり、オペレーティングシステムにかかる機能を搭載しても、悪意を持った業務担当者による不正なデータの持ち出しを防止することはできないのである。また、このような機能は、例えばユーザーの実行するプロセスを監視して、そのアクセスするデバイスやオブジェクトが当該ユーザーにアクセス許可されたものであるかどうかをその都度判断するという形で実装されるが、このような実装では全ての命令が監視対象となるためオーバーヘッドが高く、システム側に負担が大きいという問題もある。
【０００９】
また、アクセス制限機構を備えさせることにより、前記データの持ち出し並びにインストールを防止する外部記憶装置も提案されている。このような外部記憶装置は、データが格納された記憶部に加えて、記憶部に対するアクセスの認証を行うための認証機構をアクセス制限機構として有している。この認証機構にはユーザーＩＤとそれに対応したパスワードとを備えたテーブルが記憶されており、ユーザーＩＤとパスワードとの入力によってアクセスの認証を行うことによって不正なデータの持ち出しを制限するものである。なお、記憶部は固定的に設けられている場合もあるし、リムーバブルディスクのように取り出し可能な記憶媒体を記憶部として使用する場合もある。
【００１０】
さらに、同様に記憶装置へのアクセスを制限するという観点からは、特開２００２−２５９２１４号公報（特許文献１参照）に記載の記憶システムも提案されている。この公報に記載の記憶システムは、データが格納される記憶部と、複数のコンピュータ又はネットワークと接続するための複数のポートとを有し、さらに認証機構をアクセス制限機構として有している。この記憶システムはポートを介して記憶部に対するアクセス命令を受け取り、アクセス命令が認証機構により認証されたコンピュータ又はネットワークから送信された場合のみ、記憶部に対するアクセスを認める。このため、この記憶システムは認証機構を設定するのみで、複数のコンピュータ又はネットワークに対するアクセス制限を可能にする。
【００１１】
しかしながら、コンピュータシステムが有する外部記憶装置の全てを上述のようにアクセス制限機構を備えた装置に置き換えることはコスト的に困難であるし、また、外部からＵＳＢメモリモジュール等を持ち込まれた場合には対処できないため、上述のように外部記憶装置にアクセス制限機能を設ける技術では不正なデータ持ち出しを防止することはできない。
【００１２】
【特許文献１】
特開２００２−２５９２１４号公報
【００１３】
【発明が解決しようとする課題】
上記課題を鑑みて、本発明の目的は、不正なデータの持ち出しやデータの読み込みを制限することができるアクセス制限方法およびプログラムを提供することである。
【００１４】
【課題を解決するための手段】
上記課題を解決するために、本発明の第１の観点は、オペレーティングシステムを実装し、入出力インターフェイスを備えたコンピュータシステムにおいて、前記コンピュータシステムに接続されたストレージデバイスへのアクセスを制限する方法であって、
前記オペレーティングシステムの入出力制御部が発行した命令のうち、前記ストレージデバイスまたは前記入出力インターフェイスのデバイスドライバに対して発行された読み込み命令および書き込み命令の少なくとも一方をフィルタリングすることを特徴とするアクセス制限方法を提供する。
【００１５】
上記本発明の第１の観点によれば、前記オペレーティングシステムの入出力制御部が発行した命令のうち、前記ストレージデバイスまたは前記入出力インターフェイスのデバイスドライバに対して発行された読み込み命令および書き込み命令の少なくとも一方をフィルタリングするので、コンピュータシステムのストレージデバイスに対するアクセスを制限することができ、これにより不正なデータ持ち出しやデータの読み込みを抑制することができる。
【００１６】
上記構成においては、前記コンピュータシステムにハードウェアキーが接続されているか否かを判断し、正しいハードウェアキーが接続されていない場合には読み込み命令および書き込み命令の少なくとも一方をフィルタリングし、正しいハードウェアキーが接続されている場合には読み込み命令および書き込み命令の少なくとも一方の実行を許可することが好適である。このような構成において、システム管理者等が必要と認めた場合にのみハードウェアキーを貸し与えるようにすれば、不正なデータ持ち出しやデータの読み込みを極めて効果的に防止することが可能となる。
【００１７】
本発明は、前記コンピュータシステムに着脱自在なストレージデバイスや、交換可能な記録媒体にデータを記録する形式のストレージデバイスのように、不正なデータの持ち出しや不正なデータ読み込みに利用されやすいストレージデバイスへのアクセス制限に適用することが好適である。
【００１８】
また、本発明の第２の観点は、オペレーティングシステムを実装したコンピュータに、オペレーティングシステムの入出力制御部がデバイスドライバに対して発行した命令のうち、特定のデバイスドライバに対する読み込み命令および書き込み命令の少なくとも一方をフィルタリングする処理を実行させることを特徴とするアクセス制限プログラムを提供する。
【００１９】
このような構成によれば、オペレーティングシステムの入出力制御部がデバイスドライバに対して発行した命令のうち、特定のデバイスに対する読み込み命令および書き込み命令の少なくとも一方をフィルタリングする処理を実行させるので、コンピュータから特定のデバイスに対するデータ書き込み及びデータ読み込み命令の少なくとも一方をフィルタリングすることができ、これにより不正なデータ持ち出しやデータの読み込みを抑制することができる。逆に、特定のデバイスへのデータ書き込み／データ読み込み命令だけを許可し、他の命令をフィルタリングするようにしても同様の効果を得ることができる。
【００２０】
上記本発明の第２の観点において、前記アクセス制限プログラムは、階層的なドライバ構造の一階層をなすことが好適である。
【００２１】
また、上記本発明の第２の観点において、前記アクセス制限プログラムは、パスワードによる認証機構を有していることが好適である。上記パスワードは、前記デバイスドライバに対応したデバイスに格納されることがさらに好適である。
【００２２】
また、上記本発明の第２の観点において、前記アクセス制限プログラムは、前記デバイスドライバに対応したデバイスに対するアクセスのログを記録することが好適である。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００２４】
（構成）
まず、本発明の一例としての実施の形態のアクセス制限プログラムについて図１並びに図２を用いて説明する。図１は、本実施形態のアクセス制限プログラムがインストールされるコンピュータシステム５０を示す概略図である。図２は、図１のコンピュータシステム５０にインストールされているＯＳ（オペレーティングシステム）の構成を示す概略図である。
【００２５】
図１に示すように、このコンピュータシステム５０は、主として、ＣＰＵ５１と、ＣＰＵ５１に接続され、種々のＬＳＩチップを内蔵したコントローラ部５２と、コントローラ部５２に接続された主記憶装置（メインメモリ）であるＲＡＭ５３、ＩＤＥインターフェイス５５、ＵＳＢインターフェイス５８、ＰＣＩバス６１およびＡＧＰバス６４とが筐体６７に収容された構成となっている。
【００２６】
このコンピュータシステム５０には、種々のデバイスを含むハードウェア６（図２参照）が接続されている。本実施の形態において、ハードウェア６は、図１中に示すように、ハードディスクドライブ（ＨＤＤ）５６、ＣＤ−Ｒｅｃｏｒｄａｂｌｅドライブ（ＣＤ−Ｒ）５７、キーボード５９、マウス６０、モニタ６６、及びフロッピーディスクドライブ（ＦＤＤ）５４を含んでいる。なお、コンピュータシステム５０に接続されるハードウェア６は、上記に限定されない。上記ハードウェア６は、具体的には、以下ようにして、コンピュータシステム５０に接続されている。例えば、図１中に示されるように、ＩＤＥインターフェイス５５には、ハードディスクドライブ（ＨＤＤ）５６およびＣＤ−Ｒ５７が接続され、ＵＳＢインターフェイス５８にはいずれも筐体６７外のキーボード５９およびマウス６０が接続され、ＰＣＩバス６１にはＳＣＳＩカード６２およびネットワークインターフェースカード（ＮＩＣ）６３が接続され、ＡＧＰバス６４にはグラフィックボード６５を介して筐体６７外のモニタ６６が接続されている。さらに、コントローラ部５２は不図示のＦＤＤコントローラを内蔵しており、これにＦＤＤ５４が接続されている。
【００２７】
ＣＰＵ５１としては、例えば、ユーザーモードおよびスーパーバイザーモード等に代表される２つ以上の保護モードないし特権モードによりプログラムを動作させるものを好適に利用することができる。ここで、ユーザーモードとは、プログラムの動作を制限した状態で実行させるモードである。また、スーパーバイザーモードとは、制限なくプログラムを実行させることの可能なモードである。ただし、ＣＰＵ５１がこれらのモードで動作可能なことは必須ではない。
【００２８】
以下、図２を参照して、本実施形態におけるコンピュータシステム５０のソフトウェア構成について説明する。図２では、コンピュータシステム５０を使用するユーザー１０を上層側に、コンピュータシステム５０のハードウェア６を下層側にそれぞれ示している。このコンピュータシステム５０は、主として、ＯＳ１と、ＯＳ１上にインストールされたアプリケーションソフト１１とを、ソフトウェア的な構成要素として有している。ただし、アプリケーションソフト１１は必須ではなく、ＯＳ１のみを有する構成としても構わない。
【００２９】
ＯＳ１は、図２に示すように、上層側（ユーザー１０側）をなすユーザー領域２０と、下層側（ハードウェア６側）をなすカーネル領域３０とを有している。より詳細には、ＯＳ１は、上層側からユーザーインターフェイス２１、ＡＰＩ提供部２２、入出力制御部３１およびデバイスドライバ３２を階層的に備えている。さらに、本実施形態においては、以上のように構成されたＯＳ１の入出力制御部３１とデバイスドライバ３２との間に、別途インストールされたアクセス制限プログラム４０が介在している。
【００３０】
以下、ＯＳ１の構成をより詳細に説明する。まず、ユーザー領域２０の構成について説明する。
ユーザーインターフェイス２１は、その一部をユーザー１０が直接的に利用可能となっており、また、ユーザー１０がアプリケーションソフト１１を介して間接的に利用するものもある。
【００３１】
ＡＰＩ提供部２２は、アプリケーションソフト１１およびユーザーインターフェイス２１にＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供するものであり、より具体的にはＷｉｎ３２サブシステム、ＯＳ／２サブシステム、ＰＯＳＩＸサブシステムといったアプリケーション環境や、ユーザーライブラリ等を用いることができる。アプリケーションソフト１１は、直接的に、またはユーザーインターフェイス２１を介して間接的に、ＡＰＩ提供部２２の提供するＡＰＩを利用して、ユーザー１０に種々の機能を提供する。
【００３２】
次に、カーネル領域３０について説明する。
入出力制御部３１は、ＡＰＩ提供部２２の下層に位置しており、ＡＰＩ提供部２２からコンピュータシステム５０のハードウェア６に含まれる各デバイスへの命令を受けて、命令発行先であるデバイスのデバイスドライバ３２に対して種々の命令を発行する。本実施形態では、デバイスドライバ３２に対して発行される命令のうち、デバイスにデータを書き込む命令を書き込み命令といい、デバイスからデータを読み出す命令を読み込み命令という。
【００３３】
デバイスドライバ３２は、入出力制御部３１からの命令を受けて、特定のデバイスにその動作を制御する命令を発行する。デバイスドライバ３２は、ハードウェア６に含まれる特定のデバイスと直接データを送受信し、対応するデバイスの動作を制御する。そのため、デバイスドライバ３２は、操作対象であるデバイス毎に提供されており、デバイスの制御部に搭載されたコントローラチップに固有のものである。たとえば、コンピュータシステム５０がＣＤ−Ｒ５７を制御する場合、ＣＤ−Ｒ５７のコントローラに対応したドライバが必要になる。ハードウェア６をなす個々のデバイスは、入出力制御部３１およびデバイスドライバ３２を介してのみＯＳ１のＡＰＩ提供部２２からアクセスされ得る。したがって、ＯＳ１のカーネル領域３０より上層に実装されたプログラムは、必ず入出力制御部３１を介して個々のデバイスにアクセスする。つまり、入出力制御部３１とデバイスドライバ３２とは、協働して、コンピュータシステム５０に接続されている現実のデバイスを、抽象化した仮想マシンとしてＯＳ１に提供する。
【００３４】
デバイスドライバ３２の構成は、モノリシックでもよいし、ユニバーサルドライバおよびミニドライバからなるユニバーサルドライバアーキテクチャでもよく、さらにはクラスドライバとポートドライバとミニポートドライバとを含んだ階層的な構成のＷＤＭ（Ｗｉｎｄｏｗｓ  Ｄｒｉｖｅｒ  Ｍｏｄｅｌ）を採用しても構わない。デバイスドライバ３２は、例えば、モノリシックドライバとした場合には個々のデバイスのそれぞれに対応した複数のドライバから構成される。また、ユニバーサルドライバアーキテクチャを採用した場合には個々のデバイスに対応したミニドライバと、デバイスのグループ毎の共通部分に対応したユニバーサルドライバとから構成される。さらに、ＷＤＭの場合には、ファイルＩ／Ｏの処理を行うファイルシステムドライバと、デバイスが接続されるインターフェイス毎に設けられたＵＳＢクラスドライバ等のクラスドライバと、個々のデバイスに対応して設けられたＦＤＤドライバ・ＨＤＤドライバ・ＣＤ−ＲＯＭドライバ等のポートドライバ（さらにミニドライバを含んでもよい）等の複数のレイヤーを備えるように構成される。
【００３５】
上述したような構成のカーネル領域３０において、本実施形態では入出力制御部３１とデバイスドライバ３２との間に、アクセス制限プログラム４０が挿入されている。このアクセス制限プログラム４０は、入出力制御部３１がデバイスドライバ３２に対して発行した命令のうち、ストレージデバイスに対して発行された読み込み命令および／または書き込み命令をフィルタリングする処理を行う。
【００３６】
以下、アクセス制限プログラム４０について図３を参照して説明する。図３は、アクセス制限プログラム４０の機能ブロックを示す概略図である。このアクセス制限プログラム４０は、命令取得部４１と、アクセスコントロール情報記憶部４２と、命令判別部４３とを具備している。なお、このうちアクセスコントロール情報記憶部４２はアクセス制限プログラム４０の外部に設け、必要に応じて呼び出す構成としてもよいが、その場合にはアクセスコントロール情報記憶部４２が書き換えられないようにする必要がある。
【００３７】
命令取得部４１は、入出力制御部３１から出力された命令を取得する機能を有している。
アクセスコントロール情報記憶部４２は、上記フィルタリングを行う際の条件の情報が記憶されている。具体的には、本実施の形態において、アクセスコントロール情報記憶部４２は、上記条件の情報として、アクセスを制限するデバイス（またはインターフェイス）と、当該デバイスに設定するアクセス制限の内容とを関連付けて記述したテーブルを記憶している（図４（ａ）参照）。上記アクセス制限の内容は、対応するデバイスに対する命令の種類である。上記命令の種類は、読み込み命令（ｒｅａｄ）および／または書き込み命令（ｗｒｉｔｅ）である。
【００３８】
命令判別部４３は、命令取得部の取得した命令を、アクセスコントロール情報記憶部４２中の情報に基づいて命令発行先のデバイスに通過させるかフィルタリングを行うフィルタリング手段である。なお、本明細書中において、用語「フィルタリング」とは、取得した命令が所定の条件に対して一致するか否かを判断し、前記判断に応じて、上記命令の通過を遮断する処理のことを指す。言い換えると、用語「フィルタリング」は、上記判断に応じて、命令発行先のデバイスに命令の発行を中断させる処理のことである。
【００３９】
本実施の形態において、命令判別部４３は、図４（ａ）により示されるテーブルを基に上記判断を行う。より具体的には、命令判別部４３は、取得した命令において、発行先のデバイスと種類との組み合わせが、図４（ａ）中のアクセスを制限するデバイス（又はインターフェイス）と命令の種類との組み合わせに一致するか判断する。なお、本明細書中において、用語「アクセス」とは、ＯＳがデバイスに対して発行した読み込み命令および／または書き込み命令が、命令発行先のデバイスにおいて実行されることを指す。従って、命令判別部４３は、取得した命令においての発行先のデバイスと種類との組み合わせが、発行先のデバイスにおいて実行の制限された組み合わせであるか判断するといえる。命令判別部４３は、これらが一致すると判断した場合、取得した命令を、発行禁止の命令であると判断する。
【００４０】
また、命令判別部４３は、命令が発行禁止であると判断した際に、当該命令の実行を中断するとともに、当該命令をデバイスにおいて実行できないことを入出力制御部３１に通知する機能を有している。さらに、命令判別部４３は、発行が禁止されなかった命令（発行が許可された命令）については、そのまま命令判別部４３を通過してデバイスドライバ３２に発行（通過）させる機能を有している。なお、通過した命令は、入出力制御部３１の命令した動作が命令発行先のデバイスにおいて実行される。このようにして、命令判別部４３は入出力制御部３１から出力された命令のうち、特定のデバイスに対する読み込み命令および書き込み命令の少なくとも一方をフィルタリングすることにより、当該デバイスに対するアクセスを制限する。
【００４１】
例えば、アクセスコントロール情報記憶部４２は、図４（ａ）に示したテーブルを記憶している場合、命令判別部４３は、ＦＤＤ５４、ＣＤ−Ｒ５７、ＵＳＢインターフェイス５８に接続されるＵＳＢデバイス、ＳＣＳＩインターフェイスカード６２に接続されるＳＣＳＩデバイスに対して発行された書き込み命令をフィルタリングし、書き込み命令が実行できないことを入出力制御部３１に通知する。
【００４２】
（動作）
以下、図５を参照して、アクセス制限プログラム４０の動作について説明する。
まず、図１に示したハードウェア構成に図２に示したソフトウェア構成を実装したコンピュータシステム５０において、アクセス制限プログラム４０のアクセスコントロール情報記憶部４２に予め図４（ａ）に示した内容のテーブルを記憶させ、アクセスコントロール情報記憶部４２中の情報に基づいてフィルタリングを行った際の動作を図５を参照して説明する。
【００４３】
まず、ユーザー１０が、アプリケーションソフト１１からＯＳ１のユーザーインターフェイス２１を介して、所定のデバイスに対してデータを書き込む書き込み命令ないしデータを読み出す読み込み命令を入力すると、ＡＰＩ提供部２２において所定のライブラリないしシステムコールが呼び出され、これに応じて入出力制御部３１が対象デバイスのデバイスドライバ３２に対して書き込み命令または読み込み命令を発行する。この命令はアクセス制限プログラム４０に渡されて、図５に示すステップＳ１１乃至ステップＳ１５の手順で処理が行われる。
【００４４】
まず、アクセス制限プログラム４０の命令取得部４１が、入出力制御部３１から発行された命令を取得する（ステップＳ１１）。すなわち、入出力制御部３１が発行した命令は、デバイスドライバ３２に到達する前に、命令取得部４１によって取得される。なお、デバイスドライバ３２がＷＤＭのような複数のレイヤーを含む階層型に構成されている場合には、アクセス制限プログラム４０は、これらのレイヤーの１つとして、デバイスドライバ３２中に介在され得る。例えば、アクセス制限プログラム４０は、前述のファイルシステムドライバの上層に配置されることも可能であるし、クラスドライバの上層又は下層に配置されることも可能である。また、デバイスドライバ３２は、アクセス制限プログラム４０を、各レイヤー中に含むように構成されることも可能である。例えば、アクセス制限プログラム４０は、各ポートドライバ又はミニドライバ中に含まれることも可能であるが、クラスドライバ中に含まれることも可能である。クラスドライバ中にアクセス制限プログラム４０を含んだ場合、各デバイス毎に、アクセス制限プログラム４０を設ける必要がないため好ましい。上述のように、アクセス制限プログラム４０を階層型のデバイスドライバに組み込んだ場合、アクセス制限プログラム４０をＯＳに実装することが容易である。また、デバイスドライバ３２がモノリシック型の場合には、入出力制御部３１及びデバイスドライバ３２の少なくとも一方にフックを設けて、両者の間にアクセス制限プログラム４０を介在させるようにしてもよい。
【００４５】
次に、命令判別部４３が、アクセスコントロール情報記憶部４２中の情報に基づいて、命令取得部４１の取得した命令のフィルタリングを行う。まず、命令判別部４３は、取得した命令において、命令の発行先であるデバイス（またはインターフェイス）と命令の種類との組み合わせが、実行の制限された組み合わせか否かを、アクセスコントロール情報記憶部４２に格納されたテーブルを参照して判断する（ステップＳ１２）。具体的には、命令判別部４３は、取得した命令が、ＦＤＤ５４、ＣＤ−Ｒドライブ５７、ＵＳＢインターフェイス５８に接続されたＵＳＢデバイスおよびＳＣＳＩインターフェイスカード６２に接続されたＳＣＳＩデバイスに対する書き込み命令であるか判断する。
【００４６】
ステップＳ１２において実行の制限された組み合わせではないと判断された場合、取得した命令は、発行が許可された命令であると判断され、そのままデバイスドライバ３２に出力される。なお、アクセス制限プログラム４０が、階層化されたデバイスドライバ３２中に含まれる場合、命令判別部４３は、上記命令をアクセス制限プログラム４０に対して下層のデバイスドライバ３２の層に発行する。そして、前記命令は、発行先であるデバイスに渡される。（ステップＳ１３）続いて、命令の発行先であるデバイスにおいて前記命令が実行される（ステップＳ１４）。
【００４７】
一方、ステップＳ１２において取得された命令が実行の制限された組み合わせであると判断された場合には、命令判別部４３は、前記命令を、発行禁止の命令であると判断し、前記命令を中断し、入出力制御部３１に命令が実行できないことを通知する（ステップ１５）。これに応じて入出力制御部３１がエラーを発生させ、ユーザーインターフェイス２１を介してユーザー１０に書き込みができない旨を知らせるようにしてもよい。
以上のような手順によって、アクセス制限プログラム４０は、入出力制御部３１からの命令のフィルタリングを行う。即ち、アクセス制限プログラム４０は、任意のデバイスに対してアクセス制限を行う。
【００４８】
なお、上述のアクセスコントロール情報記憶部４２には、図４（ａ）中に示されるような、実行を制限するデバイス並びに命令の種類との組み合わせが記憶されているが、一部のストレージデバイスについてのみアクセスを許可し、その他のストレージデバイスについてアクセスを一切禁止する場合には、アクセスコントロール情報記憶部４２にアクセスを許可するデバイスの一覧を記憶させてもよい（図４（ｂ）参照）。アクセスコントロール情報記憶部４２が図４（ｂ）に示したテーブルを記憶している場合、命令判別部４３は、ＨＤＤ５６以外のストレージデバイスに対する読み込み命令および書き込み命令をフィルタリングして命令実行を中断するとともに、命令が実行できないことを入出力制御部３１に通知する。
【００４９】
また、上述した命令判別部４３は、命令取得部４１が取得した命令のうち、ストレージデバイスに対して発行された命令のみについて上述の処理を実行するようにしてもよい。例えば、Ｗｉｎｄｏｗｓ（Ｒ）ないしこれに準じたＯＳの場合、ストレージデバイスには所定のドライブレター（Ｃ：、Ａ：等）が付与されるので、命令判別部４３はドライブレターの付与されたデバイスに対する命令のみについて、上述の処理を実行する。また、Ｌｉｎｕｘ等のＵＮＩＸ系のＯＳの場合には、命令判別部４３はブロックデバイスに対する命令のみについて上述の処理を実行すればよい。
【００５０】
以下に、アクセス制限プログラム４０が、図４（ｂ）中のテーブルに示された情報に基づいてストレージデバイスに対する命令をフィルタリングする場合の動作について図６を参照して説明する。本実施の形態において具体的には、アクセス制限プログラム４０は、ストレージデバイスに対して発行された読み込み命令及び書き込み命令を原則として禁止しつつ、ＨＤＤ５６に対する命令を例外的に許可する処理を行う。この場合において、アクセス制限プログラム４０は、図５中のステップＳ１２の代わりに、図６中に示されるステップＳ２１及びＳ２２が行われる。
【００５１】
前述の図５中に示した動作と同様に、ユーザー１０が所定のデバイスに対する書き込み命令または読み込み命令をコンピュータシステム５０に対して入力すると、入出力制御部３１が対象デバイスのデバイスドライバ３２に対して書き込み命令または読み込み命令を発行する。この命令はアクセス制限プログラム４０に渡され、図５に示した場合と同様に、ステップＳ１１が行われる。
【００５２】
ステップＳ１１が完了した後に、続いて、ステップＳ２２が行われる。このステップＳ２２では、命令判別部４３が、取得された命令がストレージデバイスに対する命令であるか否かを判断する。ここでの判断は、例えばＷｉｎｄｏｗｓ（Ｒ）系のＯＳでは、前述のように命令発行先のデバイスにドライブレターが付与されているか否かに基づいて行うことができる。ＵＮＩＸ系のＯＳでは、前述のように、命令発行先のデバイスがブロックデバイスであるか否かに基づいて行うようにしてもよい。
【００５３】
ステップＳ２２でストレージデバイスに対する命令ではないと判断された場合には、続いて、図５中の動作と同様なステップＳ１３並びにＳ１４が行われる。
【００５４】
一方、ステップＳ２２でストレージデバイスに対する命令であると判断された場合には、次に、取得された命令が、アクセスが制限されていないデバイスに対する命令（実行の許可された命令）であるか否かを、命令判別部４３がアクセスコントロール情報記憶部４２の内容に基づいて判断する（ステップＳ２２）。本実施の形態において具体的には、取得した命令が、ＨＤＤ５６に対する命令であるか判断する。ここで、取得された命令が実行の許可された命令であると判断された場合には、前記同様にステップＳ１３並びにＳ１４が行われる。
【００５５】
これに対して、取得された命令が実行の許可された命令ではないと判断された場合、図５中と同様なステップＳ１５に進み、アクセス制限プログラム４０は命令を中断し、入出力制御部３１に命令が実行できないことを通知する。
以上のような手順によって、アクセス制限プログラム４０は、入出力制御部３１からの命令のフィルタリングを行うことも可能である。
【００５６】
図５並びに図６中に示されるように、アクセス制限プログラム４０は、アクセスコントロール情報記憶部４２に予め記憶させておいた内容に基づいて、特定のデバイスに対して発行された読み込み命令および／または書き込み命令をフィルタリングすることにより、デバイス対してアクセスする命令を制限する。このようなアクセス制限プログラム４０により、記録媒体を交換可能なストレージデバイスや、コンピュータシステム５０に着脱自在なストレージデバイスに対する書き込み命令をフィルタリングすることで、これらのデバイスを利用した不正なデータ持ち出しを禁止することができる。また、読み込み命令をフィルタリングすることで、これらのデバイスから不正な内容が読み込まれることを防止することができる。
【００５７】
また、以上のようなアクセス制限プログラム４０はカーネル領域３０に実装されているため、ユーザー１０から設定を変更することが困難であり、権限を持たない者により停止または削除され難い構成となっている。さらに、ハードウェア６にアクセスする命令は必ず入出力制御部３１からデバイスドライバ３２に発行されるので、上述のように入出力制御部３１が発行する命令にアクセス制限プログラム４０でフィルタリング処理を施すことにより、実行の許可されていない命令を漏らすことなくフィルタリングすることができる。カーネル領域３０よりも上層に実装されたアプリケーションにおいて同様のアクセス制限を試みることは可能であるが、その場合にはユーザー１０から設定の変更が可能なばかりでなく、例えば新規なプログラムをインストールすることで容易にフィルタリングの迂回が達成できてしまう不都合がある。
【００５８】
さらに、本実施形態のアクセス制限方法は、入出力制御部３１からデバイスドライバに発行された命令だけを対象に処理（フィルタリング）を行うものであるから、ユーザーのプロセス中で発行される全命令を監視してアクセス制限するような方法に比べて、極めて低いオーバーヘッドで実行することが可能である。
【００５９】
さらにまた、本実施の形態のアクセス制限プログラム４０においては、アクセスコントロール情報記憶部４２等にパスワードを併せて記憶させておき、図５のステップＳ１５に替えてパスワードの入力をユーザー１０に要求するステップを設け、正しいパスワードが入力された場合には命令の実行を許可し、正しいパスワードが入力されなかった場合には入出力制御部３１に命令が実行できないことを通知する構成としてもよい。これにより正しい権限を持ったユーザー１０にはストレージデバイスの利用を許可しつつ、第３者によるストレージデバイスの利用を制限することが可能となる。このような場合には、パスワードをＵＳＢドングル等のハードウェアキーに格納する構成とし、ハードウェアキーをＵＳＢポート等に挿入することによりアクセス制限プログラム４０がパスワードを認識できるような構成とすることが好ましい。パスワードをワンタイムパスワード形式とすることも、セキュリティ強度の点からは好ましい。
【００６０】
また、上記パスワードは、バイオメトリクス（例えば、指紋、手形，顔，網膜，虹彩，声紋，手書きサインなど）を用いてオペレーターから取得した情報を用いることが可能である。バイオメトリクスを用いた場合、アクセス制限プログラム４０は、煩雑なパスワード入力の作業を軽減し得るとともに、パスワード入力のためだけに管理者を呼ぶ必要が無くなり、管理者の手間を軽減し得る。
【００６１】
また、上記パスワードは、データの読み取り及び／又は書き込みに用いられるデバイス、又は上記デバイスに用いられる記録媒体中にあらかじめ格納され得る。アクセス制限プログラム４０は、上記デバイス又は記録媒体からパスワードを取得し、アクセスコントロール情報記憶部４２中のパスワードと照合し、上述のようにアクセス制限を解除するように構成され得る。このように、デバイス又は記録媒体にパスワードが格納されている場合、アクセス制限の解除のためのパスワード入力は、コンピュータシステム５０のオペレーター並びの管理者が直接行う必要がない。従って、煩雑なパスワード入力の作業を軽減し得るとともに、パスワード入力のためだけに管理者を呼ぶ必要が無くなり、管理者の手間を軽減し得る。また、パスワードの内容自体をオペレーターが知る必要がないので、より安全にパスワードの管理を行い得る。これとともに、上記パスワードにより認証された記録媒体のみが、読み書きが行えるため、読み書きが可能な記録媒体を限定することができ、情報の漏洩を防止し得る。
【００６２】
なお、この記録媒体中のパスワードは、例えば、ＭＯのメディアＩＤ（Ｒ）や、ＳＤカード（Ｒ）、マジックゲートメモリースティック（Ｒ）、並びにＤＶＤ中の著作権保護用ためのＩＤなどのように、オペレーターにより書き換えが困難な領域に記録されているデータを用いることが好ましい。この構成により、パスワードをより安全に保管し得る。
【００６３】
上記パスワードは、アクセスコントロール情報記憶部４２中に、ユーザー毎のユニークなユーザーＩＤに対応して格納されることも可能である。具体的には、上記パスワードは、各ハードウェアキー若しくは記録媒体毎に格納され、これらのハードウェアキー若しくは記録媒体毎に、各ハードウェアキー若しくは記録媒体毎の所有者に対応したユニークなユーザーＩＤが割り振られる。これにより、使用されたハードウェアキー又は記録媒体から、本人証明を行うことが出来、許可されていないオペレーターによるデバイスの使用を防止し得る。なお、上述のように、バイオメトリクスを用いた場合、アクセス制限プログラム４０は、より確実に本人証明を行い、許可されていないオペレーターによるデバイスの使用を防止し得る。なお、アクセス制限プログラム４０は、ユーザーＩＤ並びにアクセス内容をログに記録するように構成され得る。この場合、記録されたユーザーＩＤにより、コンピュータシステム５０の使用者を特定することが出来、デバイスに対するアクセスを追跡調査する際に便利である。
【００６４】
また、本実施の形態のアクセス制限プログラム４０は、デバイスに対してデータを書き込む際に、前記データを暗号化するように構成され得る。この暗号化をする工程は、図５中のステップＳ１３において、デバイスドライバ３２にデータを送る前に行う。この構成により、アクセス制限プログラム４０は、ストレージデバイスにデータを記録した後においても、許可しないユーザーのアクセスを制限し得る。
【００６５】
なお、コンピュータシステム５０中に暗号化用のチップ（デバイス）例えば、ＤＳＰや乱数発生器、を設け、上記チップにより暗号化を行うと、より迅速に暗号化処理が行えるため好ましい。なお、アクセス制限プログラム４０は、デバイスドライバ３２に組み込まれた場合、対応するデバイスに配置された上記チップを利用して暗号化処理を行うことも可能である。この場合、上記暗号化処理は、図５中のステップＳ１４で行われる。アクセス制限プログラム４０は、暗号化する際の暗号長が、記録されるデータの重要度によって任意に変更し得るように構成され得る。
【００６６】
なお、アクセス制限プログラム４０は、本実施の形態において、入出力制御部３１より下層に配置されている。このため、上記パスワードの認証処理は、入出力制御部３１より下層で行われ、取得したパスワードが入出力制御部３１より上層に流れることはない。従って、上記パスワードが、ユーザー領域２０に流出することが防止されており、パスワードを安全に運用し得る。
【００６７】
また、コンピュータシステム５０は、パスワードが格納されていないハードウェアキーにより、物理的なロックが解除された際に、上記アクセス制限プログラム４０によるアクセス制限が解除される電気的な機構を有することが可能である。
【００６８】
さらにまた、本実施形態のアクセス制限プログラム４０は、コントローラ部５２に内蔵されたＲＯＭやＨＤＤ５６等に記録した状態で、予めコンピュータシステム５０中に組み込むことも可能である。このようにすることにより、上述したアクセス制限プログラム４０をプリインストールしたコンピュータシステムを提供することが可能となる。なお、このアクセス制限機構は、ＲＯＭやＨＤＤ５６中において、管理者権限を有していないユーザーがアクセス困難な領域に格納されることがセキュリティ上好ましい。
【００６９】
また、複数のコンピュータシステム５０によりネットワークが組まれている場合、アクセス制限プログラム４０は、ネットワーク上の他のコンピュータシステム５０に対して、デバイスのアクセス制限の設定を行うように構成することも可能である。これにより、管理者は、各コンピュータシステム５０まで行って設定を行う必要がなく、管理の手間が軽減され得る。
【００７０】
なお、本発明は、上記実施形態に限られるものではなく、種々変形が可能である。例えば、上記実施形態ではストレージデバイスに対するアクセスを制限する場合を示したが、アクセス制限プログラム４０によりＮＩＣ６３に対するアクセスを制限することもでき、これによりネットワークを利用した不正なデータ持ち出しやデータ読み込みを防止することも可能である。また、コンピュータシステム５０がＩｒＤＡやＢｌｕｅｔｏｏｔｈ等のインターフェイスを備えている場合には、これらの利用を制限することもできる。さらに、本発明は、ＰＣ・ワークステーション・サーバ等といった通常のコンピュータばかりでなく、プロセッサを内蔵した種々の組み込み機器に適用することも可能である。
【００７１】
【発明の効果】
本発明によれば、オペレーティングシステムの入出力制御部がストレージデバイス若しくは入出力インターフェイスのデバイスドライバに対して発行する命令のうち、ストレージデバイスにアクセスする命令を制限するので、コンピュータシステムのストレージデバイスに対するアクセスを制限することができ、これにより不正なデータ持ち出しやデータの読み込みを抑制することができる。
【図面の簡単な説明】
【図１】図１は、本発明の１つの実施の形態におけるコンピュータシステムを示す概略図である。
【図２】図２は、図１のコンピュータシステムにおけるＯＳの構成を示す概略図である。
【図３】図３は、図２のＯＳに実装されたアクセス制限プログラムを示す概略図である。
【図４】図４（ａ）は、アクセスコントロール記憶部に格納されたテーブルの一例を示す図である。
図４（ｂ）は、アクセスコントロール記憶部に格納されたテーブルの別の例を示す図である。
【図５】図５は、アクセス制限プログラムの動作の一例を示すフローチャートである。
【図６】図６は、アクセス制限プログラムの動作の別の例を示すフローチャートである。
【符号の説明】
１…オペレーティングシステム（ＯＳ）、  ６…ハードウェア、  １０…ユーザー、  １１…アプリケーションソフト、  ２０…ユーザー領域、  ２１…ユーザーインターフェイス、  ２２…ＡＰＩ提供部、  ３０…カーネル領域、  ３１…入出力制御部、  ３２…デバイスドライバ、  ４０…アクセス制限プログラム、  ４１…命令取得部、  ４２…アクセスコントロール情報記憶部、  ４３…命令判別部、  ５０…コンピュータシステム、  ５１…ＣＰＵ、  ５２…コントローラ部、  ６１…ＰＣＩバス、  ６２…ＳＣＳＩインターフェイスカード、６３…ネットワークインターフェースカード、  ６４…ＡＧＰバス、  ６５…グラフィックボード、  ６６…モニタ、  ６７…筐体
【図１】
2004318720.tif 000003
【図２】
2004318720.tif 000004
【図３】
2004318720.tif 000005
【図４】
2004318720.tif 000006
【図５】
2004318720.tif 000007
【図６】
2004318720.tif 000008