Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4887985B2 - ポリシ検査システム、方法、及び、プログラム - Google Patents
[go: Go Back, main page]

JP4887985B2 - ポリシ検査システム、方法、及び、プログラム - Google Patents

ポリシ検査システム、方法、及び、プログラム Download PDF

Info

Publication number
JP4887985B2
JP4887985B2 JP2006240225A JP2006240225A JP4887985B2 JP 4887985 B2 JP4887985 B2 JP 4887985B2 JP 2006240225 A JP2006240225 A JP 2006240225A JP 2006240225 A JP2006240225 A JP 2006240225A JP 4887985 B2 JP4887985 B2 JP 4887985B2
Authority
JP
Japan
Prior art keywords
policy
logical expression
condition
storage unit
equal
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.)
Expired - Fee Related
Application number
JP2006240225A
Other languages
English (en)
Other versions
JP2008065448A (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 JP2006240225A priority Critical patent/JP4887985B2/ja
Publication of JP2008065448A publication Critical patent/JP2008065448A/ja
Application granted granted Critical
Publication of JP4887985B2 publication Critical patent/JP4887985B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、ポリシ検査システム、方法、及び、プログラムに関し、更に詳しくは、管理対象システムへの適用に問題があるポリシ記述を検査するポリシ検査システム、方法、及び、プログラムに関する。
ポリシを用いて管理対象システムの制御を行う技術がある(ポリシベースの管理システムについては、例えば特許文献1参照)。また、このような技術で用いるポリシについて、ポリシの検査を行うポリシ検査システムがある。従来のポリシ検査システムについては、非特許文献1、非特許文献2に記載されている。図12は、非特許文献1に記載のポリシ検査システムの構成を示している。この従来のポリシ検査システム900は、入力装置911、同時発火検査手段912、衝突検査手段913、出力装置914、及び、記憶装置917を有する。記憶装置917は、ポリシ記憶部915と、衝突ルール記憶部916とを含む。
入力装置911は、特許文献1に記載されるようなポリシ管理システムに登録しようとしているポリシ記述を受け付ける。ポリシ記述は、if-then型のルールを記述したものであり、一般に、いつポリシを実行するかを示す発火条件を記述した部分と、発火条件が満たされたときに実行される管理対象への操作を記述した部分とを含む。この従来のポリシ検査システム900では、これらに加え、ポリシ記述に、管理対象への操作が管理対象に与える作用を表現した、∧結合された述語論理式(以下、便宜的に事後条件と呼ぶ)を含めている。
入力装置911は、検査対象のポリシ記述を受け付けると、同時発火検査手段912に、ポリシを渡す。同時発火検査手段912は、ポリシ記憶部915に既に登録されているポリシ記述を全て読み出し、読み出したポリシ記述のうちで、入力装置911から渡された検査対象のポリシ記述の発火条件と記号的に同一の発火条件を持つポリシ記述、つまりは同時に発火する可能性があるポリシ記述を検索し、その集合を作成する。同時発火検査手段912は、検査対象のポリシ記述と同時に発火する可能性があるポリシ記述の集合を作成すると、作成したポリシ記述の集合と、検査対象のポリシ記述とを、衝突検査手段913に渡す。
衝突検査手段913は、ポリシ記述の集合と、検査対象のポリシ記述とを受け取ると、衝突ルール記憶部916から、衝突ルールの一覧を読み込む。衝突ルールは、述語のリストである。衝突検査手段913は、ポリシ記述の集合と、検査対象のポリシ記述とにおける事後条件を∧結合すると、読み込んだ各衝突ルールのそれぞれに対して、作成した事後条件の論理式により真になる述語が、当該衝突ルールの中に2つ以上あるか否かを調べる。調査の結果、2つ以上あった場合には、出力装置914を用いて、受け付けたポリシ記述に問題がある可能性があることを出力する。
次に、非特許文献2に記載のポリシ検査システムについて説明する。図13は、非特許文献2に記載されたポリシ検査システムの構成を示している。ポリシ検査システム901は、入力装置921、検査手段922、充足判定手段923、出力装置924、及び、記憶装置925を備える。記憶装置925は、ポリシ記憶部926を含む。入力装置921は、検査対象であるポリシ記述を受け付けると、検査手段922に、受け付けたポリシ記述を受け渡す。
検査手段922は、検査対象のポリシ記述を受け取ると、ポリシ記憶部926に既に登録されているポリシ記述を全て読み込む。検査手段922は、読み込んだポリシ記述のそれぞれについて、入力装置921から受け取った検査対象のポリシ記述と衝突するか否かを検査する。この検査には、充足判定手段923を用いる。検査手段922は、まず、ポリシの発火条件が充足可能であるか否か、つまりは、同時発火を起こすポリシ記述であるか否かを、充足判定手段923を用いて検査する。その後、同時発火を起こすポリシについて、ポリシ記述の操作が同時実行可能か否かを、充足判定手段923を用いて判断する。発火条件及び操作方法は、述語論理によって記述されており、充足判定手段923は、それら述語論理が充足可能であるか否かを判断する。検査手段922は、同時発火するポリシ記述について、操作方法の述語論理が充足不可能と判断されると、ポリシ記述が衝突すると判定し、出力装置924に、その結果を出力させる。
例えば、あるコンピュータシステムの設定ファイルの属性名をxとする。このときに、x=10(属性xの値を10にする)という操作が定義されたポリシ記述と、x=20(属性xの値を20にする)という操作が定義された別のポリシ記述との衝突を判定する場合を考える。ポリシ検査システム901は、与えられたポリシ記述のそれぞれの操作の∧結合の論理式、つまりx=10 ∧ x=20の充足可能性(xのドメインを整数とする)を判定し、論理式が充足不可能である、すなわち与えられた論理式を満たすような変数の組み合わせが存在しないことを発見すると、与えられたポリシの組み合わせが整合しない(衝突する)と判定する。
特開2002−111729号公報 シェタン・シバ・シャンカ(Chetan Shiva Shankar)、他 著、「アン・イーシーエー―ピー・ポリシーベースド・フレームワーク・フォー・マネージング・ユビキタス・コンピューティング・エンバイロメンツ(An ECA-P Policy-based Framework for Managing Ubiquitous Computing Environments)、モビキタス(Mobiquitous)2005議事録、米国 ダクシ・アグラワル(Dakshi Agrawal)、他 著「ポリシー・ラティフィケーション(Policy Ratification)」、ポリシー(Policy)2005議事録、米国
非特許文献1では、ポリシ記述に事後条件を与え、更に、不適切な事後条件の組み合わせを示す衝突ルールを与えることにより、ポリシ記述間の不整合を検出する。非特許文献1では、事前に、人間が、あらかじめ考え得る全ての不適切なポリシ記述の組み合わせを事前に想定してポリシ検査システムに与える必要があり、作成者の作業負担が大きいという問題がある。また、全ての不適切な組み合わせを用意することは困難であり、衝突ルールの不足によって問題があるポリシ記述を見逃す可能性が高くなる。
非特許文献2では、非特許文献1とは異なり、充足判定により、衝突ルールを人間が与えることなしに、衝突を検査することが可能である。しかしながら、非特許文献2では、管理対象システム上で成立する条件を考慮していない。このため、管理対象システムの性質を適切に反映したポリシ検査を行うことができず、ポリシの衝突を見逃して、本来は衝突するはずのポリシ記述の組み合わせを、衝突しないと判定する場合があるという問題がある。
非特許文献2における問題点について、具体例を挙げて説明する。あるポリシにa→b(aならばb)という定義があり、別のポリシにa→¬b(aならばbでない)という定義があったとする。a、bは、例えばx>0やy=4などの真偽値を示す原始論理式とする。また、充足判定手段923における衝突判定では、充足不可能な場合にポリシは衝突すると判定するものとする。
上記2つのポリシの定義を∧結合した(a→b)∧(a→¬b)は、¬a(aではない)を仮定することで真になるため、前記ポリシ検査システムでは衝突しないと判断される。しかし、実際の管理対象システムが、「a」が常に成立するという性質を備えていた場合、¬aは成立しないため、先のポリシは衝突すると判断されなければならない。このように、非特許文献2に記載の従来のポリシ検査システムでは、管理対象システムにおいて成立する条件を考慮していないため、ポリシの衝突を見逃す可能性が高くなる。
また、非特許文献2では、論理式中の束縛変数が示す対象の等価性を何ら考慮していない。このため、充足可能性判定によりポリシの衝突を検査する場合に、論理式中に登場する束縛変数が、同一の管理対象を指している可能性を考慮した制約が含まれないことで、ポリシの衝突を見逃す可能性があるという問題もある。
本発明は、充足可能性判定により問題のあるポリシ記述を検査する際に、管理対象システムの性質に基づいて、ポリシ記述を検査できるポリシ検査システムを提供することを目的とする。
また、本発明は、上記目的を達成した上で、充足可能性判定により問題のあるポリシ記述を検査する際に、論理式中に登場する束縛変数が示す対象の等価性に関する制約を与えることができるポリシ検査システム、方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明のポリシ検査システムは、
検査対象のポリシ記述を検査するポリシ検査システムであって、
前記検査対象のポリシ記述を受け付ける入力装置と、
管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、
登録済みのポリシ記述を記憶するポリシ記憶部と、
前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置により受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、を有し、
前記検査手段が、
論理式の充足判定を行う充足判定手段と、
前記不変条件記憶部に記憶された不変条件及び前記ポリシ記憶部に記憶された登録済みのポリシ記述を参照し、前記入力装置により受け付けられた前記検査対象のポリシ記述に含まれる事後条件と前記登録済みポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成する論理式生成手段と、
前記論理式生成手段が生成した論理式の充足可能性を、前記充足判定手段を用いて判定するポリシ整合性検査手段と、
前記管理対象システムの状態を表現したインスタンス属性のうち、管理対象システムのクラスに関し、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部と、
を有し、
前記ポリシ整合性検査手段による判定に先立って、前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を、前記充足判定手段を用いて判定する不正ポリシ検査手段を更に備え、
前記管理対象システムの状態はインスタンスによって表現され、
前記不正ポリシ検査手段は、
前記充足判定手段による充足性判定に先立って、前記Key属性記憶部を参照し、前記管理対象システムの状態を表現したインスタンスのうち充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、
前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
ことを特徴とする。
本発明のポリシ検査方法は、検査対象のポリシ記述を受け付ける入力装置と、管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、登録済みのポリシ記述を記憶するポリシ記憶部と、前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置に受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、を有するコンピュータを用いて、検査対象のポリシ記述を検査するポリシ検査方法であって、
前記コンピュータが、前記不変条件記憶部に記憶している不変条件と、前記入力装置により入力された前記ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した論理式とに基づいて、前記検査対象のポリシ記述の検査を検査手段により行うステップを有し、
前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
前記ポリシ記述の検査を行うステップが、
前記コンピュータが、前記不変条件を記憶する前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成するステップと、
生成した論理式の充足可能性を判定する不正ポリシ検査ステップと、
前記不正ポリシ検査ステップで充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と前記登録済みポリシ記述に含まれる事前条件と前記不変条件とを∧結合した論理式を生成するステップと、
生成した論理式の充足可能性を判定するステップと、
該判定するステップにおいて充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記登録済みポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成するステップと、
生成した論理式の充足可能性を判定するポリシ整合性検査ステップと、
を有し、
前記ポリシ整合性検査ステップによる判定に先立って、前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定する不正ポリシ検査ステップを更に備え、
前記不正ポリシ検査ステップが、前記論理式の充足性判定に先立って、前記コンピュータが、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照し、充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加えるステップを含み、
前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
ことを特徴とする。
本発明のプログラムは、コンピュータに、検査対象のポリシ記述を検査する処理を実行させるプログラムであって、
コンピュータを、検査対象のポリシ記述を受け付ける入力装置と、管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、登録済みのポリシ記述を記憶するポリシ記憶部と、前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置で受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、として機能させ、
前記コンピュータに、
管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件と、前記入力装置により入力された前記ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した論理式とに基づいて、前記検査対象のポリシ記述の検査を前記検査手段により行うステップを実行させるプログラムであって、
前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
前記ポリシ記述の検査を行うステップが、
前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定する不正ポリシ検査ステップと、
前記不正ポリシ検査ステップで充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と、前記登録済みポリシ記述に含まれる事前条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定し、該判定において充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記登録済みポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定するポリシ整合性検査ステップとを実行させ、
前記不正ポリシ検査ステップが、
前記論理式の充足性判定に先立って、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照し、充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加えるステップを含み、
前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
ことを特徴とする。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態のポリシ検査システムの構成を示している。ポリシ検査システム10は、第1の検査手段11、第2の検査手段12、充足判定手段13、入力装置14、出力装置15、及び、記憶装置16を有する。ポリシ検査システム10は、プログラム動作により動作するコンピュータシステムとして構成される。記憶装置16は、ハードディスク装置等の記憶装置であり、管理対象システムの状態について常に成立すべき条件を一階述語論理式で表現した不変条件を記憶する不変条件記憶部161と、既に受理されてポリシ管理システムに登録されているポリシ記述を記憶するポリシ記憶部162とを有する。
入力装置14は、検査対象であるポリシ記述を受け付けるコンピュータの入力用デバイスである。第1の検査手段(不正ポリシ検査手段)11は、検査対象のポリシ記述が、管理対象システムに対して不正な作用を持つか否かを判定する。第2の検査手段(ポリシ整合性検査手段)12は、検査対象のポリシ記述が既に登録されているポリシ記述と整合するか否かを判定する。充足判定手段13は、第1の検査手段11及び第2の検査手段12が検査を行う際に利用され、述語論理式の充足可能性を判定する。出力装置15は、ディスプレイやファイルなどの外部出力装置であり、第1の検査手段11及び第2の検査手段12が検査結果を出力する際に利用される。
図2は、ポリシ記述の構成を示している。ポリシ記述71は、ポリシ本体と、ポリシ仕様とから構成される。ポリシ本体は、ポリシ管理システムで利用されるif-then型のルールを記述した部分である。ポリシ仕様は、ポリシ本体の振る舞いを表現したものである。図3に、ポリシ仕様の構成を示す。ポリシ仕様72は、事前条件と事後条件とを含む。事前条件は、ポリシ本体の発火条件を、一階述語条件により表現したものである。事後条件は、ポリシ本体に定義された操作の直後に、管理対象システムの状態について成立すべき条件を表現したものである。
なお、ポリシ記述において、ポリシ本体の内容とポリシ仕様の内容とが重複する場合には、ポリシ本体に記載される情報をポリシ仕様として利用し、ポリシ仕様には重複する情報を含めなくてよい。例えば、ポリシ本体の発火条件が述語論理により記述される場合には、その論理式を事前条件として扱い、ポリシ仕様には事前条件を含めなくてよい。
第1の検査手段11は、入力装置14によって入力された検査対象のポリシ記述を受け取る。第1の検査手段11は、ポリシ記述を受け取ると、不変条件記憶部161から、管理対象システムの状態について常に成立すべき条件を表現した不変条件を読み込み、ポリシ記述と読み込んだ不変条件との充足可能性を、充足判定手段13を用いて判定する。第1の検査手段11は、充足判定手段13が充足可能と判定すると、検査対象のポリシ記述を第2の検査手段12に受け渡す。第2の検査手段12は、ポリシ記述を受け取ると、ポリシ記憶部162から、既に登録されているポリシ記述を全て読み込み、読み込んだ各ポリシ記述と、検査対象のポリシ記述とが整合するか否かを、充足判定手段13を用いて判定する。
充足判定手段13は、与えられた一階述語論理式の充足可能性を判定する機能を備えている。充足可能性の判定方法は、例えば、「デイビッド・デトレフ(DAVID DETLEFS)、他 著、「シンプリファイ:ア・セオレム・プルーバー・フォー・プログラム・チェッキング(Simplify: A Theorem Prover for Program Checking)、ジャーナル・オブ・エーシーエム(Journal of the ACM),米国、 第52巻、3号、2005年5月、365−473頁」に記載されている。
図4は、ポリシ検査システム10の全体の動作の概略手順を示している。入力装置14により、検査対象のポリシ記述を受け付ける(ステップA10)。第1の検査手段11は、入力装置14から検査対象のポリシ記述を受け取り、そのポリシ記述が管理対象システムに対して不正な作用を与えるか否かを検査する(ステップA20)。第1の検査手段11による検査の結果、問題がないことが確認されると、第2の検査手段12は、検査対象のポリシ記述が、既に登録されている他のポリシ記述との間で不整合を起こすか否かを検査し(ステップA30)、その検査結果を出力装置15に出力する。
図5は、図4のステップA20における第1の検査手段11による検査の動作手順を示している。第1の検査手段11は、入力装置14から検査対象のポリシ記述を受け取ると、不変条件記憶部161から、一階述語論理で記述された不変条件を読み込む。第1の検査手段11は、不変条件を読み込むと、検査対象のポリシ記述のポリシ仕様における事後条件(図3)と、読み込んだ不変条件とを∧によって結合した論理式を作成する(ステップB10)。論理式の作成後、第1の検査手段11は、作成した論理式を、充足判定手段13が検査可能な形に変換する(ステップB20)。例えば、上記した文献に記載の充足可能性判定ツールであるシンプリファイ(simplify)は、論理式がS式である必要があり、ステップB20では、作成した論理式をこのような形式に変換する。
第1の検査手段11は、論理式の変換後、検査対象のポリシ記述における事後条件と不変条件とから構成される論理式が充足可能であるか否かを、充足判定手段13を用いて判定する(ステップB30)。第1の検査手段11は、充足判定手段13により、充足可能と判定されたか否かを判断する(ステップB40)。第1の検査手段11は、論理式が充足不可能であると判定されたときには、検査対象のポリシ記述は管理対象システムに対して不正な作用を持つと判断し、出力装置15に、ポリシ記述に問題がある旨のエラーを出力して(ステップB50)、全体の処理を終了する。第1の検査手段11は、論理式が充足可能であると判定されたときには、検査対象のポリシ記述は管理対象システムに対して不正な作用を持たないと判断し、ポリシ記述及び不変条件を第2の検査手段12に受け渡して、ステップA30(図4)の検査を実行させる。
図6は、図4のステップA30における第2の検査手段12による検査の動作手順を示している。第2の検査手段12は、図5に示す手順で、不変条件と同時に充足可能であることが確認されたポリシ記述と、不変条件とを第1の検査手段11から受け取る。第2の検査手段12は、ポリシ記述と不変条件とを受け取ると、ポリシ記憶部162から、登録済みのポリシ記述に含まれるポリシ仕様を全て読み込み(ステップC10)、ポリシ記述の検査を開始する。第2の検査手段12は、読み込んだポリシ仕様の全てについて検査を終了したか否かを判断し(ステップC20)、まだ終了していない場合には、未検査のポリシ仕様の中から1つを選択する(ステップC30)。
第2の検査手段12は、第1の検査手段11から受け取った検査対象のポリシ記述が、ステップC30で選択したポリシ仕様と同時に発火する可能性があるか否かを判断する(ステップC40)。ステップC40で同時発火する可能性があると判断されるということは、管理対象システムで満たされるべき条件下において、検査対象のポリシ記述と、ステップC30で選択されたポリシ記述とが同時に適用される可能性があるということを意味している。同時に発火する可能性がない場合には、2つのポリシ記述は同時に適用されることがないので、ステップC20へ戻り、検査を行っていないポリシ仕様がまだ残っているか否かを判断して次のポリシ仕様を選択する。第2の検査手段12は、同時発火が可能であると判断すると、検査対象のポリシ記述と、ステップC30で選択したポリシ仕様とが、同時に実行可能か否かを判定する(ステップC50)。
第2の検査手段12は、ステップC50で同時実行が不可能であると判断すると、ポリシ記述に問題がある旨を、出力装置15を用いて出力し(ステップC60)、全体の処理を終える。同時実行が可能であると判断した場合には、ステップC20に戻り、未検査のポリシ記述が残っているか否かを判断する。第2の検査手段12は、ステップC30からステップC50までの検査を、ステップC20で未検査のポリシ仕様がないと判断されるまで行う。第2の検査手段12は、検査の結果、ステップC50で、検査対象のポリシ記述と同時実行が不可能と判定されるポリシ仕様が存在しないときには、検査対象のポリシ記述には問題がないと判断し、検査対象のポリシ記述を、ポリシ記憶部162に登録し(ステップC70)、検査を終了する。
図7は、同時発火の可能性を判断するステップC40(図6)の動作手順の詳細を示している。ステップC40では、第2の検査手段12は、まず、検査対象のポリシ記述に含まれる事前条件と、不変条件と、ステップC30で選択されたポリシ仕様の事前条件とを∧で結合した論理式を作成する(ステップD10)。次いで、作成した論理式を、充足判定手段13が検査可能な形に変換する(ステップD20)。その後、ステップD10で作成した論理式が充足可能か否かを、充足判定手段13を用いて判定する(ステップD30)。
第2の検査手段12は、ステップD30の判定で、充足可能と判定されたか否かを判断する(ステップD40)。論理式が充足可能と判定された場合には、検査対象のポリシ記述と、ステップC30(図6)で選択されたポリシ仕様に対応付けられるポリシ記述とが同時に発火する可能性があるため、同時発火可能と判定する(ステップD50)。この場合には、ステップC40からステップC50へ進んで、同時実行可能か否かの検査を行う。一方、論理式が充足不可能と判断された場合には、検査対象のポリシ記述と、選択されたポリシ仕様に対応するポリシ記述とが同時に発火する可能性がないため、同時発火なしと判定する(ステップD60)。同時発火しない場合には、当該組み合わせについては、ポリシ記述間に不整合は発生しないものと判定し、次のポリシ仕様を選択するために、ステップC40からステップC20に戻る。
図8は、実行可能か否かを判定するステップC50(図6)の動作手順の詳細を示している。ステップC50では、第2の検査手段12は、まず、検査対象のポリシ記述に含まれる事後条件と、不変条件と、ステップC30で選択されたポリシ仕様の事後条件とを∧で結合した論理式を作成する(ステップE10)。次いで、作成した論理式を、充足判定手段13が検査可能な形に変換する(ステップE20)。その後、ステップE10で作成した論理式が充足可能か否かを、充足判定手段13を用いて判定する(ステップE30)。
第2の検査手段12は、ステップE30の判定で、充足可能と判定されたか否かを判断する(ステップE40)。論理式が充足可能と判定された場合には、検査対象のポリシ記述と、ステップC30(図6)で選択されたポリシ仕様に対応するポリシ記述とを同時に実行しても問題が発生しないため、同時実行可能と判定する(ステップE50)。この場合には、ステップC50からステップC20に戻って、次の組み合わせでの検査を行う。一方、論理式が充足不可能と判断された場合には、検査対象のポリシ記述と、選択されたポリシ仕様に対応するポリシ記述とを同時に実行することは不可能であると判定する(ステップE60)。このようなポリシ記述の組み合わせは不正であり、ステップC50からステップC60へ進んで、検査対象のポリシに問題がある旨を出力する。
本実施形態では、ポリシ記述に対応した述語論理式の充足可能性により、2つのポリシ記述間の整合性を検査する際に、検査対象のポリシ記述に対応する論理式と、既に登録済みのポリシ記述に対応する論理式とを∧結合した論理式に、管理対象システムの状態に対して常に成立する不変条件を更に∧結合した論理式を作成し、その論理式に対して、充足可能性を判断する。このように、管理対象システムの性質を、検査時の制約として加えることにより、ポリシ記述が適用される環境が、より正確に論理式として表現されることになり、その結果、より正確にポリシ記述の問題を検査することができるようになる。
次に、本発明の第2実施形態について説明する。図9は、本発明の第2実施形態のポリシ検査システムの構成を示している。本実施形態のポリシ検査システム10aは、記憶装置16aがKey属性記憶部163を備える点で、図1に示す第1実施形態のポリシ検査システム10と相違する。本実施形態では、管理対象システムがオブジェクト指向型の情報モデルで表現されており、その情報モデルに登場するクラスや属性名を用いて条件を記述する際に、束縛変数で示されたインスタンスが同一である場合を論理式中に制約として含める。管理対象システムを表現する情報モデルの一例としては、「“シー・アイ・エム コア モデル ホワイトペーパー(CIM Core Model White Paper)ver2.4”2000年8月30日[online][平成17年3月8日検索]、ディストリビューティッド・マネージメント・タスクフォース(Distributed Management Task Force)、インターネット <URL http://www.dmtf.org/standards/documents/CIM/DSP0111.pdf>」に示されるシー・アイ・エム(CIM)がある。
管理対象システムを構成する各管理対象物は、ある特定の性質を持ったクラスのインスタンスとして表現される。以下、本実施形態における条件検査システムの説明に先立って、そのような管理対象システムの状態に対する条件の一例を示す。管理対象システムであるコンピュータで稼動するプロセスであって、特に外部に特定のサービスを提供するプロセスの状態は、Serviceクラスのインスタンスとして表現されているとする。このとき、Serviceクラスは、状態を表現する属性として、NameとStatusとを持つ。Nameはサービスの名前であり、Statusはサービスの稼働状況を示す。
上記Serviceクラスに関する条件としては、下記の条件が考えられる。
∃s∈Service , s.Name=“mysql” ∧ s.Status=“running” (論理式A)
上記条件(論理式A)は、Serviceクラスのインスタンスであって、Name属性がmysqlであり、かつ、Status属性がrunningであるインスタンスが存在することを示している。このような論理式は、例えば、MySQLサービスが稼動状態になったら発火するポリシ記述の事前条件や、MySQLサービスを稼動状態にするポリシ記述の事後条件などとして与えられることが考えられる。
次に、問題を説明するために、上記の論理式Aとは別に、
∃t∈Service , t.Name=“mysql” ∧ t.Status =“stopped” (論理式B)
という条件(論理式B)を考える。この論理式Bは、先に説明した論理式Aとは、Status属性の値が異なっている。これら2つの論理式A及び論理式Bを∧結合したものは、充足可能である。
一方、インスタンスを一意に識別するために、特定の属性は、クラスのインスタンス間で一意の値をとるものとする。そのような属性を、Key属性と呼ぶ。Name属性をKey属性と仮定すると、論理式Aと論理式Bでは、sとtではName属性の値が等しいため、sとtは、同じインスタンスに対する言明を与えていることになる。この場合、ある論理式、すなわちポリシ記述と、別のポリシ記述とにおいて、同じインスタンスの属性に対して異なる値を同時に設定するように条件が与えられているため、このような組み合わせのポリシ記述は整合しないように結果を出力しなければならない。このように、インスタンスが同一の場合を考慮した充足可能性の判定を実現するために、本実施形態では、Key属性を用いて、充足判定時にインスタンスの等価性制約を加える。
Key属性記憶部163は、クラス名と、当該クラス名に定義されたKey属性のリストとを対応付けて記憶する。1つのクラスには、1つ以上のKey属性が定義され、Key属性が複数ある場合には、複数のKey属性を組み合わせた値が、同一クラスのインスタンス間で唯一となる。本実施形態では、第1の検査手段11及び第2の検査手段12は、Key属性を利用した等価性制約を、充足可能性を判定する式に加えて、充足可能性の判定を行う。
図10は、充足可能性判定の前に実行するインスタンスの等価性制約を追加する処理の動作手順を示している。この処理は、ステップB20(図5)、ステップD20(図7)、又は、ステップE20(図8)で論理式を充足判定手段13が検査可能な形式に変換した後に実行される。なお、等価性制約を加える対象となる論理式は、事後条件と不変条件とを∧で結合したもの(図5)、検査対象のポリシ記述の事前条件と不変条件と登録済みポリシ記述の事前条件とを∧で結合したもの(図7)、又は、検査対象のポリシ記述の事後条件と不変条件と登録済みポリシ記述の事後条件とを∧で結合したもの(図8)となるが、論理式に対する操作は何れの場合でも同じ動作となるため、以下では、代表として、第1の検査手段11が、事後条件と不変条件とを∧で結合した論理式に対して等価性制約を加える例を用いて説明する。
第1の検査手段11は、まず、論理式を冠頭標準形に変換する。これにより、論理式中に登場する束縛変数名は重複しないように名前が付け替えられる。次いで、その論理式に登場するクラス名と、当該クラス名のインスタンスに対応付けられた束縛変数名のリストとを組にした表を作成する(ステップF10)。このとき、クラスのインスタンスに対応する束縛変数の数が1つのみであるときには、表に含めない。
ステップF10で作成された表の各行には、クラス名と、対応する束縛変数のリストとが格納されている。第1の検査手段11は、表の全ての行について処理を完了したか否かを判断する(ステップF20)。未処理の行が残っているときには、未処理の行(クラス名)を、1つを選択する(ステップF30)。第1の検査手段11は、選択した行に含まれる束縛変数のリストから2つを選択してできる各束縛変数の可能な組み合わせを作成する。その後、作成した組み合わせに、未処理の組み合わせが存在するか否かを判断する(ステップF40)。
第1の検査手段11は、未処理の組み合わせが残っているときには、未処理の組み合わせのうちの1つを選択し、論理式を格納するための空のリストを作成する(ステップF50)。このリストを制約リストと呼ぶ。第1の検査手段11は、選択した行に含まれるクラス名を用いて、Key属性記憶部163から、当該クラス名に定義されたKey属性名のリストを取得する(ステップF60)。第1の検査手段11は、取得したKey属性の全てについて処理を完了したか否かを判断する(ステップF70)。
第1の検査手段11は、全てのKey属性について処理を完了していないときには、未処理のKey属性を1つ選択し、当該組み合わせに含まれる束縛変数のKey属性が等しいことを示す論理式を生成する。第1の検査手段11は、生成した論理式を、制約リストに格納する(ステップF80)。その際、第1の検査手段11は、制約リストが空であれば、生成した論理式を、そのまま制約リストに格納する。制約リストに、既に論理式が格納されているときには、格納すべき論理式と、格納済みの論理式とを∧結合したものを、制約リストに格納する。
例えば、束縛変数名の組み合わせをxとyとし、Key属性名をpとすると、生成される論理式は、x.p=y.pとなる。制約リストが空であれば、第1の検査手段11は、ステップF80で、制約リストにx.p=y.pを格納する。制約リストに、既に論理式Lが格納されている場合には、ステップF80で、L∧(x.p=y.p)を制約リストに格納する。
第1の検査手段11は、ステップF80からステップF70へ戻り、未処理の組み合わせが存在するか否かを判断する。全てのKey属性について処理を終えると、制約リストに含まれる論理式と、当該組み合わせに含まれる変数名が示すインスタンスが等しいことを示す論理式とが、論理的に等価であることを示す論理式を作成し、充足判定を行う論理式に、作成した論理式を∧結合して制約を追加する(ステップF90)。例えば、制約リストに含まれる論理式をL、束縛変数名の組み合わせをxとyとすると、生成される論理式は、
(L)⇔ (x=y)、又は、((L)→(x=y))∧((x=y)→(L))
となる。生成された論理式をQとし、充足判定を行う論理式をTとすると、ステップF90では、論理式Tと論理式Qとを∧結合したT∧Qを生成する。
第1の検査手段11は、ステップF90の実行後、ステップF40に戻り、未処理の組み合わせが存在するか否かを判断する。未処理の組み合わせが存在するときには、ステップF50へ進み、未処理の行を1つ選択する。ステップF50以降の処理を全ての組み合わせに対して実行したときには、ステップF20に戻り、ステップF10で作成した表の全ての行について、処理を完了したか否かを判断する。未処理の行が残っているときには、ステップF30へ進み、未処理の行を1つ選択する。未処理の行がない、つまり、作成した表の全ての行について、ステップF20以降の処理を完了したときには、等価性制約の処理を終了し、その後の、充足性判定処理(ステップB30(図5))へ進む。
本実施形態では、論理式を、充足判定手段13に与えて判定を行う前に、各クラスごと、各束縛変数の組み合わせごとに、等価性に関する制約式を作成し、これを充足判定を行う論理式に∧結合していき、制約式が追加された論理式に対して、充足判定手段13による判定を行う。このように、論理式の充足判定に先立って、論理式に登場するクラス名に定義された各Key属性のリストを用いて、インスタンスの等価性制約を生成し、充足判定を行う論理式に∧結合した上で充足判定を行うことで、検査に用いる論理式がより厳密になり、第1実施形態で得られる効果に加えて、インスタンスの等価性を考慮した、より正確なポリシ検査が可能となるという効果を得ることができる。
次に、本発明の第3実施形態について説明する。まず、本実施形態の目的について説明する。第2実施形態で説明したインスタンスの等価性制約追加では、登場するクラスに定義された全てのKey属性について同じ値をとるようなインスタンスは同一であるという制約を加えた。この制約は、何れかのKey属性が欠落していた場合、或いは、Key属性に関する条件が登場しない場合など、束縛変数に対応付けられたインスタンスが同一であるか否かが明らかでない場合は充足判定に影響を与えない。よって、インスタンスが確実に同一である場合に加えて、同一であるか否かが明らかでない場合にも、同一であるとみなす手段が必要となる。本実施形態では、確実にインスタンスが異なることが論理式の条件により明らかにされている場合を除いて、束縛変数に対応付けられたインスタンス同士が等しいとする制約を加える。このようにすることで、インスタンスが同一か、又は、異なるかがわからないときに、「インスタンスは同一である」という制約を加えて充足可能性を判定できる。
本実施形態におけるポリシ検査システムの構成は、図9に示すポリシ検査システム10aの構成と同じである。図11は、本実施形態の動作手順の一部を示している。本実施形態のポリシ検査システムの動作は、図10に示す制約追加処理において、ステップF60以降の処理手順が、第2実施形態の動作手順と相違する。第1の検査手段11(又は第2の検査手段12)は、ステップF50(図10)で、特定のクラス名と、当該クラス名に対応付けられた束縛変数名の組み合わせを1つ選択すると、Key属性記憶部163から、当該クラス名に定義されたKey属性の一覧を取得し、取得したKey属性のうちで、充足判定を行う論理式の中で組み合わせに含まれる2つの束縛変数名を用いて参照されるKey属性のみを検出する(ステップG10)。
例えば、組み合わせに含まれる束縛変数名をx、yとし、ClassAという名前のクラスについて処理をしているとする。また、ClassAのKey属性がp1、p2であったとする。この場合、論理式中に「x.p1」、「y.p1」、「y.p2」という属性参照が現れたとすると、ステップG10では、Key属性p1のみが検出される。Key属性p2については、束縛変数yによる参照はあるが、束縛変数xによる参照がないために除外される。第1の検査手段11は、ステップG10で、Key属性を検出できたか否かを判断する(ステップG20)。検出されたKey属性が存在しない場合には、組み合わせに含まれる2つの束縛変数名が等しいという制約を、制約リストに追加する(ステップG50)。例えば、組み合わせに含まれる2つの束縛変数名がxとyであれば、(x=y)を制約リストに追加する。
第1の検査手段11は、ステップG10で検出したKey属性のすべてについて処理を完了したか否かを判断する(ステップG30)。未処理のKey属性が存在する場合には、その中から1つを選択し、当該組み合わせに含まれる束縛変数のKey属性が等しいことを示す論理式を生成し、生成した論理式を制約リストに格納する(ステップG40)。ステップG40では、図10のステップF80と同様に、制約リストが空であれば、生成した論理式をそのまま制約リストに格納し、制約リストに既に論理式が格納されているときには、格納すべき論理式と、格納済みの論理式とを∧結合したものを、制約リストに格納する。
第1の検査手段11は、ステップG40で論理式を制約リストに格納すると、ステップG30に戻って、全てのKey属性について処理したか否かを判断する。全てのKey属性について処理を終えた場合には、制約リストに含まれる論理式と、当該組み合わせに含まれる変数名が示すインスタンスが等しいことを示す論理式とが論理的に等価であることを示す論理式を作成し、作成した論理式を、充足判定を行う論理式に∧結合する(ステップG60)。例えば、制約リストに含まれる論理式をL、束縛変数名の組み合わせをxとyとすると、作成される論理式は、
(L)⇔ (x=y)、又は、((L)→(x=y))∧((x=y)→(L))
となる。この作成された論理式をQとし、充足判定を行う論理式をTとすると、T∧Q
が新たに充足判定を行う論理式となる。
上記した図11に示す処理を加えた制約追加手順は、図5のステップB20とステップB30の間、及び、図8のステップE20とステップE30の間に挿入することが好ましい。これは、図5に示す検査、及び、図8に示す検査では、検査対象のポリシ記述が、不変条件又は他のポリシ記述と衝突するか否かを判定するため、危険な可能性がある場合に充足不可能となることが好ましいためである。インスタンスが同一かどうかがわからない場合に、同一とすることで、論理式の充足はより困難となり、潜在的に問題があるポリシ記述を検出できることになる。
一方で、図7に示す検査では、検査対象のポリシ記述と同時に発火する可能性があるポリシを選別しているため、明らかに同時に発火しないポリシの組み合わせのみを排除すべきである。仮に、インスタンスが同一かどうかわからない場合に同一と判断することとすると、同時に発火する可能性がポリシ記述の組み合わせを除外する可能性がある。このため、図5の検査、及び、図8の検査とは異なり、図7のステップD20とステップD30の間には、第2実施形態で説明した図10に示す手順の制約追加動作を挿入することが好ましい。
本実施形態では、特に、不変条件と事後条件の検査(図5)、及び、2つのポリシ記述の事後条件と不変条件との検査(図8)で、論理式中に登場する束縛変数のうちで、対応する2つの束縛変数から参照されない束縛変数については、インスタンスが等しいとする制約を加える。このようにすることで、インスタンスが等しいか否かが明らかでない場合に、インスタンスが等しいと制約を与えることが可能であり、これより、問題がある可能性があるポリシ記述の組み合わせを広く検出することが可能となる。
本発明において、一階述語論理で記述される条件は、連接∧、選言∨、含意→、否定¬などの論理演算子と、“<”、“>”、“=”などの数値や文字列の比較演算による述語、全称記号∀、存在記号∃、及び、x∈Classなどの束縛変数xがクラス名Classのインスタンスに属することを示す∈という記号をASCII文字により表現した文字列により構成される。あるインスタンスの属性値を参照するためには、x.pなどと記述する。xは束縛変数名で、pは当該束縛変数が属するインスタンスのクラスに定義された属性名である。
以下に説明する2つの条件を例に挙げて、充足判定を行う方法の概略を具体的に説明する。ここで述べる等価性制約の追加手法は、第2実施形態に準ずる。また、下記条件1を検査対象のポリシ記述に含まれる事後条件、下記条件2を不変条件として、その充足可能判定を行う場合について説明する。ServiceというクラスのKey属性は、Nameという名前の属性のみであるとする。
条件1:exists s in Service, s.Name="mysql" and s.Status="running"
条件2:exists s in Service, s.Name="mysql" and s.Status="stopped"
上記条件を∧結合し、冠頭標準形にした論理式を以下に示す。
exists s、t in Service,s.Name="mysql" and s.Status="running" and t.Name="mysql" and t.Status="stopped"
ここまでが、ステップB10(図5)とステップB20に対応する。論理式を冠頭標準形に変換する手順は広く知られている。
図10に示す、Key属性を用いた制約追加手続きを行う。論理式に登場するクラス名はServiceのみである。論理式中に登場する束縛変数はsとtの2つであり、その組み合わせは(s,t)のみである。一方、ServiceのKey属性はNameであり、これにより、以下に示す論理式が、ステップF90で追加される制約となる。
((s.Name=t.Name)implies s=t)
次に、充足判定手段13が充足可能性判定ツールとしてシンプリファイ(simplify)を実装している場合の充足判定方法について説明する。シンプリファイを用いて充足判定するためには、インスタンスの属性値のアクセスを関数呼び出しに変換し、文字列は例えばハッシュ値をとり整数に変換し、論理式をS式で表現するなどの変換を行えばよい。更に、シンプリファイは、与えられた論理式の否定について充足可能性を判定するため、与える論理式をあらかじめ否定で反転しておく。
上記の例を、シンプリファイに与える論理式に変換したものを以下に示す。ここでは、mysqlという文字列を1に、runningを2に、stoppedを3という整数に置き換えている。
(NOT (EXISTS (s t)
(AND
(AND
(AND (EQ (Service##Name s) 1)
(EQ (Service##Status s) 2))
(AND (EQ (Service##Name t) 1)
(EQ (Service##Status t) 3)))
(IFF
(EQ (Service##Name s) (Service##Name t))
(EQ s t)))))
上記論理式は、充足不可能であるため、シンプリファイではvalidという回答を出す。なお、充足可能である場合、又は、判定できない場合には、invalidという回答が返る。論理式の充足判定(ステップB40)が完了し、充足不可能と判定されるため、ステップB50に進んで、エラーが出力される。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のポリシ検査システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明は、ポリシ記述を作成する際に、ポリシ記述の問題を検査するためのポリシ検査装置や、ポリシ検査装置をコンピュータに実現するためのプログラムといった用途に適用できる。また、ポリシ記述に従ってコンピュータ・システムやネットワーク・システムを管理するポリシ管理装置に組み込み、登録時に不適切なポリシ記述を検出・排除する機能としても適用可能である。
本発明の第1実施形態のポリシ検査システムの構成を示すブロック図。 ポリシ記述の構成を示すブロック図。 ポリシ仕様の構成を示すブロック図。 ポリシ検査システムの全体の動作の概略手順を示すフローチャート。 第1の検査手段による検査の動作手順を示すフローチャート。 第2の検査手段による検査の動作手順を示すフローチャート。 同時発火の可能性を判断するステップの動作手順の詳細を示すフローチャート。 実行可能か否かを判定するステップの動作手順の詳細を示すフローチャート。 本発明の第2実施形態のポリシ検査システムの構成を示すブロック図。 インスタンスの等価性制約を追加する処理の動作手順を示すフローチャート。 等価性制約の追加の処理の一部の動作手順を示すフローチャート。 非特許文献1に記載されたポリシ検査システムの構成を示すブロック図。 非特許文献2に記載されたポリシ検査システムの構成を示すブロック図。
符号の説明
10:ポリシ検査システム
11:第1の検査手段
12:第2の検査手段
13:充足判定手段
14:入力装置
15:出力装置
16:記憶装置
161:不変条件記憶部
162:ポリシ記憶部
163:Key属性記憶部
71:ポリシ記述
72:ポリシ仕様

Claims (13)

  1. 検査対象のポリシ記述を検査するポリシ検査システムであって、
    前記検査対象のポリシ記述を受け付ける入力装置と、
    管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、
    登録済みのポリシ記述を記憶するポリシ記憶部と、
    前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置により受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、を有し、
    前記検査手段が、
    論理式の充足判定を行う充足判定手段と、
    前記不変条件記憶部に記憶された不変条件及び前記ポリシ記憶部に記憶された登録済みのポリシ記述を参照し、前記入力装置により受け付けられた前記検査対象のポリシ記述に含まれる事後条件と前記登録済みポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成する論理式生成手段と、
    前記論理式生成手段が生成した論理式の充足可能性を、前記充足判定手段を用いて判定するポリシ整合性検査手段と、
    前記管理対象システムの状態を表現したインスタンス属性のうち、管理対象システムのクラスに関し、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部と、
    を有し、
    前記ポリシ整合性検査手段による判定に先立って、前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を、前記充足判定手段を用いて判定する不正ポリシ検査手段を更に備え、
    前記管理対象システムの状態はインスタンスによって表現され、
    前記不正ポリシ検査手段は、
    前記充足判定手段による充足性判定に先立って、前記Key属性記憶部を参照し、前記管理対象システムの状態を表現したインスタンスのうち充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、
    前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
    ことを特徴とするポリシ検査システム。
  2. 前記ポリシ記述が、ポリシ発火条件を一階述語論理で記述した事前条件を更に含んでおり、
    前記ポリシ整合性検査手段は、前記不変条件記憶部及びポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と、前記登録済みポリシ記述に含まれる事前条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を、前記充足判定手段を用いて判定し、充足すると判定すると、前記検査対象のポリシ記述に含まれる事後条件と、前記登録済みポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式の充足可能性の判定を行う、請求項1に記載のポリシ検査システム。
  3. 前記不正ポリシ検査手段は、
    前記充足性判定の対象となる論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を前記充足性判定の対象となる論理式に加え、存在すると判断すると、前記任意の2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記任意の2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項1又は2に記載のポリシ検査システム。
  4. 前記ポリシ整合性検査手段は、
    前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項1、2又は3に記載のポリシ検査システム。
  5. 前記ポリシ整合性検査手段は、
    前記充足性判定の対象となる論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を前記充足性判定の対象となる論理式に加え、存在すると判断すると、前記任意の2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記任意の2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項1〜4のいずれか1項に記載のポリシ検査システム。
  6. 検査対象のポリシ記述を受け付ける入力装置と、管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、登録済みのポリシ記述を記憶するポリシ記憶部と、前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置に受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、を有するコンピュータを用いて、検査対象のポリシ記述を検査するポリシ検査方法であって、
    前記コンピュータが、前記不変条件記憶部に記憶している不変条件と、前記入力装置により入力された前記ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した論理式とに基づいて、前記検査対象のポリシ記述の検査を検査手段により行うステップを有し、
    前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
    前記ポリシ記述の検査を行うステップが、
    前記コンピュータが、前記不変条件を記憶する前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成するステップと、
    生成した論理式の充足可能性を判定する不正ポリシ検査ステップと、
    前記不正ポリシ検査ステップで充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と前記登録済みポリシ記述に含まれる事前条件と前記不変条件とを∧結合した論理式を生成するステップと、
    生成した論理式の充足可能性を判定するステップと、
    該判定するステップにおいて充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記登録済みポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成するステップと、
    生成した論理式の充足可能性を判定するポリシ整合性検査ステップと、
    を有し、
    前記ポリシ整合性検査ステップによる判定に先立って、前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定する不正ポリシ検査ステップを更に備え、
    前記不正ポリシ検査ステップが、前記論理式の充足性判定に先立って、前記コンピュータが、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照し、充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加えるステップを含み、
    前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
    ことを特徴とするポリシ検査方法。
  7. 前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項6に記載のポリシ検査方法。
  8. 前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
    前記ポリシ記述の検査を行うステップが、
    前記コンピュータが、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と、前記登録済みポリシ記述に含まれる事前条件と、前記不変条件とを∧結合した論理式を生成し、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照して、前記事前条件と不変条件とを∧結合して生成した論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、該制約を加えた論理式の充足可能性を判定し、該充足性判定において充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記登録済みポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照して、前記事後条件と不変条件とを∧結合して生成した論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、該制約を加えた論理式の充足可能性を判定するポリシ整合性検査ステップを有し、
    前記ポリシ整合性検査ステップでは、論理式に制約を加える際に、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項6又は7に記載のポリシ検査方法。
  9. 前記ポリシ整合性検査ステップでは、前記事後条件と不変条件とを∧結合した論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を当該論理式に加える、請求項8に記載のポリシ検査方法。
  10. コンピュータに、検査対象のポリシ記述を検査する処理を実行させるプログラムであって、
    コンピュータを、検査対象のポリシ記述を受け付ける入力装置と、管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件を記憶した不変条件記憶部と、登録済みのポリシ記述を記憶するポリシ記憶部と、前記入力装置により受け付けられた前記ポリシ記述中で定義されている操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した所定の論理式で表される事後条件と前記不変条件記憶部に記憶されている前記不変条件とに基づいて、前記入力装置で受け付けられた前記検査対象のポリシ記述の検査を行う検査手段と、として機能させ、
    前記コンピュータに、
    管理対象システムの状態について常に成立する条件を一階述語論理により記述した不変条件と、前記入力装置により入力された前記ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した論理式とに基づいて、前記検査対象のポリシ記述の検査を前記検査手段により行うステップを実行させるプログラムであって、
    前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
    前記ポリシ記述の検査を行うステップが、
    前記不変条件記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定する不正ポリシ検査ステップと、
    前記不正ポリシ検査ステップで充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と、前記登録済みポリシ記述に含まれる事前条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定し、該判定において充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記登録済みポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、該生成した論理式の充足可能性を判定するポリシ整合性検査ステップとを実行させ、
    前記不正ポリシ検査ステップが、
    前記論理式の充足性判定に先立って、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照し、充足性判定の対象となる論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加えるステップを含み、
    前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、
    ことを特徴とするプログラム。
  11. 前記制約を加えるステップでは、前記充足性判定の対象となる論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項10に記載のプログラム。
  12. 前記ポリシ記述が、ポリシ記述に定義された操作の直後に管理対象システムの状態について成立すべき条件を一階述語論理により記述した事後条件及びポリシ発火条件を一階述語論理で記述した事前条件を含んでおり、
    前記ポリシ記述の検査を行うステップが、
    前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事前条件と、前記登録済みポリシ記述に含まれる事前条件と、前記不変条件とを∧結合した論理式を生成し、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照して、前記事前条件と不変条件とを∧結合して生成した論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、該制約を加えた論理式の充足可能性を判定し、該充足性判定において充足すると判定すると、前記不変条件記憶部及び前記ポリシ記憶部を参照し、前記検査対象のポリシ記述に含まれる事後条件と、前記登録済みポリシ記述に含まれる事後条件と、前記不変条件とを∧結合した論理式を生成し、前記管理対象システムの状態を表現したインスタンス属性のうち、同一クラス間で常に唯一の値をとるKey属性の情報を記憶するKey属性記憶部を参照して、前記事後条件と不変条件とを∧結合して生成した論理式に登場する束縛変数に対応付けられたインスタンスが等しいことを条件とする等価性制約を当該論理式に制約として加え、該制約を加えた論理式の充足可能性を判定するポリシ整合性検査ステップを有し、
    前記ポリシ整合性検査ステップでは、論理式に制約を加える際に、前記充足性判定の対象となる論理式に登場する2つの束縛変数の全てのKey属性の値が等しいとき該2つの束縛変数に対応するインスタンスが等しく、かつ、前記2つの束縛変数が等しいとき該2つの束縛変数の全てのKey属性の値が等しいとする等価性制約を前記充足性判定の対象となる論理式に加える、請求項10又は11に記載のプログラム。
  13. 前記ポリシ整合性検査ステップでは、前記事後条件と不変条件とを∧結合した論理式に登場する束縛変数のうちの任意の2つの組み合わせについて、当該論理式中に、前記任意の2つの束縛変数を用いて参照されるKey属性が存在するか否かを判断し、存在しないと判断すると、前記任意の2つの束縛変数に対応するインスタンスが等しいとする等価性制約を当該論理式に加える、請求項12に記載のプログラム。
JP2006240225A 2006-09-05 2006-09-05 ポリシ検査システム、方法、及び、プログラム Expired - Fee Related JP4887985B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006240225A JP4887985B2 (ja) 2006-09-05 2006-09-05 ポリシ検査システム、方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006240225A JP4887985B2 (ja) 2006-09-05 2006-09-05 ポリシ検査システム、方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2008065448A JP2008065448A (ja) 2008-03-21
JP4887985B2 true JP4887985B2 (ja) 2012-02-29

Family

ID=39288135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006240225A Expired - Fee Related JP4887985B2 (ja) 2006-09-05 2006-09-05 ポリシ検査システム、方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP4887985B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016110946A1 (ja) * 2015-01-06 2016-07-14 株式会社日立製作所 ルール整合性検証装置およびルール整合性検証方法
CN111738763B (zh) * 2020-06-19 2024-04-19 京东科技控股股份有限公司 策略处理方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0820959B2 (ja) * 1992-04-03 1996-03-04 工業技術院長 知識ベース管理方法

Also Published As

Publication number Publication date
JP2008065448A (ja) 2008-03-21

Similar Documents

Publication Publication Date Title
KR101579493B1 (ko) 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체
Oquendo π-Calculus for SoS: A foundation for formally describing software-intensive systems-of-systems
JP2008299723A (ja) プログラム検証方法、プログラム検証装置
CN110162474A (zh) 一种基于抽象语法树的智能合约重入漏洞检测方法
Neubauer et al. Risk-based testing via active continuous quality control
Fragal et al. Extending HSI test generation method for software product lines
Bergstra et al. Accusations in the context of computer programming
Mustafa et al. Smart contract life-cycle management: an engineering framework for the generation of robust and verifiable smart contracts
JP4887985B2 (ja) ポリシ検査システム、方法、及び、プログラム
Christl et al. The analysis approach of ThreatGet
Zhang et al. Rumono: Fuzz driver synthesis for rust generic apis
Chitchyan et al. Semantic vs. syntactic compositions in aspect-oriented requirements engineering: an empirical study
Eshuis et al. An integer programming based approach for verification and diagnosis of workflows
Hacks et al. Measuring and achieving test coverage of attack simulations extended version
Saad-Khorchef et al. A framework and a tool for robustness testing of communicating software
Koscinski et al. Formally modeled common weakness enumerations (cwes)
Cabanillas et al. Automatic generation of a data-centered view of business processes
Hannousse et al. Static analysis of aspect interaction and composition in component models
Henkel et al. Combining tools to design and develop software support for capabilities
Li An empirical study on bash language usage in Github
JP2005056183A (ja) ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム
Paurobally et al. A formal framework for agent interaction semantics
Hall et al. OMML: A behavioural model interchange format
Pakulin et al. Model-based testing of internet e-mail protocols
Büttner et al. Realizing graph transformations by pre-and postconditions and command sequences

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100112

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees