(57)【要約】【課題】ユーザビリティを損なわずに機密情報の漏洩を防止できる情報漏洩防止装置を提供する。【解決手段】情報漏洩防止装置10は、プロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶部11と、プロセスが出力するファイルへのアクセス要求を検出する検出部12と、記憶部11に記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶部11に記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定部13とを備える。【選択図】図１
2018147203.tif 000002
【特許請求の範囲】
【請求項１】
プロセスの識別情報と前記プロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報と前記ファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶部と、
プロセスが出力するファイルへのアクセス要求を検出する検出部と、
前記記憶部に記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および前記記憶部に記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定部とを備える
ことを特徴とする情報漏洩防止装置。
【請求項２】
検出されたアクセス要求が容認されないと判定部が判定した後に前記アクセス要求に関する追加情報が入力される入力手段を提示する提示部を備え、
前記判定部は、入力された追加情報に基づいて前記アクセス要求を容認するか否かを再度判定する
請求項１記載の情報漏洩防止装置。
【請求項３】
プロセス情報およびファイル情報を更新する更新部を備える
請求項１または請求項２記載の情報漏洩防止装置。
【請求項４】
ファイルへのアクセス要求は、ファイルのオープン要求であり、
更新部は、判定部が容認した前記ファイルのオープン要求を出力したプロセスに関するプロセス情報を更新する
請求項３記載の情報漏洩防止装置。
【請求項５】
ファイルへのアクセス要求は、ファイルの保存要求であり、
更新部は、判定部が容認した前記ファイルの保存要求の対象のファイルに関するファイル情報を更新する
請求項３記載の情報漏洩防止装置。
【請求項６】
検出部は、プロセスが出力する通信要求を検出し、
判定部は、記憶部に記憶されているプロセス情報のうち検出された通信要求を出力したプロセスに関するプロセス情報に基づいて検出された通信要求を容認するか否かを判定する
請求項１から請求項５のうちのいずれか１項に記載の情報漏洩防止装置。
【請求項７】
プロセスの識別情報と前記プロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報と前記ファイルのセキュリティレベルとを含むファイル情報とを記憶し、
プロセスが出力するファイルへのアクセス要求を検出し、
記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する
ことを特徴とする情報漏洩防止方法。
【請求項８】
検出されたアクセス要求が容認されないと判定された後に前記アクセス要求に関する追加情報が入力される入力手段を提示し、
入力された追加情報に基づいて前記アクセス要求を容認するか否かを再度判定する
請求項７記載の情報漏洩防止方法。
【請求項９】
コンピュータに、
プロセスの識別情報と前記プロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報と前記ファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶処理、
プロセスが出力するファイルへのアクセス要求を検出する検出処理、および
記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定処理
を実行させるための情報漏洩防止プログラム。
【請求項１０】
コンピュータに、
検出されたアクセス要求が容認されないと判定された後に前記アクセス要求に関する追加情報が入力される入力手段を提示する提示処理、および
入力された追加情報に基づいて前記アクセス要求を容認するか否かを再度判定する判定処理を実行させる
請求項９記載の情報漏洩防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報漏洩防止装置、情報漏洩防止方法および情報漏洩防止プログラムに関する。
【背景技術】
【０００２】
企業で管理されている機密情報が、外部に漏洩するセキュリティ事故が多く発生している。例えば、組織の外部の犯罪者が外部ネットワークを介して標的型攻撃を行うことによって機密情報を持ち出す場合がある。また、悪意を有する組織の内部の犯罪者が意図的に機密情報を持ち出す場合がある。また、企業の従業員がメールの誤送信等の操作ミスによって意図せずに機密情報を組織の外部に漏らす場合がある。
【０００３】
上記の問題に対して、機密情報の漏洩を防ぐ技術がいくつか提案されている。特許文献１には、外部への持ち出しが禁止されている「機密ファイル」と、外部への持ち出しが許可されている「通常ファイル」が混在されて記憶されている記憶装置を運用できる情報漏洩防止プログラムが記載されている。
【０００４】
特許文献１に記載されている情報漏洩防止プログラムは、具体的には、機密ファイルの一覧を機密ファイル管理テーブルに記録し、機密ファイルが格納される「機密フォルダ」を予め指定する。次いで、機密ファイルを開いた「機密プロセス」が機密フォルダ以外のフォルダ等にファイルを出力することを制限することによって、特許文献１に記載されている情報漏洩防止プログラムは、機密ファイルが機密フォルダ以外のフォルダ等に出力されることを防止できる。
【０００５】
特許文献２には、機密ファイルを扱うプロセスを限定せずに機密ファイルの情報の漏洩を防止するシステムが記載されている。特許文献２に記載されているシステムは、最初に、セキュリティレベルが高い「機密モード」でログオンするか、セキュリティレベルが低い「通常モード」でログオンするかをログオン画面でユーザに選択させる。なお、特許文献２に記載されているシステムは、ユーザのログオン直後にユーザにモードを選択させてもよい。
【０００６】
次いで、特許文献２に記載されているシステムは、選択されたセキュリティレベルに応じて、ファイルシステムのディレクトリを多重化し、ネットワークドライバの利用を制限する。具体的には、特許文献２に記載されているシステムは、機密モードで作成されたファイルの通常モードでの参照を制限する。
【０００７】
また、特許文献２に記載されているシステムは、機密モードでのネットワークドライバの利用を制限する。以上により、特許文献２に記載されているシステムは、機密モードで扱われている機密情報の外部への漏洩を防止できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３９２７３７６号公報
【特許文献２】特許第４６５４９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載されている情報漏洩防止プログラム、および特許文献２に記載されているシステムには、それぞれ以下のような課題がある。
【００１０】
特許文献１に記載されている情報漏洩防止プログラムは、機密ファイルを開いたプロセスが機密フォルダ以外のフォルダ等にファイルを出力することを制限する。すなわち、特許文献１に記載されている情報漏洩防止プログラムはユーザに認識されにくいプロセスがフォルダに自動的にファイルを書き込む処理まで制限してしまうため、プロセスの正常な動作が阻害される可能性がある。また、例えば機密フォルダ以外のフォルダに格納されているログファイルに対する書き込みも制限される可能性がある。
【００１１】
特許文献２に記載されているシステムは、上記の特許文献１に記載されている情報漏洩防止プログラムの課題を解決できる。しかし、特許文献２に記載されているシステムには、以下の２つの課題がある。
【００１２】
１つ目の課題は、セキュリティレベルを変更する場合、ユーザに一旦ログアウトしてから再度ログインすることが求められることである。ログアウトする場合、ユーザには、実行中の作業を中断し、全てのプロセスを停止させることが求められる。すなわち、ユーザにとってログアウトは負担の重い作業である。
【００１３】
２つ目の課題は、機密モードで作成されたファイルに対して通常モードで読み書きできず、通常モードで作成されたファイルに対して機密モードで書き込むことができないことである。
【００１４】
例えば、特許文献２に記載されているシステムを使用するユーザは、通常モードでダウンロードされたテンプレートファイルを使用して機密モードで機密文書を作成できない。すなわち、特許文献２に記載されているシステムには、運用におけるユーザビリティの面で問題がある。
【００１５】
よって、上記の課題が解決された特許文献１に記載されている情報漏洩防止プログラムが求められている。上記の課題が発生する理由は、プロセスがファイルを保存する際、ファイルを機密ファイルとして保存した方がよいか、通常ファイルとして保存した方がよいか判断することが困難なためである。
【００１６】
［発明の目的］
そこで、本発明は、上述した課題を解決する、ユーザビリティを損なわずに機密情報の漏洩を防止できる情報漏洩防止装置、情報漏洩防止方法および情報漏洩防止プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明による情報漏洩防止装置は、プロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶部と、プロセスが出力するファイルへのアクセス要求を検出する検出部と、記憶部に記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶部に記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定部とを備えることを特徴とする。
【００１８】
本発明による情報漏洩防止方法は、プロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報とを記憶し、プロセスが出力するファイルへのアクセス要求を検出し、記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定することを特徴とする。
【００１９】
本発明による情報漏洩防止プログラムは、コンピュータに、プロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶処理、プロセスが出力するファイルへのアクセス要求を検出する検出処理、および記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定処理を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ユーザビリティを損なわずに機密情報の漏洩を防止できる。
【図面の簡単な説明】
【００２１】
【図１】本発明による情報漏洩防止装置の第１の実施形態の構成例を示すブロック図である。
【図２】第１の実施形態の情報漏洩防止装置10による判定処理の動作を示すフローチャートである。
【図３】本発明による情報漏洩防止システムの第２の実施形態の構成例を示すブロック図である。
【図４】機密ファイルテーブルの一例を示す説明図である。
【図５】プロセステーブルの一例を示す説明図である。
【図６】機密サーバテーブルの一例を示す説明図である。
【図７】例外プロセステーブルの一例を示す説明図である。
【図８】例外ファイルテーブルの一例を示す説明図である。
【図９】ダイアログ情報格納部1126に格納されているダイアログ情報の一例を示す説明図である。
【図１０】ファイルオープン時に決定されるプロセスのセキュリティレベルの一例を示す説明図である。
【図１１】ファイル書き込み時に決定される保存ファイルのセキュリティレベルの一例を示す説明図である。
【図１２】ダイアログ生成部1128が表示する確認ダイアログボックスにおけるメッセージの一例を示す説明図である。
【図１３】第２の実施形態の情報漏洩防止システム1000によるファイルダウンロード処理の動作を示すフローチャートである。
【図１４】第２の実施形態の情報漏洩防止システム1000によるファイルコピー処理の動作を示すフローチャートである。
【図１５】第２の実施形態の情報漏洩防止システム1000によるファイル名変更処理の動作を示すフローチャートである。
【図１６】第２の実施形態の情報漏洩防止システム1000によるファイル移動処理の動作を示すフローチャートである。
【図１７】第２の実施形態の情報漏洩防止システム1000によるファイル削除処理の動作を示すフローチャートである。
【図１８】第２の実施形態の情報漏洩防止システム1000によるファイルオープン処理の動作を示すフローチャートである。
【図１９】第２の実施形態の情報漏洩防止システム1000によるファイルオープン処理の動作を示すフローチャートである。
【図２０】第２の実施形態の情報漏洩防止システム1000によるファイルオープン処理の動作を示すフローチャートである。
【図２１】第２の実施形態の情報漏洩防止システム1000によるファイル保存処理の動作を示すフローチャートである。
【図２２】第２の実施形態の情報漏洩防止システム1000によるファイル保存処理の動作を示すフローチャートである。
【図２３】第２の実施形態の情報漏洩防止システム1000によるファイル保存処理の動作を示すフローチャートである。
【図２４】第２の実施形態の情報漏洩防止システム1000による通信処理の動作を示すフローチャートである。
【図２５】第２の実施形態の情報漏洩防止システム1000によるプロセス終了処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
実施形態１．
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による情報漏洩防止装置の第１の実施形態の構成例を示すブロック図である。本発明による情報漏洩防止装置10は、プロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報とファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報とを記憶する記憶部11（例えば、記憶媒体1140）と、プロセスが出力するファイルへのアクセス要求を検出する検出部12（例えば、API監視部1127）と、記憶部11に記憶されているプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報および記憶部11に記憶されているファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する判定部13（例えば、API監視部1127）とを備える。
【００２３】
以下、情報漏洩防止装置10による判定処理を説明する。図２は、第１の実施形態の情報漏洩防止装置10による判定処理の動作を示すフローチャートである。
【００２４】
検出部12は、プロセスが出力するファイルへのアクセス要求を検出する（ステップS11）。
【００２５】
次いで、判定部13は、記憶部11に記憶されているプロセスの識別情報とプロセスのセキュリティレベルとを含むプロセス情報のうち検出されたアクセス要求を出力したプロセスに関するプロセス情報を抽出する（ステップS12）。
【００２６】
次いで、判定部13は、記憶部11に記憶されているファイルの識別情報とファイルのセキュリティレベルとを含むファイル情報のうち検出されたアクセス要求の対象のファイルに関するファイル情報を抽出する（ステップS13）。
【００２７】
次いで、判定部13は、抽出されたプロセス情報およびファイル情報に基づいて検出されたアクセス要求を容認するか否かを判定する（ステップS14）。判定した後、情報漏洩防止装置10は、判定処理を終了する。
【００２８】
そのような構成により、情報漏洩防止装置は、ユーザビリティを損なわずに機密情報の漏洩を防止できる。
【００２９】
また、情報漏洩防止装置10は、検出されたアクセス要求が容認されないと判定部13が判定した後にアクセス要求に関する追加情報が入力される入力手段を提示する提示部（例えば、ダイアログ生成部1128）を備え、判定部13は、入力された追加情報に基づいてアクセス要求を容認するか否かを再度判定してもよい。
【００３０】
そのような構成により、情報漏洩防止装置は、より柔軟に機密情報の漏洩に対応できる。
【００３１】
また、情報漏洩防止装置10は、プロセス情報およびファイル情報を更新する更新部（例えば、ドライバ監視部1124）を備えてもよい。
【００３２】
そのような構成により、情報漏洩防止装置は、新規の機密ファイルの情報や新規の機密プロセスの情報を登録できる。
【００３３】
また、ファイルへのアクセス要求は、ファイルのオープン要求であり、更新部は、判定部13が容認したファイルのオープン要求を出力したプロセスに関するプロセス情報を更新してもよい。
【００３４】
また、ファイルへのアクセス要求は、ファイルの保存要求であり、更新部は、判定部13が容認したファイルの保存要求の対象のファイルに関するファイル情報を更新してもよい。
【００３５】
そのような構成により、情報漏洩防止装置は、アクセス要求の変更された内容をプロセス情報やファイル情報に反映できる。
【００３６】
また、検出部12は、プロセスが出力する通信要求を検出し、判定部13は、記憶部11に記憶されているプロセス情報のうち検出された通信要求を出力したプロセスに関するプロセス情報に基づいて検出された通信要求を容認するか否かを判定してもよい。
【００３７】
そのような構成により、情報漏洩防止装置は、外部に機密情報が漏洩する可能性をより低減できる。
【００３８】
実施形態２．
［構成の説明］
次に、本発明の第２の実施形態を、図面を参照して説明する。
【００３９】
なお、以下の説明では、ファイルをセキュリティレベルが高い「機密ファイル」と、セキュリティレベルが低い「通常ファイル」に分ける。また、プロセスをセキュリティレベルが高い「機密プロセス」と、セキュリティレベルが低い「通常プロセス」に分ける。
【００４０】
機密ファイルを開いたプロセスは、機密プロセスとして認識される。機密プロセスは、例えば通信が制限される対象のプロセスである。
【００４１】
図３は、本発明による情報漏洩防止システムの第２の実施形態の構成例を示すブロック図である。図３は、情報漏洩防止システム1000の全体構成を示す。図３に示すように、情報漏洩防止システム1000は、端末1100と、管理サーバ1200とを含む。
【００４２】
また、図３に示すように、端末1100は、OS(Operating System)1110と、記憶媒体1140と、プロセス1150とを含む。記憶媒体1140は、例えば、ハードディスク駆動装置やSSD(Solid State Drive)である。
【００４３】
また、図３に示すように、記憶媒体1140は、機密ファイルテーブルと、プロセステーブルと、機密サーバテーブルと、例外プロセステーブルと、例外ファイルテーブルと、通常ファイルと、機密ファイルとを有する。
【００４４】
図４は、機密ファイルテーブルの一例を示す説明図である。図４に示すように、機密ファイルテーブルには、端末1100に格納されている機密ファイルごとに、ファイルパスと、機密サーバIDとが登録される。
【００４５】
ファイルパスは、機密ファイルのパスである。また、機密サーバIDは、ファイルパスが示す機密ファイルのダウンロード元の機密サーバを示す情報である。すなわち、機密ファイルテーブルは、ファイルのセキュリティレベルが「１」であるという情報を有している。
【００４６】
図５は、プロセステーブルの一例を示す説明図である。図５に示すように、プロセステーブルには、端末1100で稼働しているプロセスごとに、プロセスIDと、実行ファイル名と、使用ファイルパスと、セキュリティレベルとが記録される。
【００４７】
プロセスIDは、プロセスを識別する情報である。実行ファイル名は、プロセスIDが示すプロセスの生成元である実行ファイルの名称である。使用ファイルパスは、プロセスIDが示すプロセスで使用されるファイルのパスである。
【００４８】
セキュリティレベルが「０」のプロセスは、機密度の低いプロセスとして認識される。すなわち、セキュリティレベルが「０」のプロセスは通常プロセスである。また、セキュリティレベルが「１」のプロセスは、機密度の高いプロセスとして認識される。すなわち、セキュリティレベルが「１」のプロセスは機密プロセスである。
【００４９】
機密ファイルを一度でも開いたプロセスのセキュリティレベルは「１」に変更される。セキュリティレベルが変更された後、開かれている機密ファイルをプロセスが閉じても、プロセスのセキュリティレベルは「１」のままである。
【００５０】
本実施形態のプロセステーブルは、ファイルが開かれた時と、プロセスが閉じられた時に更新される。なお、プロセステーブルの構成は、図５に示す構成以外の構成でもよい。
【００５１】
図６は、機密サーバテーブルの一例を示す説明図である。図６に示すように、機密サーバテーブルには、機密サーバごとに、機密サーバの識別子と、機密サーバIDとが登録される。
【００５２】
機密サーバの識別子は、例えば、機密サーバのIP(Internet Protocol)アドレスである。また、機密サーバIDは、機密サーバを識別する情報である。なお、ユーザには、機密サーバテーブルを事前に登録することが求められる。
【００５３】
図７は、例外プロセステーブルの一例を示す説明図である。例外プロセステーブルには、開くファイルのセキュリティレベルに関わらずセキュリティレベルが固定されるプロセスの情報が登録される。図７に示すように、例外プロセステーブルには、プロセスの実行ファイル名と、固定されるセキュリティレベルとが登録される。
【００５４】
例外プロセステーブルにセキュリティレベルが「１」と登録されたプロセスは、常に機密プロセスとして認識される。また、例外プロセステーブルにセキュリティレベルが「０」と登録されたプロセスは、常に通常プロセスとして認識される。なお、ユーザには、例外プロセステーブルを事前に登録することが求められる。
【００５５】
図８は、例外ファイルテーブルの一例を示す説明図である。例外ファイルテーブルには、機密プロセスがファイルを保存する際にセキュリティレベルが固定されるファイルの情報が登録される。図８に示すように、例外ファイルテーブルには、ファイルのファイルパスと、固定されるセキュリティレベルとが登録される。
【００５６】
例外ファイルテーブルにセキュリティレベルが「１」と登録されたファイルは、機密ファイルとして保存される。また、例外ファイルテーブルにセキュリティレベルが「０」と登録されたファイルは、通常ファイルとして保存される。
【００５７】
なお、図８に示すように、例外ファイルテーブルでは、ワイルドカードが使用されてもよい。ワイルドカードが使用されると、例えば拡張子が特定の拡張子であるファイルのセキュリティレベルが固定化される。
【００５８】
例外ファイルテーブルでワイルドカードが使用される例として、一時ファイルが登録される場合がある。例えば、ドキュメント作成アプリケーションは、ファイルの編集中に一時ファイルを作成する。機密ファイルの一時ファイルが自動的に保存される場合、一時ファイルは機密ファイルとして扱われることが求められる。
【００５９】
一時ファイルの拡張子は、例えば「.bak」である。また、一時ファイルの拡張子は、共通であることが多い。例えば、例外ファイルテーブルにワイルドカードと拡張子とで表現された一時ファイルのセキュリティレベルが「１」と登録されると、機密ファイルの一時ファイルも機密ファイルとして扱われる。なお、ユーザには、例外ファイルテーブルを事前に登録することが求められる。
【００６０】
また、図３に示すように、OS1110は、エージェント1111と、ダイアログ表示部1112とを有する。
【００６１】
ダイアログ表示部1112は、開かれるファイルのパスが指定される場合、および別名保存されるファイルのパスが指定される場合に、コモンダイアログボックスを表示する機能を有する。ユーザは、表示されたコモンダイアログボックスに情報を入力する。ダイアログ表示部1112は、コモンダイアログボックスに入力された情報をプロセス1150に送信する。
【００６２】
以下、開かれるファイルのパスが指定される場合に表示されるダイアログボックスを［開く］ダイアログボックスと呼ぶ。また、別名保存されるファイルのパスが指定される場合に表示されるダイアログボックスを［名前を付けて保存］ダイアログボックスと呼ぶ。
【００６３】
なお、ダイアログ表示部1112は、全てのプロセスから呼び出される共通のインタフェースである。すなわち、本実施形態の全てのプロセスは、ファイルのオープンを行う際、および別名保存を行う際に、コモンダイアログボックスを表示する共通のインタフェースを呼び出す。
【００６４】
また、図３に示すように、エージェント1111は、ダウンロード監視部1121と、プロセス監視部1122と、テーブル制御部1123と、ドライバ監視部1124と、ダイアログ監視部1125と、ダイアログ情報格納部1126と、API監視部1127と、ダイアログ生成部1128と、通信監視部1129と、管理サーバ通信部1130と、通信制御部1131とを有する。
【００６５】
ダウンロード監視部1121は、機密ファイルのダウンロードを監視する機能を有する。ファイルのダウンロード要求をフックした際、ダウンロード監視部1121は、機密サーバテーブルを参照する。IPアドレス等のダウンロード元サーバの識別子が機密サーバテーブルに登録されていれば、ダウンロード監視部1121は、ダウンロードされたファイルの情報を機密ファイルテーブルに登録する。
【００６６】
プロセス監視部1122は、プロセスを監視する機能を有する。例えば、プロセス監視部1122は、プロセスの終了を検出する。次いで、プロセス監視部1122は、プロセステーブルから検出されたプロセスのエントリを削除する。
【００６７】
テーブル制御部1123は、記憶媒体1140に記憶されている、機密ファイルテーブル、プロセステーブル、機密サーバテーブル、例外プロセステーブル、および例外ファイルテーブルの参照および更新を行う。
【００６８】
ドライバ監視部1124は、ファイルのコピー要求、ファイルの名前変更要求、ファイルの移動要求、およびファイルの削除要求をフックし、機密ファイルテーブルおよびプロセステーブルを更新する。
【００６９】
具体的には、ドライバ監視部1124は、ファイルのコピー要求をフックした際、コピー元ファイルの情報が機密ファイルテーブルに登録されている場合にコピー先ファイルの情報を機密ファイルテーブルに登録する。
【００７０】
また、ドライバ監視部1124は、ファイルの名前変更要求をフックした際、変更前ファイルの情報が機密ファイルテーブルに登録されている場合に該当するエントリのファイル名を更新する。
【００７１】
また、ドライバ監視部1124は、ファイルの移動要求をフックした際、移動前ファイルの情報が機密ファイルテーブルに登録されている場合に移動後ファイルの情報を機密ファイルテーブルに登録する。
【００７２】
また、ドライバ監視部1124は、ファイルの削除要求をフックした際、削除対象ファイルの情報が機密ファイルテーブルに登録されている場合に該当するエントリを削除する。
【００７３】
ダイアログ監視部1125は、コモンダイアログボックスを監視する機能を有する。機密プロセスであるプロセス1150がダイアログ表示部1112を呼び出すと、ダイアログ表示部1112は、コモンダイアログボックスを表示する。ダイアログ監視部1125は、プロセス1150から呼び出されたコモンダイアログボックスに対してフック処理を行う。
【００７４】
フック処理を行うことによって、ダイアログ監視部1125は、コモンダイアログボックスにユーザが入力した情報を取得する。次いで、ダイアログ監視部1125は、取得された情報をダイアログ情報格納部1126に保存する。
【００７５】
例えば、ダイアログ監視部1125は、取得された通知メッセージが、ダイアログ表示部1112により送信された［開く］ダイアログボックスからのメッセージであるか、ダイアログ表示部1112により送信された［名前を付けて保存］ダイアログボックスからのメッセージであるかを判別できる。
【００７６】
ダイアログ情報格納部1126は、コモンダイアログボックスに入力された情報であるダイアログ情報をプロセスごとに保持する機能を有する。ダイアログ情報は、例えば、上述したようにダイアログ監視部1125によって格納される。
【００７７】
図９は、ダイアログ情報格納部1126に格納されているダイアログ情報の一例を示す説明図である。図９に示すように、ダイアログ情報は、プロセスIDと、ダイアログの種類と、ファイルパスとで構成される。
【００７８】
ダイアログの種類は、ダイアログ情報が入力されたコモンダイアログボックスの種類である。ダイアログ情報が入力されたコモンダイアログボックスが［開く］ダイアログボックスである場合、ダイアログの種類は「open」である。
【００７９】
また、ダイアログ情報が入力されたコモンダイアログボックスが［名前を付けて保存］ダイアログボックスである場合、ダイアログの種類は「save」である。なお、ダイアログの種類には、「open」、「save」以外の文字列が指定されてもよい。
【００８０】
例えば、図９に示す最初のダイアログ情報は、プロセスIDが「122」の機密プロセスが、機密ファイルを別名保存する際に［名前を付けて保存］ダイアログボックスに「C:/Users/Administrator/Documents/secret.txt」を保存ファイルのパスとして指定した場合に格納される情報である。
【００８１】
API監視部1127は、ファイルオープン用API(Application Programming Interface)の呼び出し、およびファイル書き込み用APIの呼び出しをフックする。フックした後、API監視部1127は、例外プロセステーブル、例外ファイルテーブル、およびダイアログ情報格納部1126に格納されたダイアログ情報に基づいて、機密ファイルテーブルおよびプロセステーブルの更新と、ダイアログ生成部1128の呼び出しを行う。
【００８２】
具体的には、ファイルのオープン要求またはファイルへの書き込み要求をフックした後、API監視部1127は、ダイアログ生成部1128を呼び出し、確認ダイアログボックスを表示させる。
【００８３】
確認ダイアログボックスに入力された応答内容が「NG」である場合、API監視部1127は、フックされた要求を否認する。確認ダイアログボックスに入力された応答内容が「OK」である場合、API監視部1127は、機密ファイルテーブルおよびプロセステーブルを更新した上で、フックされた要求を容認する。
【００８４】
図１０は、ファイルオープン時に決定されるプロセスのセキュリティレベルの一例を示す説明図である。図１０に示すように、例外プロセステーブルにおけるセキュリティレベルは、例外ファイルテーブルにおけるセキュリティレベルよりも優先される。
【００８５】
例えば、機密ファイルを開いたプロセスは、通常機密プロセスとして認識される。しかし、例外プロセステーブルにセキュリティレベル「０」で登録されているプロセスが、例外ファイルテーブルにセキュリティレベル「１」で登録されている機密ファイルを開いても、プロセスは通常プロセスとして認識される。
【００８６】
図１０に示すように、例外プロセステーブルにおけるセキュリティレベルが、そのままファイルオープン後のプロセスのセキュリティレベルに決定される。また、例外プロセステーブルにセキュリティレベルが登録されていない場合、例外ファイルテーブルにおけるセキュリティレベルが、そのままファイルオープン後のプロセスのセキュリティレベルに決定される。
【００８７】
また、図１０に示すように、例外プロセステーブルおよび例外ファイルテーブルのどちらにもセキュリティレベルが登録されていない場合、オープン対象のファイルのセキュリティレベルが、そのままファイルオープン後のプロセスのセキュリティレベルに決定される。
【００８８】
また、図１１は、ファイル書き込み時に決定される保存ファイルのセキュリティレベルの一例を示す説明図である。図１１に示すように、プロセスのセキュリティレベルが「０」であれば、保存されるファイルのセキュリティレベルは、別名保存なら「０」、上書き保存なら「変更なし」に決定される。
【００８９】
また、図１１に示すように、プロセスのセキュリティレベルが「１」であれば、保存されるファイルのセキュリティレベルは、自動保存なら例外ファイルテーブルにおけるセキュリティレベルに応じる。
【００９０】
すなわち、例外ファイルテーブルにおけるセキュリティレベルが「１」または登録されていなければ、保存されるファイルのセキュリティレベルは「１」に決定される。また、例外ファイルテーブルにおけるセキュリティレベルが「０」であれば、保存されるファイルのセキュリティレベルは、別名保存なら「０」、上書き保存なら「変更なし」に決定される。
【００９１】
また、図１１に示すように、プロセスのセキュリティレベルが「１」であれば、保存されるファイルのセキュリティレベルは、手動保存なら別名保存か上書き保存かで異なる。
【００９２】
すなわち、上書き保存で例外ファイルテーブルにおけるセキュリティレベルが「１」または登録されていなければ、保存されるファイルのセキュリティレベルは「１」に決定される。また、上書き保存で例外ファイルテーブルにおけるセキュリティレベルが「０」であれば、保存されるファイルのセキュリティレベルは「変更なし」に決定される。また、別名保存であれば、保存されるファイルのセキュリティレベルは「１」に決定される。
【００９３】
ダイアログ生成部1128は、確認ダイアログボックスを表示する機能を有する。図１２は、ダイアログ生成部1128が表示する確認ダイアログボックスにおけるメッセージの一例を示す説明図である。
【００９４】
API監視部1127に呼び出されると、ダイアログ生成部1128は、指定された種類の確認ダイアログボックスを表示する。次いで、ダイアログ生成部1128は、ユーザが確認ダイアログボックスに入力した情報を、API監視部1127に入力する。
【００９５】
通信監視部1129は、プロセスの通信要求をプロセス単位でフックする機能を有する。
【００９６】
管理サーバ通信部1130は、管理サーバ1200と通信する機能を有する。通信監視部1129に呼び出されると、管理サーバ通信部1130は、管理サーバ1200に対して通信制御テーブルの送信を依頼する。
【００９７】
管理サーバ通信部1130は、管理サーバ1200から送信された通信制御テーブルを取得する。次いで、管理サーバ通信部1130は、取得された通信制御テーブルを通信制御部1131に入力する。
【００９８】
通信制御部1131は、通信監視部1129でフックされた通信要求を制御する機能を有する。通信制御部1131は、管理サーバ通信部1130から入力された通信制御テーブルに基づいて、フックされた通信要求を制御する。
【００９９】
また、図３に示すように、管理サーバ1200は、OS1210と、通信制御テーブルとを含む。また、OS1210は、クライアント通信部1211と、テーブル制御部1212とを有する。
【０１００】
クライアント通信部1211は、端末1100と通信する機能を有する。端末1100から通信制御テーブルの送信依頼を受け取ると、クライアント通信部1211は、テーブル制御部1212を介して通信制御テーブルを取得する。次いで、クライアント通信部1211は、取得された通信制御テーブルを端末1100に送信する。
【０１０１】
テーブル制御部1212は、クライアント通信部1211の要求に応じて通信制御テーブルを取得する機能を有する。
【０１０２】
通信制御テーブルには、例えば、機密サーバIDと、機密サーバIDが示す機密サーバからダウンロードされた機密ファイルをオープンしている機密プロセスによる通信に対して適用されるフィルタリングルールとが記録される。フィルタリングルールには、例えば通信相手のIPアドレスやポート番号等、IPパケットフィルタリングで通常使用されるパラメータが指定される。
【０１０３】
なお、図３に示す情報漏洩防止システム1000では端末1100と管理サーバ1200が分離しているため、機密プロセスが通信する際に端末1100が管理サーバ1200に問い合わせる方法がとられている。しかし、情報漏洩防止システム1000の構成は、端末1100が通信制御テーブルも保持し、全ての処理が端末1100内で完結するような構成でもよい。
【０１０４】
［動作の説明］
以下、本実施形態の情報漏洩防止システム1000の動作を図１３〜図２５を参照して説明する。
【０１０５】
最初に、本実施形態の情報漏洩防止システム1000のファイルをダウンロードする動作を図１３を参照して説明する。図１３は、第２の実施形態の情報漏洩防止システム1000によるファイルダウンロード処理の動作を示すフローチャートである。
【０１０６】
最初に、プロセス1150が、ファイルのダウンロードを要求する（ステップS101）。ダウンロード監視部1121は、プロセス1150によるファイルのダウンロード処理をフックする（ステップS102）。
【０１０７】
ダウンロード監視部1121がダウンロード処理をフックすると、プロセス1150が実行したダウンロード処理は中断される。ダウンロード監視部1121は、新たにダウンロード処理を行い、ファイルをダウンロードする（ステップS103）。
【０１０８】
ファイルがダウンロードされた後、ダウンロード監視部1121は、ファイルのダウンロード元サーバの識別子が機密サーバテーブルに登録されているか否かを確認する（ステップS104）。
【０１０９】
識別子が登録されていない場合（ステップS104におけるNo）、ダウンロード監視部1121は、機密ファイルテーブルにダウンロードされたファイルの情報が存在するか否かを確認する（ステップS105）。ファイルの情報が存在しない場合（ステップS105におけるNo）、情報漏洩防止システム1000は、ファイルダウンロード処理を終了する。
【０１１０】
ファイルの情報が存在する場合（ステップS105におけるYes）、ダウンロード監視部1121は、テーブル制御部1123を介して該当するエントリを削除する（ステップS106）。削除した後、情報漏洩防止システム1000は、ファイルダウンロード処理を終了する。
【０１１１】
識別子が登録されている場合（ステップS104におけるYes）、ダウンロード監視部1121は、機密ファイルテーブルにダウンロードされたファイルの情報が登録済みであれば、テーブル制御部1123を介して該当するエントリを更新する。
【０１１２】
また、機密ファイルテーブルにダウンロードされたファイルの情報が登録されていなければ、ダウンロード監視部1121は、テーブル制御部1123を介してダウンロードされたファイルの情報を機密ファイルテーブルに新規に登録する（ステップS107）。更新または登録した後、情報漏洩防止システム1000は、ファイルダウンロード処理を終了する。
【０１１３】
次に、本実施形態の情報漏洩防止システム1000のファイルをコピーする動作を図１４を参照して説明する。図１４は、第２の実施形態の情報漏洩防止システム1000によるファイルコピー処理の動作を示すフローチャートである。
【０１１４】
最初に、プロセス1150が、ファイルのコピーを要求する（ステップS201）。ドライバ監視部1124は、プロセス1150によるファイルのコピー処理をフックする（ステップS202）。
【０１１５】
ドライバ監視部1124がコピー処理をフックすると、プロセス1150が実行したコピー処理は中断される。ドライバ監視部1124は、新たにコピー処理を行い、ファイルをコピーする（ステップS203）。
【０１１６】
ファイルがコピーされた後、ドライバ監視部1124は、機密ファイルテーブルにコピー先のファイルの情報が存在するか否かを確認する（ステップS204）。
【０１１７】
ファイルの情報が存在しない場合（ステップS204におけるNo）、ドライバ監視部1124は、テーブル制御部1123を介してコピー先のファイルの情報を機密ファイルテーブルに新規に登録する（ステップS205）。登録した後、情報漏洩防止システム1000は、ファイルコピー処理を終了する。
【０１１８】
ファイルの情報が存在する場合（ステップS204におけるYes）、ドライバ監視部1124は、テーブル制御部1123を介して該当するエントリを更新する（ステップS206）。更新した後、情報漏洩防止システム1000は、ファイルコピー処理を終了する。
【０１１９】
次に、本実施形態の情報漏洩防止システム1000のファイルの名前を変更する動作を図１５を参照して説明する。図１５は、第２の実施形態の情報漏洩防止システム1000によるファイル名変更処理の動作を示すフローチャートである。
【０１２０】
最初に、プロセス1150が、ファイルの名前変更を要求する（ステップS301）。ドライバ監視部1124は、プロセス1150によるファイルの名前変更処理をフックする（ステップS302）。
【０１２１】
ドライバ監視部1124が名前変更処理をフックすると、プロセス1150が実行した名前変更処理は中断される。ドライバ監視部1124は、新たに名前変更処理を行い、ファイルの名前を変更する（ステップS303）。
【０１２２】
ファイルの名前が変更された後、ドライバ監視部1124は、機密ファイルテーブルに名前変更後のファイルの情報が存在するか否かを確認する（ステップS304）。
【０１２３】
ファイルの情報が存在しない場合（ステップS304におけるNo）、ドライバ監視部1124は、テーブル制御部1123を介して名前変更後のファイルの情報を機密ファイルテーブルに新規に登録する（ステップS305）。登録した後、ドライバ監視部1124は、ステップS307の処理を行う。
【０１２４】
ファイルの情報が存在する場合（ステップS304におけるYes）、ドライバ監視部1124は、テーブル制御部1123を介して該当するエントリを更新する（ステップS306）。更新した後、ドライバ監視部1124は、ステップS307の処理を行う。
【０１２５】
ステップS307で、ドライバ監視部1124は、テーブル制御部1123を介して機密ファイルテーブルに登録されている名前変更前のファイルのエントリを削除する。削除した後、情報漏洩防止システム1000は、ファイル名変更処理を終了する。
【０１２６】
次に、本実施形態の情報漏洩防止システム1000のファイルを移動する動作を図１６を参照して説明する。図１６は、第２の実施形態の情報漏洩防止システム1000によるファイル移動処理の動作を示すフローチャートである。
【０１２７】
最初に、プロセス1150が、ファイルの移動を要求する（ステップS401）。ドライバ監視部1124は、プロセス1150によるファイルの移動処理をフックする（ステップS402）。
【０１２８】
ドライバ監視部1124がファイル移動処理をフックすると、プロセス1150が実行したファイル移動処理は中断される。ドライバ監視部1124は、新たにファイル移動処理を行い、ファイルを移動する（ステップS403）。
【０１２９】
ファイルが移動された後、ドライバ監視部1124は、機密ファイルテーブルに移動後のファイルの情報が存在するか否かを確認する（ステップS404）。
【０１３０】
ファイルの情報が存在しない場合（ステップS404におけるNo）、ドライバ監視部1124は、テーブル制御部1123を介して移動後のファイルの情報を機密ファイルテーブルに新規に登録する（ステップS405）。登録した後、ドライバ監視部1124は、ステップS407の処理を行う。
【０１３１】
ファイルの情報が存在する場合（ステップS404におけるYes）、ドライバ監視部1124は、テーブル制御部1123を介して該当するエントリを更新する（ステップS406）。更新した後、ドライバ監視部1124は、ステップS407の処理を行う。
【０１３２】
ステップS407で、ドライバ監視部1124は、テーブル制御部1123を介して機密ファイルテーブルに登録されている移動前のファイルのエントリを削除する。削除した後、情報漏洩防止システム1000は、ファイル移動処理を終了する。
【０１３３】
次に、本実施形態の情報漏洩防止システム1000のファイルを削除する動作を図１７を参照して説明する。図１７は、第２の実施形態の情報漏洩防止システム1000によるファイル削除処理の動作を示すフローチャートである。
【０１３４】
最初に、プロセス1150が、ファイルの削除を要求する（ステップS501）。ドライバ監視部1124は、プロセス1150によるファイルの削除処理をフックする（ステップS502）。
【０１３５】
ドライバ監視部1124がファイル削除処理をフックすると、プロセス1150が実行したファイル削除処理は中断される。ドライバ監視部1124は、新たにファイル削除処理を行い、ファイルを削除する（ステップS503）。
【０１３６】
ファイルが削除された後、ドライバ監視部1124は、機密ファイルテーブルに削除対象ファイルの情報が存在するか否かを確認する（ステップS504）。ファイルの情報が存在しない場合（ステップS504におけるNo）、情報漏洩防止システム1000は、ファイル削除処理を終了する。
【０１３７】
ファイルの情報が存在する場合（ステップS504におけるYes）、ドライバ監視部1124は、テーブル制御部1123を介して該当するエントリを削除する（ステップS505）。削除した後、情報漏洩防止システム1000は、ファイル削除処理を終了する。
【０１３８】
次に、ユーザがファイルを開いた際に行われる本実施形態の情報漏洩防止システム1000の動作を図１８〜図２０を参照して説明する。図１８〜図２０は、第２の実施形態の情報漏洩防止システム1000によるファイルオープン処理の動作を示すフローチャートである。
【０１３９】
ユーザがファイルを開いた際、プロセス1150は、ダイアログ表示部1112に対して［開く］ダイアログボックスの表示を要求する（ステップS601）。要求を受け取ると、ダイアログ表示部1112は、［開く］ダイアログボックスを表示する（ステップS602）。
【０１４０】
ユーザが表示された［開く］ダイアログボックスへの入力を完了すると、ダイアログ表示部1112は、プロセス1150に対して［開く］ダイアログボックスからの通知メッセージを送信する。ダイアログ監視部1125は、通知メッセージの送信処理をフックする（ステップS603）。次いで、ダイアログ監視部1125は、フックされた通知メッセージからユーザが入力した情報を取得する（ステップS604）。
【０１４１】
次いで、ダイアログ監視部1125は、ステップS604で取得された情報を基に、［開く］ダイアログボックスでユーザがファイルオープンに対する「OK」を入力したか否かを確認する（ステップS605）。
【０１４２】
「OK」が入力されなかった場合（ステップS605におけるNo）、ダイアログ監視部1125は、プロセス1150に対して［開く］ダイアログボックスからの通知メッセージを送信する（ステップS608）。送信した後、情報漏洩防止システム1000は、ファイルオープン処理を終了する。
【０１４３】
「OK」が入力された場合（ステップS605におけるYes）、ダイアログ監視部1125は、ステップS604で取得された情報をダイアログ情報格納部1126に格納する（ステップS606）。次いで、ダイアログ監視部1125は、プロセス1150に対して［開く］ダイアログボックスからの通知メッセージを送信する（ステップS607）。
【０１４４】
次いで、API監視部1127は、プロセス1150によるファイルオープン用APIの呼び出し処理をフックする（ステップS609）。API監視部1127は、フックされた情報が示すプロセス1150のプロセスIDおよびオープン対象ファイルのパスが、ダイアログ情報格納部1126に格納されているエントリのプロセスIDおよびファイルパスと一致するか否かを確認する（ステップS610）。
【０１４５】
ステップS610で、API監視部1127は、ファイルオープンがユーザ操作による手動のファイルオープンであるか、プロセスによる自動のファイルオープンであるかを判別している。
【０１４６】
一致するエントリが格納されていなければ（ステップS610におけるNo）、ファイルオープンは、ユーザ操作による手動のファイルオープンである。すなわち、対象のファイルがユーザ操作によりオープンされる（ステップS611）。ファイルがオープンされた後、情報漏洩防止システム1000は、ファイルオープン処理を終了する。
【０１４７】
一致するエントリが格納されていれば（ステップS610におけるYes）、ファイルオープンは、プロセスによる自動のファイルオープンである。次いで、API監視部1127は、プロセス1150の情報がプロセステーブルに登録済みであるか否かを確認する（ステップS612）。プロセス1150の情報が登録されていなければ（ステップS612におけるNo）、API監視部1127は、ステップS614の処理を行う。
【０１４８】
プロセス1150の情報が登録済みであれば（ステップS612におけるYes）、API監視部1127は、プロセステーブルに登録されているプロセス1150のセキュリティレベルが「１」であるか否かを確認する（ステップS613）。ステップS613で、API監視部1127は、ファイルオープンを行うプロセスが機密プロセスであるか通常プロセスであるかを判別している。
【０１４９】
登録されているセキュリティレベルが「１」であれば、すなわちプロセス1150が機密プロセスであれば（ステップS613におけるYes）、API監視部1127は、ステップS619の処理を行う。
【０１５０】
登録されているセキュリティレベルが「０」であれば、すなわちプロセス1150が通常プロセスであれば（ステップS613におけるNo）、API監視部1127は、ステップS616の処理を行う。
【０１５１】
ステップS614で、API監視部1127は、プロセス1150の情報が例外プロセステーブルに登録されているか否かを確認する。プロセス1150の情報が登録されていなければ（ステップS614におけるNo）、API監視部1127は、ステップS616の処理を行う。
【０１５２】
プロセス1150の情報が登録されていれば（ステップS614におけるYes）、API監視部1127は、例外プロセステーブルに登録されているプロセス1150のセキュリティレベルが「１」であるか否かを確認する（ステップS615）。
【０１５３】
登録されているセキュリティレベルが「１」であれば（ステップS615におけるYes）、API監視部1127は、ステップS619の処理を行う。登録されているセキュリティレベルが「０」であれば（ステップS615におけるNo）、API監視部1127は、ステップS622の処理を行う。
【０１５４】
ステップS616で、API監視部1127は、オープン対象ファイルの情報が例外ファイルテーブルに登録されているか否かを確認する。オープン対象ファイルの情報が登録されていれば（ステップS616におけるYes）、API監視部1127は、例外ファイルテーブルに登録されているオープン対象ファイルのセキュリティレベルが「１」であるか否かを確認する（ステップS617）。
【０１５５】
登録されているセキュリティレベルが「１」であれば（ステップS617におけるYes）、API監視部1127は、ステップS619の処理を行う。登録されているセキュリティレベルが「０」であれば（ステップS617におけるNo）、API監視部1127は、ステップS622の処理を行う。
【０１５６】
オープン対象ファイルの情報が例外ファイルテーブルに登録されていなければ（ステップS616におけるNo）、API監視部1127は、オープン対象ファイルの情報が機密ファイルテーブルに登録されているか否かを確認する（ステップS618）。
【０１５７】
オープン対象ファイルの情報が登録されていれば（ステップS618におけるYes）、API監視部1127は、ステップS619の処理を行う。オープン対象ファイルの情報が登録されていなければ（ステップS618におけるNo）、API監視部1127は、ステップS622の処理を行う。
【０１５８】
ステップS619で、API監視部1127は、ダイアログ生成部1128を呼び出す。API監視部1127は、ダイアログ生成部1128にダイアログの種類が「open」の確認ダイアログボックスを表示させる。
【０１５９】
表示された確認ダイアログボックスへのユーザの入力が完了すると、API監視部1127は、確認ダイアログボックスからの通知メッセージを受信する（ステップS620）。次いで、API監視部1127は、受信された通知メッセージから取得されたユーザの入力結果が「OK」であるか否かを確認する（ステップS621）。
【０１６０】
ユーザの入力結果が「OK」であれば（ステップS621におけるYes）、API監視部1127は、ステップS622の処理を行う。ユーザの入力結果が「OK」でなければ（ステップS621におけるNo）、API監視部1127は、ステップS624の処理を行う。
【０１６１】
ステップS622で、プロセス1150は、オープン対象ファイルをオープンする。次いで、API監視部1127は、テーブル制御部1123を介してプロセステーブルに登録されているプロセス1150の［使用ファイルパス］にオープン対象ファイルのパスを追加する。また、API監視部1127は、図１０に示す条件に従って、［セキュリティレベル］の値を「１」に更新する（ステップS623）。
【０１６２】
ステップS624で、ダイアログ監視部1125は、ダイアログ情報格納部1126に格納されている、今回のファイルオープン処理に関するプロセス1150のプロセスIDおよびオープン対象ファイルのパスを含むエントリを削除する。削除した後、情報漏洩防止システム1000は、ファイルオープン処理を終了する。
【０１６３】
次に、ユーザがファイルを別名保存する際または上書き保存する際に行われる本実施形態の情報漏洩防止システム1000の動作を図２１〜図２３を参照して説明する。図２１〜図２３は、第２の実施形態の情報漏洩防止システム1000によるファイル保存処理の動作を示すフローチャートである。
【０１６４】
以下、ユーザがファイルを別名保存する場合の動作の例を説明する。ユーザがファイルを別名保存した際、プロセス1150は、ダイアログ表示部1112に対して［名前を付けて保存］ダイアログボックスの表示を要求する（ステップS701）。要求を受け取ると、ダイアログ表示部1112は、［名前を付けて保存］ダイアログボックスを表示する（ステップS702）。
【０１６５】
ユーザが表示された［名前を付けて保存］ダイアログボックスへの入力を完了すると、ダイアログ表示部1112は、プロセス1150に対して［名前を付けて保存］ダイアログボックスからの通知メッセージを送信する。ダイアログ監視部1125は、通知メッセージの送信処理をフックする（ステップS703）。
【０１６６】
次いで、ダイアログ監視部1125は、プロセステーブルに登録されているプロセス1150のセキュリティレベルが「１」であるか否かを確認する（ステップS704）。ステップS704で、ダイアログ監視部1125は、ファイルの別名保存を行うプロセスが機密プロセスであるか、通常プロセスであるかを判別している。
【０１６７】
プロセステーブルに登録されているセキュリティレベルが「０」であれば（ステップS704におけるNo）、ファイルの別名保存を行うプロセスは通常プロセスである。次いで、ダイアログ監視部1125は、ステップS709の処理を行う。
【０１６８】
プロセステーブルに登録されているセキュリティレベルが「１」であれば（ステップS704におけるYes）、ファイルの別名保存を行うプロセスは機密プロセスである。次いで、ダイアログ監視部1125は、フックされた通知メッセージからユーザが入力した情報を取得する（ステップS705）。
【０１６９】
次いで、ダイアログ監視部1125は、ステップS705で取得された情報を基に、［名前を付けて保存］ダイアログボックスでユーザがファイルの別名保存に対する「OK」を入力したか否かを確認する（ステップS706）。
【０１７０】
ファイルの別名保存を行うプロセスが通常プロセスである場合（ステップS704におけるNo）、または「OK」が入力されなかった場合（ステップS706におけるNo）、ダイアログ監視部1125は、プロセス1150に対して［名前を付けて保存］ダイアログボックスからの通知メッセージを送信する（ステップS709）。送信した後、情報漏洩防止システム1000は、ファイル保存処理を終了する。
【０１７１】
「OK」が入力された場合（ステップS706におけるYes）、ダイアログ監視部1125は、ステップS705で取得された情報をダイアログ情報格納部1126に格納する（ステップS707）。次いで、ダイアログ監視部1125は、プロセス1150に対して［名前を付けて保存］ダイアログボックスからの通知メッセージを送信する（ステップS708）。
【０１７２】
次いで、API監視部1127は、プロセス1150によるファイル書き込み用APIの呼び出し処理をフックする（ステップS710）。API監視部1127は、プロセステーブルに登録されているプロセス1150のセキュリティレベルが「１」であるか否かを確認する（ステップS711）。ステップS711で、API監視部1127は、ファイルの別名保存を行うプロセスが機密プロセスであるか、通常プロセスであるかを判別している。
【０１７３】
プロセステーブルに登録されているセキュリティレベルが「０」であれば（ステップS711におけるNo）、ファイルの別名保存を行うプロセスは通常プロセスである。次いで、API監視部1127は、ステップS719の処理を行う。
【０１７４】
プロセステーブルに登録されているセキュリティレベルが「１」であれば（ステップS711におけるYes）、ファイルの別名保存を行うプロセスは機密プロセスである。次いで、API監視部1127は、フックされた情報が示すプロセス1150のプロセスIDおよび書き込み対象ファイルのパスが、プロセステーブルに登録されているエントリのプロセスIDおよびファイルパスと一致するか否かを確認する（ステップS712）。
【０１７５】
ステップS712で、API監視部1127は、保存後のファイルがユーザ操作により開かれているか否かを判別している。一致するエントリが登録されていれば（ステップS712におけるYes）、保存後のファイルがユーザ操作により開かれている。次いで、API監視部1127は、ステップS716の処理を行う。
【０１７６】
一致するエントリが登録されていなければ（ステップS712におけるNo）、保存後のファイルがユーザ操作により開かれていない。次いで、API監視部1127は、フックされた情報が示すプロセス1150のプロセスIDおよび書き込み対象ファイルのパスが、ダイアログ情報格納部1126に格納されているエントリのプロセスIDおよびファイルパスと一致するか否かを確認する（ステップS713）。
【０１７７】
ステップS713で、API監視部1127は、ファイルの別名保存がユーザ操作による手動の別名保存であるか、プロセスによる自動の別名保存であるかを判別している。
【０１７８】
一致するエントリが格納されていれば（ステップS713におけるYes）、ファイルの別名保存は、プロセスによる自動の別名保存である。次いで、API監視部1127は、ステップS716の処理を行う。
【０１７９】
一致するエントリが格納されていなければ（ステップS713におけるNo）、ファイルの別名保存は、ユーザ操作による手動の別名保存である。次いで、API監視部1127は、書き込み対象ファイルの情報が例外ファイルテーブルに登録されているか否かを確認する（ステップS714）。書き込み対象ファイルの情報が登録されていなければ（ステップS714におけるNo）、API監視部1127は、ステップS719の処理を行う。
【０１８０】
書き込み対象ファイルの情報が登録されていれば（ステップS714におけるYes）、API監視部1127は、例外ファイルテーブルに登録されている書き込み対象ファイルのセキュリティレベルが「０」であるか否かを確認する（ステップS715）。
【０１８１】
登録されているセキュリティレベルが「０」であれば（ステップS715におけるYes）、API監視部1127は、ステップS719の処理を行う。登録されているセキュリティレベルが「１」であれば（ステップS715におけるNo）、API監視部1127は、ステップS716の処理を行う。
【０１８２】
ステップS716で、API監視部1127は、ダイアログ生成部1128を呼び出す。API監視部1127は、ダイアログ生成部1128にダイアログの種類が「save」の確認ダイアログボックスを表示させる。
【０１８３】
表示された確認ダイアログボックスへのユーザの入力が完了すると、API監視部1127は、確認ダイアログボックスからの通知メッセージを受信する（ステップS717）。次いで、API監視部1127は、受信された通知メッセージから取得されたユーザの入力結果が「OK」であるか否かを確認する（ステップS718）。
【０１８４】
ユーザの入力結果が「OK」であれば（ステップS718におけるYes）、API監視部1127は、ステップS719の処理を行う。ユーザの入力結果が「OK」でなければ（ステップS718におけるNo）、API監視部1127は、ステップS721の処理を行う。
【０１８５】
ステップS719で、プロセス1150は、書き込み対象ファイルに書き込む。次いで、API監視部1127は、図１１に示す条件に従って、テーブル制御部1123を介して機密ファイルテーブルを更新する（ステップS720）。なお、API監視部1127は、セキュリティレベルが「０」のファイルを機密ファイルテーブルに登録しない。
【０１８６】
ステップS721で、ダイアログ監視部1125は、ダイアログ情報格納部1126に格納されている、今回のファイル保存処理に関するプロセス1150のプロセスIDおよび書き込み対象ファイルのパスを含むエントリを削除する。削除した後、情報漏洩防止システム1000は、ファイル保存処理を終了する。
【０１８７】
次に、プロセス1150が端末外部と通信する際に行われる本実施形態の情報漏洩防止システム1000の動作を図２４を参照して説明する。図２４は、第２の実施形態の情報漏洩防止システム1000による通信処理の動作を示すフローチャートである。
【０１８８】
最初に、プロセス1150が、端末外部と通信する（ステップS801）。通信監視部1129は、プロセス1150による通信処理をフックする（ステップS802）。
【０１８９】
次いで、通信監視部1129は、プロセス1150がプロセステーブルにセキュリティレベル「１」で登録されているか否かを確認する（ステップS803）。セキュリティレベル「１」で登録されていなければ（ステップS803におけるNo）、通信監視部1129は、フックされた通信処理の実行を許可する（ステップS804）。許可した後、情報漏洩防止システム1000は、通信処理を終了する。
【０１９０】
セキュリティレベル「１」で登録されていれば（ステップS803におけるYes）、通信監視部1129は、管理サーバ通信部1130にフックされた通信処理に関する情報を入力する（ステップS805）。
【０１９１】
次いで、管理サーバ通信部1130は、クライアント通信部1211に対して、通信制御テーブルの送信を依頼する（ステップS806）。依頼を受けたクライアント通信部1211は、テーブル制御部1212を介して通信制御テーブルを取得する（ステップS807）。
【０１９２】
次いで、クライアント通信部1211は、ステップS807で取得された通信制御テーブルを端末1100に送信する（ステップS808）。管理サーバ通信部1130は、送信された通信制御テーブルを受信する。次いで、管理サーバ通信部1130は、受信された通信制御テーブルを通信制御部1131に入力する（ステップS809）。
【０１９３】
次いで、通信制御部1131は、入力された通信制御テーブルを基にフックされた通信処理を制御する（ステップS810）。制御した後、情報漏洩防止システム1000は、通信処理を終了する。
【０１９４】
次に、プロセスが終了する際に行われる本実施形態の情報漏洩防止システム1000の動作を図２５を参照して説明する。図２５は、第２の実施形態の情報漏洩防止システム1000によるプロセス終了処理の動作を示すフローチャートである。
【０１９５】
プロセス1150が終了する（ステップS901）と、プロセス監視部1122は、プロセス1150の終了を検出する（ステップS902）。
【０１９６】
次いで、プロセス監視部1122は、テーブル制御部1123を介してプロセステーブルに登録されている終了したプロセス1150のエントリを削除する（ステップS903）。削除した後、情報漏洩防止システム1000は、プロセス終了処理を終了する。
【０１９７】
［効果の説明］
本実施形態の情報漏洩防止システムの記憶媒体は、機密ファイルを格納する機密サーバの一覧が記録される機密サーバテーブルと、端末に保存されている機密ファイルの一覧が記録される機密ファイルテーブルと、端末内でファイルをオープンしているプロセスの一覧が記録されるプロセステーブルとを有する。
【０１９８】
また、本実施形態の情報漏洩防止システムは、ファイルのダウンロードを検知し、機密サーバテーブルに基づいて機密ファイルテーブルを更新するダウンロード監視部と、ファイルのコピー、名前変更、移動、および削除の各要求をフックし、機密ファイルテーブルおよびプロセステーブルを更新するドライバ監視部とを含む。
【０１９９】
上記のような構成により、機密ファイルを保持する機密サーバからの機密ファイルのダウンロードを契機として端末に保存されている機密ファイルがコピー、名前変更、移動、または削除されても、どのファイルが機密ファイルであるかが判別される。
【０２００】
また、本実施形態の情報漏洩防止システムの記憶媒体は、プロセスのセキュリティレベルの固定化に使用される例外プロセステーブルと、ファイルのセキュリティレベルの固定化に使用される例外ファイルテーブルとを有する。
【０２０１】
また、本実施形態の情報漏洩防止システムは、ファイルのオープン用APIの呼び出しおよびファイルへの書き込み用APIの呼び出しをフックし、例外プロセステーブルおよび例外ファイルテーブルに基づいて、機密ファイルテーブルおよびプロセステーブルを更新するAPI監視部を含む。
【０２０２】
また、本実施形態の情報漏洩防止システムは、プロセスの停止を検知しプロセステーブルを更新するプロセス監視部と、プロセスから呼び出されたコモンダイアログボックスでフック処理を行うことによってユーザの入力情報を取得し、取得された入力情報をダイアログ情報格納部に格納するダイアログ監視部とを含む。
【０２０３】
また、本実施形態の情報漏洩防止システムは、ユーザの入力情報が格納されるダイアログ情報格納部と、機密ファイルテーブルおよびプロセステーブルに基づいてコモンダイアログボックスを生成するダイアログ生成部とを含む。
【０２０４】
上記のような構成により、ファイルのオープンおよび別名保存がユーザ操作により行われたかプロセスにより行われたかが判別され、判別された結果に応じて適切なセキュリティレベルでファイルが保存される。
【０２０５】
また、本実施形態の情報漏洩防止システムは、プロセスの通信要求をフックする通信監視部と、管理サーバから通信制御テーブルを取得する管理サーバ通信部と、通信制御テーブルに基づいてプロセス単位でプロセスによる通信を制御する通信制御部とを含む。また、管理サーバは、クライアントからの通信制御テーブルの取得要求に基づいて、通信制御テーブルをクライアントに送信するクライアント通信部を含む。
【０２０６】
上記のような構成により、通信制御部は、機密プロセスが端末の外部装置と通信しようとした際に、予め登録された通信制御テーブルに基づいて、機密プロセスによる通信を制御できる。なお、各テーブルの更新は、テーブル制御部を介して行われる。
【０２０７】
本実施形態の情報漏洩防止システムは、ファイルオープンの操作およびファイルの別名保存の操作が、手動で行われたか自動で行われたかを判別することによって、ファイル保存時にセキュリティレベルを効果的に決定できる。
【０２０８】
具体的には、プロセスがファイルオープンを行う際または別名保存を行う際、API監視部がOSのコモンダイアログボックスからプロセスへ送信される通知メッセージを取得する。取得された通知メッセージに含まれる情報を基に、API監視部は、ユーザ操作によりアクセスされたファイルであるか、アプリケーションによりアクセスされたファイルであるかを判別する。
【０２０９】
特許文献１に記載されている情報漏洩防止プログラムでは機密プロセスにより保存されるファイルが全て機密ファイルとされるため、ログファイル等のプロセスにより保存されるファイルまで機密ファイルとして保存されてしまうという問題がある。
【０２１０】
ログファイルのようにプロセスが起動する度に開かれるファイルが機密ファイルとして認識されると、起動するプロセスが常に機密プロセスとして認識される。また、機密プロセスとして認識されたプロセスが通常ファイルを保存する場合も、通常ファイルが機密ファイルとして保存されてしまう。
【０２１１】
本実施形態の情報漏洩防止システムは、プロセスがファイルを保存する際に、保存対象ファイルのセキュリティレベルを判別することによって、上記の課題を解決し、ユーザビリティを損なうことなく機密情報の漏洩を防止できる。すなわち、本実施形態の情報漏洩防止システムを使用すると、ユーザは、特別な操作をせずに、かつユーザビリティを損なうことなく機密情報の漏洩を効果的に防止できる。
【０２１２】
なお、各実施形態の情報漏洩防止装置10、端末1100、および管理サーバ1200は、例えば、非一時的な記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち、検出部12、判定部13、ダイアログ表示部1112、ダウンロード監視部1121、プロセス監視部1122、テーブル制御部1123、ドライバ監視部1124、ダイアログ監視部1125、ダイアログ情報格納部1126、API監視部1127、ダイアログ生成部1128、通信監視部1129、管理サーバ通信部1130、通信制御部1131、プロセス1150、クライアント通信部1211、およびテーブル制御部1212は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
【０２１３】
また、記憶部11、および記憶媒体1140は、例えばRAM(Random Access Memory)で実現される。
【０２１４】
また、各実施形態の情報漏洩防止装置10、端末1100、および管理サーバ1200における各部は、ハードウェア回路によって実現されてもよい。一例として、記憶部11、検出部12、判定部13、ダイアログ表示部1112、ダウンロード監視部1121、プロセス監視部1122、テーブル制御部1123、ドライバ監視部1124、ダイアログ監視部1125、ダイアログ情報格納部1126、API監視部1127、ダイアログ生成部1128、通信監視部1129、管理サーバ通信部1130、通信制御部1131、記憶媒体1140、プロセス1150、クライアント通信部1211、およびテーブル制御部1212が、それぞれLSI(Large Scale Integration)で実現される。また、それらが１つのLSIで実現されていてもよい。
【符号の説明】
【０２１５】
10  情報漏洩防止装置
11  記憶部
12  検出部
13  判定部
1000  情報漏洩防止システム
1100  端末
1110、1210  Operating System(OS)
1111  エージェント
1112  ダイアログ表示部
1121  ダウンロード監視部
1122  プロセス監視部
1123  テーブル制御部
1124  ドライバ監視部
1125  ダイアログ監視部
1126  ダイアログ情報格納部
1127  API監視部
1128  ダイアログ生成部
1129  通信監視部
1130  管理サーバ通信部
1131  通信制御部
1140  記憶媒体
1150  プロセス
1200  管理サーバ
1211  クライアント通信部
1212  テーブル制御部
【図１】
2018147203.tif 000003
【図２】
2018147203.tif 000004
【図３】
2018147203.tif 000005
【図４】
2018147203.tif 000006
【図５】
2018147203.tif 000007
【図６】
2018147203.tif 000008
【図７】
2018147203.tif 000009
【図８】
2018147203.tif 000010
【図９】
2018147203.tif 000011
【図１０】
2018147203.tif 000012
【図１１】
2018147203.tif 000013
【図１２】
2018147203.tif 000014
【図１３】
2018147203.tif 000015
【図１４】
2018147203.tif 000016
【図１５】
2018147203.tif 000017
【図１６】
2018147203.tif 000018
【図１７】
2018147203.tif 000019
【図１８】
2018147203.tif 000020
【図１９】
2018147203.tif 000021
【図２０】
2018147203.tif 000022
【図２１】
2018147203.tif 000023
【図２２】
2018147203.tif 000024
【図２３】
2018147203.tif 000025
【図２４】
2018147203.tif 000026
【図２５】
2018147203.tif 000027