JP4654963B2 - 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体 - Google Patents

情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4654963B2
JP4654963B2 JP2006108508A JP2006108508A JP4654963B2 JP 4654963 B2 JP4654963 B2 JP 4654963B2 JP 2006108508 A JP2006108508 A JP 2006108508A JP 2006108508 A JP2006108508 A JP 2006108508A JP 4654963 B2 JP4654963 B2 JP 4654963B2
Authority
JP
Japan
Prior art keywords
file
security level
leakage prevention
information leakage
access
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.)
Active
Application number
JP2006108508A
Other languages
English (en)
Other versions
JP2007280255A (ja
Inventor
一男 矢野尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006108508A priority Critical patent/JP4654963B2/ja
Publication of JP2007280255A publication Critical patent/JP2007280255A/ja
Application granted granted Critical
Publication of JP4654963B2 publication Critical patent/JP4654963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体に関し、特に対象とするアプリケーションを限定せずに、機密情報のみの漏洩を防止するシステム、方法、プログラム、記録媒体に関する。
近年、企業内ネットワークなどの情報システムで管理されている機密情報が、インターネット上に流出したり、印刷されて持ち出されたり、フロッピーディスクやUSBメモリのような外部メディアにコピーされて持ち出されたりする情報漏洩事件・事故が問題となっている。このような問題は、特に管理が不十分なクライアントPCで生じることが多く、いくつかの対処技術が提案されている。
まず、ユーザの権限に応じて、外部メディアやネットワーク機能に制限を加えるという技術が実用化されている(従来技術1)。この機能は、例えば、Microsoft社のWindows 2000以降のOSであれば、Active Directoryのグループポリシーによって実現することが可能である。しかし、このような制限を一律に加えてしまうと、常に外部メディアの利用や、ネットワーク機能の利用に制限が加わるため、利便性に問題がある。
従来技術1の問題を解決する手段として、特許文献1(特開2002−288030号公報)に開示される技術のように、機密情報のみを保存するディレクトリを用意し、そのディレクトリ内のファイルを読み込んだアプリケーションはそれ以外のディレクトリにファイルを保存できなくし、外部メディアやプリンタへのアクセスも制限するという技術が公開されている。これを従来技術2と呼ぶ。
図23は、従来技術2の動作を表す図である。機密情報を保存するディレクトリ(機密領域と呼ぶ)1003内の機密ファイル1004を読み込んだアプリケーションプロセスA1001は、機密情報を保存するディレクトリ(機密領域と呼ぶ)1003に機密ファイル1004を保存することができるが、機密で無い領域1005には機密ファイル1004およびファイル1006を保存することができない。一方、機密ファイル1004を読み込んでいないアプリケーションプロセスB1002は、機密領域以外の領域1005へのファイル1006の保存が可能である。
従来技術2により、過失または故意によって、機密ファイルをUSBメモリなどの外部メディアに書き出すことはできなくなる。なぜならば、USBメモリなどの外部メディアは機密で無い領域1005であるため、機密ファイルを読み込んだプロセスがファイルを書き出すことができないためである。その一方、機密ファイルを読んでいないプロセス1002に関しては制限されないので、従来技術1にあった問題を解消できる。
しかし、従来技術2では、利用できるアプリケーションに制限が生じたり、特定のディレクトリを介した情報漏洩が生じたりするという問題がある。
例えば、多くのアプリケーションは、実行中にテンポラリファイル(一時ファイル)をディスク上に書き出して処理を行う。仮に、図23のアプリケーションプロセスA1001も、アプリケーションプロセスB1002も共に、c:\windows\tempに一時ファイルを出力する機能を持っていたとする。
ここで、c:\windows\tempを機密領域1003として指定すると、アプリケーションプロセスA1001は一時ファイルを書き出すことができるが、アプリケーションプロセスB1002は一時ファイルを書き出すことができず、処理を中断するなどの誤動作を起こす。一方、c:\windows\tempを機密でない領域1005として指定すると、アプリケーションプロセスB1002は一時ファイルを書き出すことができるが、アプリケーションプロセスA1001は一時ファイルを書き出すことができず、やはり処理を中断するなどの誤動作を起こす。
上記の問題への対処方法は特許文献1には明記されていないが、c:\windows\tempは例外的に常にファイルを書き出せるようにすると、機密領域中の機密ファイルを、アプリケーションプロセスA1001で読んでc:\windows\tempに保存し、その後、アプリケーションプロセスB1002でc:\windows\tempに保存されている機密ファイルを読んで印刷することができてしまい、情報漏洩が生じてしまう。この問題は、一時ファイルに限らず、アプリケーションのカスタマイズ情報を保存しておく設定ファイルや、ログファイルなどによっても引き起こされる。
このような、従来技術2の問題に対処するため、特別にセキュリティに配慮して設計されたトラステッドOSでは、プロセスのセキュリティレベルに応じて、見かけ上は同一のディレクトリの内容を、実質的には切り替える方式(deflection directory)が実装されている。これを従来技術3と呼ぶ。なお、同一のパスを持つディレクトリまたはファイルの実体を、アクセス元のプロセスに応じて切り替えることを、以降「多重化」と呼ぶ。
非特許文献1(サンマイクロシステムズ、「Trusted Solaris管理の手順」、MLDを使った作業、[平成18年3月28日検索]、インターネット<URL:http://docs.sun.com/app/docs/doc/805-8093/6j7k0s5av?a=view>)に記載された、Sun Microsystems社のTrusted Solarisでは、このようなディレクトリをMLD(Multi Level Directory)と呼び、例えば、/tmpとホームディレクトリが既定でMLDとして定義されている。
図24は、MLDの動作例である。プロセスのセキュリティレベルがConfidentialの場合、そのプロセスから/myHomeDirを参照した場合、図24(a)に示すように、実際には/myHomeDir/.SLD.0の内容が参照される(file1のみ存在するように見える)。また、別のプロセスのセキュリティレベルがSecretの場合、そのプロセスから/myHomeDirを参照した場合、図24(b)に示すように、実際には/myHomeDir/.SLD.1の内容が参照される(file2とfile3のみ存在するように見える)。その結果、仮にファイル名が同じであっても、両者は別のファイルを参照することになる。
Trusted Solarisでは、ユーザはプロセスのセキュリティレベルをプロセス起動時に設定することができる。従って、機密情報を編集する際には、アプリケーションをSecretレベルで起動して機密ファイルを読み込み、社内情報を編集する際には、アプリケーションをConfidentialレベルで起動して社内ファイルを読み込む。ここで、Confidentialレベルのプロセスはプリンタデバイスにアクセス可能だが、Secretレベルのプロセスはプリンタデバイスにアクセス不可にしておけば、印刷による機密情報の漏洩は防止できる。
また、MLDにより、従来技術2の課題は解決できる。例えば、テンポラリディレクトリをMLDに指定しておけば、機密文書を読み込んだプロセスが保存する一時ファイルの場所と、機密文書を読み込んでいないプロセスが保存する一時ファイルの場所とは、見かけは同じでも実質的には異なるので、一時ファイルの保存を許可しても漏洩は生じない。
特開2002−288030号公報 サンマイクロシステムズ、「Trusted Solaris管理の手順」、MLDを使った作業、[平成18年3月28日検索]、インターネット<URL:http://docs.sun.com/app/docs/doc/805-8093/6j7k0s5av?a=view>
従来技術3により、従来技術1や従来技術2の持つ課題を解消できるが、従来技術3にも依然として以下に挙げる3つの課題がある。
1つ目の課題は、どのディレクトリを多重化するのかを、予め設定する必要があるため、対象とできるアプリケーションに依然として制限が生じることである。
UNIX系OSでは、ユーザ毎の設定ファイルや一時ファイルを保管する場所が慣習的にほぼ決まっているため、/tmpディレクトリとホームディレクトリを多重化することによって、設定ファイルや一時ファイルを分離することは比較的容易であり、アプリケーションの制限は比較的生じにくい。しかし、Windows OS上では、マルチユーザ環境を意識せずに作成されたアプリケーションも多く、どこをMLDに指定するかを決定するのは難しい。
例えば、本来はプログラムを保管すべき場所であるc:\program filesの下に、設定ファイルやログファイルを書き出すようなアプリケーションが多く存在する。このようなアプリケーションに対応するために、c:\program files以下を全て多重化すると、ディスク容量を浪費することになる上に、全てのセキュリティレベルで同じアプリケーションを使用したい場合、それぞれのセキュリティレベルでインストールを繰り返す必要が生じてしまい、運用性の負荷が増大する。
2つ目の課題は、ディレクトリ単位で多重化する場所を指定する必要があるため、OSのパッチ適用などの管理の手間が増えることである。
マルチユーザ環境を意識せずに作成されたアプリケーションが多いWindows OS上では、本来はOSを構成するファイルが配置されているc:\windows\system32の下に、設定ファイルを書き出すようなアプリケーションも存在する。このようなアプリケーションに対応するためには、従来技術3ではc:\windows\system32以下をMLDに指定する必要があるが、そうしてしまうと、OSのパッチを適用する際に、それぞれのセキュリティレベルでパッチ当てを繰り返す必要が生じてしまう。なぜならば、それぞれのセキュリティレベルから見えるc:\windows\system32の実体が異なるため、c:\windows\system32に配置されているOSを構成するファイルを更新するには、それぞれのセキュリティレベルにおいてc:\windows\system32の実体を更新する必要があるためである。
3つ目の課題は、ファイルやディレクトリが多重化されるという動作が、一般のユーザには直感的に理解しにくく、利用者の混乱を引き起こす可能性がある点である。
例えば、あるセキュリティレベルでアプリケーションの設定をカスタマイズしても、別のセキュリティレベルで起動した場合はカスタマイズする前の状態のままである。これは、アプリケーションの設定ファイルが多重化されており、実体が異なるためであるが、一般のユーザには分かりにくい動作である。また、図24を用いて説明した例のように、あるセキュリティレベルではホームディレクトリにあった文書が、別のセキュリティレベルでは見えなくなる、という動作も一般のユーザには混乱を引き起こす可能性がある。そのため、ファイルやディレクトリが多重化されていることをあまりユーザが意識せずにすむように、多重化を抑える機能があることが望ましい。
本発明は上述した従来の技術が有する問題点に鑑みてなされたものであって、プロセスのセキュリティレベルに応じて、ファイルを多重化することによって従来技術2の課題を解消する方式において、どのディレクトリを多重化するのかを、予め設定する必要がない方式を提供し、Windows OSのように、マルチユーザ環境を意識せずに作成されたアプリケーションが動作するような環境であっても、ファイルの多重化を効率よく、運用の負荷をかけずに実現することを目的とする。
また、本発明の他の目的は、プロセスのセキュリティレベルに応じて、ファイルを多重化することによって従来技術2の課題を解消する方式において、OSのパッチ適用やアプリケーションのインストール、アップグレードは一括して行う方式を提供することである。
また、本発明のさらに他の目的は、ファイルの多重化によって一般のユーザが混乱することを避けるために、プロセスのセキュリティレベルが異なる場合であっても、情報の漏洩やアプリケーションの誤動作を防ぎつつ、できるだけ同一のファイル環境を提供するように、ファイルの多重化を抑制することである。
本発明の方法による情報漏洩防止システムは、コンピュータシステムのOS上で動作するプロセスに応じてファイルの多重化を行う情報漏洩防止システムであって、
前記プロセスのセキュリティレベルを判定するセキュリティレベル判定部と、
前記プロセスによるファイルのオープンがファイルの変更を生じさせうるかどうかを判定するファイル変更判定部と、
ファイルの多重化がなされているかどうかをファイル単位で記憶し、判定するファイル多重化判定部と、
前記プロセスがファイルをオープンする際に、前記ファイル変更判定部が変更を生じさせると判定し、前記ファイル多重化判定部が多重化がなされていないと判定したファイルについては、前記セキュリティレベル判定部により判定されたセキュリティレベルに応じて、同一のパスを持つ実体の異なるファイルに切り替えるファイルシステムのディレクトリの多重化を行う多重化部とを具備する。
上記のような構成を採用し、予め多重化するディレクトリを指定しておく必要なしに、多重化する必要がある部分だけ多重化されるようにすることにより、本発明の第1の目的を達成することができる。
この場合、特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存したアクセスポリシー管理部と、
前記プロセスがファイルにアクセスした際に、前記アクセスポリシー管理部に保存されたアクセスポリシーに応じてファイルへのアクセスを禁止するアクセス制限部と、
を具備することとしてもよい。
上記のような構成を採用し、OSやアプリケーションプログラムの構成ファイルを事前にアクセスポリシーとして登録しておくことにより、OSのパッチ適用やアプリケーションのアップグレードを、特定のセキュリティレベルでのみ実行すれば、それらは多重化されないため、他のセキュリティレベルでも反映され、本発明の第2の目的を達成することができる。
また、ログオン時に前記プロセスをそれぞれ異なるセキュリティレベルとする複数のモードのいずれかとする一括モード選択部を備え、ログオン時およびログオフ時に前記一括モード選択部により決定されたモードのセキュリティレベルに応じて、前記ファイルシステムにおける前記多重化部により多重化されたファイルの情報を削除する再共有部を有することとしてもよい。
上記のような構成を採用し、定期的に各セキュリティレベルにおけるファイル構造を同一のものにそろえることにより、ファイルの多重化を抑えることができる。特に、機密ファイルがサーバ上で管理されており、クライアントコンピュータ上に保存することが前提とされていない運用形態では、ユーザの作成した文書ファイルのような重要なデータが多重化されることがないため、多重化されたファイルの情報が削除されても重大な情報の損失は生じない。このような運用形態では、このような構成を採用することによって、本発明の第3の目的を達成することができる。
さらに、特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存したアクセスポリシー管理部と、
前記プロセスがファイルにアクセスした際に、前記アクセスポリシー管理部に保存されたアクセスポリシーに応じてファイルへのアクセスを禁止するアクセス制限部と、
を具備することとしてもよい。
上記のような構成を採用し、定期的に各セキュリティレベルにおけるファイル構造を同一のものにそろえることにより、ファイルの多重化を抑えることができる。ポリシーで指定された特定のディレクトリに関しては、元のセキュリティレベルにおけるファイルが保存されるため、クライアントコンピュータ上で機密文書を扱うことが前提とされている運用形態であっても、ユーザの作成した文書ファイルをこのディレクトリに保存するという運用規定を定めておけば、多重化されたファイルの情報が削除されても重大なデータの損失は生じない。したがって、クライアントコンピュータ上で機密文書を扱うことが前提とされている運用形態においても、本発明の第3の目的を達成することができる。
上記のいずれにおいても、前記プロセスのログオン時に該プロセスのセキュリティレベルを決定する一括モード選択部と、
前記一括モード選択部により決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限するデバイス制御部と、
前記一括モード選択部により決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限するネットワークフィルタ部と、
を備えることとしてもよい。
また、前記プロセスの起動時にプロセスのセキュリティレベルを決定する個別モード選択部と、
前記個別モード選択部により決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限するデバイス制御部と、
前記個別モード選択部により決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限するネットワークフィルタ部と、
前記個別モード選択部により決定されたセキュリティレベルに応じて、第1のプロセスから第2のプロセスとの間の通信を防止するIPC防止部を備えることとしてもよい。
本発明のプログラムは上記のシステムをコンピュータシステム上に構築し、本は積みの記録媒体はそのプログラムを格納する。
本発明は以上説明したように構成されているので、以下に記載するような効果を奏する。
第1の効果は、機密情報を扱うアプリケーションの種類を限定せずに、機密情報のみの漏洩を防止できることである。その理由は、多重化手段により、機密情報を扱うプロセスによるファイル入出力を、予め多重化するディレクトリを指定しておく必要なしに、多重化する必要がある部分だけ多重化するためである。
第2の効果は、OSのパッチ適用のような重要な日常管理の運用の手間は増大させないことである。その理由は、アクセス制限手段により、OSを構成するファイル等についてはファイル単位でファイル名のパターンを基づいて多重化を抑制することにより、一度にOSを構成するファイルを更新できることにある。
第3の効果は、ファイルの多重化によって生じる、ユーザから見た分かりにくさを緩和することである。その理由は、機密ファイルを保存する場所を限定できるような運用形態において、再共有手段により、定期的に多重化されたファイルを多重化されていない状態に戻し、ファイルの多重化を抑制することにより、ユーザはセキュリティレベルの異なるプロセスから見えるファイル構造の違いをあまり意識せずにすむことによる。また、再共有手段によって、重要なデータが削除されることが無いように、アクセス制御手段により、多重化を抑制し、再共有手段によってもファイルが削除されない領域を設けることによる。
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100と、コンピュータ100上で動作するオペレーティングシステム(OS)102と、OS102上で動作するプロセス101と、OS102のログオン時にプロセス101のセキュリティレベルを選択するための一括モード選択部113と、OS102によって管理される固定ディスク装置(ハードディスク)106と、外部メディア装置(フロッピーディスク、USBメモリ、プリンタを含む)109と、ネットワークインタフェースカード(NIC)112とから構成されている。
OS102は、固定ディスク装置106上にファイルシステムを構築するファイルシステムドライバ105と、プロセス101からファイルシステムまたは外部デバイスへのアクセスを仲介して、プロセスのセキュリティレベルを判定するセキュリティレベル判定部103と、プロセス101からファイルシステムへのアクセスを仲介して、ファイル・ディレクトリの多重化を動的に行う多重化部104と、外部メディア装置109を駆動する外部メディアドライバ108と、プロセス101から外部メディアドライバ108へのアクセスを仲介して、外部メディア装置109の利用を制限するデバイス制御手段107と、NIC112を駆動するネットワークドライバ111と、プロセス101によるネットワークドライバへの通信をフィルタリングし、特定の通信を制限するネットワークフィルタ部110を含む。
また、多重化部104は、ファイルオープン要求の内容を判定してファイルの変更を伴うアクセス(書き込みアクセス、ファイル作成、ファイル削除など)であるかどうかを判定するファイル変更判定部104aと、アクセスの対象となったファイルが多重化されているかどうかを判定するファイル多重化判定部104bを含む。
これらの各部は、それぞれ概略次のように動作する。
一括モード選択部113は、ユーザのOS102へのログオン時に、プロセス101のセキュリティレベルを選択する機能を持つ。例えば、ログオン画面またはログオン直後に、ユーザに「機密モード」でログオンするか「通常モード」でログオンするかを選択させる画面を表示するものである。それぞれのログオンシェル内で起動されたプロセス101は、それぞれ「機密」または「通常」というセキュリティレベルが設定され、「機密」の方がよりセキュリティレベルが高いものとする。以降、セキュリティレベルが「機密」であるプロセスを機密プロセスと呼び、セキュリティレベルが「通常」であるプロセスを通常プロセスと呼ぶ。
セキュリティレベル判定部103は、プロセスからファイルシステムまたは外部デバイスへのアクセスを検知した際に、現在どちらのモードでログオンしたかを一括モード選択部113に問い合わせ、機密モードでログオンしていれば、セキュリティレベルは「機密」として、通常モードでログオンしていれば、セキュリティレベルは「通常」として判定する機能を持つ。
デバイス制御部107は、プロセス101のセキュリティレベルに応じて、外部メディアドライバ108へのリクエストを制限することにより、外部メディア装置109の利用を制限する機能を持つ。例えば、機密プロセスはプリンタ、USBメモリ、フロッピーディスクを使用できないが、通常プロセスはそれらを使用可能であるというような制御を行う。デバイス制御部107は、セキュリティレベル判定部103と外部メディアドライバ108の間に介在し、セキュリティレベル判定部103から外部メディアドライバ108に対するリクエストを仲介し、セキュリティレベル判定部103の出力内容に応じて、リクエストをそのまま外部メディアドライバ108に渡すか、「アクセス禁止」エラーを返すようにすることで実現できる。
ネットワークフィルタ部110は、プロセス101のセキュリティレベルに応じて、ネットワークドライバ111へのリクエストを制限することにより、NIC112の利用を制限する機能を持つ。例えば、機密プロセスはネットワーク通信ができないが、通常プロセスはネットワーク通信が可能であるというような制御を行う。
あるいは、ネットワークフィルタ部110に通信プロトコルを解析する能力を持たせ、機密プロセスによる情報漏洩のおそれのある通信のみ遮断するようにしてもよい。例えば、機密プロセスはWebサイトの閲覧のみ可能だが、Webサイトへのファイルのアップロードはできないというような制御を行ってもよい。これは、httpプロトコルのGETコマンドのみ許可し、POSTコマンドやPUTコマンドを禁止することによって実現することができる。このようにすれば、機密プロセスであっても、情報漏洩のおそれの無い通信は許可されるので、利便性が向上する。
また、ネットワークフィルタ部110では、通信相手毎に通信の可否を判定するようにしてもよい。例えば、コンピュータ100が、図2に示すように、ネットワークを介して機密ファイルサーバ201、一般ファイルサーバ202、機密Webサーバ203および一般Webサーバ204に接続されているとする。
ここで、機密ファイルサーバ201は機密ファイルを保存するためのファイルサーバであり、厳重にアクセス管理がなされているものとする。一方、一般ファイルサーバ202はどのようなコンピュータからも自由にアクセスできるサーバであるとする。同様に、機密Webサーバ203は機密情報を管理するためのWebサーバであり、厳重にアクセス管理がなされているものとする。一方、一般Webサーバ204はどのようなコンピュータからも自由にアクセスできるWebサーバであるとする。
この場合、ネットワークフィルタ部110に図3に示すような、アクセス先のサーバのIPアドレス毎にアクセス可否を定めたフィルタリングルールを事前に与えておくことにより、機密ファイルサーバ201または機密Webサーバ203上の情報は常に機密プロセスからのみアクセス可能であり、一般ファイルサーバ202または一般Webサーバ204に流出したり、印刷されたり、外部メディアにコピーされたりすることを防ぐことができる。なお、IPアドレスによるネットワークのアクセス制御は、ファイアウォールで広く用いられている公知の技術である。
多重化部104は、プロセス101のセキュリティレベルに応じて、プロセス101からファイルシステムへのアクセスを仲介し、ファイル変更判定部104aによりファイルの変更を伴うアクセスかどうかを判定し、変更を伴うアクセスであった場合は、ファイル多重化判定部104bにより、アクセス先のファイルが既に多重化されているかどうかを判定し、多重化されていなければ多重化処理を行う。ファイルの変更を伴わないアクセスであった場合、多重化処理は行わない。そして、いずれの場合も、既に多重化されているファイルに対してアクセスが生じた場合は、多重化されたファイルの実体をアクセス先に変更する。
また、多重化部104は、プロセス101からディレクトリの一覧取得を要求された場合、ファイル多重化判定部104bにより、そのディレクトリ内のファイルが既に多重化されているかどうかを判定し、それぞれの場合に応じて、適宜ディレクトリの内容をマージした上で、プロセスに返す機能を持つ。
図4は多重化されたファイル・ディレクトリの実現方法を表す図であり、図5は多重化される前のファイル構造の一例を示す図であり、図6は多重化された後のファイル構造の一例を示す図である。以下に、図4、図5、図6を参照して、多重化部104の動作について詳細に説明する。
多重化されるファイルシステムのルートディレクトリには、予め$secと$markという2つの特殊なディレクトリが作成されている。なお、本実施の形態では、ディレクトリの区切り文字は\で表されるものとする。
$secディレクトリは、機密プロセスから見たファイルの実体を格納するディレクトリである。$markディレクトリは、ファイルが多重化されているかどうかを記憶するための領域であり、多重化されているファイルの場合、$markディレクトリ配下のそのファイルのパスに、サイズ0のファイルが作成される。サイズを0とするのは、ファイルの存在自体で多重化しているかどうかを表すこととするため、ファイルの実体は必要ないことによる。
図4には、$secディレクトリと$markディレクトリの関係が示されている。ここで、[FILE]は、あるファイルの絶対パス(\a.txtとか、\sub\b.txtなど)を表す。初期状態では、R101かR102のいずれかであり、\$mark[FILE]は存在しないため、多重化はされておらず、通常プロセスからも機密プロセスからも同じファイルの実体が見える(R102)か、通常プロセスでも機密プロセスでもそのファイルは無い(R101)かのいずれかである。
通常プロセスまたは機密プロセスでファイルの変更が生じると、ファイルは多重化される。多重化された場合、サイズ0の\$mark[FILE]が生成される。\$mark[FILE]が存在する状態はR103からR106で表される。R103からR106では、通常プロセスから見えるファイルの実体は[FILE]であり、機密プロセスから見えるファイルの実体は\$sec[FILE]である。
R101の状態で、通常プロセスから新しく[FILE]を作成するとR103の状態になり、機密プロセスから新しく[FILE]を作成するとR105の状態になる。また、R102の状態で、通常プロセスまたは機密プロセスで[FILE]を更新すると、R104の状態になる。また、R103の状態で、機密プロセスから新しく[FILE]を作成するとR104の状態になり、R105の状態で、通常プロセスから新しく[FILE]を作成するとR104の状態になる。R103の状態で、通常プロセスから[FILE]を削除したり、R105の状態で、機密プロセスから[FILE]を削除すると、R106の状態になる。
なお、図4に挙げた以外のパターン、例えば、[FILE]有、\$mark[FILE]無、\$sec[FILE]有といったパターンは多重化部104の処理では存在しない。
図5は、どのファイルも多重化されていない、初期状態におけるファイル構造の例である。ファイルシステムドライバ105上では図5(c)に示すようなファイル構造が構成されている。多重化部104により、$secと$markは隠蔽され、機密プロセスからは図5(a)に示すように見え、通常プロセスからは図5(b)に示すように見える。この場合、まだどのファイルも多重化されていないため、機密プロセスから見えるファイル構造と通常プロセスから見えるファイル構造には違いが無い。
図6(c)は、機密プロセスが\c.txtを新規作成して\b.txtを削除し、通常プロセスが\sub\c.txtを新規作成して\sub\b.txtを削除し、機密プロセスか通常プロセスのいずれかが\sub\a.txtの内容を変更したときのファイル構造を示す図である。このとき、\b.txt, \c.txt, \sub\a.txt, \sub\b.txt, \sub\c.txtは多重化され、\a.txtは多重化されずに残る。そのため、$mark以下には、多重化されたことを表すため、\$mark\b.txt, \$mark\c.txt, \$mark\sub\a.txt, \$mark\sub\b.txt, \$mark\sub\c.txtというサイズ0のファイルが作成される。
ここで、図6では、ファイルの実体が異なることを明示するために、$sec配下のファイル・ディレクトリにはハッチをかけている。同じパス名で表されていても、ハッチがかかっているものとそうでないものは実体が異なる。
多重化部104を通して、通常プロセスから見たファイルの構造は図6(b)に示すようになる。通常プロセスから見た場合、多重化部104により、$secと$markは隠蔽されるが、それ以外は実際のファイル構造がそのまま見える。
また、機密プロセスから見たファイル構造は図6(a)に示すようになる。機密プロセスから見た場合、多重化部104により、$secと$markが隠蔽されるだけでなく、多重化されていないファイルと、$sec以下のファイルがマージされて表示される。例えば、図6(a)に示される状態では、ルート直下は、多重化されていないファイルa.txtと、$sec以下にあるc.txtとsubからなるディレクトリであるかのように見える。
以上の例より、多重化部104により、ファイル単位で動的にファイル・ディレクトリの内容が多重化されることが分かる。すなわち、新しく作成されたファイル\c.txtは機密プロセスのみから参照することが可能となり、\sub\c.txtは通常プロセスのみから参照することが可能となる。
また、削除されたファイル\b.txtは機密プロセスからのみ見えなくなり、\sub\b.txtは通常プロセスからのみ見えなくなる。また、変更されたファイル\sub\a.txtは、機密プロセスと通常プロセスの両方から参照可能であるが、そのファイルの実体は、機密プロセスから見た場合\$sec\sub\a.txtであり、通常プロセスから見た場合は\sub\a.txtであり、実体は異なる。
以降、機密プロセスが\sub\a.txtを開いた場合、開かれるファイルの実体は\$sec\sub\a.txtであり、機密情報を書き出したとしても、通常プロセスから読まれることは無い。なぜならば、機密プロセスが\sub\a.txtを開いた場合、開かれるファイルの実体は\sub\a.txtであり、\$sec\sub\a.txtとは異なるためである。
また、全く変更が無かったファイル\a.txtは、そのファイルの実体は、機密プロセスから見ても通常プロセスから見ても同じ\a.txtである。通常プロセスまたは機密プロセスから、ファイルの変更を伴うアクセスが生じない限り、この状態は維持される。
以下、より詳細に、多重化部104の動作手順について述べる。
まず、通常プロセスがファイルをオープンする際の、多重化部104の動作を図7に示す。ここで、[FILE]はオープンするファイルの絶対パス(例:\foo.txt, \windows\temp\1.tmp)を表す。
まず、"\$mark"に[FILE]を連結したパス(例えば、"\$mark\foo.txt")を作成し、そのパスにファイルが存在するかどうかをチェックする(ステップS101)。存在することが確認された場合、そのファイルは既に多重化されていることを表すので、そのまま[FILE]のオープンを継続する(ステップS106)。
ステップS101で連結したパスにファイルが存在しないことが確認された場合、このファイルオープンが書き込みオープンかどうかを判定する(ステップS102)。書き込みオープンでない場合、ファイルが変更される(ファイルの作成・書き込み・削除など)ことはなく、多重化する必要は無いので、そのまま[FILE]のオープンを継続する(ステップS106)。
書き込みオープンであった場合、オープン先のファイルが既に存在するかどうかをチェックし(ステップS103)、既に存在する場合は、そのファイルを$sec配下にコピーする(ステップS104)。そして、ファイルの存在の有無に関わらず、$mark配下に\$markに[FILE]を連結したパスで表されるサイズ0のファイルを生成する(ステップS105)。その上で、[FILE]のオープンを継続する(ステップS106)。ステップS103からステップS105までの手順により、通常プロセスと機密プロセスとの間で、[FILE]が多重化される。
次に、機密プロセスが、ファイルをオープンする際の、多重化部104の動作を図8に示す。
まず、\$markに[FILE]を連結したパスを作成し、そのパスにファイルが存在するかどうかをチェックする(ステップS201)。存在する場合、そのファイルは既に多重化されていることを表すので、\$secを[FILE]の先頭に付加したパスのオープンを継続する(ステップS206)。
ステップS201にて連結したパスにファイルが存在しないことが確認された場合、このファイルオープンが書き込みオープンかどうかを判定する(ステップS202)。書き込みオープンでない場合、ファイルが変更されたり削除されたりすることはないので多重化する必要は無いので、そのまま[FILE]のオープンを継続する(ステップS207)。
書き込みオープンであった場合、オープン先のファイルが既に存在するかどうかをチェックし(ステップS203)、既に存在する場合は、そのファイルを$sec配下にコピーする(ステップS204)。そして、ファイルの存在の有無に関わらず、$mark配下に\$markに[FILE]を連結したパスで表されるサイズ0のファイルを生成する(ステップS205)。ステップS203からステップS205までの手順により、通常プロセスと機密プロセスとの間で、[FILE]が多重化されたので、機密プロセスからは多重化された$sec配下のファイルのオープンを継続する(ステップS206)。
次に、通常プロセスが、ディレクトリの内容一覧を取得(リスティング)する際の、多重化部104の動作を図9に示す。ここで、[DIR]は、リスティングの対象となるディレクトリの絶対パス(例:\windows)を示す。まず、[DIR]内部を実際にリスティングし(ステップS301)、[DIR]がルートディレクトリの場合には(ステップS302)リスティング結果から$secと$markを除外する(ステップS303)。ルートディレクトリでない場合は、リスティング結果をそのまま返す。以上により、通常プロセスから$secと$markを隠蔽しつつディレクトリのリスティングをすることができる。
次に、機密プロセスがディレクトリのリスティングする際の、多重化部104の動作を図10に示す。
まず、[DIR]内部を実際にリスティングし(ステップS401)、[DIR]がルートディレクトリの場合は(ステップS402)リスティング結果から$secと$markを除外する(ステップS403)。そして、さらに、リスティング結果から、$mark配下にファイルがあるものを除外する(ステップS404)。例えば図6に示した例では、\直下のリスティング結果がa.txt, b.txt, subであり、\mark\以下に、b.txt, c.txt, subが存在するので、b.txtとsubを除外して、a.txtのみをステップS404のリスティング結果とする。
そして、さらに、$sec配下にディレクトリ\$sec[DIR]が存在すれば、その内容をリスティングし、その結果をステップS404の結果にマージする。例えば図6に示した例では、\$sec\のリスティング結果がc.txt, subであるので、それを前記のa.txtとマージし、\直下にはa.txt, c.txt, subの3つのファイル・ディレクトリがあるものとして返す。
以上により、図6(c)に示すようなファイル構造は、機密プロセスからは図6(a)のように見えることとになる。
次に、本発明を実施するための最良の形態の効果について説明する。
ユーザが機密情報を扱う場合は、一括モード選択部113で機密モードでログオンする必要があり、その場合、セキュリティレベル判定部103とデバイス制御部107、ネットワークフィルタ部110により、機密ファイルを外部メディアやネットワークを介して外部に漏洩させることは制限される。
一方、機密でない情報を扱う場合は、このような制限は生じない。これより、従来技術1と異なり、利便性を損なうことなく機密情報の漏洩の防止のみ実現できる。
また、多重化部104により、機密プロセスと通常プロセスから見た構造を多重化するため、従来技術2にあった、一時ファイルや設定ファイルの読み書きが発生する際にアプリケーションの動作が不正になったり、一時ファイルや設定ファイルの読み書きを例外的に許可することで情報漏洩の経路が生じたりする、といった課題を解消することができる。
さらに、多重化部104を、ファイル変更判定部104aとファイル多重化判定部104bを含む構成にし、機密プロセスと通常プロセスから見た構造を、ファイル単位で、ファイルの変更が生じたときに自動的に多重化するように構成されている。このため、従来技術3と異なり、予め多重化する場所を指定する必要はなく、かつ、変更が生じた部分のみファイル単位で多重化することとなる。これにより、OSの構成ファイルが格納されているディレクトリに設定ファイルがあったり、アプリケーションプログラムの構成ファイルが格納されているディレクトリに一時ファイルが書き出されたりするような場合であっても、OSの構成ファイルやアプリケーションプログラムの構成ファイルを多重化することなく、設定ファイルやログファイルのみを多重化することができる。
この結果、利用するアプリケーションの動作に応じてどのディレクトリを多重化するかを指定する必要はなくなる。特にWindowsのようにファイルの利用の仕方がアプリケーションによってまちまちな環境であっても、利用可能なアプリケーションに制限が生じたり、運用が難しくなったりする問題を解消できる。
なお、本実施の形態では、ファイルが多重化されているかどうかを識別する方法として、ファイルシステム上に$markというディレクトリを作成し、そこにサイズ0のファイルを配置する実現方法について述べたが、他の実現方法によってこれを実現してもよい。例えば、図11に示すように、多重化されているファイルのリストの一覧を記載した単一のファイルに記憶するようにしてもよい。
また、本実施の形態では、ファイルが多重化されているかどうかを表すファイルは、多重化されていないファイルを多重化するときに生成されるものの、削除されることはなかったが、図4のR106の状態になった場合に削除してR101の状態に戻すようにしてもよい。このようにすれば、多少ディスク消費量を節約することが可能である。
また、本実施の形態では、多重化されたファイルの実体を管理する方法として、機密プロセスが参照するファイルの実体を特殊ディレクトリ内に格納する実現方法について述べたが、これは通常プロセスによるファイルのオープン、ディレクトリのリスティング処理のオーバーヘッドを少なくすることを目的とした実現方法であり、その他の実現方法を用いてもよい。例えば、通常プロセスが参照するファイルの実体を特殊ディレクトリ内に格納するようにしてもよい。
また、本実施の形態では、セキュリティレベルが通常と機密の2つだけ定義され、通常<機密という関係がある場合について述べたが、それらが3つ以上ある場合でも実現することが可能である。例えば、通常<社外秘<機密という3段階のセキュリティレベルがある場合、$secの他に、例えば$confという特殊ディレクトリを設け、社外秘のファイルは$confに多重化するようにすればよい。また、通常<機密A、通常<機密Bというような関係がある場合、例えば、$secA, $secBという特殊ディレクトリを設け、機密Aのファイルは$secA、機密Bのファイルは$secBに多重化するようにすればよい。
また、本実施の形態では、多重化部104はファイルシステムドライバ105とプロセス101の間の処理を仲介して、プロセスからファイルシステムドライバへの処理を置き換えるフィルタドライバあるいはAPIフックとして実現する方法について述べたが、ファイルシステムドライバに直接変更を加えてもよい。フィルタドライバやAPIフックで実現した場合、ファイルシステム自体は変更しないため、一時的に本機能を利用したり、特定のユーザのみ本機能を利用するといった、より柔軟な運用が可能となるという長所がある。
次に、本発明の第2の発明を実施するための最良の形態について図面を参照して詳細に説明する。
図12は、第2の実施の形態の構成図である。第2の実施の形態は、第1の実施の形態にアクセス制限部114と、アクセスポリシー管理部115を加えたものである。アクセス制限部114は、アクセスポリシー管理部115に記述された、通常領域ポリシー115aを参照し、プロセス101からのファイルアクセスを選択的に禁止する機能を持つ。
アクセスポリシー管理部115は、コンピュータ100の固定ディスク106上に配置してもよいし、別のコンピュータ上に配置して、そこからコンピュータ100に配布するようにしてもよい。別のコンピュータ上に配置して配布した場合、複数のコンピュータにアクセスポリシーを同時に配布できると言う長所がある。
通常領域ポリシー115aは、特定のセキュリティレベルからのみ変更が可能であり、機密プロセスからのファイル変更を伴うアクセスを禁止して多重化を抑止するファイルまたはディレクトリのリストである。図13は、通常領域ポリシー115aの一部の例である。この例では、Windows OSを構成するファイル名のパターンが通常領域ポリシーとして記述されている。なお、この例では、通常領域ポリシーの記述形式としてワイルドカードを含むパターンを用いているが、正規表現などを用いるようにしてもよい。
図14はアクセス制限部114の動作を表すフローチャートである。
まず、ファイルオープン処理を実行したプロセスが、機密プロセスであるかどうか判定し(ステップS501)、機密プロセスであれば、そのファイルオープン処理がファイルの変更を伴うものであるかどうかを判定し(ステップS502)、変更を伴うものである場合、オープン先のファイルが通常領域ポリシーにマッチするかどうか判定する(ステップS503)。通常領域ポリシーにマッチする場合は、そのファイルオープンを失敗させる(ステップS505)。具体的には、「アクセス拒否」のエラーコードを返すなどすればよい。上記の条件に合致しない場合は、そのまま多重化部104を実行する(ステップS504)。
次に、本実施の形態の効果について説明する。
図13の通常領域ポリシーを用いた場合、機密プロセスがOSを構成するファイルを変更することはできなくなり、その結果、OSを構成するファイルが多重化されることもなくなる。これにより、通常プロセスでOSのパッチ適用(OSを構成するファイルの更新)を行うと、その結果は機密プロセスにも反映される。なぜなら、OSを構成するファイルは多重化されることがないためである。その結果、OSのパッチ適用を一度に済ますことが可能になる。同様に、アプリケーションを構成するファイルのパスを通常領域ポリシーに登録しておくことにより、アプリケーションのパッチ適用も一度に済ますことが可能になる。
OSを構成するファイルが配置されているディレクトリが厳密に決まっており、そのディレクトリ内には一般のアプリケーションはファイルを書き出すことが無いのであれば、同様の効果を、従来技術3でも達成することは可能である。すなわち、OSを構成するファイルが配置されているディレクトリはMLDに指定しないようにすればよい。
しかし、Windows環境のように、OSを構成するファイルが配置されている場所に設定ファイル等を書き出すアプリケーションが存在しうる場合、従来技術3では、OSのパッチ適用の一括実施と、アプリケーションの正常な動作は両立できない。それと比べ、本実施の形態ではこの2つを両立することができる。これは、ファイル単位で自動的に多重化しつつ、OSの構成ファイルに対してのみ通常領域ポリシーを適用して、多重化を抑止できるためである。
本実施の形態の別の効果は、通常プロセスから機密プロセスへのファイルの受け渡しを行うための、専用のディレクトリを提供できることである。例えば、通常領域ポリシーに、"c:\my documents"というディレクトリを登録しておけば、通常プロセスからはc:\ my documentsに自由に読み書きできるディレクトリとして見え、機密プロセスからは、c:\ my documentsは読み込みのみ可能なディレクトリとして見える。従って、通常モードで作成した文書を参照しながら、機密モードで文書を作成する場合などに利用できる。
次に、本発明の第3の発明を実施するための最良の形態について図面を参照して詳細に説明する。
図15は、第3の実施の形態の構成図である。本実施の形態は、本発明の第1の実施の形態に、再共有部116を追加したものである。
再共有部116は、多重化部104をバイパスして、直接ファイルシステムドライバ105にアクセスし、多重化されているファイルを強制的に多重化されていない状態に戻す機能を持つ。具体的には、$sec以下の全てのファイル・ディレクトリと、$mark以下の全てのファイル・ディレクトリを削除する機能を持つ。これにより、機密プロセスがファイル構造に対して行った変更は全てリセットされ、通常プロセスから見えるファイル構造と、機密プロセスから見えるファイル構造は同一のものになる。
再共有部116は、例えば機密モードログオン時・ログオフ時に自動的に実行すればよい。このようにすれば、機密モードログオン中の作業によって作成・変更されたファイルは、ログオフ時に自動的に元に戻ることになる。
そのため、ユーザから見た作業環境(ファイルの構造、アプリケーションやOSの設定など)が、通常モードと機密モードで食い違うことがなくなり、ユーザにとって直感的に動作が分かりやすくなる。その代わり、機密モードで固定ディスクに保存した文書が失われてしまうため、本実施の形態は、固定ディスクに文書を保存する必要が無い場合に適している。例えば、図2に示したようなネットワーク構成上で、機密ファイルサーバ201または機密Webサーバ203上のファイルを閲覧・更新する業務のみ行う場合に適している。このような場合、固定ディスク上に保存されて多重化されるファイルは、一時ファイルやアプリケーションの設定ファイルなどであり、それらが多重化される前の状態に戻っても大きな問題は生じないためである。
また、第2の実施の形態に述べた多重化禁止ポリシーを指定しなくても、通常モードでOSやアプリケーションにパッチ適用した場合、それは必ず機密モードでも反映されるようになるため、運用性が向上する。
次に、本発明の第4の発明を実施するための最良の形態について図面を参照して詳細に説明する。図16は、第4の実施の形態の構成図である。
本実施の形態は、本発明の第2の実施の形態に、再共有部116を追加し、かつ、アクセスポリシー管理部115に機密領域ポリシー115bを含むようにし、アクセス制御部114の処理に変更を加えたものである。機密領域ポリシー115bは、通常プロセスからのアクセスを禁止して多重化を抑止するファイル名またはディレクトリ名のパターンのリストである。
本実施の形態におけるアクセス制御部114の処理の流れを図17に示す。
本実施の形態におけるアクセス制御部114は、アクセス元のプロセスが機密プロセスでなかった場合、機密領域ポリシー115bを参照し、機密領域ポリシーにマッチするかどうか調べ(ステップS506)、マッチする場合はファイルアクセスを禁止する(ステップS505)という機能を持つ。図17におけるステップS502〜ステップS505の動作は図14と同様である。
本実施の形態における、通常領域ポリシーと機密領域ポリシーの例の一部を図18に示す。
この例の場合、P101からP103までの通常領域ポリシーにより、機密モードでのOSの構成ファイルへの変更が防止され、P104の通常領域ポリシーにより、c:\My Documentsは通常モードではファイルを読み書き可能なフォルダとして使用できるが、機密モードでは読み込みのみ可能なフォルダとなる。そして、P105の機密領域ポリシーにより、c:\My Documents\Secretは、機密モードでは読み書き可能なフォルダとして使用できるが、通常モードでは読み書き不可なフォルダとなる。そして、いずれの領域も、多重化されることはない。
本実施の形態の効果を、上記の例に即して述べる。
機密モードでファイルを固定ディスク上に保存する場合は、c:\My Documents\Secretに保存するようにしておけば、このファイルは多重化されることはないので、再共有部116が実行されても、c:\My Documents\Secretに保存された機密ファイルは消されることがない。そのため、再共有部116によって機密モードと通常モードとの環境の乖離を防ぎつつ、機密ファイルを固定ディスク上に保存したまま、機密ファイルの編集などを行うことが可能になる。
また、ユーザにはc:\My Documents\Secretは機密ファイルを保存する場所であり、通常モードでは参照不可であることを周知しておく必要があるが、機密プロセスからのc:\My Documentsへのファイル保存はP104の通常領域ポリシーによって禁止されているため、ユーザが機密プロセスから誤ってc:\My Documentsにファイルを保存することはなく、c:\My Documents \Secretに保存することを徹底しやすい。本実施の形態では、ユーザから見た文書保存場所が上記のとおり明確に分離され、それぞれアクセス制限がなされているように見える。ファイルやディレクトリのアクセス制限は、ディレクトリの多重化よりもはるかに良く知られたセキュリティ機能であるため、一般のユーザにも馴染みが深く、より理解しやすいという効果もある。
次に、本発明の第5の発明を実施するための最良の形態について図面を参照して詳細に説明する。図19は第5の実施の形態の構成図である。
本実施の形態は、本発明の第1の実施の形態から一括モード選択部107を取り除き、個別モード選択部117と、IPC制御部118を追加したものである。
個別モード選択部117は、プロセスの起動時にそのプロセスを機密プロセスとして起動するか、通常プロセスとして起動するか選択する機能を持つ。例えば、プロセスの起動を検知して「機密」か「通常」かを選択するダイアログを表示するようにしてもよいし、特定のアプリケーションを機密プロセスとして起動するための専用のショートカットを作成しておいてもよい。あるいは、特定の環境変数が設定されて起動されたプロセスは機密プロセスとする、という取り決めをしてもよい。
個別モード選択部117で設定された情報はプロセス単位に保存され、セキュリティレベル判定部103から参照される。この情報は、個々のプロセスが持つ環境変数領域に格納してもよいし、OSの管理しているメインメモリ上に対応表の形で格納してもよい。
IPC制御部118は、機密プロセスと通常プロセスの間のプロセス間通信を制限する機能を持つ。
本発明の第1の実施の形態では、ログオン時に一括モード選択部107によって「機密モード」なのか「通常モード」なのかを選択するため、ログオン中に実行中されるプロセスは同じセキュリティレベルで動作しており、プロセス間通信による情報の漏洩は生じない。一方、本実施の形態では、実行中のプロセスは異なるセキュリティレベルで動作する可能性があるので、プロセス間通信による情報の漏洩を防止する機能が必要であり、IPC制御部118はその機能を実現する。
IPC制御部118を実装する手段として、例えば、OSで提供されているIPC機能をフックし、IPC機能の動作を変更すればよい。
例えば、クリップボード経由のコピー&ペーストによる、機密プロセスから通常プロセスへの情報の漏洩を防止する手段として、アプリケーションから呼び出されるクリップボードコピーAPIと、クリップボードペーストAPIを仲介して、機密プロセスからクリップボードにコピーされた場合、通常プロセスではペーストできないようにすればよい。
図20は、クリップボードコピーAPIを仲介したIPC制御部118の処理手順である。まず、クリップボードコピーを呼び出したプロセスのセキュリティレベルをセキュリティレベル判定部103に問い合わせる(ステップS801)。機密プロセスであればクリップボード状態フラグに1を設定し(ステップS804)、通常プロセスであればクリップボード状態フラグに0を設定する(ステップS802)。ここで、クリップボード状態フラグは、全てのプロセスから参照可能な共有メモリ上や、カーネルメモリ空間上に配置されたメモリ領域である。その後、クリップボードペーストAPIを実行して(ステップS803)終了する。
図21は、クリップボードペーストAPIを仲介したIPC制御部118の処理手順である。まず、クリップボードペーストを呼び出したプロセスのセキュリティレベルをセキュリティレベル判定部103に問い合わせる(ステップS601)。通常プロセスであればクリップボード状態フラグが0であるかどうか調べ(ステップS602)、1であればクリップボードペーストAPIを実行せずに終了する(ステップS603)。それ以外の場合は、クリップボードペーストAPIをそのまま実行する(ステップS604)。
以上の手順により、機密プロセス同士、通常プロセス同士、通常プロセスから機密プロセスへのコピー&ペーストは許可しつつ、機密プロセスから通常プロセスへのコピー&ペーストは禁止することができる。
また、共有メモリによって、機密プロセスから通常プロセスへの情報の漏洩を防止する手段として、アプリケーションから呼び出される共有メモリオープン関数(名前を指定して共有メモリを作成する場合と、名前を指定して共有メモリを参照する場合の両方を含む)を仲介して、機密プロセスから作成された共有メモリの名前と、通常プロセスから作成された共有メモリの名前が重ならないようにすればよい。
図22は、共有メモリオープンAPIを仲介したIPC制御部118の処理手順である。まず、共有メモリオープンを呼び出したプロセスのセキュリティレベルをセキュリティレベル判定部103に問い合わせる(S701)。機密プロセスであった場合、オープンが要求された共有メモリの名前の先頭に"$$sec$$"という文字列を付加して(S702)、共有メモリオープンAPI関数を実行する(S703)。通常プロセスであった場合、要求されたそのままの名前で共有メモリオープンAPI関数を実行する。
以上の手順により、機密プロセスが作成した共有メモリは、機密プロセスからしかアクセスできず、通常プロセスが作成した共有メモリは、通常プロセスからしかアクセスできないため、機密プロセスから通常プロセスに対して、共有メモリを介して情報が漏洩することを防止できる。
本実施の形態の効果について述べる。
本実施の形態では、実施の形態1と異なり、プロセス単位で機密モードか通常モードかを選択する個別モード選択部117を持ち、プロセス間通信を行うAPI関数を仲介して、プロセス間通信による漏洩を防止する、IPC制御部118を持つように構成されているため、ユーザがログオン時に機密モードか通常モードかを選択する必要はなく、アプリケーション起動時に選択すればよいので、ユーザから見た利便性を向上させることができる。
なお、上述したように、本発明によるシステムはコンピュータシステム上に構築されるものであり、本発明には本発明によるシステムをコンピュータシステム上に構築するプログラムおよび該プログラムを格納するCD−ROM、フロッピーディスク、DVD−ROMなどの記録媒体も含まれる。
本発明によれば、機密ファイルのクライアントコンピュータからの持ち出しを防止する機能を実現するアプリケーションプログラムといった用途に適用できる。また、クライアントコンピュータで動作するOSを、機密ファイルのクライアントコンピュータからの持ち出しを防止するように拡張する機能といった用途にも適用できる。
本発明の第1の発明を実施するための最良の形態の構成を示すブロック図である。 第1の発明が前提とするネットワーク構成図である。 ネットワークフィルタ部による通信制限の方法を表す図である。 多重化されたファイル・ディレクトリの実現方法を表す図である。 多重化される前のファイル構造の一例を示す図である。 多重化された後のファイル構造の一例を示す図である。 通常プロセスによるファイルオープンを対象とした多重化部の動作を示す流れ図である。 機密プロセスによるファイルオープンを対象とした多重化部の動作を示す流れ図である。 通常プロセスによるディレクトリ一覧取得を対象とした多重化部の動作を示す流れ図である。 機密プロセスによるディレクトリ一覧取得を対象とした多重化部の動作を示す流れ図である。 多重化されたファイルの情報を保持するための別手段を示す図である。 本発明の第2の発明を実施するための最良の形態の構成を示すブロック図である。 本発明の第2の発明における、通常領域ポリシーの例を示す図である。 本発明の第2の発明における、アクセス制限部の動作を示す流れ図である。 本発明の第3の発明を実施するための最良の形態の構成を示すブロック図である。 本発明の第4の発明を実施するための最良の形態の構成を示すブロック図である。 本発明の第4の発明における、アクセス制限部の動作を示す流れ図である。 本発明の第2の発明における、通常領域ポリシーと機密領域ポリシーの例を示す図である。 本発明の第5の発明を実施するための最良の形態の構成を示すブロック図である。 クリップボードコピー時のIPC制御部の動作を示す流れ図である。 クリップボードペースト時のIPC制御部の動作を示す流れ図である。 共有メモリオープン時のIPC制御部の動作を示す流れ図である。 従来技術2の動作を示す図である。 従来技術3の動作を示す図である。
符号の説明
100 コンピュータ(中央処理装置;プロセッサ;データ処理装置)
103 セキュリティレベル判定部
104 多重化部
104a ファイル変更判定部
104b ファイル多重化判定部
106 固定ディスク装置
114 アクセス制御部
115 アクセスポリシー管理部
116 再共有部

Claims (14)

  1. コンピュータシステムのOS上で動作するプロセスに応じてファイルの多重化を行う情報漏洩防止システムであって、
    前記プロセスのセキュリティレベルを判定するセキュリティレベル判定部と、
    前記プロセスによるファイルのオープンがファイルの変更を生じさせうるかどうかを判定するファイル変更判定部と、
    ファイルの多重化がなされているかどうかをファイル単位で記憶し、判定するファイル多重化判定部と、
    前記プロセスがファイルをオープンする際に、前記ファイル変更判定部が変更を生じさせると判定し、前記ファイル多重化判定部が多重化がなされていないと判定したファイルを、前記セキュリティレベル判定部により判定されたセキュリティレベルに応じて、同一のパスを持つ実体の異なるファイルに切り替えるファイルシステムのディレクトリの多重化を行う多重化部とを具備する情報漏洩防止システム。
  2. 請求項1記載の情報漏洩防止システムにおいて、
    特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存したアクセスポリシー管理部と、
    前記プロセスがファイルにアクセスした際に、前記アクセスポリシー管理部に保存されたアクセスポリシーに応じてファイルへのアクセスを禁止するアクセス制限部と、
    を具備する情報漏洩防止システム。
  3. 請求項1記載の情報漏洩防止システムにおいて、
    前記プロセスをそれぞれ異なるセキュリティレベルとする複数のモードがあり、そのモードに応じて、前記ファイルシステムにおける前記多重化部により多重化されたファイルの情報を削除する再共有部を有する情報漏洩防止システム。
  4. 請求項3記載の情報漏洩防止システムにおいて、
    特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存したアクセスポリシー管理部と、
    前記プロセスがファイルにアクセスした際に、前記アクセスポリシー管理部に保存されたアクセスポリシーに応じてファイルへのアクセスを禁止するアクセス制限部と、
    を具備する情報漏洩防止システム。
  5. 請求項1ないし請求項4のいずれかに記載の情報漏洩防止システムにおいて、
    前記プロセスのログオン時に該プロセスのセキュリティレベルを決定する一括モード選択部と、
    前記一括モード選択部により決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限するデバイス制御部と、
    前記一括モード選択部により決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限するネットワークフィルタ部と、
    を備える情報漏洩防止システム。
  6. 請求項1ないし請求項4のいずれかに記載の情報漏洩防止システムにおいて、
    前記プロセスの起動時にプロセスのセキュリティレベルを決定する個別モード選択部と、
    前記個別モード選択部により決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限するデバイス制御部と、
    前記個別モード選択部により決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限するネットワークフィルタ部と、
    前記個別モード選択部により決定されたセキュリティレベルに応じて、第1のプロセスから第2のプロセスとの間の通信を防止するIPC防止部を備える情報漏洩防止システム。
  7. コンピュータシステムのOS上で動作するプロセスに応じてファイルの多重化を行う情報漏洩防止方法であって、
    前記プロセスのセキュリティレベルを判定し、
    前記プロセスによるファイルのオープンがファイルの変更を生じさせうるかどうかを判定し、
    ファイルの多重化がなされているかどうかを判定し、
    前記プロセスがファイルをオープンする際に、そのことが変更を生じさせると判定し、多重化がなされていないと判定したファイルについては、判定したセキュリティレベルに応じて、同一のパスを持つ実体の異なるファイルに切り替えるファイルシステムのディレクトリの多重化を行う情報漏洩防止方法
  8. 請求項7記載の情報漏洩防止方法において、
    特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存し、
    前記プロセスがファイルにアクセスした際に、前記アクセスポリシーに応じてファイルへのアクセスを禁止する情報漏洩防止方法。
  9. 請求項7記載の情報漏洩防止システムにおいて、
    前記プロセスをそれぞれ異なるセキュリティレベルとする複数のモードがあり、そのモードに応じて、前記ファイルシステムにおける前記多重化部により多重化されたファイルの情報を削除する情報漏洩防止方法。
  10. 請求項9記載の情報漏洩防止方法において、
    特定のセキュリティレベルからのみ変更が可能なファイルやディレクトリを、ファイル単位にアクセスポリシーとして列挙して保存し、
    前記プロセスがファイルにアクセスした際に、前記アクセスポリシーアクセスポリシーに応じてファイルへのアクセスを禁止する情報漏洩防止方法。
  11. 請求項7ないし請求項10のいずれかに記載の情報漏洩防止方法において、
    前記プロセスのログオン時に該プロセスのセキュリティレベルを決定し、
    前記決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限し、
    前記決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限する情報漏洩防止方法。
  12. 請求項7ないし請求項10のいずれかに記載の情報漏洩防止方法において、
    前記プロセスの起動時にプロセスのセキュリティレベルを決定し、
    前記決定されたセキュリティレベルに応じて、前記プロセスによる外部メディア装置へのアクセスを制限し、
    前記決定されたセキュリティレベルに応じて、ネットワーク経由の情報送信を制限し、
    前記決定されたセキュリティレベルに応じて、第1のプロセスから第2のプロセスとの間の通信を防止する情報漏洩防止方法。
  13. 請求項1ないし請求項6のシステムをコンピュータシステム上に構築するプログラム。
  14. 請求項13記載のプログラムを格納した記録媒体。
JP2006108508A 2006-04-11 2006-04-11 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体 Active JP4654963B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006108508A JP4654963B2 (ja) 2006-04-11 2006-04-11 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006108508A JP4654963B2 (ja) 2006-04-11 2006-04-11 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2007280255A JP2007280255A (ja) 2007-10-25
JP4654963B2 true JP4654963B2 (ja) 2011-03-23

Family

ID=38681614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006108508A Active JP4654963B2 (ja) 2006-04-11 2006-04-11 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP4654963B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101960465A (zh) * 2008-03-03 2011-01-26 日本电气株式会社 机密信息泄漏防止系统和机密信息泄漏防止方法
JP5040859B2 (ja) * 2008-08-28 2012-10-03 富士通株式会社 情報漏洩防止プログラムおよび情報漏洩防止方法
JP2010108237A (ja) 2008-10-30 2010-05-13 Nec Corp 情報処理システム
WO2010109774A1 (ja) * 2009-03-24 2010-09-30 日本電気株式会社 データ処理装置、そのコンピュータプログラムおよびデータ処理方法
JP5533429B2 (ja) * 2010-08-20 2014-06-25 富士通株式会社 ファイル管理方法、ファイル管理装置、及びファイル管理プログラム
JP5617734B2 (ja) * 2011-03-30 2014-11-05 富士通株式会社 ファイル管理方法、ファイル管理装置、及びファイル管理プログラム
DE112012002600T5 (de) 2011-06-23 2014-04-10 International Business Machines Corp. Informationsverarbeitungsvorrichtung, -verfahren und -programm zum Verwalten vertraulicher Informationen
JP5474916B2 (ja) 2011-11-21 2014-04-16 シャープ株式会社 情報処理装置および複合機

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099454A (ja) * 2000-09-21 2002-04-05 Nec Corp ファイル管理システムおよび方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0266646A (ja) * 1988-08-31 1990-03-06 Mitsubishi Electric Corp 電子計算機のファイル・システム
US5859966A (en) * 1995-10-10 1999-01-12 Data General Corporation Security system for computer systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099454A (ja) * 2000-09-21 2002-04-05 Nec Corp ファイル管理システムおよび方法

Also Published As

Publication number Publication date
JP2007280255A (ja) 2007-10-25

Similar Documents

Publication Publication Date Title
JP4654963B2 (ja) 情報漏洩防止システム、情報漏洩防止方法、プログラムおよび記録媒体
US10305937B2 (en) Dividing a data processing device into separate security domains
US8078740B2 (en) Running internet applications with low rights
US20220053027A1 (en) Dividing a data processing device into separate security domains
US6941470B1 (en) Protected execution environments within a computer system
US20050091214A1 (en) Internal object protection from application programs
US20160085964A1 (en) Methods and Systems for Implementing a Secure Application Execution Environment Using Derived User Accounts for Internet Content
US20070233880A1 (en) Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
US20130191924A1 (en) Approaches for Protecting Sensitive Data Within a Guest Operating System
US20030221083A1 (en) System and method for filtering write operations to a storage medium containing an operating system image
US7788701B1 (en) Content transfer restriction system for personal internet communicator
WO2009110275A1 (ja) 機密情報漏洩防止システム及び機密情報漏洩防止方法
JP2007534039A (ja) パーソナルコンピュータインターネットセキュリティシステム
JPWO2008056410A1 (ja) データ処理制御方法
JP5173110B2 (ja) トランスペアレントなストレージ再編成のためのシステムおよび方法
JP4501156B2 (ja) 機密モードに応じたアクセスフォルダ切り替え方法、プログラム、及びコンピュータシステム
JP4665065B2 (ja) 記憶装置およびデータスマグリングの方法
WO2006005812A2 (en) Mechanisms for executing a computer program
JP4516598B2 (ja) 文書のコピーを制御する方法
JP6270780B2 (ja) データ管理装置、データ管理方法、及びデータ管理プログラム
US20090307276A1 (en) Migration using file system links
AU2018341708B2 (en) Policy based persistence
JP2008152519A (ja) コンピュータ及びその基本ソフトウェア
EP2237152B1 (en) User terminal apparatus and control method thereof, as well as program
JP4908367B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100413

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100811

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

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: 20101124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4654963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150