(57)【要約】【課題】従来技術では、予め決まった名前を持つオブジェクトの生成を試み、その成否に基づき複数プロセスを同時に動作させないアプリケーションプログラムが存在する。これは、異なるセキュリティ要求レベル間での情報フローを防止する情報フロー制御の実現を妨げる。本発明は、複数プロセス同時実行を自ら防ぐアプリケーションプログラムを強制的に複数プロセス同時実行可能にし情報フロー制御の基盤を提供することを目的とする。【解決手段】プロセスからオペレーティングシステムへの名前付きオブジェクトの生成・参照・使用・削除要求をフィルタリングする名前空間フィルタを設け、プロセスから名前付きオブジェクトの生成・参照・使用・削除要求を受け取ったとき、該名前空間フィルタでオブジェクト名を加工し、各プロセスから生成されるオブジェクトの名前を必ず異なるものにする。【選択図】図３
2008234128.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で稼働するオペレーティングシステムの上でアプリケーションのプロセスを実行する際に、プロセス間のリソース共有を防止する方法であって、
プロセスからオペレーティングシステムへの名前付きオブジェクトの生成・参照・使用・削除要求をフィルタリングするプログラムである名前空間フィルタを実行し、
該名前空間フィルタが、
該プロセスから名前付きオブジェクトの生成・参照・使用・削除要求を受け取るステップと、
該プロセスを該オペレーティングシステム上で一意に特定する文字列を該要求に含まれるオブジェクト名に連結して新たなオブジェクト名を生成するステップと、
該要求に含まれるオブジェクト名を該新たなオブジェクト名に置き換えた要求を該オペレーティングシステムに送るステップとを
実行することを特徴とするプロセス間リソース共有防止方法。
【請求項２】
請求項１に記載のプロセス間リソース共有防止方法において、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、前記プロセスを含むプロセスグループを前記オペレーティングシステム上で一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止方法。
【請求項３】
請求項１または２の何れか１つに記載のプロセス間リソース共有防止方法において、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、あるプロセスの子孫プロセスであることを前記オペレーティングシステム上で一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止方法。
【請求項４】
請求項１、２、または３の何れか１つに記載のプロセス間リソース共有防止方法において、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、前記プロセスがアクセスするデータのセキュリティ要求レベルを一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止方法。
【請求項５】
コンピュータ上で稼働するオペレーティングシステムの上でアプリケーションのプロセスを実行する際に、プロセス間のリソース共有を防止するプログラムであって、
プロセスからオペレーティングシステムへの名前付きオブジェクトの生成・参照・使用・削除要求をフィルタリングし、
該プロセスから名前付きオブジェクトの生成・参照・使用・削除要求を受け取るステップと、
該プロセスを該オペレーティングシステム上で一意に特定する文字列を該要求に含まれるオブジェクト名に連結して新たなオブジェクト名を生成するステップと、
該要求に含まれるオブジェクト名を該新たなオブジェクト名に置き換えた要求を該オペレーティングシステムに送るステップとを
実行することを特徴とするプロセス間リソース共有防止プログラム。
【請求項６】
請求項５に記載のプロセス間リソース共有防止プログラムにおいて、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、前記プロセスを含むプロセスグループを前記オペレーティングシステム上で一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止プログラム。
【請求項７】
請求項５または６の何れか１つに記載のプロセス間リソース共有防止プログラムにおいて、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、あるプロセスの子孫プロセスであることを前記オペレーティングシステム上で一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止プログラム。
【請求項８】
請求項５、６、または７の何れか１つに記載のプロセス間リソース共有防止プログラムにおいて、
前記プロセスを前記オペレーティングシステム上で一意に特定する文字列が、前記プロセスがアクセスするデータのセキュリティ要求レベルを一意に特定する文字列を含むことを特徴とするプロセス間リソース共有防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムの名前空間を拡張してリソースのプロセス間共有を防止する方法及びプログラムに関するものである。
【背景技術】
【０００２】
オペレーティングシステムは、単一端末内でプロセス間の情報共有を行なうプロセス間通信機能を、共有メモリやパイプなどと呼ばれるリソースとして提供する。また、オペレーティングシステムは、プロセスからこれらリソースへのアクセスの排他制御機能を、ミューテックスやセマフォなどと呼ばれるリソースとして提供する。これらのリソースは、オペレーティングシステムを構成する他の実行コンポーネントやオペレーティングシステム上で動作するプロセスに提供される。
【０００３】
オペレーティングシステムは、これらのリソースを、オブジェクト（各種リソースを表すための静的に定義されたオブジェクト型のインスタンス）として管理する。オブジェクトは、名前付きオブジェクトと無名オブジェクトに分類される。名前付きオブジェクトは、その名前によりオペレーティングシステム上で一意に識別される。従って、異なるプロセスであっても同じ名前を指定することで同一の名前付きオブジェクトを操作できる。無名オブジェクトは、オペレーティングシステムが動的に割り当てた、無名オブジェクト生成要求を行なったプロセス内でだけ有効な値（ハンドルと呼ばれる）で識別されるため、基本的に、異なるプロセスで同一の無名オブジェクトを操作できない。
【０００４】
一般的なオペレーティングシステムは、１つのアプリケーションプログラムが同時に複数のプロセスとして起動することを認めている。しかし、アプリケーションプログラムによっては、リソース使用量の効率化や動作の高速化などの目的のため、同時に複数のプロセスが動作しないように内部処理を行なうものがある。この内部処理の１つの例は、アプリケーションプログラムの初期化コードが既定の名前を持つオブジェクトの新規生成を試み、失敗すれば実行を終了し、成功すればそのオブジェクトをアプリケーションプログラムの終了まで保持してから削除する、というものである。
【０００５】
以下に、そのような内部処理の具体例を示す。あるアプリケーションプログラムから起動された第１のプロセスは、その初期化コードの実行中に“ＯｎｌｙＯｎｅ”という該アプリケーションプログラムに既定の名前のミューテックスの新規生成をオペレーティングシステムに要求する。オペレーティングシステムは、すべての名前付きオブジェクトの名前を管理しており、同じ名前のミューテックスが存在しなければミューテックスを新たに生成してそのハンドルを第１のプロセスに返す。続いて該アプリケーションプログラムから起動された第２のプロセスは、その初期化コードの実行中に既定の“ＯｎｌｙＯｎｅ”という名前のミューテックスの新規生成をオペレーティングシステムに要求する。オペレーティングシステムは、既存の名前でオブジェクトの生成を要求されたのでエラーを返す。エラーを受け取った第２のプロセスは、該アプリケーションプログラムから起動されたプロセスが既に存在すると判断して終了する。第１のプロセスは、その実行中、生成したミューテックスを保持し続け、終了時にそのミューテックスを識別するハンドルを指定して削除要求をオペレーティングシステムに要求する。オペレーティングシステムは、削除要求に従い、渡されたハンドルに紐付く“ＯｎｌｙＯｎｅ”という名前のミューテックスを削除する。この時点以降に該アプリケーションプログラムから第３のプロセスが起動されれば、“ＯｎｌｙＯｎｅ”という名前のミューテックスの新規生成に成功するので処理を継続できる。
【０００６】
上述したミューテックスを用いる方法以外にも、共有メモリやセマフォなどの名前付きオブジェクトを上記の例と同様に用いて、複数プロセス同時実行を自ら回避するアプリケーションプログラムが存在する。さらに、文書ファイルを編集するアプリケーションプログラムの中には、２つめのプロセスとして起動されると、その編集対象のファイル名を先に起動済みのプロセスに対してオペレーティングシステムの提供する何らかのプロセス間通信機能を用いて通知して自身は終了し、起動済みプロセスにそのファイルの編集を行なわせるものも存在する。名前付きオブジェクトを使って同一アプリケーションプログラムから複数プロセスを自ら同時に実行できなくする方法については、非特許文献１に詳しい説明がある。
【非特許文献１】Ａｄｖａｎｃｅｄ  Ｗｉｎｄｏｗｓ改訂第４版（Ｊｅｆｆｒｅｙ  Ｒｉｃｈｔｅｒ著、（株）アスキー発行）、Ｐ８７〜８８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した複数プロセス同時実行を自ら避けるアプリケーションプログラムにおいて、同時にセキュリティ要求レベルの異なる文書ファイルを開くと、１つのプロセス内でそれらの文書ファイルを編集することになる。これは、異なるセキュリティ要求レベル間での情報フローを防止する情報フロー制御の実現を妨げる。例えば、先にセキュリティ要求レベルが低い文書ファイルを開き、その後、セキュリティ要求レベルが高い文書ファイルを開くと、低いセキュリティ要求レベルに基づく制御をしているプロセスで高いセキュリティ要求レベルの文書ファイルの処理をすることになり、高いセキュリティ要求レベルの文書から情報漏洩することがある。
【０００８】
本発明の目的は、複数プロセス同時実行を自ら避けるアプリケーションプログラムを強制的に複数プロセス同時実行可能にし、情報フロー制御の基盤を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明は、プロセスからオペレーティングシステムへの名前付きオブジェクトの生成・参照・使用・削除要求をフィルタリングする名前空間フィルタを設け、プロセスから名前付きオブジェクトの生成・参照・使用・削除要求を受け取り、該プロセスを該オペレーティングシステム上で一意に特定する文字列を該要求に含まれるオブジェクト名に連結して新たなオブジェクト名を生成し、該要求に含まれるオブジェクト名を該新たなオブジェクト名に置き換えた要求を該オペレーティングシステムに送るようにしたことを特徴とする。
【００１０】
これにより、既定の名前を持つオブジェクトを生成・参照・使用・削除するアプリケーションプログラムから起動された複数のプロセスは、各プロセスが生成したオブジェクトの名前が必ず異なるため、それらオブジェクトを共有することができない。
【００１１】
プロセスをオペレーティングシステム上で一意に特定する文字列が、該プロセスを含むプロセスグループを該オペレーティングシステム上で一意に特定する文字列を含むようにしてもよい。そのようにすることで、既定の名前を持つオブジェクトを生成・参照・使用・削除する複数のアプリケーションプログラムから構成されるアプリケーションプログラムグループが存在するとき、同一グループに属するアプリケーションプログラムから起動されたプロセスで構成されるプログラムグループに属するプロセスであれば、これらプロセスグループ内で生成されたオブジェクトを共有できる。一方、該アプリケーションプログラムグループに属さないアプリケーションプログラムから生成されたプロセスは該オブジェクトを共有できないことになる。
【００１２】
また、プロセスをオペレーティングシステム上で一意に特定する文字列が、あるプロセスの子孫プロセスであることを該オペレーティングシステム上で一意に特定する文字列を含むようにしてもよい。そのようにすることで、既定の名前を持つオブジェクトを生成・参照・使用・削除するアプリケーションプログラムから起動されたプロセスが、同一名のオブジェクトを生成・参照・使用・削除する第２のアプリケーションプログラムから子プロセスや孫プロセスを起動した場合には、これら子孫プロセスと該オブジェクトを共有できる。
【００１３】
さらに、プロセスをオペレーティングシステム上で一意に特定する文字列が、該プロセスがアクセスするデータのセキュリティ要求レベルを一意に特定する文字列を含むようにしてもよい。そのようにすることで、既定の名前を持つオブジェクトを生成・参照・使用・削除する同一のアプリケーションプログラムから起動されたプロセスであっても、同一のセキュリティ要求レベルを持つデータにアクセスする場合に限りオブジェクトを共有できる。一方、異なるセキュリティ要求レベルを持つデータにアクセスするプロセスの間ではオブジェクトを共有できないことになる。なお、セキュリティ要求レベルの例としては、Windows Vista（登録商標）に導入された整合性レベルがある。また、データ作成者の役職や所属をセキュリティ要求レベルとして利用することも考えられる。
【発明の効果】
【００１４】
本発明によれば、名前付きオブジェクトを生成して複数プロセス同時実行を自ら防ぐアプリケーションプログラムを強制的に複数のプロセスとして同時に実行させることができる。これにより、異なるセキュリティ要求レベルを持つ文書ファイルの編集をそれぞれ独立したプロセスで同時に可能とするための情報フロー制御の基盤を提供できる。また、パイプや共有メモリなどの名前付き情報共有オブジェクトを利用した隠れ通信路（コバートチャネル）による情報フローを防止できる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて本発明の実施形態を説明する。
【００１６】
図１は、本発明の実施形態であるプロセス間リソース共有防止システムの構成の概要図である。本システムは、端末内に構成される。端末１０１内の各ブロックは、端末１０１の演算装置（ＣＰＵ）が実行して稼動中のプログラムを示す。
【００１７】
オペレーティングシステム１０２は、端末１０１が電源オンされたときメモリにロードされ実行開始されたものである。オペレーティングシステム１０２は、端末１０１の物理的入出力手段を利用してアプリケーションプログラムの起動要求を受け付け、起動要求されたアプリケーションプログラムのプロセスの実行イメージを端末１０１のメモリにロードし、端末１０１の演算装置を使って実行する。また、オペレーティングシステムの各種機能を利用するための論理的なインタフェースをプロセスＡ１０５やプロセスＢ１０６、名前空間フィルタ１０７に提供する。
【００１８】
オペレーティングシステム１０２の内部は機能ごとにコンポーネント化されている。オブジェクトマネージャ１０４は、オペレーティングシステム１０２内部で使用されるオブジェクトの生成、削除、保護、及び追跡を集中的に管理する。オブジェクトマネージャ１０４は、その内部に、同一名のオブジェクトを重複して生成することを避けるために生成済みオブジェクトの名前を管理するオブジェクトテーブルを持つ。カーネルサービス１０３は、オブジェクト管理以外の各種内部処理、例えばプロセス管理、メモリ管理、及びファイルＩ／Ｏ管理などの処理を行なうものであり、これら管理機能を利用するための論理インタフェースの提供を行なう。
【００１９】
プロセスＡ１０５及びプロセスＢ１０６は、オペレーティングシステム１０２上で動作するプロセスであり、複数プロセス同時実行を自ら防ぐアプリケーションプログラム（図２）から起動されたプロセスである。名前空間フィルタ１０７は、プロセスＡ１０５やプロセスＢ１０６からオペレーティングシステム１０２への名前付きオブジェクトの処理要求をフィルタリングして追加処理を行なう。
【００２０】
図２は、本実施形態における複数プロセス同時実行を自ら防ぐアプリケーションプログラムの実行開始時の処理の概要を示すフローチャートである。何らかの要因でアプリケーションプログラムの起動要求があると、そのアプリケーションプログラムのプロセスの実行イメージがメモリ上にロードされて実行される。図２の処理は、そのプロセス（ここではプロセスＡ１０５とする）の初期化処理で実行されるものである。まず、本アプリケーションプログラムから起動されたプロセスＡ１０５は、実行開始時に“ＯｎｌｙＯｎｅ”という既定の名前を持つミューテックスの新規生成を試みる（ステップ２０１）。失敗すれば、既に同一アプリケーションプログラムから起動したプロセスが存在するので実行を終了し、複数プロセス同時実行を防ぐ。ミューテックスの新規生成に成功すれば生成されたミューテックスを保持して処理を続け（ステップ２０２）、実行終了時にこのミューテックスを削除して終わる（ステップ２０３）。なお、“ＯｎｌｙＯｎｅ”という名前は、上記アプリケーションプログラムに特有の名前であり、別のアプリケーションプログラムには別の名前が割り当てられているものである。
【００２１】
図３は、名前空間フィルタ１０７の処理の概要を示すフローチャートである。本処理は、図２に示すアプリケーションプログラムからプロセスＡ１０５が起動され、ステップ２０１が実行されたときに開始する。
【００２２】
プロセスＡ１０５が“ＯｎｌｙＯｎｅ”という既定の名前を持つミューテックスの新規生成を要求すると、名前空間フィルタ１０７は、この生成要求を受け取る（ステップ３０１）。名前空間フィルタ１０７は、プロセスＡ１０５を一意に識別する情報としてオペレーティングシステム１０２からプロセスＩＤ（ここではプロセスＩＤとして“１２３４”が返されるものとして説明する）を取得し、ミューテックス生成要求に含まれる名前に連結して新たな名前“ＯｎｌｙＯｎｅ１２３４”を得る。そして、この名前を指定したミューテックス生成要求をカーネルサービス１０３に送る（ステップ３０２）。なお本実施形態では、オブジェクトを一意に識別する情報としてプロセスＩＤを用いたが、これに限らず、他の情報を用いてもよい。
【００２３】
ステップ３０２のミューテックス生成要求を受けたカーネルサービス１０３は、オブジェクトマネージャ１０４に該ミューテックス生成要求を送る。オブジェクトマネージャ１０４は、オブジェクトテーブルに“ＯｎｌｙＯｎｅ１２３４”という名前を持つオブジェクトが存在するか確認する。本実施形態においては存在しないので、オブジェクトマネージャ１０４は“ＯｎｌｙＯｎｅ１２３４”という名前のミューテックスを生成し、そのハンドル（以下“ハンドルＡ”と呼ぶ）をカーネルサービス１０３に返す。カーネルサービス１０３は、ミューテックス生成要求の処理結果としてハンドルＡを名前空間フィルタ１０７に返す。名前空間フィルタ１０７は、そのミューテックス生成要求の処理結果を受け取る（ステップ３０３）。名前空間フィルタ１０７は、ミューテックス生成要求の処理結果としてハンドルＡをプロセスＡ１０５に返し、本手順を終了する（ステップ３０４）。
【００２４】
この時点で、プロセスＡ１０５が“ＯｎｌｙＯｎｅ”という名前で生成したと思っているミューテックスは、オペレーティングシステム１０２の内部では“ＯｎｌｙＯｎｅ１２３４”という名前で管理されているが、以降のプロセスＡ１０５による“ＯｎｌｙＯｎｅ”ミューテックスの使用に関して齟齬は生じない。例えばプロセスＡ１０５がハンドルＡを指定して処理を要求すれば、オペレーティングシステム１０２はハンドルＡに紐付く “ＯｎｌｙＯｎｅ１２３４”ミューテックスに対する処理であると判断できる。プロセスＡ１０５が“ＯｎｌｙＯｎｅ”という名前を直接指定して処理を要求しても、名前空間フィルタ１０７が図３に示す処理に従い名前の変換を行なうので、やはりオペレーティングシステム１０２は“ＯｎｌｙＯｎｅ１２３４”ミューテックスに対する処理であると判断できる。
【００２５】
また、プロセスＡ１０５が終了する前に同一アプリケーションプログラムからプロセスＢ１０６が起動されたとする。プロセスＢがミューテックス“ＯｎｌｙＯｎｅ”の新規生成を要求すると（ステップ２０１）、図３の処理が始まり、名前空間フィルタ１０７がその要求を受け取る（ステップ３０１）。プロセスＢのプロセスＩＤはプロセスＡと必ず異なる値になるので、例えばプロセスＢのプロセスＩＤが“１２３８”であるとすると、名前空間フィルタ１０７は“ＯｎｌｙＯｎｅ１２３８”という名前のミューテックス生成要求をカーネルサービス１０３に送る（ステップ３０２）。
【００２６】
カーネルサービス１０３からミューテックス生成要求を転送されたオブジェクトマネージャ１０４は、“ＯｎｌｙＯｎｅ１２３８”という名前のオブジェクトが存在するか確認する。本実施形態においては存在しないので、新たなミューテックスを生成し、そのハンドル（以下“ハンドルＢ”と呼ぶ）をカーネルサービス１０３に返す。カーネルサービス１０３からハンドルＢを返された名前空間フィルタ１０７は、これをプロセスＢに返す（ステップ３０３、３０４）。
【００２７】
プロセスＢはステップ２０１においてミューテックス生成要求に成功したので、ステップ２０２に移る。
【００２８】
以上のように、本実施形態の名前空間フィルタは、既定の名前付きオブジェクトを生成して複数プロセス同時起動を自ら防ぐアプリケーションプログラムに対して、強制的に複数プロセスを起動可能にしている。これにより、１つのプロセスで複数の文書ファイルを扱う設計になっているアプリケーションプログラムであっても、文書ファイルごとにプロセスを起動させることが可能になる。また、文書ファイル間の情報フロー制御の問題を、メモリ空間の独立がオペレーティングシステムにより保障されるプロセス単位の情報フロー制御問題に変換でき、よって情報フロー制御の基盤を提供可能となる。
【００２９】
また、本実施形態の名前空間フィルタ１０７は、既定の名前を持つ共有メモリやパイプを通してプロセス間通信を行なうよう設計された複数のアプリケーションプログラムに対し、それらアプリケーションプログラムから起動した各プロセスが共通の名前を持つ共有メモリやパイプを作成することを妨げる。これにより、アプリケーションプログラムの使用者に関知されない隠れ通信路（コバートチャネル）による不正な情報フローの発生を防止できる。
【００３０】
さらに、本実施形態の名前空間フィルタによるオブジェクト名の変換において、プロセスを一意に識別する情報を連結するのではなく、プロセスグループを一意に識別する情報を連結するように構成することで、複数プロセスが連携して１つの処理を行なうアプリケーションプログラムの動作に影響を与えずに複数プロセス同時起動の抑止を回避できる。以下では、第２の実施形態として、プロセスグループを単位として名前空間フィルタによるオブジェクト名の変換を行なう例について説明する。特に、第１の実施形態と異なる部分を中心に説明するものとする。
【００３１】
第２の実施形態の名前空間フィルタ１０７におけるプロセスグループの構成方法の１つの例として、親子関係にあるプロセスをプロセスグループとする方法がある。この例における名前空間フィルタ１０７では、ステップ３０２においてオブジェクト生成要求に含まれる名前に連結する情報をプロセス毎に記憶する。オペレーティングシステムのシェル（ユーザーの操作を受け付けて、与えられた指示をオペレーティングシステムに伝えるプロセス）から起動されるプロセスの場合、連結する情報はそのプロセスを一意に識別する情報とする。このプロセスから起動される子プロセス、子プロセスから起動される孫プロセスなど、シェルから起動されたプロセスの子孫プロセスの場合、連結する情報はシェルから起動されたプロセスの連結情報とする。
【００３２】
以上のように構成したプロセスグループを単位とした名前空間フィルタによるオブジェクト名の変換は、次の場合に効果を発揮する。いま文書ファイルを編集するアプリケーションプログラム（ＡＰ１と呼ぶ）とその文書ファイルに含まれる図を編集するアプリケーションプログラム（ＡＰ２と呼ぶ）から構成されるアプリケーションプログラムグループがあるものとする。ユーザーが文書ファイルをＡＰ１から起動したプロセス（Ｐ１と呼ぶ）で編集中にその文書ファイルに含まれる図を編集しようとすると、Ｐ１がＡＰ２からＰ２を起動して図を編集可能にする。この際、Ｐ１はＰ２と既定の名前を持つ共有メモリを通して図データをやり取りするものとする。このような場合、上記第１の実施形態で示した名前空間フィルタ１０７のようにプロセス毎にオブジェクト名に連結する情報を変えてしまうと、Ｐ１とＰ２が共有可能な共有メモリを生成できない。第２の実施形態の名前空間フィルタ１０７であれば、親子関係にあるＰ１とＰ２は共有メモリを生成できる。
【００３３】
なお、第２の実施形態の名前空間フィルタにおけるプロセスグループの構成方法の１つの例としてプロセスの親子関係を利用するものを挙げたが、これに限定されるものではない。
【００３４】
また、上記実施形態の名前空間フィルタによるオブジェクト名の変換において、プロセスを一意に識別する情報を連結するのではなく、プロセスがアクセスするデータのセキュリティ要求レベルを一意に識別する情報を連結するように構成してもよい。これにより、同一のセキュリティ要求レベルを持つデータにアクセスするプロセスの間ではデータフローを制限せず、異なるセキュリティ要求レベルを持つデータにアクセスするプロセスの間ではデータフローを制限することが可能となる。なお、セキュリティ要求レベルの例としては、Windows Vista（登録商標）に導入された整合性レベルがある。また、データ作成者の役職や所属をセキュリティ要求レベルとして利用することも考えられる。
【図面の簡単な説明】
【００３５】
【図１】プロセス間リソース共有防止システムシステムの構成の概要図
【図２】複数プロセス同時実行を自ら防ぐアプリケーションプログラムの処理手順を示すフローチャート
【図３】名前空間フィルタの処理手順を示すフローチャート
【符号の説明】
【００３６】
１０１…端末、１０２…オペレーティングシステム、１０３…カーネルサービス、１０４…オブジェクトマネージャ、１０５…プロセスＡ、１０６…プロセスＢ、１０７…名前空間フィルタ。
【図１】
2008234128.tif 000003
【図２】
2008234128.tif 000004
【図３】
2008234128.tif 000005