説明

推論規則生成方法およびプログラム

【課題】ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する一般的な方法を明示する推論規則生成方法およびプログラムを提供する。
【解決手段】安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態遷移図を用いて、ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する推論規則生成方法およびプログラムに関する。
【背景技術】
【0002】
従来より、プログラムの安全な実行を担保するために様々な技術が提案されている。そのうち、図4にその概念図を示すPCC(Proof Carrying Code)では、プログラム開発者が証明生成器を用いて、プログラムから安全性ポリシに基づく安全性証明を生成し、プログラムとともに、プログラム利用者に送付を行う。プログラム利用者は、証明生成器を用いて、安全性ポリシおよびプログラムに基づいて、プログラムの安全性証明を検証する。そして、安全性証明が正しく検証できたときに、プログラム利用者が安全にそのプログラムを実行できるというものである(例えば、非特許文献1参照。)。
【0003】
また、類似の技術としては、プログラムの安全な実行を暗号学的な手段を用いて実現するものもある。例えば、デジタル署名を用いて、プログラム開発者を認証する方法である。しかしながら、この方法は、悪意のあるプログラム開発者が作成したプログラムの実行を防止することができるものの、正当なプログラム開発者が開発した人為的なミスによる脆弱性を含むプログラムの実行を防止することができない。
【0004】
また、Java(登録商標)仮想機械においても、クラスファイルを実行する際に、当該クラスファイルの検証を行うが、この検証処理は、実行ごとに行う必要があり、効率的ではない。さらに、この方式では、任意の安全性ポリシに基づく柔軟なクラスファイル検証を行うことができない。
【非特許文献1】Necula、“Proof−Carrying Code、by George Necula、”Proc.of Symposium on Principles of Programming Languages(POPL‘97)、1997.
【発明の開示】
【発明が解決しようとする課題】
【0005】
非特許文献1においては、安全性ポリシは一階述語論理における推論規則で記述される。プログラムの初期状態(PRE)から、これらの推論規則、および各機械語命令から生成されるVerification Condition(VC)を用いて、正しいプログラムの最終状態(POST)が導出されるとき、このプログラムは安全であると判断され、命題の列PRE,P,P,・・・,P,POSTがこのプログラムに対する安全性証明となる。ただし、P,P,・・・,P1nは推論の過程で導出される命題である。すなわち、非特許文献1に記載の技術では、安全性ポリシから一階述語論理における推論規則を導出することが必要であるが、非特許文献1には、その一般的な手法が定義されていないという問題がある。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する一般的な方法を明示する推論規則生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、を備えた推論規則生成方法を提案している。
【0008】
この発明によれば、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。したがって、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出する。
【0009】
(2)本発明は、コンピュータに、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、を実行させるためのプログラムを提案している。
【0010】
この発明によれば、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。したがって、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出する。
【発明の効果】
【0011】
本発明によれば、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出することができるという効果がある。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0013】
図1から図3を用いて、本実施形態について説明する。
なお、本発明においては、安全性ポリシを満たさないプログラム、もしくは、安全性ポリシを満たすプログラムの動作を、状態遷移図で規定する。そして、ここで得られた状態遷移図において、初期状態を推論規則における初期条件に対応させ、受理状態以外の状態を推論規則における最終状態に対応させる。また、1つの状態遷移規則に対し、1つの推論規則を生成する。以下、図1を用いて、詳細な手順を説明する。
【0014】
まず、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する(ステップS101)。次に、安全性ポリシを満たすプログラムか否かを判断し(ステップS102)、安全性ポリシを満たすプログラムについては(ステップS102の「Yes」)、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する(ステップS103)。
【0015】
一方、安全性ポリシを満たさないプログラムについては(ステップS102の「No」)、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する(ステップS104)。
【0016】
そして、状態遷移規則σ(q1、x)=q2(状態q1に入力xが入ったら、q2になるという状態遷移を意味する)に対して、推論規則((q1,i)、∨C∈x)/(q2、i+1)を生成する。なお、特に、状態q2が受理状態qfである場合は、状態遷移規則σ(q1、x)=qfから生成される推論規則は、((q1,i)、∨C∈x)/qfとする。
【0017】
したがって、本実施形態によれば、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出することができる。
【0018】
<実施例>
いま、実施例として、安全性ポリシを「メモリアドレス50番地のデータは読み出し禁止」とした場合の推論規則の導出手法を考える。まず、はじめに、安全性をみたさないプログラム、すなわち、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定する。ここで生成される状態遷移図を図2に示す。
【0019】
図2において、q0、q1、qfは状態を示し、各状態間を結ぶ線は、状態遷移規則を示している。例えば、状態q0から状態q1に向かう線(状態遷移規則)は、状態がI10であれば、q0からq1に遷移することを示している。
【0020】
図2の状態遷移図から導出される一階述語論理の推論規則は、図3のようになる。
図3において、PRE=(q0、0)は初期条件を示している。また、本実施例は、「メモリアドレス50番地のデータは読み出し禁止」という安全性ポリシに対して、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定したものであるから、最終条件は、POST=¬qfとなる。
【0021】
また、図2中、(1)の状態遷移規則は、図3の推論規則((q0,i)、∨C∈I00)/(q0、i+1)に対応し、図2中、(2)の状態遷移規則は、図3の推論規則((q0,i)、∨C∈I01)/(q1、i+1)に対応し、図2中、(3)の状態遷移規則は、図3の推論規則((q1,i)、∨C∈I10)/(q0、i+1)に対応し、図2中、(4)の状態遷移規則は、図3の推論規則((q1,i)、∨C∈I11)/(q1、i+1)に対応し、図2中、(5)の状態遷移規則は、図3の推論規則((q1,i)、∨C∈I1f)/qfに対応する。
【0022】
なお、推論規則生成方法の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを装置に読み込ませ、実行することによって本発明の推論規則生成方法を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0023】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0024】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0025】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【0026】
【図1】本実施形態に係る処理フローである。
【図2】状態遷移図の一例を示した図である。
【図3】状態遷移図から生成される推論規則の一例を示した図である。
【図4】PCCの概念図である。

【特許請求の範囲】
【請求項1】
安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、
安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、
安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、
1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、
を備えた推論規則生成方法。
【請求項2】
コンピュータに、
安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、
安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、
安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、
1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、
を実行させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate