説明

情報処理装置、情報処理システム、制御方法、プログラム、及び記憶媒体

【課題】利便性がよく、より強固なデバイスの利用制限をかけることができる技術を提供する。
【手段】ユーザのデバイスの利用を制御可能な情報処理装置であって、前記デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理手段有し、前記複数の制御処理手段は、前記デバイスとの間のデータの入出力、または、入力、または、出力のうち少なくとも一つを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、制御方法、プログラム、及び記憶媒体に関する。特に、情報漏えい防止の技術に関する。
【背景技術】
【0002】
情報処理装置からデバイスへの機密情報の漏えいを防止するために、デバイスドライバに対するデバイスフィルタドライバでデバイスへのデータのI/Oを制御し、情報漏えいを防止する方法が知られている。
【0003】
しかしながら、従来の構成のように、デバイスフィルタドライバのみで制御する手法では、悪意ある者によってその技術を回避する方法を知られてしまうと、デバイスへの制御が有効に用いられず、情報漏えいが発生してしまうという問題がある。
【0004】
そこで、特許文献1では、ファイルアクセス制御ドライバと外部媒体書込み制御ドライバとにより、外部媒体への書き込み制御を行うシステムが開示されている。また、特許文献2では、デバイスフィルタドライバとファームウェアとにより、デバイスの利用制限を行い、情報漏えいを防止している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−59501号公報
【特許文献2】特開2008−165371号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1では、ファイルアクセス制御ドライバは、ファイルパスの切り替えを行う機能であるため、入出力対象が書き込みを禁止したものは、擬似的に外部媒体との間で入出力を行う。これにより、ユーザからは一見ファイルをコピーできたかのように見えるため、ユーザが意図した処理となっているかが明確ではなく、ユーザビリティ(ユーザの利便性)における課題がある。
【0007】
また、特許文献2では、ファームウェアを用いてデバイスへの制御を行うため、汎用性が乏しく、こちらにおいてもユーザビリティにおける課題がある。
【0008】
本発明は、上記の課題を鑑みてなされたものであり、ユーザの利便性がよく、より強固なデバイスの利用制限をかけることができる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明は以下の構成を有する。ユーザのデバイスの利用を制御可能な情報処理装置であって、前記デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理手段を有し、前記複数の制御処理手段は、前記デバイスとの間のデータの入出力、または、入力、または、出力のうち少なくとも一つを制御することを特徴とする。
【発明の効果】
【0010】
本発明によれば、利便性がよく、より強固なデバイスの利用制限をかけることが出来る技術を提供することができる。
【図面の簡単な説明】
【0011】
【図1】本実施形態に係るシステム構成の例図。
【図2】本実施形態に係るグローバルフックによる制御のフローチャートの例図。
【図3】本実施形態に係るAPIフックによる書き込み制御例のフローチャートの図。
【図4】本実施形態に係るAPIフックによる読み込み制御例のフローチャートの図。
【図5】本実施形態に係るファイルシステムフィルタドライバ、及びデバイスフィルタドライバの書き込み制御例のフローチャートの図。
【図6】本実施形態に係るファイルシステムフィルタドライバ、及びデバイスフィルタドライバの読み込み制御例のフローチャートの図。
【図7】本実施形態に係るファイルシステムフィルタドライバのアタッチ例のフローチャートの図。
【図8】本実施形態に係るファイルシステムフィルタドライバのアタッチ例のフローチャートの図。
【図9】本実施形態に係るデバイスフィルタドライバのアタッチ例のフローチャートの図。
【発明を実施するための形態】
【0012】
<第一の実施形態>
以下、本発明について、図面を用いて詳細に説明する。なお、これにより本発明が限定されるものではない。
【0013】
図1は、本実施形態に係る強固な情報漏えい防止を実現するための情報処理装置のソフトウェア構成例を示したものである。なお、ここでの情報処理装置とは、例えば、PCや汎用コンピュータなどを指しているが、これに限定されるものではなく、情報処理装置として同様の機能が実現可能なものであればどういったものでも良い。ここで示した情報処理装置のソフトウェアにおける構成要素はその役割、及び関連する制御処理に基づいて階層構造を構成している。図1は、ユーザが用いる既存の情報処理装置のOS1を示しており、その構成要素として、各処理レイヤに対しグローバルフック2、APIフック3、ファイルシステムフィルタドライバ5、デバイスフィルタドライバ7がインストールされている。
【0014】
なお、各処理レイヤに対応するフィルタ手段(グローバルフック2、APIフック3、ファイルシステムフィルタドライバ5、デバイスフィルタドライバ7)は、各処理レイヤへの要求をフィルタ(拡張、置き換え等)するものである。例えば、各処理レイヤにおけるリムーバブルディスクへの書き込み、読み込み等を制御することができる。
【0015】
グローバルフック2とAPIフック3(アプリケーション制御手段)は、ユーザモード層4の上位に位置する。グローバルフック2は、リムーバブルディスク(外付けデバイス)が接続されている場合に、ユーザが保存ボタンを押下すると、保存を行う際のウィンドウが表示されず保存できないように制御する機能を備える。APIフック3は、リムーバブルディスクへの書き込み、リムーバブルディスクからの読み込みを制御する機能を備える。なお、各フックや各フィルタドライバを生成するための制御プロセス(不図示)は、ユーザモード層4にインストールされる。
【0016】
また、グローバルフック2とAPIフック3は、後述するデバイスフィルタドライバ7のみでは制御できない、例えば、エラーメッセージを表示させない機能を備えることも可能である。
【0017】
ファイルシステムフィルタドライバ5(ファイルシステム制御手段)は、ファイルシステムドライバ層6の上位に位置する。ファイルシステムフィルタドライバ5は、ファイルシステム(例えば、ボリューム)の制御をする機能を備える。なお、ここでのボリュームとは、例えば、情報処理装置内に備えるハードディスクなどに代表される記憶媒体(不図示)の記憶領域などを指す。
【0018】
また、ファイルシステムフィルタドライバ5は、後述するデバイスフィルタドライバ7のみでは制御できない、例えば、遅延書き込みエラーのメッセージを表示させないための機能を備える。
【0019】
また、ファイルシステムフィルタドライバ5は、使用しているデバイス(例えば、ポート)を判定する機能を備えることも可能である。
【0020】
デバイスフィルタドライバ7(デバイス制御手段)は、デバイスドライバ層8の上位に位置する。デバイスフィルタドライバ7は、デバイス(例えば、ポート)の制御を行う機能を備える。なお、ここでのポートとは、例えば、情報処理装置が有するデバイスを接続するためのインタフェース(不図示)などを指す。
【0021】
以上により、本実施形態において、ユーザモード層4では、リムーバブルディスク(デバイス)の利用を制御するために、ユーザモードに対するデータの保存/書き込み/読み込みといった入出力の処理を行う。ファイルシステムドライバ層6では、ファイルシステムに対するデータの書き込み/読み込みといった、ファイルシステムに対する入出力の処理を行う。デバイスドライバ層8では、デバイスに対するデータの書き込み/読み込みといったデバイスに対する入出力の処理を行う。すなわち、ユーザがデバイスを使用するために実行される複数の処理レイヤにて、それぞれの役割に応じた処理を行う。そして、それらのデバイスを利用するための処理に対し、上記インストールされたフック、及びフィルタドライバは制御処理を行う。
【0022】
なお、制御処理は、フック、及びフィルタドライバに限定されず、例えば、ファイルシステムドライバ、デバイスドライバ等、複数の処理レイヤにてデバイスとの間のデータの入出力を制御するものでも可能である。また、入力、もしくは出力の一方のみの制御であっても良い。
【0023】
[制御処理]
以下に図を用いて、各処理レイヤにおいて実行される制御処理の例を示す。
【0024】
図2は、ユーザモード層4に対応するグローバルフック2の制御例のフローチャートを示している。アプリケーションにおける保存ボタンを押下された際に、それに起因してイベントが発生する(ステップ21)。続いて、リムーバブルディスクが接続されているか否かの判定を行う(ステップ22)。もし、リムーバブルディスクが接続されているのであれば、保存処理を行わせないために、保存画面を表示させず、閉じる制御を行う(ステップ23)。リムーバブルディスクが接続されていなければ、ウィンドウメッセージを本来受け取る出力先に渡し、保存画面のウィンドウを表示させる(ステップ24)。
【0025】
図3は、ユーザモード層4に対応するAPIフック3の書き込み制御例のフローチャートを示している。まず、アプリケーションからの書き込みイベントが発生する(ステップ31)。続いて、発生した書き込みイベントがリムーバブルディスク(デバイス)への書き込みか否かを判定する(ステップ32)。リムーバブルディスクへの書き込みの場合は、書き込み処理を実行しないように制御する(ステップ33)。リムーバブルディスク以外への書き込みであれば、システム本来の書き込み処理を実行する(ステップ34)。
【0026】
図4は、ユーザモード層4に対応するAPIフック3の読み込み制御例のフローチャートを示している。まず、アプリケーションからの読み込みイベントが発生する(ステップ41)。続いて、発生した読み込みイベントがリムーバブルディスクからの読み込みか否かを判定する(ステップ42)。リムーバブルディスクからの読み込み場合は、読み込み処理を実行しないように制御する(ステップ43)。リムーバブルディスクからの読み込みで無い場合は、システム本来の読み込み処理を実行する(ステップ44)。
【0027】
図5は、ファイルシステムドライバ層6に対応するファイルシステムフィルタドライバ5、及びデバイスドライバ層8に対応するデバイスフィルタドライバ7の書き込み制御例のフローチャートを示している。まず、OSからIRP_MJ_WRITEが発生する(ステップ51)。このリクエストが発生したら、STATUS_ACCESS_DENYをOSに返し、書き込み処理を禁止する(ステップ52)。
【0028】
なお、ファイルシステムフィルタドライバ5の処理後にデバイスフィルタドライバ7の処理を行うが、情報処理装置の負荷を考慮して、ファイルシステムフィルタドライバ5の処理がエラー無く実行されれば、デバイスフィルタドライバ7の処理を行わない設定としても良い。
【0029】
また、図5の処理は、後述するファイルシステムフィルタドライバ5、及びデバイスフィルタドライバ7がアタッチされると実行される。従って、アタッチされない場合は、この処理は実行されない。また、STATUS_ACCESS_DENYは書き込み(もしくは、読み込み)禁止の一例であり、後述するデバイス向けと認識できるファイルシステムに対応するものであれば、これに限定されない。
【0030】
図6は、ファイルシステムドライバ層6に対応するファイルシステムフィルタドライバ5、及びデバイスドライバ層8に対応するデバイスフィルタドライバ7の読み込み制御例のフローチャートを示している。まず、OSからIRP_MJ_READが発生する(ステップ61)。このリクエストが発生したらSTATUS_ACCESS_DENYを返し、読み込み処理を禁止する(ステップ62)。なお、図6の制御処理は、後述するファイルシステムフィルタドライバ5、及びデバイスフィルタドライバ7がアタッチされると実行される。従って、アタッチされない場合は、この制御処理は実行されない。
【0031】
図7は、ファイルシステムドライバ層6に対応するファイルシステムフィルタドライバ5のアタッチ例のフローチャートを示している。まず、ボリュームのマウントイベントが発生する(ステップ71)。マウントされたボリュームがファイルシステムフィルタドライバ5をアタッチするべきボリュームか否かを、ファイルシステムに基づいて判定する(ステップ72)。
【0032】
例えば、ファイルシステムは、FAT、FAT32、NTFS、exFAT、NFS、DFS、cDFS等、様々な種類が存在する。ここでは、デバイス(USB、PCMCIA、IEEE1394)向けと認識できるファイルシステム(FAT、FAT32、NTFS、exFAT)の場合は、アタッチするべきボリュームとして予め定義しておき、この定義に従って判定する。アタッチするべきボリュームの場合は、ファイルシステムフィルタドライバ5をアタッチする(ステップ73)。
【0033】
図8は、ボリュームがマウントされたままになっており、ボリュームのマウントイベントが発生しなかったときのアタッチ例のフローチャートを示している。本制御処理はファイルシステムドライバ層6に対応する。
【0034】
まず、制御プロセスを起動する(ステップ81)。なお、制御プロセスを起動するタイミングは、OSが起動したとき、ユーザ(管理者)が指示したとき、その他様々な設定が可能である。続いて、起動した制御プロセスがマウントされているボリュームを確認する(ステップ82)。
【0035】
次に、マウントされているボリュームがファイルシステムフィルタドライバ5をアタッチするべきか否かを、ファイルシステムに基づいて判定する(ステップ83)。例えば、ファイルシステムは、FAT、FAT32、NTFS、exFAT、NFS、DFS、cDFS等、様々な種類が存在する。ここでは、デバイス(USB、PCMCIA、IEEE1394)向けと認識できるファイルシステム(FAT、FAT32、NTFS、exFAT)の場合は、アタッチするべきボリュームとして予め定義しておき、この定義に従って判定する。アタッチするべきボリュームの場合は、ファイルシステムフィルタドライバ5をアタッチする(ステップ84)。
【0036】
図9は、デバイスドライバ層8に対応するデバイスフィルタドライバ7のアタッチ例のフローチャートを示している。まず、制御プロセスを起動する(ステップ91)。なお、制御プロセスを起動するタイミングは、OSが起動したとき、ユーザ(管理者)が指示したとき、その他様々な設定が可能である。続いて、制御プロセスに予め保持されている情報に基づいて、デバイスフィルタドライバ7をアタッチするべきポートか否かを判定する(ステップ92)。ここでの制御プロセスに予め保持されている情報とは、書き込み(もしくは、読み込み)を禁止したいポートに関する情報である。アタッチするべきポートである場合は、デバイスフィルタドライバ7をアタッチする(ステップ93)。なお、ここでは制御するデバイスをポートとして記載しているが、その他のデバイスであっても良い。
【0037】
なお、本実施形態で扱う制御プロセスは、上述した各フック、各フィルタドライバの処理に限定されない。例えば、書き込み制御は行うが読み込み制御は行わない設定とすることも可能である。従って、デバイスからの情報の読み込みは出来るが、書き込みは禁止することができ、よりユーザの利便性を向上させ、情報漏えいを防止することが可能である。
【0038】
以上のように、本実施形態によれば、各処理レイヤに制御のためのフック、及びフィルタドライバがインストールされる。そして、ユーザモード層4では、リムーバブルディスク(デバイス)への保存の制御とリムーバブルディスク(デバイス)への書き込み制御とリムーバブルディスク(デバイス)からの読み込み制御とを行う。また、ファイルシステムドライバ層6では、ボリュームへの書き込み制御とボリュームからの読み込み制御とを行う。さらに、デバイスドライバ層8では、ポートへの書き込み制御とポートからの読み込み制御とを行う。このように、複数の処理レイヤにて、それぞれ制御処理を行い、デバイスの利用に対する制限をかけることが出来る。すなわち、悪意ある者によって、ある処理レイヤに対応する制御を回避された場合でも、次の処理レイヤ(図1に示す、より下層に位置する処理レイヤ)にて多段的にデバイスへの制御を行うことによって、より強固なデバイスの利用制限をかけることができる。
【0039】
なお、複数の処理レイヤに対応する複数の制御処理は、例えば、ファイルシステム制御手段(ファイルシステムフィルタドライバ5)とデバイス制御手段(デバイスフィルタドライバ7)、アプリケーション制御手段(グローバルフック2、APIフック3)とファイルシステム制御手段(ファイルシステムフィルタドライバ5)、アプリケーション制御手段(APIフック3)とデバイス制御手段(デバイスフィルタドライバ7)等、いずれの組み合わせでも可能である。
【0040】
従って、例えばデバイスフィルタドライバのみという手法では制御できない、一見ファイルをデバイスにコピーできたかのように見える、といった細かい制御をデバイスドライバ層の上位層にて行うために、処理を補完することができる。これにより、本発明はユーザのデバイスの利用を制御可能な情報処理装置において、複数の防御策を設けることで強固な情報漏えい防止、及び利便性向上を実現可能とする。
【0041】
<第二の実施形態>
第二の実施形態では、第一の実施形態の変形例について説明する。具体的には、情報処理装置からアクセス可能なネットワーク上に、管理サーバ(不図示)を配置し、管理サーバから情報処理装置の記憶装置に保持されている各設定情報(フック、フィルタドライバ、制御プロセス)を更新する。そして、情報処理装置は、送信された各設定情報に基づいて、デバイスとの間の入出力を制御する。
【0042】
以下、このデバイスとの間の入出力を制御するための制御設定に関する設定情報を便宜上、制御設定情報と呼ぶ。すなわち、ユーザのデバイス利用に対する制御可能な情報処理装置と制御設定情報を管理する管理サーバとを含む情報処理システムを構成する。なお、管理サーバとは、情報処理装置と同様に、管理サーバとしての同様の機能が実現可能なものであればどういったものでも良い。また、管理サーバ、及び情報処理装置はネットワーク上に複数含まれていても良い。
【0043】
情報処理装置の記憶装置に保持されている制御設定情報を更新できるようにすることで、ユーザ毎に設定を定義し、制御することが可能となる。また、管理サーバにより包括的に制御設定情報の管理が可能となる。これにより、よりユーザに利便性の高い必要に応じた情報漏えい防止が可能となる。なお、第二の実施形態の動作に係る大部分は、第一の実施形態と共通するため、第一の実施形態と異なる差異についてのみ説明し、共通の動作については説明を省略する。
【0044】
管理サーバ(不図示)は、ユーザ(情報処理装置)と各制御設定情報(例えば、禁止するポート、禁止するボリューム、アプリケーション毎のデバイスへの読み込み/書き込みに対する制限、禁止する時間など)を関連付けた管理テーブルを有する(制御設定情報管理手段)。なお、管理テーブルは、ユーザ毎に定義することに限定されず、例えば、部署、所属別というようなグループ毎に定義しても良い。また、管理テーブルは、データベースとして保持しても良いし、ファイル形式にて外部から与えられても良く、その形式は限定されない。
【0045】
管理サーバは、管理テーブルを参照して制御設定情報を情報処理装置に送信する。そして、情報処理装置は、管理サーバから送信された制御設定情報に基づいて記憶装置に保持されている制御設定情報を更新する。なお、情報処理装置に送信するタイミングは、所定時間単位(例えば、5分間隔)、情報処理装置が起動したとき、情報処理装置からの要求を受けたとき、管理テーブルが更新されたとき、その他様々な条件を設定可能である。その後、情報処理装置では、更新した制御設定情報に基づいて、デバイスへの入出力の処理に対する制御処理を行う。
【0046】
以上のように、本実施形態によれば、情報処理装置の記憶装置に保持されている制御設定情報を更新できるようにすることで、ユーザ毎(もしくは、任意のグループ毎)に設定を定義し、変更することが可能となる。これにより、例えば、通常はデバイスの利用を禁止しているが、業務上必要な際には、特定のユーザに対して30分間だけリムーバブルディスクへの書き込みを利用できる、という必要に合わせた詳細な設定も可能となる。これによって、情報漏えい防止を実現しつつ、ユーザの利便性を向上させることが可能となる。
【0047】
<その他の実施形態>
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムをコンピュータ(またはCPUやMPU)が読出し実行することによっても、達成される。この場合、プログラムは図示したフローの手順を実現するためのものを含むこととなる。また、本発明を実現するためのソフトウェアを格納した記憶媒体も本発明の範疇であることは言うまでも無い。
【符号の説明】
【0048】
1 OS
2 グローバルフック
3 APIフック
4 ユーザモード層
5 ファイルシステムフィルタドライバ
6 ファイルシステムドライバ層
7 デバイスフィルタドライバ
8 デバイスドライバ層


【特許請求の範囲】
【請求項1】
ユーザのデバイスの利用を制御可能な情報処理装置であって、
前記デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理手段
を有し、
前記複数の制御処理手段は、前記デバイスとの間のデータの入出力、または、入力、または、出力のうち少なくとも一つを制御することを特徴とする情報処理装置。
【請求項2】
前記複数の制御処理手段は、当該制御処理手段それぞれが対応する階層におけるデータの書き込み読み込み、または、書き込み、または、読み込みのうち少なくとも一つを制御するためのフィルタ手段を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記フィルタ手段は、当該フィルタ手段に対応する制御設定を備えることを特徴とする請求項2または3に記載の情報処理装置。
【請求項4】
前記複数の制御処理手段は、前記階層構造における階層それぞれに対応して、
ユーザモードに対する制御処理手段を実行する際に、アプリケーションからの指示による前記デバイスへの保存処理、または、前記デバイスへの書き込み、または、前記デバイスからの読み込みのうち少なくとも一つを制御するアプリケーション制御手段、
ファイルシステムに対する制御処理を実行する際に、前記ファイルシステムへの書き込み、または、前記ファイルシステムからの読み込みのうち少なくとも一つを制御するファイルシステム制御手段、
前記デバイスに対する制御処理を実行する際に、前記デバイスへの書き込み、または、前記デバイスからの読み込みのうち少なくとも一つを制御するデバイス制御手段、
のうちのいずれか複数の組み合わせであることを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
【請求項5】
ユーザのデバイスの利用を制御可能な情報処理装置であって、
前記デバイスの利用の際に実行される処理のうち、ファイルシステムに対する制御処理手段を有し、
前記制御処理手段は、前記デバイスとの間のデータの入出力を制御することを特徴とする情報処理装置。
【請求項6】
ユーザのデバイスの利用を制御可能な情報処理装置と管理サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理手段
を有し、
前記複数の制御処理手段は、前記デバイスとの間のデータの入出力を制御し、
前記管理サーバは、
前記デバイスとの間のデータの入出力を制御するための情報を前記情報処理装置に送信する送信手段と
を有し、
前記情報処理装置は、前記管理サーバの前記送信手段により送信された前記情報に基づいて、前記デバイスとの間のデータの入出力を制御することを特徴とする情報処理システム。
【請求項7】
ユーザのデバイスの利用を制御可能な情報処理装置の制御方法であって、
前記情報処理装置の制御処理工程が、前記デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理工程と、
を有し、
前記複数の制御処理工程は、前記デバイスとの間のデータの入出力を制御することを特徴とする制御方法。
【請求項8】
コンピュータを、
デバイスの利用の際に実行される階層構造からなる処理のうち、少なくとも2つの階層の処理に対応する複数の制御処理手段と
して機能させ、
前記複数の制御処理手段は、前記デバイスとの間のデータの入出力を制御することを特徴とするプログラム。
【請求項9】
請求項8に記載のプログラムを格納した記憶媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate