JP2003186708A - アクセス権矛盾検出装置および解析ルール作成装置 - Google Patents

アクセス権矛盾検出装置および解析ルール作成装置

Info

Publication number
JP2003186708A
JP2003186708A JP2001388587A JP2001388587A JP2003186708A JP 2003186708 A JP2003186708 A JP 2003186708A JP 2001388587 A JP2001388587 A JP 2001388587A JP 2001388587 A JP2001388587 A JP 2001388587A JP 2003186708 A JP2003186708 A JP 2003186708A
Authority
JP
Japan
Prior art keywords
access right
list
access
time
analysis 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.)
Granted
Application number
JP2001388587A
Other languages
English (en)
Other versions
JP3939977B2 (ja
Inventor
Takashi Kojima
尚 兒島
Satoru Torii
悟 鳥居
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001388587A priority Critical patent/JP3939977B2/ja
Priority to US10/268,963 priority patent/US7363275B2/en
Priority to DE60213548T priority patent/DE60213548T2/de
Priority to EP02257214A priority patent/EP1321844B1/en
Publication of JP2003186708A publication Critical patent/JP2003186708A/ja
Application granted granted Critical
Publication of JP3939977B2 publication Critical patent/JP3939977B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 実行時に使用されるアクセス権と設計時に付
与されたアクセス権との間で生じた矛盾を簡便かつ確実
に検出すること。 【解決手段】 メソッドシグネチャ検出部14は、ソー
スコード入力部13から入力されたプログラムのソース
コードを解析して該プログラムに含まれるメソッドシグ
ネチャを順次検出し、アクセス権解析部15は、プログ
ラムに含まれ得るメソッドシグネチャとアクセス権とを
対応付けて規定した所定の解析ルール15aに基づい
て、検出されたメソッドシグネチャを順次解析して実行
時アクセス権リストを求め、アクセス権比較部16は、
プログラムに含まれ得るアクセス権の制限に関する広狭
を規定した所定の比較ルール16aに基づいて、実行時
アクセス権リストとアクセス権リスト格納部12に格納
された設計時アクセス権リストとの間で制限の広狭を比
較し、出力部17は、この比較結果を報知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、アクセス権の制
限に基づいて実行される所定のプログラムについて、該
プログラムの実行時に使用されるアクセス権を集めた実
行時アクセス権リストと設計時に付与されたアクセス権
を集めた設計時アクセス権リストとの間で生じた矛盾を
検出するアクセス権矛盾検出装置、および該アクセス権
矛盾検出装置に用いられる所定の解析ルールを作成する
解析ルール作成装置に関する。
【0002】近時、ネットワーク技術の進展に伴って、
仮想マシンと呼ばれるソフト上で実行され、OSや機種
ごとのプラットフォームに依存しないプログラムが急激
に普及している。例えば、オブジェクト指向のプログラ
ミング言語であるJava(登録商標、以下同様)で作
成されたJavaプログラムである。
【0003】このJavaプログラムには、ファイル操
作やネットワーク接続などに関するアクセス制御をおこ
なうことができるという特徴がある。すなわち、ファイ
ルの読み込みやネットワークへの接続など、セキュリテ
ィ上の危険をともなうプログラムの実行に対して、それ
ぞれ必要なアクセス権を定義することによって、アクセ
ス制御をおこなっている。
【0004】具体的に説明すると、図18に示すよう
に、アクセス権は、Java2の標準ポリシーファイル
に準じた表現形式にしたがって、その種類ごとに異なる
クラスが定義され、ターゲットおよびアクションによっ
て細かく表現される。例えば、アクセス制御として「/t
mp/hogeファイルの読み込みを許可する」場合には、「j
ava.io.FilePermission "/tmp/hoge","read"」というア
クセス権が定義される。
【0005】また、セキュリティ上の危険をともなうプ
ログラムの実行は、特定のメソッドの呼び出しに対応し
ておこなわれるため、図19に示すように、アクセス権
が必要なメソッドについては、それぞれ所定のアクセス
権が対応付けられる。例えば、「java.io.FileInputStr
eam.FileInputStream(String name)」というメソッドに
ついては、「java.io.FilePermission"[name]", "rea
d"」というアクセス権が対応付けられる。
【0006】そして、プログラムの実行に際してメソッ
ドが呼び出されると、メソッドの呼び出しをおこなった
者に許可されたアクセス権を参照し、メソッドの呼び出
しに必要なアクセス権を有する場合に限り、メソッドの
実行を許可する。このようにして、Javaプログラム
に対しては、実行に際してアクセス権の制限に基づいた
アクセス制御がおこなわれる。
【0007】
【従来の技術】従来より、上記したようなアクセス権の
制限に基づいて実行されるプログラムについては、プロ
グラムの実行時に使用されるアクセス権とプログラムの
設計時に付与されたアクセス権との間でセキュリティ例
外が発生しないようにするために、一般的にプログラム
の実行テストを実施している。
【0008】具体的に説明すると、上記したJavaプ
ログラムの設計時には、そのJavaプログラムが必要
とするアクセス権が前もって付与され、この前もって付
与されたアクセス権を考慮してプログラムが作成され
る。しかしながら、実際に作成されたJavaプログラ
ムにあっては、実装のミスなどから、必ずしも設計時に
付与されたアクセス権だけを使用しているとは限らな
い。
【0009】例えば、実装されたJavaプログラムが
設計時に付与されたアクセス権よりも広いアクセス権を
使用していたような場合には、プログラムの実行時にセ
キュリティ例外が発生してしまう。すなわち、「/tmp/h
ogeファイルの読み込みを許可する」というアクセス権
が設計時に付与されたにもかかわらず、実装されたJa
vaプログラムが「全てのファイルの読み込みを許可す
る」というアクセス権を使用しているような場合であ
る。
【0010】このようなことから、Javaプログラム
については、プログラムの実行テストを実施することに
よって、実行時に使用されるアクセス権と設計時に付与
されたアクセス権との間で矛盾(制限の広狭)が生じて
いるか否かを調査している。そして、この実行テストに
よって両者のアクセス権の間で矛盾が検出された場合に
は、設計時に付与されたアクセス権に適合するようにプ
ログラムを修正することによって、セキュリティ例外を
排除するようにしている。
【0011】
【発明が解決しようとする課題】しかしながら、上記の
従来技術は、実行時に使用されるアクセス権と設計時に
付与されたアクセス権との間で生じた矛盾を、精度良く
検出することができないという問題点があった。すなわ
ち、上記の従来技術は、設計時に付与されたアクセス権
を考慮して作成されたプログラムに対して、単純に実行
テストを実施するものに過ぎず、実行テストの結果に全
ての矛盾が反映される訳ではないので、仮に実行テスト
を繰り返して実施したとしても、全ての矛盾を検出する
には自ずと限界があった。
【0012】このため、実行時に使用されるアクセス権
と設計時に付与されたアクセス権との間で生じた矛盾を
如何にして検出するかが極めて重要な課題となってお
り、望ましくは、実行テストを繰り返して実施するとい
った面倒な手法ではなく、簡便かつ確実に矛盾を検出す
る手法が必要とされている。
【0013】そこで、この発明は、上述した従来技術に
よる問題点を解消するためになされたものであり、実行
時に使用されるアクセス権と設計時に付与されたアクセ
ス権との間で生じた矛盾を簡便かつ確実に検出すること
ができるアクセス権矛盾検出装置を提供することを目的
とする。また、この発明は、上記のアクセス権矛盾検出
装置に用いられる所定の解析ルールを自動的に作成し
て、アクセス権矛盾検出処理の効率を向上させることが
できる解析ルール作成装置を提供することを目的とす
る。
【0014】
【課題を解決するための手段】上述した課題を解決し、
目的を達成するため、請求項1の発明によれば、図1に
示すように、メソッドシグネチャ検出部14は、ソース
コード入力部13から入力されたプログラムのソースコ
ードを解析して該プログラムに含まれるメソッドシグネ
チャを順次検出し、アクセス権解析部15は、プログラ
ムに含まれ得るメソッドシグネチャとアクセス権とを対
応付けて規定した所定の解析ルール15aに基づいて、
検出されたメソッドシグネチャを順次解析して実行時ア
クセス権リストを求め、アクセス権比較部16は、プロ
グラムに含まれ得るアクセス権の制限に関する広狭を規
定した所定の比較ルール16aに基づいて、実行時アク
セス権リストとアクセス権リスト格納部12に格納され
た設計時アクセス権リストとの間で制限の広狭を比較
し、出力部17は、この比較結果を報知することとした
ので、実行時に使用されるアクセス権と設計時に付与さ
れたアクセス権との間で生じた矛盾を簡便かつ確実に検
出することができる。
【0015】また、請求項2の発明によれば、図1に示
す出力部17は、実行時アクセス権リストのなかから、
アクセス権比較部16によって実行時の制限が設計時の
アクセス権の制限よりも広いと比較されたアクセス権を
報知することとしたので、矛盾が生じているアクセス権
を明確に報知することができる。これによって、設計時
に付与されたアクセス権に適合するようにするプログラ
ムの修正を補助することもできる。
【0016】また、請求項3の発明によれば、図13に
示す部分ソースコード検出部41は、プログラムのソー
スコードのなかから、アクセス権比較部16によって実
行時の制限が設計時のアクセス権の制限よりも広いと比
較されたアクセス権に対応する部分ソースコードを検出
し、出力部17は、検出された部分ソースコードを報知
することとしたので、矛盾の原因となった部分ソースコ
ードを明確に報知することができる。これによって、設
計時に付与されたアクセス権に適合するようにするプロ
グラムの修正を容易にすることもできる。
【0017】また、請求項4の発明によれば、図9に示
すアクセス権圧縮部21は、所定の比較ルール16aに
基づいて設計時アクセス権リストに含まれる各アクセス
権の間で制限の広狭を比較し、当該設計時アクセス権リ
ストのなかから他のアクセス権の制限よりも狭い制限を
有するアクセス権を削除した新たな設計時アクセス権リ
ストを作成し、アクセス権比較部16は、作成された新
たな設計時アクセス権リストと実行時アクセス権リスト
との間で制限の広狭を比較することとしたので、アクセ
ス権同士の比較を効率的におこなうことができる。これ
によって、実行時に使用されるアクセス権と設計時に付
与されたアクセス権との間で生じた矛盾を迅速に検出す
ることもできる。
【0018】また、請求項5の発明によれば、図11に
示すアクセス権圧縮部31は、所定の比較ルール16a
に基づいて実行時アクセス権リストに含まれる各アクセ
ス権の間で制限の広狭を比較し、当該実行時アクセス権
リストのなかから他のアクセス権の制限よりも狭い制限
を有するアクセス権を削除した新たな実行時アクセス権
リストを作成し、アクセス権比較部16は、作成された
新たな実行時アクセス権リストと設計時アクセス権リス
トとの間で制限の広狭を比較することとしたので、アク
セス権同士の比較を効率的におこなうことができる。こ
れによって、実行時に使用されるアクセス権と設計時に
付与されたアクセス権との間で生じた矛盾を迅速に検出
することもできる。
【0019】また、請求項6の発明によれば、図11に
示すアクセス権圧縮部21は、所定の比較ルール16a
に基づいて設計時アクセス権リストに含まれる各アクセ
ス権の間で制限の広狭を比較し、当該設計時アクセス権
リストのなかから他のアクセス権の制限よりも狭い制限
を有するアクセス権を削除した新たな設計時アクセス権
リストを作成し、アクセス権圧縮部31は、所定の比較
ルール16aに基づいて実行時アクセス権リストに含ま
れる各アクセス権の間で制限の広狭を比較し、当該実行
時アクセス権リストのなかから他のアクセス権の制限よ
りも狭い制限を有するアクセス権を削除した新たな実行
時アクセス権リストを作成し、アクセス権比較部16
は、新たな設計時アクセス権リストと新たな実行時アク
セス権リストとの間で制限の広狭を比較することとした
ので、アクセス権同士の比較を一層効率的におこなうこ
とができる。これによって、実行時に使用されるアクセ
ス権と設計時に付与されたアクセス権との間で生じた矛
盾を一層迅速に検出することもできる。
【0020】また、請求項7の発明によれば、図1に示
すアクセス権解析部15は、メソッドシグネチャ検出部
14によって検出されたメソッドシグネチャが所定の解
析ルール15aに規定されていないものであるが、当該
所定の解析ルール15aに規定されたメソッドシグネチ
ャを内部で呼び出している場合には、当該内部で呼び出
されるメソッドシグネチャを解析して実行時のアクセス
権を求めることとしたので、プログラムのソースコード
から実行時のアクセス権を確実に求めることができる。
これによって、実行時に使用されるアクセス権と設計時
に付与されたアクセス権との間で生じた矛盾を一層確実
に検出することもできる。
【0021】また、請求項8の発明によれば、図17に
示す解析ルール作成部51は、アクセス権解析部15に
よって内部で呼び出されるメソッドシグネチャを解析し
て実行時のアクセス権が求められた場合に、当該求めら
れたアクセス権と検出されたメソッドシグネチャとを対
応付けて規定した新たな解析ルールを作成するとしたの
で、実行時のアクセス権を効率的に求めることに寄与す
る効率的な解析ルールを作成することができる。
【0022】また、請求項9の発明によれば、図17に
示す解析ルール作成部51は、新たな解析ルールが作成
された場合に、当該新たな解析ルールを所定の解析ルー
ル15aに追加して規定するとしたので、解析ルールを
追加した直後から、実行時のアクセス権を効率的に求め
ることができる。
【0023】また、請求項10の発明によれば、図15
に示すように、メソッドシグネチャ検出部14は、ソー
スコード入力部13から入力されたプログラムのソース
コードを解析して該プログラムに含まれるメソッドシグ
ネチャを順次検出し、アクセス権解析部15は、検出さ
れたメソッドシグネチャが所定の解析ルール15aに既
に規定されている場合には、当該規定されたメソッドシ
グネチャを解析してアクセス権を求め、検出されたメソ
ッドシグネチャが所定の解析ルール15aに規定されて
いないものであるが、当該所定の解析ルール15aに規
定されたメソッドシグネチャを内部で呼び出している場
合には、当該内部で呼び出されるメソッドシグネチャを
解析してアクセス権を求め、解析ルール作成部51は、
アクセス権解析部15によって内部で呼び出されるメソ
ッドシグネチャを解析してアクセス権が求められた場合
に、当該求められたアクセス権と検出されたメソッドシ
グネチャとを対応付けて規定した新たな解析ルールを作
成することとしたので、実行時のアクセス権を効率的に
求めることに寄与する効率的な解析ルールを作成するこ
とができる。
【0024】
【発明の実施の形態】以下に添付図面を参照して、この
発明に係るアクセス権矛盾検出装置および解析ルール作
成装置の好適な実施の形態を詳細に説明する。なお、下
記に示す実施の形態では、Javaプログラムに関して
アクセス権の矛盾を検出する場合について説明する。
【0025】(実施の形態1)まず最初に、本実施の形
態1に係るアクセス権矛盾検出装置の概要および主たる
特徴を説明する。図1は、本実施の形態1に係るアクセ
ス権矛盾検出装置の構成を示すブロック図である。同図
に示すアクセス権矛盾検出装置10は、概略的に、アク
セス権の制限に基づいて実行されるJavaプログラム
について、該プログラムの実行時に使用されるアクセス
権を集めた実行時アクセス権リストと設計時に付与され
たアクセス権を集めた設計時アクセス権リストとの間で
生じた矛盾を検出するものである。
【0026】そして、このアクセス権矛盾検出装置10
は、アクセス権矛盾検出処理に主たる特徴がある。具体
的には、プログラムのソースコードから実行時アクセス
権リストを求め、プログラムに含まれ得るアクセス権の
制限に関する広狭を規定した所定の比較ルールに基づい
て、実行時アクセス権リストと設計時アクセス権リスト
との間で制限の広狭を比較し、この比較結果を報知する
ことによって、実行時に使用されるアクセス権と設計時
に付与されたアクセス権との間で生じた矛盾を簡便かつ
確実に検出することができるようにしている。
【0027】次に、本実施の形態1に係るアクセス権矛
盾検出装置の構成を説明する。このアクセス権矛盾検出
装置10は、図1に示すように、アクセス権リスト入力
部11と、アクセス権リスト格納部12と、ソースコー
ド入力部13と、メソッドシグネチャ検出部14と、ア
クセス権解析部15と、アクセス権比較部16と、出力
部17とを備える。
【0028】このうち、アクセス権リスト入力部11
は、プログラムの設計時に付与されたアクセス権を集め
た設計時アクセス権リストをアクセス権矛盾検出装置1
0内に入力する処理部である。具体的には、図18に示
したような各アクセス権の一覧データを入力する。
【0029】アクセス権リスト格納部12は、アクセス
権リスト入力部11によって入力された設計時アクセス
権リストを記憶するメモリである。なお、アクセス権リ
スト入力部11によって複数の設計時アクセス権リスト
が入力された場合には、各設計時アクセス権リストを一
意に特定するためのID情報を付与して、それぞれの設
計時アクセス権リストを記憶することになる。
【0030】ソースコード入力部13は、プログラムの
ソースコードをアクセス権矛盾検出装置10内に入力す
る処理部である。具体的には、図2、図14および図1
6に示すようなソースコードのデータを入力する。な
お、このソースコードの元となるプログラムは、上記し
た設計時アクセス権リストを考慮して作成されたプログ
ラムである。
【0031】メソッドシグネチャ検出部14は、ソース
コード入力部13から入力されたプログラムのソースコ
ードを解析して該プログラムに含まれるメソッドシグネ
チャを順次検出する処理部である。具体的には、ソース
コード解析器として、ソースコードを解析してメソッド
呼び出しを検出し、Java言語仕様における呼び出し
メソッドを特定する方法に基づいて、メソッド呼び出し
から「型名.メソッド名(パラメータ型名1,パラメー
タ型名2,…)」という形式のメソッドシグネチャを解
析する。なお、ここでは動的バインディングについては
考慮しないものとする。
【0032】ここで、このメソッドシグネチャ検出処理
を具体的に説明する。図2は、本実施の形態1によるメ
ソッドシグネチャ検出処理の具体例を示す図である。メ
ソッドシグネチャ検出部14は、同図に示すように、例
えば、ソースコード「importjava.io.*;FileInputStrea
m fis = new FileInputStream("/tmp/hoge");」を解析
して、メソッドシグネチャ「java.io.FileInputStream.
FileInputStream(java.lang.String)」を検出する。
【0033】図1の説明に戻ると、アクセス権解析部1
5は、所定の解析ルール15aに基づいて、メソッドシ
グネチャ検出部14によって検出されたメソッドシグネ
チャを順次解析して実行時アクセス権リストを求める処
理部である。そして、このアクセス権解析部15が参照
する解析ルール15aは、Javaプログラムに含まれ
得るメソッドシグネチャとアクセス権とを対応付けて規
定したメモリである。
【0034】ここで、この解析ルール15aを具体的に
説明する。図3は、解析ルール15aに規定される情報
の構成例を示す図である。Javaにおいては、標準で
定義されているアクセス権に対しては、全てアクセス権
の解析ルールが存在する。そして、通常の解析ルールに
よれば、メソッドシグネチャに対して、対応するアクセ
ス権が決定される。
【0035】このため、解析ルール15aは、図3に示
すように、Javaプログラムに含まれ得るメソッドシ
グネチャとアクセス権とを対応付けて規定している。例
えば、メソッドシグネチャ「java.lang.System.exit(in
t)」に対しては、アクセス権「java.lang.RuntimePermi
ssion "exitVM"」が対応付けられて規定される。
【0036】かかる解析ルール15aに基づいて、アク
セス権解析部15は、メソッドシグネチャを順次解析し
て対応するアクセス権を求める。この際、アクセス権解
析部15は、パラメータを有するアクセス権について
は、メソッド呼び出し時の各パラメータの値に基づい
て、アクセス権のパラメータも決定する。このようにし
て順次求められたアクセス権が、プログラムの実行時に
使用されるアクセス権であり、かかるアクセス権を集め
たものが、実行時アクセス権リストとなる。
【0037】ここで、このアクセス権解析処理を具体的
に説明する。図4および5は、本実施の形態1によるア
クセス権解析処理の具体例を示す図である。具体的に
は、図4は、メソッドシグネチャが「java.io.FileInpu
tStream.FileInputStream(java.lang.String)」であっ
て、ソースコード内に「strを任意の文字列とする」旨
のパラメータの値が定義されている場合における具体例
を挙げたものである。
【0038】すなわち、この場合には、アクセス権解析
部15は、解析ルール15aに基づいて、メソッドシグ
ネチャ「java.io.FileInputStream.FileInputStream(ja
va.lang.String)」に対応するアクセス権「java.io.Fil
ePermission "パラメータ","read"」を求める。そし
て、メソッド呼び出し時の各パラメータの値に基づい
て、アクセス権のパラメータも決定する。
【0039】ここで、「strを任意の文字列とする」旨
を考慮してアクセス権のパラメータも決定すると、例え
ば、パラメータに関するソースコードが「new FileInpu
tStream(str)」である場合には、アクセス権「java.io.
FilePermission "<<ALL FILES>>", "read"」が求められ
る(図4に示すアクセス権参照)。同様に、パラメー
タに関するソースコードが「new FileInputStream("/tm
p/hoge")」である場合には、アクセス権「java.io.File
Permission "/tmp/hoge", "read"」が求められる(同図
に示すアクセス権参照)。さらに、パラメータに関す
るソースコードが「new FileInputStream("/tmp/" + st
r)」である場合には、アクセス権「java.io.FilePermis
sion "/tmp/-", "read"」が求められる(同図に示すア
クセス権参照)。
【0040】また、図5は、メソッドシグネチャが「ja
va.net.Socket.Socket(java.lang.String host, int po
rt)」であって、ソースコード内に「str を任意の文字
列、num を任意の整数とする」旨のパラメータの値が定
義されている場合における具体例を挙げたものである。
【0041】すなわち、この場合には、アクセス権解析
部15は、解析ルール15aに基づいて、メソッドシグ
ネチャ「java.io.FileInputStream.FileInputStream(ja
va.lang.String)」に対応するアクセス権「java.net.So
cketPermission "パラメータ", "connect"」を求める。
そして、メソッド呼び出し時の各パラメータの値に基づ
いて、アクセス権のパラメータも決定する。
【0042】ここで、「str を任意の文字列、num を任
意の整数とする」旨を考慮してアクセス権のパラメータ
も決定すると、例えば、パラメータに関するソースコー
ドが「new Socket(str, num)」である場合には、アクセ
ス権「java.net.SocketPermission "*", "connect"」が
求められる(図5に示すアクセス権参照)。同様に、
パラメータに関するソースコードが「new Socket(str +
".hogehoge.net", num)」である場合には、アクセス権
「java.net.SocketPermission "*.hogehoge.net", "con
nect"」が求められる(同図に示すアクセス権参
照)。さらに、パラメータに関するソースコードが「ne
w Socket(str, 80)」である場合には、アクセス権「jav
a.io.SocketPermission "*:80", "connect"」が求めら
れる(同図に示すアクセス権参照)。
【0043】また、上述してきたアクセス権解析部15
は、メソッドシグネチャ検出部14によって検出された
メソッドシグネチャが所定の解析ルール15aに規定さ
れていないものであるが、当該所定の解析ルール15a
に規定されたメソッドシグネチャを内部で呼び出してい
る場合には、当該内部で呼び出されるメソッドシグネチ
ャを解析して実行時のアクセス権を求めるものである。
【0044】ここで、図16を参照して、かかるメソッ
ドシグネチャの内部呼び出しによるアクセス権の解析を
具体的に説明する。同図に示すように、例えば、解析ル
ール15aに、メソッドシグネチャ「java.io.FileInpu
tStream.FileInputStream(java.lang.String)」とアク
セス権「java.io.FilePermission "<<ALL FILES>>", "r
ead"」とが対応したルールが規定されていたものと仮定
する。
【0045】一方、ソースコード入力部13から入力さ
れたソースコードにおいては、同図に示すように、5行
目で定義されるメソッド「Sample.foo(java.lang.Strin
g)」が、内部でメソッドシグネチャ「java.io.FileInpu
tStream.FileInputStream(java.lang.String)」を呼び
出している。このような場合には、メソッド「Sample.f
oo(java.lang.String)」に対応するアクセス権が解析ル
ール15aに規定されていないが、アクセス権解析部1
5は、内部で呼び出しているメソッドシグネチャ「jav
a.io.FileInputStream.FileInputStream(java.lang.Str
ing)」を解析して、このメソッドシグネチャに対応する
アクセス権を解析ルール15aに基づいて求める。
【0046】すなわち、内部で呼び出しているメソッド
シグネチャ「java.io.FileInputStream.FileInputStrea
m(java.lang.String)」については、アクセス権「java.
io.FilePermission "<<ALL FILES>>", "read"」が解析
ルール15aに規定されているので、アクセス権解析部
15は、アクセス権「java.io.FilePermission "<<ALL
FILES>>", "read"」を実行時のアクセス権として求める
こととなる。このように、内部呼び出しによるアクセス
権の解析をおこなうことによって、実行時のアクセス権
を確実に求めることができるようになる。
【0047】図1の説明に戻ると、アクセス権比較部1
6は、比較ルール16aに基づいて、アクセス権解析部
15によって求められた実行時アクセス権リストとアク
セス権リスト格納部12に格納された設計時アクセス権
リストとの間で制限の広狭を比較する処理部である。そ
して、このアクセス権比較部16が参照する比較ルール
16aは、Javaプログラムに含まれ得るアクセス権
の制限に関する広狭を規定したメモリである。
【0048】ここで、この比較ルール16aを具体的に
説明する。図6は、比較ルール16aに規定される情報
の構成例を示す図である。比較ルール16aは、アクセ
ス権のクラスごとに(例えば、「java.io.FilePermissi
on」など)、他の全てのアクセス権との間で制限の広狭
を比較するためのルールを規定したものである。
【0049】すなわち、図6に示すように、例えば、ク
ラス「java.security.AllPermission」については、
「すべてのアクセス権を含む」旨が規定される。また、
クラス「java.lang.RuntimePermission」については、
「比較対象が「java.lang.RuntimePermission」の場
合、ターゲットが同じならば等しいが、それ以外ならば
等しくない。比較対象が「java.security.AllPermissio
n」の場合、「java.security.AllPermission」に含まれ
る。比較対象が「java.lang.RuntimePermission」以外
の場合、等しくない」旨のルールが規定される。
【0050】さらに、クラス「java.io.FilePermissio
n」については、比較対象が「java.io.FilePermissio
n」の場合、ターゲットおよびアクションにより比較関
係が決まる。「java.io.FilePermission "*", "read"」
>「java.io.FilePermission "/tmp/hoge", "read"」,
「java.io.FilePermission "/tmp/hoge", "read,writ
e"」>「java.io.FilePermission "/tmp/hoge", "rea
d"」。比較対象が「java.security.AllPermission」の
場合、「java.security.AllPermission」に含まれる。
比較対象が「java.io.FilePermission」以外の場合、等
しくない」旨のルールが規定される。
【0051】かかる比較ルール16aに基づいて、アク
セス権比較部16は、実行時アクセス権リストと設計時
アクセス権リストとの間で制限の広狭を比較する。具体
的には、実行時アクセス権リストに含まれる各アクセス
権と、設計時アクセス権リストに含まれる各アクセス権
との間で制限の広狭を比較する。例えば、実行時のアク
セス権が「java.io.FilePermission "*", "read"」であ
って、比較対象である設計時のアクセス権が「java.io.
FilePermission "/tmp/hoge", "read"」である場合に
は、アクセス権比較部16は、比較ルール16aに基づ
いて両者の制限の広狭を比較して、「java.io.FilePerm
ission "*", "read"> java.io.FilePermission "/tmp/h
oge", "read"」を比較結果とする。
【0052】図1の説明に戻ると、出力部17は、アク
セス権比較部16による比較結果をアクセス権矛盾検出
装置10の外部に報知する処理部である。具体的には、
この出力部17は、モニタ、プリンタ、スピーカなどの
情報出力手段によって構成され、実行時アクセス権リス
トと設計時アクセス権リストとの間で生じた矛盾、すな
わち、実行時アクセス権リストのなかから、アクセス権
比較部16によって実行時の制限が設計時のアクセス権
の制限よりも広いと比較されたアクセス権を出力する。
【0053】ここで、この出力部17によって出力され
る比較結果を具体的に説明する。図7は、本実施の形態
1による比較結果の具体例を示す図である。同図に示す
ように、例えば、あらかじめ与えられたアクセス権(設
計時アクセス権リスト)がアクセス権「java.io.File
Permission "/tmp/hoge", "read"」およびアクセス権
「java.io.RuntimePermission "exitVM"」であって、解
析されたアクセス権(実行時アクセス権リスト)がアク
セス権「java.io.FilePermission "*", "read"」およ
びアクセス権「java.io.RuntimePermission "exitV
M"」であると仮定する。
【0054】この場合には、アクセス権比較部16によ
って、実行時アクセス権は設計時アクセス権と等し
いが、実行時アクセス権は設計時アクセス権よりも
広い制限を有するものと比較される。したがって、出力
部17は、同図に示すように、比較結果として「java.i
o.FilePermission "*", "read"> java.io.FilePermissi
on "/tmp/hoge", "read"」を出力する。
【0055】次に、本実施の形態1によるアクセス権矛
盾検出処理の手順を説明する。図8は、本実施の形態1
によるアクセス権矛盾検出処理の手順を説明するフロー
チャートである。なお、以下では、アクセス権リスト入
力部11によって入力された設計時アクセス権リスト
が、既にアクセス権リスト格納部12に記憶されている
ものとして説明する。
【0056】同図に示すように、本実施の形態1に係る
アクセス権矛盾検出装置10において、ソースコード入
力部13は、プログラムのソースコードをアクセス権矛
盾検出装置10内に入力する(ステップS801)。続
いて、メソッドシグネチャ検出部14は、図2に示した
ように、ソースコード入力部13から入力されたプログ
ラムのソースコードを解析して該プログラムに含まれる
メソッドシグネチャを順次検出する(ステップS80
2)。
【0057】その後、アクセス権解析部15は、図4お
よび図5に示したように、所定の解析ルール15aに基
づいて、メソッドシグネチャ検出部14によって検出さ
れたメソッドシグネチャを順次解析して実行時アクセス
権リストを求める(ステップS803)。なお、このア
クセス権の解析は、メソッドシグネチャ検出部14によ
ってメソッドシグネチャが順次検出される度に実行する
場合に限定されず、全てのメソッドシグネチャが検出さ
れる後に、順次実行するようにしてもよい。
【0058】続いて、アクセス権比較部16は、比較ル
ール16aに基づいて、アクセス権解析部15によって
求められた実行時アクセス権リストとアクセス権リスト
格納部12に格納された設計時アクセス権リストとの間
で制限の広狭を比較する(ステップS804)。なお、
このアクセス権の比較も、上記したアクセス権の解析と
同様、アクセス権解析部15によって実行時のアクセス
権が順次求められる度に実行する場合に限定されず、全
ての実行時のアクセス権が求められた後に、順次実行す
るようにしてもよい。
【0059】そして、出力部17は、図7に示したよう
に、アクセス権比較部16による比較結果として、実行
時アクセス権リストと設計時アクセス権リストとの間で
生じた矛盾、すなわち、実行時アクセス権リストのなか
から、アクセス権比較部16によって実行時の制限が設
計時のアクセス権の制限よりも広いと比較されたアクセ
ス権を出力する(ステップS805)。なお、この比較
結果の出力も、上記したアクセス権の解析および比較と
同様、アクセス権比較部16によって実行時のアクセス
権それぞれに関する比較が実行される度に出力する場合
に限定されず、全ての実行時のアクセス権に関する比較
が実行された後に、比較結果の一覧として出力するよう
にしてもよい。
【0060】上記した一連の処理によって、実行時アク
セス権リストと設計時アクセス権リストとの間で生じた
矛盾が出力部17を介して明確に報知される。そして、
この報知内容は、設計時に付与されたアクセス権に適合
するようにプログラムを修正する際の補助になる。
【0061】上述してきたように、本実施の形態1によ
れば、メソッドシグネチャ検出部14は、ソースコード
入力部13から入力されたプログラムのソースコードを
解析して該プログラムに含まれるメソッドシグネチャを
順次検出し、アクセス権解析部15は、所定の解析ルー
ル15aに基づいて、検出されたメソッドシグネチャを
順次解析して実行時アクセス権リストを求め、アクセス
権比較部16は、所定の比較ルール16aに基づいて、
実行時アクセス権リストとアクセス権リスト格納部12
に格納された設計時アクセス権リストとの間で制限の広
狭を比較し、出力部17は、この比較結果を報知するこ
ととしたので、実行時に使用されるアクセス権と設計時
に付与されたアクセス権との間で生じた矛盾を簡便かつ
確実に検出することができる。
【0062】(実施の形態2)ところで、上記実施の形
態1では、アクセス権リスト入力部11から入力された
設計時アクセス権リストそのものを、実行時アクセス権
リストの比較対象とする場合を説明したが、本発明はこ
れに限定されるものではなく、アクセス権リスト入力部
11から入力された設計時アクセス権リストを編集し
て、実行時アクセス権リストの比較対象とする場合にも
同様に適用することができる。
【0063】そこで、本実施の形態2では、アクセス権
リスト入力部11から入力された設計時アクセス権リス
トを編集する場合を説明する。図9は、本実施の形態2
に係るアクセス権矛盾検出装置の構成を示すブロック図
である。なお、図1に示した各部と同様の機能を有する
部位には同一符号を付すこととしてその詳細な説明を省
略し、本実施の形態2の特徴部分であるアクセス権圧縮
部21について説明する。
【0064】アクセス権矛盾検出装置20におけるアク
セス権圧縮部21は、所定の比較ルール16aに基づい
て、設計時アクセス権リストに含まれる各アクセス権の
間で制限の広狭を比較し、当該設計時アクセス権リスト
のなかから他のアクセス権の制限よりも狭い制限を有す
るアクセス権を削除した新たな設計時アクセス権リスト
(圧縮されたアクセス権)を作成する処理部である。
【0065】ここで、この圧縮処理を具体的に説明す
る。図10は、本実施の形態2による圧縮処理の具体例
を示す図である。同図に示すように、あらかじめ与えら
れたアクセス権(アクセス権リスト入力部11によって
入力された設計時アクセス権リスト)が、例えば、アク
セス権「java.io.FilePermission "/tmp/hoge", "rea
d"」およびアクセス権「java.io.FilePermission "/t
mp/*", "read"」であるものと仮定する。
【0066】この場合には、アクセス権圧縮部21は、
所定の比較ルール16aに基づいて、アクセス権はア
クセス権よりも広い制限を有するものと比較される。
すなわち、アクセス権の制限内容は、アクセス権の
制限内容に含まれるので、このアクセス権は、設計時
アクセス権リストのなかでは、冗長なアクセス権であ
る。したがって、アクセス権圧縮部21は、設計時アク
セス権リストのなかから、アクセス権を削除した新た
な設計時アクセス権リストを作成する(図10参照)。
【0067】なお、このようにして作成された新たな設
計時アクセス権リストは、アクセス権リスト格納部12
に格納され、アクセス権比較部16において、実行時ア
クセス権リストの比較対象となる。
【0068】上述してきたように、本実施の形態2によ
れば、アクセス権圧縮部21は、所定の比較ルール16
aに基づいて設計時アクセス権リストに含まれる各アク
セス権の間で制限の広狭を比較し、当該設計時アクセス
権リストのなかから他のアクセス権の制限よりも狭い制
限を有するアクセス権を削除した新たな設計時アクセス
権リストを作成し、アクセス権比較部16は、作成され
た新たな設計時アクセス権リストと実行時アクセス権リ
ストとの間で制限の広狭を比較することとしたので、ア
クセス権同士の比較を効率的におこなうことができる。
【0069】(実施の形態3)ところで、上記実施の形
態2では、アクセス権リスト入力部11から入力された
設計時アクセス権リストを編集する場合を説明したが、
本発明はこれに限定されるものではなく、アクセス解析
部15によって求められた実行時アクセス権リストを編
集することもできる。
【0070】そこで、本実施の形態3では、アクセス解
析部15によって求められた実行時アクセス権リストを
編集する場合を説明する。図11は、本実施の形態3に
係るアクセス権矛盾検出装置の構成を示すブロック図で
ある。なお、図1および図2に示した各部と同様の機能
を有する部位には同一符号を付すこととしてその詳細な
説明を省略し、本実施の形態3の特徴部分であるアクセ
ス権圧縮部31について説明する。
【0071】アクセス権矛盾検出装置30におけるアク
セス権圧縮部31は、所定の比較ルール16aに基づい
て、実行時アクセス権リストに含まれる各アクセス権の
間で制限の広狭を比較し、当該実行時アクセス権リスト
のなかから他のアクセス権の制限よりも狭い制限を有す
るアクセス権を削除した新たな実行時アクセス権リスト
(圧縮されたアクセス権)を作成する処理部である。
【0072】この圧縮処理は、上記実施の形態2で説明
したものと同様である。具体的に説明すると、図12に
示すように、アクセス権解析部15によって解析された
アクセス権(実行時アクセス権リスト)が、例えば、ア
クセス権「java.net.SocketPermission "www.hogehog
e.net:80", "connect"」およびアクセス権「java.ne
t.SocketPermission "*:80", "connect"」であるものと
仮定する。
【0073】この場合には、アクセス権圧縮部31は、
所定の比較ルール16aに基づいて、アクセス権はア
クセス権よりも広い制限を有するものと比較される。
すなわち、アクセス権の制限内容は、アクセス権の
制限内容に含まれるので、このアクセス権は、実行時
アクセス権リストのなかでは、冗長なアクセス権であ
る。したがって、アクセス権圧縮部31は、実行時アク
セス権リストのなかから、アクセス権を削除した新た
な実行時アクセス権リストを作成する(図11参照)。
【0074】なお、このようにして作成された新たな実
行時アクセス権リストは、アクセス権比較部16におい
て、設計時アクセス権リストの比較対象となる。すなわ
ち、アクセス権比較部16は、アクセス権圧縮部31に
よって作成された新たな実行時アクセス権リストと、ア
クセス権圧縮部21によって作成された新たな設計時ア
クセス権リストとの間で制限の広狭を比較することとな
る。
【0075】上述してきたように、本実施の形態3で
は、アクセス権圧縮部21による新たな設計時アクセス
権リストの作成に加えて、アクセス権圧縮部31は、所
定の比較ルール16aに基づいて実行時アクセス権リス
トに含まれる各アクセス権の間で制限の広狭を比較し、
当該実行時アクセス権リストのなかから他のアクセス権
の制限よりも狭い制限を有するアクセス権を削除した新
たな実行時アクセス権リストを作成し、アクセス権比較
部16は、新たな設計時アクセス権リストと新たな実行
時アクセス権リストとの間で制限の広狭を比較すること
としたので、アクセス権同士の比較を一層効率的におこ
なうことができる。
【0076】上記した圧縮処理は、アクセス権解析部1
5によって全ての実行時のアクセス権が求められた後に
実行することが望ましい。全ての実行時のアクセス権が
求められた後に圧縮処理をおこなった方が、冗長なアク
セス権を確実かつ効率的に除外することができると考え
られるからである。
【0077】なお、本実施の形態3では、アクセス権圧
縮部21による新たな設計時アクセス権リストの作成に
加えて、アクセス権圧縮部31による新たな実行時アク
セス権リストの作成をおこなう場合を説明したが、本発
明はこれに限定されるものではなく、アクセス権圧縮部
21を設けることなく、アクセス権圧縮部31のみが新
たな実行時アクセス権リストの作成をおこなう場合にも
同様に適用することができる。この場合にも、上記実施
の形態1に比較して、アクセス権同士の比較を効率的に
おこなうことができる。
【0078】(実施の形態4)ところで、上記実施の形
態1〜3では、出力部17による比較結果の出力とし
て、制限の広狭が矛盾するアクセス権を出力する場合を
説明したが、本発明はこれに限定されるものではなく、
矛盾の原因となったソースコードを出力することもでき
る。
【0079】そこで、本実施の形態4では、出力部17
によって、アクセス権の矛盾の原因となったソースコー
ドを出力する場合を説明する。図13は、本実施の形態
4に係るアクセス権矛盾検出装置の構成を示すブロック
図である。なお、図1に示した各部と同様の機能を有す
る部位には同一符号を付すこととしてその詳細な説明を
省略し、本実施の形態4の特徴部分である部分ソースコ
ード検出部41について説明する。
【0080】アクセス権矛盾検出装置40における部分
ソースコード検出部41は、プログラムのソースコード
のなかから、アクセス権比較部16によって実行時の制
限が設計時のアクセス権の制限よりも広いと比較された
アクセス権に対応する部分ソースコードを検出する処理
部である。そして、出力部17は、部分ソースコード検
出部41によって検出された部分ソースコードを出力す
る。
【0081】ここで、この出力処理を具体的に説明す
る。図14は、本実施の形態4による出力処理の具体例
を示す図である。同図に示すように、あらかじめ与えら
れたアクセス権(設計時のアクセス権)として、例え
ば、「Java.io.FilePermission "/tmp/-", "read"」が
アクセス権リスト格納部12に格納されているものと仮
定する。
【0082】この場合に、同図に示すようなソースコー
ドが、ソースコード入力部13によって入力されると、
アクセス権解析部15は、ソースコードにおける6行目
の「new FileInputStream(file)」に起因して、アクセ
ス権「java.io.FilePermission "<<ALLFILES>>", "rea
d"」を求める。続いて、アクセス権比較部16は、アク
セス権解析部15によって求められた実行時のアクセス
権と、アクセス権リスト格納部12に格納された設計時
のアクセス権との間で制限の広狭を比較するが、この場
合には、実行時のアクセス権の制限が設計時のアクセス
権の制限よりも広いものと比較される。すなわち、アク
セス権の制限の広狭が矛盾している。
【0083】このため、部分ソースコード検出部41
は、プログラムのソースコードのなかから、矛盾の原因
となった部分ソースコードを検出するが、この場合に
は、ソースコードにおける6行目の「new FileInputStr
eam(file)」を、矛盾の原因として検出する。そして、
出力部17は、図14に示すように、矛盾するアクセス
権と、矛盾の原因となった部分ソースコードを出力す
る。
【0084】上述してきたように、本実施の形態4によ
れば、部分ソースコード検出部41は、プログラムのソ
ースコードのなかから、アクセス権比較部16によって
実行時の制限が設計時のアクセス権の制限よりも広いと
比較されたアクセス権に対応する部分ソースコードを検
出し、出力部17は、検出された部分ソースコードを報
知することとしたので、矛盾の原因となった部分ソース
コードを明確に報知することができる。これによって、
設計時に付与されたアクセス権に適合するようにするプ
ログラムの修正を容易にすることもできる。
【0085】なお、本実施の形態4では、上記実施の形
態2および3で説明した設計時アクセス権リストの圧縮
や実行時アクセス権リストの圧縮を実行していない場合
を説明したが、本発明はこれに限定されるものではな
く、これらの圧縮を実行した上で、矛盾の原因となった
部分ソースコードを検出および出力する場合にも同様に
適用することができる。
【0086】ただし、実行時アクセス権リストの圧縮を
実行した場合には、新たな実行時アクセス権から遡っ
て、矛盾の原因となった部分ソースコードを検出するこ
とは煩雑であるので、設計時アクセス権リストの圧縮の
みを実行するのが望ましいとも考えられる。
【0087】(実施の形態5)ところで、上記実施の形
態1〜4では、解析ルール15aに基づいてアクセス権
を解析する場合を説明したが、この解析ルール15a
は、アクセス権解析部15によるアクセス権解析処理と
同様の処理によって、新たに作成することができるもの
である。
【0088】そこで、本実施の形態5では、上記実施の
形態1〜4で用いられる解析ルール15aを作成する解
析ルール作成装置について説明する。図15は、本実施
の形態5に係る解析ルール作成装置の構成を示すブロッ
ク図である。同図に示すように、この解析ルール作成装
置50は、ソースコード入力部13と、メソッドシグネ
チャ検出部14と、アクセス権解析部15と、解析ルー
ル作成部51と、出力部17とを備える。
【0089】このうち、ソースコード入力部13、メソ
ッドシグネチャ検出部14およびアクセス権解析部15
は、図1にて同一符号を付して説明した各部と同様の機
能を有するものである。すなわち、プログラムのソース
コードから実行時のアクセス権を解析する。
【0090】ところで、アクセス権解析部15は、実施
の形態1で説明したように、メソッドシグネチャ検出部
14によって検出されたメソッドシグネチャが解析ルー
ル15aに既に規定されている場合には、当該規定され
たメソッドシグネチャを解析してアクセス権を求める。
一方、メソッドシグネチャ検出部14によって検出され
たメソッドシグネチャが解析ルール15aに規定されて
いないものであるが、当該所定の解析ルール15aに規
定されたメソッドシグネチャを内部で呼び出している場
合には、当該内部で呼び出されるメソッドシグネチャを
解析してアクセス権を求める。
【0091】かかるメソッドシグネチャの内部呼び出し
によるアクセス権の解析を具体的に説明すると、図16
に示すように、例えば、解析ルール15aに、メソッド
シグネチャ「java.io.FileInputStream.FileInputStrea
m(java.lang.String)」とアクセス権「java.io.FilePer
mission "<<ALL FILES>>", "read"」とが対応したルー
ルが規定されていたものと仮定する。
【0092】一方、ソースコード入力部13から入力さ
れたソースコードにおいては、同図に示すように、5行
目で定義されるメソッド「Sample.foo(java.lang.Strin
g)」が、内部でメソッドシグネチャ「java.io.FileInpu
tStream.FileInputStream(java.lang.String)」を呼び
出している。このような場合には、メソッド「Sample.f
oo(java.lang.String)」に対応するアクセス権が解析ル
ール15aに規定されていないが、アクセス権解析部1
5は、内部で呼び出しているメソッドシグネチャ「jav
a.io.FileInputStream.FileInputStream(java.lang.Str
ing)」を解析して、このメソッドシグネチャに対応する
アクセス権を解析ルール15aに基づいて求める。
【0093】すなわち、内部で呼び出しているメソッド
シグネチャ「java.io.FileInputStream.FileInputStrea
m(java.lang.String)」については、アクセス権「java.
io.FilePermission "<<ALL FILES>>", "read"」が解析
ルール15aに規定されているので、アクセス権解析部
15は、アクセス権「java.io.FilePermission "<<ALL
FILES>>", "read"」を実行時のアクセス権として求める
こととなる。
【0094】このようにして、メソッドシグネチャの内
部呼び出しによるアクセス権の解析がおこなわれた場合
に、新たに解析ルールを作成するのが、図15に示す解
析ルール作成部51である。すなわち、解析ルール作成
部51は、アクセス権解析部15によって内部で呼び出
されるメソッドシグネチャを解析してアクセス権が求め
られた場合に、当該求められたアクセス権と検出された
メソッドシグネチャとを対応付けて規定した新たな解析
ルールを作成する。
【0095】例えば、図16に示したような場合には、
解析ルール作成部51は、メソッドシグネチャ「Sampl
e.foo(java.lang.String)」とアクセス権「java.io.Fil
ePermission "<<ALL FILES>>", "read"」とが対応した
解析ルールを作成することとなる。そして、出力部17
は、解析ルール作成部51によって作成された解析ルー
ルを、解析ルール作成装置50の外部に出力する。
【0096】上述してきたように、本実施の形態5によ
れば、解析ルール作成部51は、アクセス権解析部15
によって内部で呼び出されるメソッドシグネチャを解析
してアクセス権が求められた場合に、当該求められたア
クセス権と検出されたメソッドシグネチャとを対応付け
て規定した新たな解析ルールを作成することとしたの
で、実行時のアクセス権を効率的に求めることに寄与す
る効率的な解析ルールを作成することができる。
【0097】すなわち、解析ルール作成部51によって
作成された解析ルールを、上記実施の形態1〜4で説明
したアクセス権矛盾検出装置の解析ルール15aに新た
に規定することによって、例えば、ライブラリとして使
用されるプログラムの場合、各メソッドについてJav
aに標準で定義されているメソッドの呼び出しまでたど
って解析する必要がなくなるので、実行時のアクセス権
を効率的に求めることができるようになる。
【0098】(実施の形態6)ところで、上記実施の形
態5では、上記実施の形態1〜4で用いられる解析ルー
ル15aを作成する解析ルール作成装置について説明し
たが、かかる解析ルール作成装置の機能をアクセス権矛
盾検出装置に組み込んで、アクセス権矛盾検出装置を構
成することもできる。
【0099】そこで、本実施の形態6では、新たに解析
ルールを作成しつつアクセス権の矛盾を検出するアクセ
ス権矛盾検出装置を説明する。図17は、本実施の形態
6に係るアクセス権矛盾検出装置の構成を示すブロック
図である。なお、図1に示した各部と同様の機能を有す
る部位には同一符号を付すこととしてその詳細な説明を
省略し、本実施の形態6の特徴部分である解析ルール作
成部51について説明する。
【0100】アクセス権矛盾検出装置60における解析
ルール作成部51は、上記実施の形態5で説明した解析
ルール作成部51と同様の処理をおこなうものである。
すなわち、解析ルール作成部51は、アクセス権解析部
15によって内部で呼び出されるメソッドシグネチャを
解析してアクセス権が求められた場合に、当該求められ
たアクセス権と検出されたメソッドシグネチャとを対応
付けて規定した新たな解析ルールを作成する。
【0101】さらに、この解析ルール作成部51は、新
たに作成したルールを解析ルール15aに追加して規定
する。したがって、アクセス権解析部15は、この新た
なルールを参照することによって、アクセス権を効率的
に解析することができ、Javaに標準で定義されてい
るメソッドの呼び出しまでたどって解析する必要がなく
なる。
【0102】上述してきたように、本実施の形態6によ
れば、解析ルール作成部51は、アクセス権解析部15
によって内部で呼び出されるメソッドシグネチャを解析
して実行時のアクセス権が求められた場合に、当該求め
られたアクセス権と検出されたメソッドシグネチャとを
対応付けて規定した新たな解析ルールを作成し、当該新
たな解析ルールを所定の解析ルール15aに追加して規
定するとしたので、解析ルールを追加した直後から、実
行時のアクセス権を効率的に求めることができる。
【0103】(他の実施の形態)さて、これまで本発明
の実施の形態について説明したが、本発明は上述した実
施の形態以外にも、上記特許請求の範囲に記載した技術
的思想の範囲内において種々の異なる実施の形態にて実
施されてもよいものである。
【0104】例えば、本実施の形態では、Javaプロ
グラムに関してアクセス権の矛盾を検出する場合を説明
するが、本発明はこれに限定されるものではなく、アク
セス権の制限に基づいて実行されるプログラムであれ
ば、同様に適用することができる。
【0105】また、本実施の形態において説明した各処
理のうち、自動的におこなわれるものとして説明した処
理の全部または一部を手動的におこなうこともでき、あ
るいは、手動的におこなわれるものとして説明した処理
の全部または一部を公知の方法で自動的におこなうこと
もできる。この他、上記文書中や図面中で示した処理手
順、制御手順、具体的名称、各種のデータやパラメータ
を含む情報については、特記する場合を除いて任意に変
更することができる。
【0106】また、図示した各装置の各構成要素は機能
概念的なものであり、必ずしも物理的に図示の如く構成
されていることを要しない。すなわち、各装置の分散・
統合の具体的形態は図示のものに限られず、その全部ま
たは一部を、各種の負荷や使用状況などに応じて、任意
の単位で機能的または物理的に分散・統合して構成する
ことができる。さらに、各装置にて行なわれる各処理機
能は、その全部または任意の一部が、CPUおよび当該
CPUにて解析実行されるプログラムにて実現され、あ
るいは、ワイヤードロジックによるハードウェアとして
実現され得る。
【0107】なお、本実施の形態で説明したアクセス権
矛盾検出方法および解析ルール作成方法は、あらかじめ
用意されたプログラムをパーソナル・コンピュータやワ
ークステーションなどのコンピュータで実行することに
よって実現することができる。このプログラムは、イン
ターネットなどのネットワークを介して配布することが
できる。また、このプログラムは、ハードディスク、フ
レキシブルディスク(FD)、CD−ROM、MO、D
VDなどのコンピュータで読み取り可能な記録媒体に記
録され、コンピュータによって記録媒体から読み出され
ることによって実行することもできる。
【0108】(付記1)アクセス権の制限に基づいて実
行される所定のプログラムについて、該プログラムの実
行時に使用されるアクセス権を集めた実行時アクセス権
リストと設計時に付与されたアクセス権を集めた設計時
アクセス権リストとの間で生じた矛盾を検出するアクセ
ス権矛盾検出装置であって、前記プログラムのソースコ
ードを解析して該プログラムに含まれるメソッドシグネ
チャを順次検出する検出手段と、前記プログラムに含ま
れ得るメソッドシグネチャとアクセス権とを対応付けて
規定した所定の解析ルールに基づいて、前記検出手段に
よって検出されたメソッドシグネチャを順次解析して前
記実行時アクセス権リストを求める解析手段と、前記プ
ログラムに含まれ得るアクセス権の制限に関する広狭を
規定した所定の比較ルールに基づいて、前記解析手段に
よって求められた実行時アクセス権リストと前記設計時
アクセス権リストとの間で制限の広狭を比較する比較手
段と、前記比較手段による比較結果を報知する報知手段
と、を備えたことを特徴とするアクセス権矛盾検出装
置。 (付記2)前記報知手段は、前記実行時アクセス権リス
トのなかから、前記比較手段によって実行時の制限が前
記設計時のアクセス権の制限よりも広いと比較されたア
クセス権を報知することを特徴とする付記1に記載のア
クセス権矛盾検出装置。 (付記3)前記プログラムのソースコードのなかから、
前記比較手段によって実行時の制限が前記設計時のアク
セス権の制限よりも広いと比較されたアクセス権に対応
する部分ソースコードを検出する部分ソースコード検出
手段をさらに備え、前記報知手段は、前記部分ソースコ
ード検出手段によって検出された部分ソースコードを報
知することを特徴とする付記1または2に記載のアクセ
ス権矛盾検出装置。 (付記4)前記所定の比較ルールに基づいて前記設計時
アクセス権リストに含まれる各アクセス権の間で制限の
広狭を比較し、当該設計時アクセス権リストのなかから
他のアクセス権の制限よりも狭い制限を有するアクセス
権を削除した新たな設計時アクセス権リストを作成する
第1のリスト作成手段をさらに備え、前記比較手段は、
前記第1のリスト作成手段によって作成された新たな設
計時アクセス権リストと前記解析手段によって求められ
た実行時アクセス権リストとの間で制限の広狭を比較す
ることを特徴とする付記1、2または3に記載のアクセ
ス権矛盾検出装置。 (付記5)前記所定の比較ルールに基づいて前記実行時
アクセス権リストに含まれる各アクセス権の間で制限の
広狭を比較し、当該実行時アクセス権リストのなかから
他のアクセス権の制限よりも狭い制限を有するアクセス
権を削除した新たな実行時アクセス権リストを作成する
第2のリスト作成手段をさらに備え、前記比較手段は、
前記第2のリスト作成手段によって作成された新たな実
行時アクセス権リストと前記設計時アクセス権リストと
の間で制限の広狭を比較することを特徴とする付記1、
2または3に記載のアクセス権矛盾検出装置。 (付記6)前記所定の比較ルールに基づいて前記設計時
アクセス権リストに含まれる各アクセス権の間で制限の
広狭を比較し、当該設計時アクセス権リストのなかから
他のアクセス権の制限よりも狭い制限を有するアクセス
権を削除した新たな設計時アクセス権リストを作成する
第1のリスト作成手段と、前記所定の比較ルールに基づ
いて前記実行時アクセス権リストに含まれる各アクセス
権の間で制限の広狭を比較し、当該実行時アクセス権リ
ストのなかから他のアクセス権の制限よりも狭い制限を
有するアクセス権を削除した新たな実行時アクセス権リ
ストを作成する第2のリスト作成手段とをさらに備え、
前記比較手段は、前記第1のリスト作成手段によって作
成された新たな設計時アクセス権リストと前記第2のリ
スト作成手段によって作成された新たな実行時アクセス
権リストとの間で制限の広狭を比較することを特徴とす
る付記1、2または3に記載のアクセス権矛盾検出装
置。 (付記7)前記解析手段は、前記検出手段によって検出
されたメソッドシグネチャが前記所定の解析ルールに規
定されていないものであるが、当該所定の解析ルールに
規定されたメソッドシグネチャを内部で呼び出している
場合には、当該内部で呼び出されるメソッドシグネチャ
を解析して実行時のアクセス権を求めることを特徴とす
る付記1〜6のいずれか一つに記載のアクセス権矛盾検
出装置。 (付記8)前記解析手段によって前記内部で呼び出され
るメソッドシグネチャを解析して実行時のアクセス権が
求められた場合に、当該求められたアクセス権と前記検
出手段によって検出されたメソッドシグネチャとを対応
付けて規定した新たな解析ルールを作成する解析ルール
作成手段をさらに備えたことを特徴とする付記7に記載
のアクセス権矛盾検出装置。 (付記9)前記解析ルール作成手段によって新たな解析
ルールが作成された場合に、当該新たな解析ルールを前
記所定の解析ルールに追加して規定する解析ルール追加
手段をさらに備えたことを特徴とする付記8に記載のア
クセス権矛盾検出装置。 (付記10)アクセス権の制限に基づいて実行される所
定のプログラムについて、該プログラムに含まれ得るメ
ソッドシグネチャとアクセス権とを対応付けて規定した
所定の解析ルールを作成する解析ルール作成装置であっ
て、前記プログラムのソースコードを解析して該プログ
ラムに含まれるメソッドシグネチャを順次検出する検出
手段と、前記検出手段によって検出されたメソッドシグ
ネチャが前記所定の解析ルールに既に規定されている場
合には、当該規定されたメソッドシグネチャを解析して
アクセス権を求め、前記検出手段によって検出されたメ
ソッドシグネチャが前記所定の解析ルールに規定されて
いないものであるが、当該所定の解析ルールに規定され
たメソッドシグネチャを内部で呼び出している場合に
は、当該内部で呼び出されるメソッドシグネチャを解析
してアクセス権を求める解析手段と、前記解析手段によ
って前記内部で呼び出されるメソッドシグネチャを解析
してアクセス権が求められた場合に、当該求められたア
クセス権と前記検出手段によって検出されたメソッドシ
グネチャとを対応付けて規定した新たな解析ルールを作
成する解析ルール作成手段と、を備えたことを特徴とす
る解析ルール作成装置。 (付記11)アクセス権の制限に基づいて実行される所
定のプログラムについて、該プログラムの実行時に使用
されるアクセス権を集めた実行時アクセス権リストと設
計時に付与されたアクセス権を集めた設計時アクセス権
リストとの間で生じた矛盾を検出するアクセス権矛盾検
出方法であって、前記プログラムのソースコードを解析
して該プログラムに含まれるメソッドシグネチャを順次
検出する検出工程と、前記プログラムに含まれ得るメソ
ッドシグネチャとアクセス権とを対応付けて規定した所
定の解析ルールに基づいて、前記検出工程によって検出
されたメソッドシグネチャを順次解析して前記実行時ア
クセス権リストを求める解析工程と、前記プログラムに
含まれ得るアクセス権の制限に関する広狭を規定した所
定の比較ルールに基づいて、前記解析工程によって求め
られた実行時アクセス権リストと前記設計時アクセス権
リストとの間で制限の広狭を比較する比較工程と、前記
比較工程による比較結果を報知する報知工程と、を含ん
だことを特徴とするアクセス権矛盾検出方法。 (付記12)前記報知工程は、前記実行時アクセス権リ
ストのなかから、前記比較工程によって実行時の制限が
前記設計時のアクセス権の制限よりも広いと比較された
アクセス権を報知することを特徴とする付記11に記載
のアクセス権矛盾検出方法。 (付記13)前記プログラムのソースコードのなかか
ら、前記比較工程によって実行時の制限が前記設計時の
アクセス権の制限よりも広いと比較されたアクセス権に
対応する部分ソースコードを検出する部分ソースコード
検出工程をさらに含み、前記報知工程は、前記部分ソー
スコード検出工程によって検出された部分ソースコード
を報知することを特徴とする付記11または12に記載
のアクセス権矛盾検出方法。 (付記14)前記所定の比較ルールに基づいて前記設計
時アクセス権リストに含まれる各アクセス権の間で制限
の広狭を比較し、当該設計時アクセス権リストのなかか
ら他のアクセス権の制限よりも狭い制限を有するアクセ
ス権を削除した新たな設計時アクセス権リストを作成す
る第1のリスト作成工程をさらに含み、前記比較工程
は、前記第1のリスト作成工程によって作成された新た
な設計時アクセス権リストと前記解析工程によって求め
られた実行時アクセス権リストとの間で制限の広狭を比
較することを特徴とする付記11、12または13に記
載のアクセス権矛盾検出方法。 (付記15)前記所定の比較ルールに基づいて前記実行
時アクセス権リストに含まれる各アクセス権の間で制限
の広狭を比較し、当該実行時アクセス権リストのなかか
ら他のアクセス権の制限よりも狭い制限を有するアクセ
ス権を削除した新たな実行時アクセス権リストを作成す
る第2のリスト作成工程をさらに含み、前記比較工程
は、前記第2のリスト作成工程によって作成された新た
な実行時アクセス権リストと前記設計時アクセス権リス
トとの間で制限の広狭を比較することを特徴とする付記
11、12または13に記載のアクセス権矛盾検出方
法。 (付記16)前記所定の比較ルールに基づいて前記設計
時アクセス権リストに含まれる各アクセス権の間で制限
の広狭を比較し、当該設計時アクセス権リストのなかか
ら他のアクセス権の制限よりも狭い制限を有するアクセ
ス権を削除した新たな設計時アクセス権リストを作成す
る第1のリスト作成工程と、前記所定の比較ルールに基
づいて前記実行時アクセス権リストに含まれる各アクセ
ス権の間で制限の広狭を比較し、当該実行時アクセス権
リストのなかから他のアクセス権の制限よりも狭い制限
を有するアクセス権を削除した新たな実行時アクセス権
リストを作成する第2のリスト作成工程とをさらに含
み、前記比較工程は、前記第1のリスト作成工程によっ
て作成された新たな設計時アクセス権リストと前記第2
のリスト作成工程によって作成された新たな実行時アク
セス権リストとの間で制限の広狭を比較することを特徴
とする付記11、12または13に記載のアクセス権矛
盾検出方法。 (付記17)前記解析工程は、前記検出工程によって検
出されたメソッドシグネチャが前記所定の解析ルールに
規定されていないものであるが、当該所定の解析ルール
に規定されたメソッドシグネチャを内部で呼び出してい
る場合には、当該内部で呼び出されるメソッドシグネチ
ャを解析して実行時のアクセス権を求めることを特徴と
する付記11〜16のいずれか一つに記載のアクセス権
矛盾検出方法。 (付記18)前記解析工程によって前記内部で呼び出さ
れるメソッドシグネチャを解析して実行時のアクセス権
が求められた場合に、当該求められたアクセス権と前記
検出工程によって検出されたメソッドシグネチャとを対
応付けて規定した新たな解析ルールを作成する解析ルー
ル作成工程をさらに含んだことを特徴とする付記17に
記載のアクセス権矛盾検出方法。 (付記19)前記解析ルール作成工程によって新たな解
析ルールが作成された場合に、当該新たな解析ルールを
前記所定の解析ルールに追加して規定する解析ルール追
加工程をさらに含んだことを特徴とする付記18に記載
のアクセス権矛盾検出方法。 (付記20)アクセス権の制限に基づいて実行される所
定のプログラムについて、該プログラムに含まれ得るメ
ソッドシグネチャとアクセス権とを対応付けて規定した
所定の解析ルールを作成する解析ルール作成方法であっ
て、前記プログラムのソースコードを解析して該プログ
ラムに含まれるメソッドシグネチャを順次検出する検出
工程と、前記検出工程によって検出されたメソッドシグ
ネチャが前記所定の解析ルールに既に規定されている場
合には、当該規定されたメソッドシグネチャを解析して
アクセス権を求め、前記検出工程によって検出されたメ
ソッドシグネチャが前記所定の解析ルールに規定されて
いないものであるが、当該所定の解析ルールに規定され
たメソッドシグネチャを内部で呼び出している場合に
は、当該内部で呼び出されるメソッドシグネチャを解析
してアクセス権を求める解析工程と、前記解析工程によ
って前記内部で呼び出されるメソッドシグネチャを解析
してアクセス権が求められた場合に、当該求められたア
クセス権と前記検出工程によって検出されたメソッドシ
グネチャとを対応付けて規定した新たな解析ルールを作
成する解析ルール作成工程と、を含んだことを特徴とす
る解析ルール作成方法。 (付記21)前記付記11〜20のいずれか一つに記載
された方法をコンピュータに実行させるプログラム。
【0109】
【発明の効果】以上説明したように、請求項1によれ
ば、プログラムのソースコードを解析して該プログラム
に含まれるメソッドシグネチャを順次検出し、プログラ
ムに含まれ得るメソッドシグネチャとアクセス権とを対
応付けて規定した所定の解析ルールに基づいて、検出さ
れたメソッドシグネチャを順次解析して実行時アクセス
権リストを求め、プログラムに含まれ得るアクセス権の
制限に関する広狭を規定した所定の比較ルールに基づい
て、実行時アクセス権リストと設計時アクセス権リスト
との間で制限の広狭を比較し、この比較結果を報知する
こととしたので、実行時に使用されるアクセス権と設計
時に付与されたアクセス権との間で生じた矛盾を簡便か
つ確実に検出することができる。
【0110】また、請求項2の発明によれば、実行時ア
クセス権リストのなかから、実行時の制限が設計時のア
クセス権の制限よりも広いと比較されたアクセス権を報
知することとしたので、矛盾が生じているアクセス権を
明確に報知することができる。これによって、設計時に
付与されたアクセス権に適合するようにするプログラム
の修正を補助することもできる。
【0111】また、請求項3の発明によれば、プログラ
ムのソースコードのなかから、実行時の制限が設計時の
アクセス権の制限よりも広いと比較されたアクセス権に
対応する部分ソースコードを検出し、検出された部分ソ
ースコードを報知することとしたので、矛盾の原因とな
った部分ソースコードを明確に報知することができる。
これによって、設計時に付与されたアクセス権に適合す
るようにするプログラムの修正を容易にすることもでき
る。
【0112】また、請求項4の発明によれば、所定の比
較ルールに基づいて設計時アクセス権リストに含まれる
各アクセス権の間で制限の広狭を比較し、当該設計時ア
クセス権リストのなかから他のアクセス権の制限よりも
狭い制限を有するアクセス権を削除した新たな設計時ア
クセス権リストを作成し、作成された新たな設計時アク
セス権リストと実行時アクセス権リストとの間で制限の
広狭を比較することとしたので、アクセス権同士の比較
を効率的におこなうことができる。これによって、実行
時に使用されるアクセス権と設計時に付与されたアクセ
ス権との間で生じた矛盾を迅速に検出することもでき
る。
【0113】また、請求項5の発明によれば、所定の比
較ルールに基づいて実行時アクセス権リストに含まれる
各アクセス権の間で制限の広狭を比較し、当該実行時ア
クセス権リストのなかから他のアクセス権の制限よりも
狭い制限を有するアクセス権を削除した新たな実行時ア
クセス権リストを作成し、作成された新たな実行時アク
セス権リストと設計時アクセス権リストとの間で制限の
広狭を比較することとしたので、アクセス権同士の比較
を効率的におこなうことができる。これによって、実行
時に使用されるアクセス権と設計時に付与されたアクセ
ス権との間で生じた矛盾を迅速に検出することもでき
る。
【0114】また、請求項6の発明によれば、所定の比
較ルールに基づいて設計時アクセス権リストに含まれる
各アクセス権の間で制限の広狭を比較し、当該設計時ア
クセス権リストのなかから他のアクセス権の制限よりも
狭い制限を有するアクセス権を削除した新たな設計時ア
クセス権リストを作成し、所定の比較ルールに基づいて
実行時アクセス権リストに含まれる各アクセス権の間で
制限の広狭を比較し、当該実行時アクセス権リストのな
かから他のアクセス権の制限よりも狭い制限を有するア
クセス権を削除した新たな実行時アクセス権リストを作
成し、新たな設計時アクセス権リストと新たな実行時ア
クセス権リストとの間で制限の広狭を比較することとし
たので、アクセス権同士の比較を一層効率的におこなう
ことができる。これによって、実行時に使用されるアク
セス権と設計時に付与されたアクセス権との間で生じた
矛盾を一層迅速に検出することもできる。
【0115】また、請求項7の発明によれば、検出され
たメソッドシグネチャが所定の解析ルールに規定されて
いないものであるが、当該所定の解析ルールに規定され
たメソッドシグネチャを内部で呼び出している場合に
は、当該内部で呼び出されるメソッドシグネチャを解析
して実行時のアクセス権を求めることとしたので、プロ
グラムのソースコードから実行時のアクセス権を確実に
求めることができる。これによって、実行時に使用され
るアクセス権と設計時に付与されたアクセス権との間で
生じた矛盾を一層確実に検出することもできる。
【0116】また、請求項8の発明によれば、内部で呼
び出されるメソッドシグネチャを解析して実行時のアク
セス権が求められた場合に、当該求められたアクセス権
と検出されたメソッドシグネチャとを対応付けて規定し
た新たな解析ルールを作成するとしたので、実行時のア
クセス権を効率的に求めることに寄与する効率的な解析
ルールを作成することができる。
【0117】また、請求項9の発明によれば、新たな解
析ルールが作成された場合に、当該新たな解析ルールを
所定の解析ルールに追加して規定するとしたので、解析
ルールを追加した直後から、実行時のアクセス権を効率
的に求めることができる。
【0118】また、請求項10の発明によれば、プログ
ラムのソースコードを解析して該プログラムに含まれる
メソッドシグネチャを順次検出し、検出されたメソッド
シグネチャが所定の解析ルールに既に規定されている場
合には、当該規定されたメソッドシグネチャを解析して
アクセス権を求め、検出されたメソッドシグネチャが所
定の解析ルールに規定されていないものであるが、当該
所定の解析ルールに規定されたメソッドシグネチャを内
部で呼び出している場合には、当該内部で呼び出される
メソッドシグネチャを解析してアクセス権を求め、内部
で呼び出されるメソッドシグネチャを解析してアクセス
権が求められた場合に、当該求められたアクセス権と検
出されたメソッドシグネチャとを対応付けて規定した新
たな解析ルールを作成することとしたので、実行時のア
クセス権を効率的に求めることに寄与する効率的な解析
ルールを作成することができる。
【図面の簡単な説明】
【図1】本実施の形態1に係るアクセス権矛盾検出装置
の構成を示すブロック図である。
【図2】本実施の形態1によるメソッドシグネチャ検出
処理の具体例を示す図である。
【図3】解析ルールに規定される情報の構成例を示す図
である。
【図4】本実施の形態1によるアクセス権解析処理の具
体例を示す図である。
【図5】本実施の形態1によるアクセス権解析処理の具
体例を示す図である。
【図6】比較ルールに規定される情報の構成例を示す図
である。
【図7】本実施の形態1による比較結果の具体例を示す
図である。
【図8】本実施の形態1によるアクセス権矛盾検出処理
の手順を説明するフローチャートである。
【図9】本実施の形態2に係るアクセス権矛盾検出装置
の構成を示すブロック図である。
【図10】本実施の形態2による圧縮処理の具体例を示
す図である。
【図11】本実施の形態3に係るアクセス権矛盾検出装
置の構成を示すブロック図である。
【図12】本実施の形態3による圧縮処理の具体例を示
す図である。
【図13】本実施の形態4に係るアクセス権矛盾検出装
置の構成を示すブロック図である。
【図14】本実施の形態4による出力処理の具体例を示
す図である。
【図15】本実施の形態5に係る解析ルール作成装置の
構成を示すブロック図である。
【図16】本実施の形態5による解析ルール作成処理の
具体例を示す図である。
【図17】本実施の形態6に係るアクセス権矛盾検出装
置の構成を示すブロック図である。
【図18】アクセス権の例を示す図である。
【図19】アクセス権とメソッドの対応例を示す図であ
る。
【符号の説明】
10、20、30、40、60 アクセス権矛盾検出装
置 11 アクセス権リスト入力部 12 アクセス権リスト格納部 13 ソースコード入力部 14 メソッドシグネチャ検出部 15 アクセス権解析部 15a 解析ルール 16 アクセス権比較部 16a 比較ルール 17 出力部 21、31 アクセス権圧縮部 41 部分ソースコード検出部 51 解析ルール作成部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 アクセス権の制限に基づいて実行される
    所定のプログラムについて、該プログラムの実行時に使
    用されるアクセス権を集めた実行時アクセス権リストと
    設計時に付与されたアクセス権を集めた設計時アクセス
    権リストとの間で生じた矛盾を検出するアクセス権矛盾
    検出装置であって、 前記プログラムのソースコードを解析して該プログラム
    に含まれるメソッドシグネチャを順次検出する検出手段
    と、 前記プログラムに含まれ得るメソッドシグネチャとアク
    セス権とを対応付けて規定した所定の解析ルールに基づ
    いて、前記検出手段によって検出されたメソッドシグネ
    チャを順次解析して前記実行時アクセス権リストを求め
    る解析手段と、 前記プログラムに含まれ得るアクセス権の制限に関する
    広狭を規定した所定の比較ルールに基づいて、前記解析
    手段によって求められた実行時アクセス権リストと前記
    設計時アクセス権リストとの間で制限の広狭を比較する
    比較手段と、 前記比較手段による比較結果を報知する報知手段と、 を備えたことを特徴とするアクセス権矛盾検出装置。
  2. 【請求項2】 前記報知手段は、前記実行時アクセス権
    リストのなかから、前記比較手段によって実行時の制限
    が前記設計時のアクセス権の制限よりも広いと比較され
    たアクセス権を報知することを特徴とする請求項1に記
    載のアクセス権矛盾検出装置。
  3. 【請求項3】 前記プログラムのソースコードのなかか
    ら、前記比較手段によって実行時の制限が前記設計時の
    アクセス権の制限よりも広いと比較されたアクセス権に
    対応する部分ソースコードを検出する部分ソースコード
    検出手段をさらに備え、 前記報知手段は、前記部分ソースコード検出手段によっ
    て検出された部分ソースコードを報知することを特徴と
    する請求項1または2に記載のアクセス権矛盾検出装
    置。
  4. 【請求項4】 前記所定の比較ルールに基づいて前記設
    計時アクセス権リストに含まれる各アクセス権の間で制
    限の広狭を比較し、当該設計時アクセス権リストのなか
    から他のアクセス権の制限よりも狭い制限を有するアク
    セス権を削除した新たな設計時アクセス権リストを作成
    する第1のリスト作成手段をさらに備え、 前記比較手段は、前記第1のリスト作成手段によって作
    成された新たな設計時アクセス権リストと前記解析手段
    によって求められた実行時アクセス権リストとの間で制
    限の広狭を比較することを特徴とする請求項1、2また
    は3に記載のアクセス権矛盾検出装置。
  5. 【請求項5】 前記所定の比較ルールに基づいて前記実
    行時アクセス権リストに含まれる各アクセス権の間で制
    限の広狭を比較し、当該実行時アクセス権リストのなか
    から他のアクセス権の制限よりも狭い制限を有するアク
    セス権を削除した新たな実行時アクセス権リストを作成
    する第2のリスト作成手段をさらに備え、 前記比較手段は、前記第2のリスト作成手段によって作
    成された新たな実行時アクセス権リストと前記設計時ア
    クセス権リストとの間で制限の広狭を比較することを特
    徴とする請求項1、2または3に記載のアクセス権矛盾
    検出装置。
  6. 【請求項6】 前記所定の比較ルールに基づいて前記設
    計時アクセス権リストに含まれる各アクセス権の間で制
    限の広狭を比較し、当該設計時アクセス権リストのなか
    から他のアクセス権の制限よりも狭い制限を有するアク
    セス権を削除した新たな設計時アクセス権リストを作成
    する第1のリスト作成手段と、前記所定の比較ルールに
    基づいて前記実行時アクセス権リストに含まれる各アク
    セス権の間で制限の広狭を比較し、当該実行時アクセス
    権リストのなかから他のアクセス権の制限よりも狭い制
    限を有するアクセス権を削除した新たな実行時アクセス
    権リストを作成する第2のリスト作成手段とをさらに備
    え、 前記比較手段は、前記第1のリスト作成手段によって作
    成された新たな設計時アクセス権リストと前記第2のリ
    スト作成手段によって作成された新たな実行時アクセス
    権リストとの間で制限の広狭を比較することを特徴とす
    る請求項1、2または3に記載のアクセス権矛盾検出装
    置。
  7. 【請求項7】 前記解析手段は、前記検出手段によって
    検出されたメソッドシグネチャが前記所定の解析ルール
    に規定されていないものであるが、当該所定の解析ルー
    ルに規定されたメソッドシグネチャを内部で呼び出して
    いる場合には、当該内部で呼び出されるメソッドシグネ
    チャを解析して実行時のアクセス権を求めることを特徴
    とする請求項1〜6のいずれか一つに記載のアクセス権
    矛盾検出装置。
  8. 【請求項8】 前記解析手段によって前記内部で呼び出
    されるメソッドシグネチャを解析して実行時のアクセス
    権が求められた場合に、当該求められたアクセス権と前
    記検出手段によって検出されたメソッドシグネチャとを
    対応付けて規定した新たな解析ルールを作成する解析ル
    ール作成手段をさらに備えたことを特徴とする請求項7
    に記載のアクセス権矛盾検出装置。
  9. 【請求項9】 前記解析ルール作成手段によって新たな
    解析ルールが作成された場合に、当該新たな解析ルール
    を前記所定の解析ルールに追加して規定する解析ルール
    追加手段をさらに備えたことを特徴とする請求項8に記
    載のアクセス権矛盾検出装置。
  10. 【請求項10】 アクセス権の制限に基づいて実行され
    る所定のプログラムについて、該プログラムに含まれ得
    るメソッドシグネチャとアクセス権とを対応付けて規定
    した所定の解析ルールを作成する解析ルール作成装置で
    あって、 前記プログラムのソースコードを解析して該プログラム
    に含まれるメソッドシグネチャを順次検出する検出手段
    と、 前記検出手段によって検出されたメソッドシグネチャが
    前記所定の解析ルールに既に規定されている場合には、
    当該規定されたメソッドシグネチャを解析してアクセス
    権を求め、前記検出手段によって検出されたメソッドシ
    グネチャが前記所定の解析ルールに規定されていないも
    のであるが、当該所定の解析ルールに規定されたメソッ
    ドシグネチャを内部で呼び出している場合には、当該内
    部で呼び出されるメソッドシグネチャを解析してアクセ
    ス権を求める解析手段と、 前記解析手段によって前記内部で呼び出されるメソッド
    シグネチャを解析してアクセス権が求められた場合に、
    当該求められたアクセス権と前記検出手段によって検出
    されたメソッドシグネチャとを対応付けて規定した新た
    な解析ルールを作成する解析ルール作成手段と、 を備えたことを特徴とする解析ルール作成装置。
JP2001388587A 2001-12-20 2001-12-20 アクセス権矛盾検出装置および解析ルール作成装置 Expired - Fee Related JP3939977B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001388587A JP3939977B2 (ja) 2001-12-20 2001-12-20 アクセス権矛盾検出装置および解析ルール作成装置
US10/268,963 US7363275B2 (en) 2001-12-20 2002-10-11 Access right contradiction detection apparatus and analysis rule creation apparatus
DE60213548T DE60213548T2 (de) 2001-12-20 2002-10-17 Gerät zum Auffinden von Zugangsberechtigungswidersprüchen und Gerät zum Erzeugen von analysierenden Regeln
EP02257214A EP1321844B1 (en) 2001-12-20 2002-10-17 Access right contradiction detection apparatus and analysis rule creation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001388587A JP3939977B2 (ja) 2001-12-20 2001-12-20 アクセス権矛盾検出装置および解析ルール作成装置

Publications (2)

Publication Number Publication Date
JP2003186708A true JP2003186708A (ja) 2003-07-04
JP3939977B2 JP3939977B2 (ja) 2007-07-04

Family

ID=19188190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001388587A Expired - Fee Related JP3939977B2 (ja) 2001-12-20 2001-12-20 アクセス権矛盾検出装置および解析ルール作成装置

Country Status (4)

Country Link
US (1) US7363275B2 (ja)
EP (1) EP1321844B1 (ja)
JP (1) JP3939977B2 (ja)
DE (1) DE60213548T2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141568A (ja) * 2003-11-07 2005-06-02 Nec Corp 情報管理システムおよび情報管理プログラム
JP2005182478A (ja) * 2003-12-19 2005-07-07 Ntt Data Corp アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム
JP2010176167A (ja) * 2009-01-27 2010-08-12 Fujitsu Ltd 最小権限違反検出プログラム
JP2013196310A (ja) * 2012-03-19 2013-09-30 Kddi Corp アプリケーション解析装置、アプリケーション解析システム、およびプログラム
US20160224772A1 (en) * 2012-12-20 2016-08-04 Bank Of America Corporation Reconciliation of Access Rights in a Computing System
US9639594B2 (en) 2012-12-20 2017-05-02 Bank Of America Corporation Common data model for identity access management data
US9792153B2 (en) 2012-12-20 2017-10-17 Bank Of America Corporation Computing resource inventory system
US10083312B2 (en) 2012-12-20 2018-09-25 Bank Of America Corporation Quality assurance checks of access rights in a computing system
US10341385B2 (en) 2012-12-20 2019-07-02 Bank Of America Corporation Facilitating separation-of-duties when provisioning access rights in a computing system
US10491633B2 (en) 2012-12-20 2019-11-26 Bank Of America Corporation Access requests at IAM system implementing IAM data model

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005021064B4 (de) 2005-05-06 2008-10-16 Siemens Ag Verfahren und Vorrichtung zum Schutz gegen Buffer Overrun-Attacken
US7784101B2 (en) * 2005-06-30 2010-08-24 Microsoft Corporation Identifying dependencies of an application upon a given security context
US7779480B2 (en) * 2005-06-30 2010-08-17 Microsoft Corporation Identifying dependencies of an application upon a given security context
US7620995B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Identifying dependencies of an application upon a given security context
US10121153B1 (en) 2007-10-15 2018-11-06 Elance, Inc. Online escrow service
US10204074B1 (en) 2008-06-12 2019-02-12 Elance, Inc. Online professional services storefront
US8332909B2 (en) * 2008-12-16 2012-12-11 Microsoft Corporation Automated software restriction policy rule generation
US10635412B1 (en) * 2009-05-28 2020-04-28 ELANCE, Inc . Online professional badge
US10650332B1 (en) 2009-06-01 2020-05-12 Elance, Inc. Buyer-provider matching algorithm
JP5423424B2 (ja) * 2010-01-25 2014-02-19 富士ゼロックス株式会社 アクセス権管理プログラム、アクセス権管理装置及びデータ処理システム
US9842312B1 (en) 2010-02-19 2017-12-12 Upwork Global Inc. Digital workroom
JP5807640B2 (ja) * 2010-09-22 2015-11-10 日本電気株式会社 アクセス権可否生成装置、アクセス権可否生成方法、プログラム、及び、アクセス制御システム
JP2013065114A (ja) * 2011-09-15 2013-04-11 Fujitsu Ltd 情報処理システムの制御方法、中継装置の制御プログラム及びクライアント装置の制御プログラム
US9117180B1 (en) 2013-03-15 2015-08-25 Elance, Inc. Matching method based on a machine learning algorithm and a system thereof
US9185136B2 (en) * 2013-11-28 2015-11-10 Cyber-Ark Software Ltd. Correlation based security risk identification
US11176267B2 (en) 2015-02-24 2021-11-16 International Business Machines Corporation Fine-grained user control over usages of sensitive system resources having private data with applications in privacy enforcement
US10819586B2 (en) * 2018-10-17 2020-10-27 Servicenow, Inc. Functional discovery and mapping of serverless resources
CN109784073A (zh) * 2018-12-29 2019-05-21 360企业安全技术(珠海)有限公司 数据访问方法及装置、存储介质、计算机设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US6167520A (en) 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
US5983348A (en) 1997-09-10 1999-11-09 Trend Micro Incorporated Computer network malicious code scanner
US6317868B1 (en) 1997-10-24 2001-11-13 University Of Washington Process for transparently enforcing protection domains and access control as well as auditing operations in software components
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6205466B1 (en) * 1998-07-17 2001-03-20 Hewlett-Packard Company Infrastructure for an open digital services marketplace
US6625603B1 (en) * 1998-09-21 2003-09-23 Microsoft Corporation Object type specific access control
US6466983B1 (en) * 1999-09-30 2002-10-15 Steven Paul Strazza Systems and methods for controlling access to data maintained in a repository
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
US6889209B1 (en) * 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7110982B2 (en) * 2001-08-27 2006-09-19 Dphi Acquisitions, Inc. Secure access method and system
US20030188183A1 (en) * 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141568A (ja) * 2003-11-07 2005-06-02 Nec Corp 情報管理システムおよび情報管理プログラム
JP4710221B2 (ja) * 2003-11-07 2011-06-29 日本電気株式会社 情報管理システムおよび情報管理プログラム
JP2005182478A (ja) * 2003-12-19 2005-07-07 Ntt Data Corp アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム
JP4545430B2 (ja) * 2003-12-19 2010-09-15 株式会社エヌ・ティ・ティ・データ アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム
JP2010176167A (ja) * 2009-01-27 2010-08-12 Fujitsu Ltd 最小権限違反検出プログラム
US8677501B2 (en) 2009-01-27 2014-03-18 Fujitsu Limited Privilege violation detecting program
JP2013196310A (ja) * 2012-03-19 2013-09-30 Kddi Corp アプリケーション解析装置、アプリケーション解析システム、およびプログラム
US20160226880A1 (en) * 2012-12-20 2016-08-04 Bank Of America Corporation Reconciliation of Access Rights in a Computing System
US20160224772A1 (en) * 2012-12-20 2016-08-04 Bank Of America Corporation Reconciliation of Access Rights in a Computing System
US9639594B2 (en) 2012-12-20 2017-05-02 Bank Of America Corporation Common data model for identity access management data
US9792153B2 (en) 2012-12-20 2017-10-17 Bank Of America Corporation Computing resource inventory system
US9830455B2 (en) * 2012-12-20 2017-11-28 Bank Of America Corporation Reconciliation of access rights in a computing system
US9916450B2 (en) * 2012-12-20 2018-03-13 Bank Of America Corporation Reconciliation of access rights in a computing system
US10083312B2 (en) 2012-12-20 2018-09-25 Bank Of America Corporation Quality assurance checks of access rights in a computing system
US10341385B2 (en) 2012-12-20 2019-07-02 Bank Of America Corporation Facilitating separation-of-duties when provisioning access rights in a computing system
US10491633B2 (en) 2012-12-20 2019-11-26 Bank Of America Corporation Access requests at IAM system implementing IAM data model
US10664312B2 (en) 2012-12-20 2020-05-26 Bank Of America Corporation Computing resource inventory system
US11283838B2 (en) 2012-12-20 2022-03-22 Bank Of America Corporation Access requests at IAM system implementing IAM data model

Also Published As

Publication number Publication date
EP1321844B1 (en) 2006-08-02
EP1321844A3 (en) 2005-05-11
JP3939977B2 (ja) 2007-07-04
DE60213548D1 (de) 2006-09-14
EP1321844A2 (en) 2003-06-25
US7363275B2 (en) 2008-04-22
DE60213548T2 (de) 2007-10-25
US20030120603A1 (en) 2003-06-26

Similar Documents

Publication Publication Date Title
JP2003186708A (ja) アクセス権矛盾検出装置および解析ルール作成装置
US7406685B2 (en) System and method for whole-system program analysis
US7519953B2 (en) Method and system for automatically testing a software build
US8010844B2 (en) File mutation method and system using file section information and mutation rules
US20040040017A1 (en) Method and apparatus for automatically determining optimum placement of privileged code locations in existing code
JP2010507165A5 (ja)
WO2006087780A1 (ja) 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法
JP2006185211A (ja) プログラム解析装置、テスト実行装置、その解析方法及びプログラム
US9311111B2 (en) Programming environment with support for handle and non-handle user-created classes
JP7040800B2 (ja) コンピュータファイルメタデータの収集および表示を実施するためのアーキテクチャ、方法および装置
US9715372B2 (en) Executable guidance experiences based on implicitly generated guidance models
US20080168311A1 (en) Configuration debugging comparison
US9189372B2 (en) Trace coverage analysis
JP2007109016A (ja) アクセスポリシ生成システム、アクセスポリシ生成方法及びアクセスポリシ生成用プログラム
US20060156292A1 (en) Program automatic converting method and program automatic converting device
EP1710698A2 (en) Generic software requirements analyser
US20030204525A1 (en) Application control method, and implementation device and processing program for the same
JP2008186378A (ja) 例外に対処するためのプログラム
US20060190218A1 (en) Generative instrumentation framework
US8191050B2 (en) Information processor, control method therefor, computer program and storage medium
JP4983027B2 (ja) チェックプログラム及びチェック方法
WO2022195739A1 (ja) 活動痕跡抽出装置、活動痕跡抽出方法および活動痕跡抽出プログラム
Sistla et al. CMV: Automatic verification of complete mediation for Java Virtual Machines
JP2014038467A (ja) 一貫性破壊検出装置、一貫性破壊検出プログラム、及び一貫性破壊検出方法
WO2022123763A1 (ja) コールグラフ作成装置、コールグラフ作成方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070329

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140406

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees