JP2009064142A - 推論規則生成方法およびプログラム - Google Patents
推論規則生成方法およびプログラム Download PDFInfo
- Publication number
- JP2009064142A JP2009064142A JP2007229999A JP2007229999A JP2009064142A JP 2009064142 A JP2009064142 A JP 2009064142A JP 2007229999 A JP2007229999 A JP 2007229999A JP 2007229999 A JP2007229999 A JP 2007229999A JP 2009064142 A JP2009064142 A JP 2009064142A
- Authority
- JP
- Japan
- Prior art keywords
- program
- state
- state transition
- transition diagram
- inference rule
- 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.)
- Pending
Links
Images
Abstract
【課題】ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する一般的な方法を明示する推論規則生成方法およびプログラムを提供する。
【解決手段】安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。
【選択図】図1
【解決手段】安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。
【選択図】図1
Description
本発明は、状態遷移図を用いて、ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する推論規則生成方法およびプログラムに関する。
従来より、プログラムの安全な実行を担保するために様々な技術が提案されている。そのうち、図4にその概念図を示すPCC(Proof Carrying Code)では、プログラム開発者が証明生成器を用いて、プログラムから安全性ポリシに基づく安全性証明を生成し、プログラムとともに、プログラム利用者に送付を行う。プログラム利用者は、証明生成器を用いて、安全性ポリシおよびプログラムに基づいて、プログラムの安全性証明を検証する。そして、安全性証明が正しく検証できたときに、プログラム利用者が安全にそのプログラムを実行できるというものである(例えば、非特許文献1参照。)。
また、類似の技術としては、プログラムの安全な実行を暗号学的な手段を用いて実現するものもある。例えば、デジタル署名を用いて、プログラム開発者を認証する方法である。しかしながら、この方法は、悪意のあるプログラム開発者が作成したプログラムの実行を防止することができるものの、正当なプログラム開発者が開発した人為的なミスによる脆弱性を含むプログラムの実行を防止することができない。
また、Java(登録商標)仮想機械においても、クラスファイルを実行する際に、当該クラスファイルの検証を行うが、この検証処理は、実行ごとに行う必要があり、効率的ではない。さらに、この方式では、任意の安全性ポリシに基づく柔軟なクラスファイル検証を行うことができない。
Necula、"Proof−Carrying Code、by George Necula、"Proc.of Symposium on Principles of Programming Languages(POPL‘97)、1997.
Necula、"Proof−Carrying Code、by George Necula、"Proc.of Symposium on Principles of Programming Languages(POPL‘97)、1997.
非特許文献1においては、安全性ポリシは一階述語論理における推論規則で記述される。プログラムの初期状態(PRE)から、これらの推論規則、および各機械語命令から生成されるVerification Condition(VC)を用いて、正しいプログラムの最終状態(POST)が導出されるとき、このプログラムは安全であると判断され、命題の列PRE,P1,P2,・・・,Pn,POSTがこのプログラムに対する安全性証明となる。ただし、P1,P2,・・・,P1nは推論の過程で導出される命題である。すなわち、非特許文献1に記載の技術では、安全性ポリシから一階述語論理における推論規則を導出することが必要であるが、非特許文献1には、その一般的な手法が定義されていないという問題がある。
そこで、本発明は、上述の課題に鑑みてなされたものであり、ユーザが定義するセキュリティポリシから、一階述語論理における推論規則を導出する一般的な方法を明示する推論規則生成方法およびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、を備えた推論規則生成方法を提案している。
(1)本発明は、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、を備えた推論規則生成方法を提案している。
この発明によれば、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。したがって、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出する。
(2)本発明は、コンピュータに、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、を実行させるためのプログラムを提案している。
この発明によれば、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定し、安全性ポリシを満たすプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する。また、安全性ポリシを満たさないプログラムについて、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する。そして、1つの状態遷移規則に対して、1つの推論規則を生成する。したがって、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出する。
本発明によれば、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出することができるという効果がある。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
図1から図3を用いて、本実施形態について説明する。
なお、本発明においては、安全性ポリシを満たさないプログラム、もしくは、安全性ポリシを満たすプログラムの動作を、状態遷移図で規定する。そして、ここで得られた状態遷移図において、初期状態を推論規則における初期条件に対応させ、受理状態以外の状態を推論規則における最終状態に対応させる。また、1つの状態遷移規則に対し、1つの推論規則を生成する。以下、図1を用いて、詳細な手順を説明する。
なお、本発明においては、安全性ポリシを満たさないプログラム、もしくは、安全性ポリシを満たすプログラムの動作を、状態遷移図で規定する。そして、ここで得られた状態遷移図において、初期状態を推論規則における初期条件に対応させ、受理状態以外の状態を推論規則における最終状態に対応させる。また、1つの状態遷移規則に対し、1つの推論規則を生成する。以下、図1を用いて、詳細な手順を説明する。
まず、安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する(ステップS101)。次に、安全性ポリシを満たすプログラムか否かを判断し(ステップS102)、安全性ポリシを満たすプログラムについては(ステップS102の「Yes」)、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する(ステップS103)。
一方、安全性ポリシを満たさないプログラムについては(ステップS102の「No」)、状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する(ステップS104)。
そして、状態遷移規則σ(q1、x)=q2(状態q1に入力xが入ったら、q2になるという状態遷移を意味する)に対して、推論規則((q1,i)、∨Ci∈x)/(q2、i+1)を生成する。なお、特に、状態q2が受理状態qfである場合は、状態遷移規則σ(q1、x)=qfから生成される推論規則は、((q1,i)、∨Ci∈x)/qfとする。
したがって、本実施形態によれば、安全性ポリシから状態遷移図を構成し、この状態遷移図に基づいて、一階述語論理における推論規則を導出することができる。
<実施例>
いま、実施例として、安全性ポリシを「メモリアドレス50番地のデータは読み出し禁止」とした場合の推論規則の導出手法を考える。まず、はじめに、安全性をみたさないプログラム、すなわち、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定する。ここで生成される状態遷移図を図2に示す。
いま、実施例として、安全性ポリシを「メモリアドレス50番地のデータは読み出し禁止」とした場合の推論規則の導出手法を考える。まず、はじめに、安全性をみたさないプログラム、すなわち、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定する。ここで生成される状態遷移図を図2に示す。
図2において、q0、q1、qfは状態を示し、各状態間を結ぶ線は、状態遷移規則を示している。例えば、状態q0から状態q1に向かう線(状態遷移規則)は、状態がI10であれば、q0からq1に遷移することを示している。
図2の状態遷移図から導出される一階述語論理の推論規則は、図3のようになる。
図3において、PRE=(q0、0)は初期条件を示している。また、本実施例は、「メモリアドレス50番地のデータは読み出し禁止」という安全性ポリシに対して、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定したものであるから、最終条件は、POST=¬qfとなる。
図3において、PRE=(q0、0)は初期条件を示している。また、本実施例は、「メモリアドレス50番地のデータは読み出し禁止」という安全性ポリシに対して、メモリアドレス50番地のデータの読み出しを行なうプログラムの動作を状態遷移図で規定したものであるから、最終条件は、POST=¬qfとなる。
また、図2中、(1)の状態遷移規則は、図3の推論規則((q0,i)、∨Ci∈I00)/(q0、i+1)に対応し、図2中、(2)の状態遷移規則は、図3の推論規則((q0,i)、∨Ci∈I01)/(q1、i+1)に対応し、図2中、(3)の状態遷移規則は、図3の推論規則((q1,i)、∨Ci∈I10)/(q0、i+1)に対応し、図2中、(4)の状態遷移規則は、図3の推論規則((q1,i)、∨Ci∈I11)/(q1、i+1)に対応し、図2中、(5)の状態遷移規則は、図3の推論規則((q1,i)、∨Ci∈I1f)/qfに対応する。
なお、推論規則生成方法の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを装置に読み込ませ、実行することによって本発明の推論規則生成方法を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
Claims (2)
- 安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、
安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、
安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、
1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、
を備えた推論規則生成方法。 - コンピュータに、
安全性ポリシを満たすプログラムまたは安全性ポリシを満たさないプログラムの動作を状態遷移図で規定する第1のステップと、
安全性ポリシを満たすプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=qfを定義する第2のステップと、
安全性ポリシを満たさないプログラムについて、前記状態遷移図の初期状態q0、受理状態qfに対して、初期条件PRE=(q0、0)、最終条件POST=¬qfを定義する第3のステップと、
1つの状態遷移規則に対して、1つの推論規則を生成する第4のステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229999A JP2009064142A (ja) | 2007-09-05 | 2007-09-05 | 推論規則生成方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229999A JP2009064142A (ja) | 2007-09-05 | 2007-09-05 | 推論規則生成方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009064142A true JP2009064142A (ja) | 2009-03-26 |
Family
ID=40558691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007229999A Pending JP2009064142A (ja) | 2007-09-05 | 2007-09-05 | 推論規則生成方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009064142A (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006109558A1 (ja) * | 2005-04-06 | 2006-10-19 | Fukuoka Industry, Science & Technology Foundation | 検証支援装置、検証支援方法、プログラム及び記録媒体 |
JP2006350654A (ja) * | 2005-06-15 | 2006-12-28 | Yaskawa Information Systems Co Ltd | サーバ計算機 |
-
2007
- 2007-09-05 JP JP2007229999A patent/JP2009064142A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006109558A1 (ja) * | 2005-04-06 | 2006-10-19 | Fukuoka Industry, Science & Technology Foundation | 検証支援装置、検証支援方法、プログラム及び記録媒体 |
JP2006350654A (ja) * | 2005-06-15 | 2006-12-28 | Yaskawa Information Systems Co Ltd | サーバ計算機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mense et al. | Security vulnerabilities in ethereum smart contracts | |
Sinha et al. | Moat: Verifying confidentiality of enclave programs | |
JP5748905B2 (ja) | サンドボックスにリファレンスを保存するシステム及び方法 | |
Huffmire et al. | Handbook of FPGA design security | |
Almeida et al. | Formal verification of side-channel countermeasures using self-composition | |
US20170116410A1 (en) | Software protection | |
CN110264196B (zh) | 结合代码标注与用户类型的有条件的收据存储方法和节点 | |
JP5171907B2 (ja) | 情報処理装置、情報処理プログラム | |
WO2010070959A1 (ja) | 情報処理装置、プログラム開発装置、プログラム検証方法及びプログラム | |
US20110185345A1 (en) | Type-Preserving Compiler for Security Verification | |
JP2008537224A (ja) | 安全な起動方法およびシステム | |
JP2009129206A (ja) | 情報処理装置、プログラム検証方法及びプログラム | |
Bratus et al. | Beyond planted bugs in" trusting trust": The input-processing frontier | |
Chittoda | Mastering Blockchain Programming with Solidity: Write production-ready smart contracts for Ethereum blockchain with Solidity | |
Sfaxi et al. | Information flow control of component‐based distributed systems | |
Waye et al. | It’s my privilege: Controlling downgrading in DC-labels | |
Bohannon | Foundations of web script security | |
JP2009064142A (ja) | 推論規則生成方法およびプログラム | |
Härtig et al. | Lateral thinking for trustworthy apps | |
Moona et al. | Review of tools for analyzing security vulnerabilities in ethereum based smart contracts | |
Stiegler et al. | How emily tamed the caml | |
Bratus et al. | Exploitation as code reuse: On the need of formalization | |
Møller et al. | Formally Verifying Security Properties for OpenTitan Boot Code with Uppaal | |
Lombardi et al. | Security for cloud computing | |
Nolan | Bulletproof Android: practical advice for building secure apps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120522 |