アクセス制御設定装置、方法及びコンピュータプログラム
【課題】セキュアOSのアクセス制御の設定において、アクセス制限の設定漏れを有効に検出するアクセス制御設定装置を提供する。
【解決手段】それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを端末装置200より取得してRAMに保持しておく。処理装置110は、リソース情報及び設定状況情報を表示装置120に表示させるとともに、すべてのリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する。
【解決手段】それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを端末装置200より取得してRAMに保持しておく。処理装置110は、リソース情報及び設定状況情報を表示装置120に表示させるとともに、すべてのリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばセキュリティを強化するためにアクセス制御機能を具備したオペレーティングシステム(以下、「セキュアOS(Secure OS)という)において、そのセキュアOSに対するアクセス制御の設定を行う際に、設定漏れを容易に検出するための情報処理技術に関する。
【背景技術】
【0002】
セキュアOSのアクセス制御方式として、アクセスを許可したい行為を設定ファイルに記述し、記述されていない行為についてはアクセスを拒否するホワイトリスト方式と、その逆で、アクセスを拒否したい行為を設定ファイルに記述し、記述されていない行為はアクセスを許可するブラックリスト方式とが存在する。
【0003】
ホワイトリスト方式において、OSカーネル上で動作するプログラムは、設定ファイルに記述されたアクセス許可ルール以外の振る舞いができないため、不正アクセスやプログラムの誤動作が発生した際でも、それらの動作を最小限に制限することができる。そのため、近年のセキュアOSには、ホワイトリスト方式が比較的多く採択されている。
【0004】
しかしながら、ホワイトリスト方式は、プログラムの全ての振る舞いについてアクセス許可しないと、正当なプログラムであっても正常動作しない。そのため、アクセス制御の設定にあたっては、プログラムの振る舞いを考慮して、設定作業を行う必要があり、通常はプログラムの振る舞いまで関知していない設定者にとっては、設定作業に多大な時間がかかり、負担となっている。
【0005】
そこで、設定者の負担を軽減するために、例えば、プログラムをしばらく動作させ、アクセスした履歴をログに出力し、そのログをセキュアOSの設定に変換することが行われている(特許文献1参照)。また、例えば、プログラムのソースコードやバイナリから、プログラムがアクセスすべき箇所を探索し、探索結果をセキュアOSの設定に変換することも行われている(特許文献2参照)。
【0006】
しかし、特許文献1に記載のような技術にあっては、プログラムをどれだけ動かせば充分なログを取得できるのかを把握できず、また、プログラムを動かすこと自体に時間がかかるといった問題がある。また、特許文献2に記載のような技術にあっても、様々な言語で記述されたプログラムから、プログラムのアクセス箇所を全て抽出するのは困難である。
以上の説明から明らかなように、ホワイトリスト方式を改善するものでは、その問題の全面的な解決には至らない。
【0007】
一方、ブラックリスト方式は、ホワイト方式とは逆に、当初はプログラムの全ての振る舞いについてアクセスが許可されており、必要最小限の振る舞いについて随時アクセス制御をする。そのため、プログラムの全振る舞いを意識することなく、アクセス制御の設定をすることができ、設定者の負担は比較的小さい。
しかしながら、ブラックリスト方式においては、OSのアクセス対象となるリソースの数は数十万にもなるため、設定漏れの起こるおそれがある。
【0008】
ブラックリスト方式の問題点を改善するためには、設定漏れを有効に検出する必要があるが、ブラックリスト方式では、アクセス許可されていても、それが、設定漏れなのか、設定者が確認のうえ許可したものなのか判断がつかない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−109016
【特許文献2】特開2005−63224
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の課題は、セキュアOSのアクセス制御の設定において、設定漏れを有効に検出するアクセス制御設定装置を提供することにある。
【課題を解決するための手段】
【0011】
本発明は、上記課題を解決するために、アクセス制御設定装置、アクセス制限の設定漏れ検出方法及びコンピュータプログラムを提供する。
本発明のアクセス制御設定装置は、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段と、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段と、を有するものである。
このアクセス制御設定装置によれば、すべてのリソース情報から既にアクセス制限が設定されたリソース及び表示されたリソースのリソース情報が特定されるので、本来アクセス制限が設定されるべきリソースに対する設定漏れを有効に防止することができる。
【0012】
ある実施の態様では、前記複数のリソースの各々が、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在し、分類されたときはグループ単位でアクセスの制限内容の設定がなされるものであり、前記リソース情報は、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されたかをそのグループ名と共に表す第2情報で構成されており、前記保持されている設定状況情報は、グループ毎に非パス表現形式で表現されるものである。そして、前記制御手段は、前記リソース情報及び前記設定状況情報を表示する際に、前記第1情報により特定される各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、前記第2情報により特定される各グループ名とそのグループに設定された設定状況情報とをリンクさせることにより、前記非パス表現形式の設定状況情報をパス表現形式のものに変換する。
これにより、複数のリソースを階層構造で表現できるとともに、表示装置に表示されるパス表現形式の設定状況情報は、既にアクセス制限が設定済であるか、あるいは設定不要のものということになるので、表示をもって設定の有無が確認されることになり、設定漏れをより有効に防止することができる。
【0013】
他の実施の態様では、前記制御手段は、個々のリソース、階層化又はグループに分類されたリソースのリソース情報及び前記設定状況方法を、前記表示装置に表示されたときと表示されていないときとで異なる態様で前記表示装置に表示させる。また、前記制御手段は、設定されているアクセス制限の内容が同一となる複数のリソース又はグループのリソース情報については同じ態様で前記表示装置に表示させる。
これにより、アクセス制限の設定の有無及び設定内容を視覚的に把握できるようになり、アクセス制御設定装置の操作性を高めることができる。
【0014】
本発明のアクセス制限の設定漏れ検出方法は、それぞれ、アクセス制限が設定される可能性のある複数のリソースに対するアクセス制御内容を設定する装置が実行する方法であって、前記複数のリソースの各々を特定するためのリソース情報と、各々のリソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを所定のメモリに保持するステップと、前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御を行うステップとを有することを特徴とする。
【0015】
本発明のコンピュータプログラムは、コンピュータを、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段;前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段;として機能させるコンピュータプログラムである。
【発明の効果】
【0016】
本発明によれば、表示装置において未だ表示されず、且つ、アクセス制限が設定されていないリソースが特定されるので、本来アクセス制限が設定されるべきリソースに対する設定漏れを有効に防止することができる。
【図面の簡単な説明】
【0017】
【図1】本実施形態のアクセス制御設定装置と端末装置とを含む情報処理システムの全体構成図。
【図2】アクセス制御設定装置及び端末装置の機能ブロック図。
【図3】マッピングファイルの例を示す説明図。
【図4】(a),(b)はアクセス制御ルールの例を示す説明図。
【図5】アクセス制御設定装置の動作時の全体処理図。
【図6】対象範囲を定める処理(S1)の詳細手順説明図。
【図7】表現形式の変換処理(S3)の詳細手順説明図。
【図8】表現形式の変換処理(S3)の詳細手順説明図。
【図9】表現形式の変換処理(S3)の詳細手順説明図。
【図10】設定情報の生成処理(S4)の詳細手順説明図。
【図11】設定漏れ検出処理(S5)の詳細手順説明図。
【図12】初期情報入力画面の例を示す説明図。
【図13】マッピングオブジェクトのパターン説明図。
【図14】オブジェクト生成の概念図。
【図15】(a),(b)はアクセス制御詳細設定画面の例を示す説明図。
【図16】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図17】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図18】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図19】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図20】リソースの階層構造を示す説明図。
【図21】リソースの階層構造を示す説明図。
【図22】相互確認に関する設定画面の例を示す説明図。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態例を説明する。本実施形態は、セキュアOSを搭載した端末装置に対するブラックリスト方式によるアクセス制御内容の設定の有無の確認、制御内容の変更、更新等をリモートで行うアクセス制御設定装置の例を挙げる。
【0019】
[全体構成]
図1は、本実施形態のアクセス制御設定装置100と、このアクセス制御設定装置100によりリモート操作される端末装置200とを含む情報処理システムの全体構成図であり、特徴的な部分のみを示してある。端末装置200は、アクセスポリシ240に従ってアクセス制御内容が設定されるセキュアOS210を搭載している。このセキュアOS210は、非パス表現形式の一例となるラベルベースの制御方式によって、リソースに対するアクセス制御が設定されるものである。
【0020】
アクセス制御設定装置100と端末装置200は、例えば、SSH(Secure SHell)などによって双方向の通信可能に接続されている。本例では、端末装置200によるアクセスが制限されるリソースは、HDD(Hard disk drive)などの外部デバイスにおいて、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在するものとして説明する。これらのリソースは、例えばプログラム、ファイル、ディレクトリ等であり、グループに分類されたときはそのグループ単位でアクセス制御の設定がなされるものである。
【0021】
[アクセス制御設定装置]
まず、アクセス制御設定装置100の構成例を説明する。図2は、本実施形態におけるアクセス制御設定装置の機能ブロック図である。
アクセス制御設定装置100は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ネットワークカード、入出力インタフェース等を備えた処理装置110と、ディスプレイ等の表示装置120と、キーボード等の入力装置130と、端末装置200又は外部デバイスと接続するための接続インタフェース140とを備えている。
処理装置110は、コンピュータの一種であり、CPUが本発明のコンピュータプログラムを読み込んで実行することにより、端末装置200のアクセス制御設定に関する機能、具体的には、入力受付部111、情報取得部112、設定情報更新部113、表現形式変換部114、表示制御部115、及び、出力制御部116として動作する。
【0022】
入力受付部111は、入力装置130から、アクセス制御の設定に関わる情報、例えば現在の設定内容の確認指示情報、設定内容の変更情報または新たな指定情報、設定漏れの検出指示等の入力を受け付ける。
【0023】
情報取得部112は、端末装置200から、セキュアOS210がアクセス可能なすべてのリソースを特定するためのリソース情報、例えば、各リソースが何処にどのような状態で存在するかを表す情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを取得する。リソース情報は、具体的には、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されているかをそのグループ名と共に表す第2情報で構成されている。設定状況情報は、設定済か未設定か、設定されている場合はどのような設定内容かを各々のグループについてラベル表現形式で表現されるものである。
【0024】
設定情報更新部113は、図示しないメモリ制御機構との協働により、情報取得部112で取得したリソース情報及び設定状況情報をRAMの所定領域に保持する。また、入力装置130から変更情報又は設定情報を受け付けたときは、受け付けた内容に従って、保持されている設定状況情報を更新する。更新する際には、更新前の設定状況情報をRAMに保持し、更新後の設定状況情報に代えて更新前の設定状況情報に復帰可能にする。
【0025】
表現形式変換部114は、保持されているリソース情報及び設定状況情報のうち、リソース情報に含まれる第1情報により特定される各階層のリソースのIDと、第2情報により特定されるそのリソースが属するグループ名とをリンクさせ、さらに、各グループ名と、設定状況情報により特定されるそのグループに設定されたアクセス制御の内容とをリンクさせることにより、当該アクセス制御の内容をラベル表現形式からパス表現形式のものに変換する。
【0026】
表示制御部115は、表示装置120への情報の表示制御を行う。表示される情報は、ラベル表現形式からパス表現形式に変換されたリソースの状態を表す画面、各リソースに対して設定されたアクセス制御の内容を表す画面、初期設定を含む各種設定画面等である。リソース及び各リソースの設定状況情報を表す画面において表示される情報は、表現形式変換部114でパス表現形式に変換されているので、表示されることをもってアクセス制御の内容が確認されたことと同様となる。
【0027】
表示制御部115は、設定者の指示に従い、設定漏れの検出を容易にするための処理の制御を行う。この制御は、具体的には、RAMに保持されているすべてのリソース情報を読み出し、読み出したリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御である。既にアクセス制限が設定されているリソースかどうかは、設定状況情報より特定することができる。表示されたリソースかどうかは、例えば、表示済みのリソースについては色を変える等の処理を行うことで特定が可能である。
【0028】
出力制御部116は、RAMに保持されている設定状況情報が更新されたときは、更新された設定状況情報を端末装置200に出力するための制御を行う。
【0029】
[端末装置]
次に、端末装置200の構成を詳しく説明する。端末装置200のセキュアOS210において、OSカーネル211の内部にはアクセス制御モジュール212が存在する。アクセス制御モジュール212は、OS起動時に、アクセスポリシ240からマッピングファイル220とアクセス制御ルール230を読み込み、アクセス制御を開始するものである。マッピングファイル220は、ファイル、ディレクトリ等のリソースが、それぞれ、どのラベルに割り当てられるべきかを記述したファイルであり、アクセス制御ルール230は、どのプロセスが、どのリソースに対して、どのようなアクセスが可能なのかを示すファイルである。
【0030】
マッピングファイル220の内容例を図3に示す。リソースへのアクセス行為には「アクセス主体」と「アクセス客体」が関与するが、アクセス主体となりうるプログラムも、アクセス客体となるファイルやディレクトリも一つのマッピングファイルに記述される。なお、アクセス主体となりうるのはプログラム(プロセス)のみであり、アクセス客体にはプログラムがアクセスするファイルやディレクトリのほか、プログラムによって起動されるプログラムも含まれる。
【0031】
この例のマッピングファイルの1行目、2行目、4行目はアクセス客体に関するラベル定義の例であり、1行目の「/var(/.*)? system_u:object_r:var_t:s0」は、「ラベルvar_tが、/var以下全てのリソースに割り当てられる」ことを意味する。2行目の「/var/run/*.pid system_u:object_r:var_run_t:s0」は、「ラベルvar_run_tが、/var/run/*.pidの正規表現にマッチするリソースに割り当てられる」ことを意味する。4行目の「/usr(/.*)? system_u:object_r:var_t:s0」は、「ラベルvar_tが、/usr以下全てのリソースに割り当てられる」ことを意味する。1行目と4行目の定義の結果、/varと/usr以下の全てのリソースが1個のラベルvar_tで指定されたことになる。
この例の3行目はアクセス主体になりうるプログラムに関するラベル定義の例であり、「/usr/sbin/httpd system_u:object_r:httpd_exec_t:s0」は、「ラベルhttpd_exec_tが、/usr/sbin/httpdに割り当てられる」ことを意味する。
【0032】
アクセス制御ルール230の内容例を図4(a),(b)に示す。
アクセス制御ルール230には、アクセス主体がアクセス客体にどのようなアクセスをしてよいかを記述する。また、アクセス主体が新たにプログラムを起動した場合や新たにファイルを作成した場合、起動されたプログラムや作成されたファイルに付与されるラベルを定義する。また、ユーザ用のプロセスはログインデーモン(プログラム)が生成するので、やはりアクセス制御ルールにおいてラベルを定義する。
なお、ブラックリスト方式においてもホワイトリスト方式と同様のアクセスポリシファイルを利用するが、ブラックリスト方式においては、全てのリソースについてあらゆるアクセス許可が基本となるので、このための設定を行う。
【0033】
図4(a)のアクセス制御ルールの5行目の「allow httpd_t var_t:file read;」は、「アクセス主体httpd_tは、アクセス客体var_tのfileにreadしかできない」ことを意味する。なお、var_tにはファイルの他、ディレクトリやプログラムが属する場合もあり得るが、このうちfileのreadだけに制限したことを意味する。
6行目の「type_transition usr_t httpd_exec_t:process httpd_t;」は、「アクセス主体usr_tがアクセス客体httpd_exexc_tを実行した結果起動したプロセスは、ラベルhttpd_tに属する」ことを意味する。7行目の「type_transition httpd_t var_run_t:file httpd_var_run_t:」は、「アクセス主体httpd_tがアクセス客体 var_run_t に作ったファイルは、ラベルhttpd_var_run_tに属する」ことを意味する。
1行目から3行目では「属性」と、その「属性」を有するラベルを定義している。「属性」はラベルをまとめるグループのようなもので、ファイルやディレクトリがまとめられたラベルを、さらにまとめるために使用する。1行目〜3行目の例では、ラベル「var_t」とラベル「usr_t」が同じ属性「sysadm_type」を有することを意味している。
このように定義されたグループ情報を利用して、例えば4行目の「allow masumoto_t sysadm_type :file read;」のように、ブラックリスト方式の前提となる広範囲のアクセス許可を効率的に行う。
図4(b)はアクセス主体がユーザプロセスの場合のラベル定義の例であって、ここではユーザ root がログインした直後のプロセスにラベル「my_root_t」が付与された例を示す。
【0034】
従来のアクセス制御の設定は、マッピングファイル220とアクセス制御ルール230の双方を参照することによって可能となっていた。すなわち、図3のマッピングファイル220の1行目の「/var(/.*)? system_u:object_r:var_t:s0」(var_tとは、/var以下全てのことである)と、図4(a)のアクセス制御ルール230の5行目の「allow httpd_t var_t:file read;」(httpd_tは、var_tのfileにreadしかできない)とによって、「httpd_tは、/var以下全てのfileにreadしかできない」との設定がなされていた。
【0035】
[アクセス制御設定装置の動作例]
次に、アクセス制御設定装置100の動作例を説明する。
図5は、全体的な動作手順説明図である。図5を参照すると、アクセス制御設定装置100が端末装置200に接続され、処理装置110が起動すると、処理装置110は、動作環境を整え、端末装置200から現在のリソースの情報及びアクセスポリシ240の内容を表す情報を取得し、RAMに保持するとともに、表示装置120に初期情報入力画面を表示させ、アクセス制御の対象プログラムを定める処理を行う(ステップS1)。
初期情報入力画面は、リソースへのアクセスを制限する主体を定めるための情報の入力を促す画面である。本例では、アクセス主体はどのプログラムか、及びどのユーザ又はどのプログラムがそれを起動したのか、という内容を指定できるようにしている。このような指定を設定者が入力装置130を通じて入力すると、処理装置110は、指定された内容を受け付け、以後の処理のためにRAMに保持する(ステップS2)。
【0036】
処理装置110は、RAMに保持された情報をもとに、アクセスポリシの表現形式の変換処理を行う(ステップS3)。本例では、ラベル表現形式のアクセスポリシをパス表現形式のものに変換する処理を行う。そして、変換された表現形式のアクセスポリシの内容を表示装置120に表示させる。
【0037】
表示画面をみた設定者が、制御内容の新たな指定又は変更の情報を入力すると、処理装置110は、これらの情報を受け付け、設定情報の生成処理を行う(ステップS4)。具体的には、受け付けた指定又は変更の情報に従って、それ以前に端末装置200より取得してRAMに保持した情報を更新し、更新された情報を端末装置200に出力するための制御を行う。情報を更新するときは更新内容に従って表示装置120における表示態様を変化させる。なお、情報を更新する際には更新前の情報を保持しておき、更新後の情報に代えて何時でも更新前の情報に復帰可能にする。
【0038】
設定情報の生成処理(ステップS4)をリソース毎に繰り返し実行した後、処理装置110は、設定漏れ検出処理を行う(ステップS5)。この処理は、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定することにより行う。
【0039】
その後、処理装置110は、ステップS1で取得したアクセス主体情報と、ステップS4で取得したアクセス制御設定情報(アクセス客体情報と、パーミッション情報)を、端末装置200のアクセスポリシ240に書き込む処理を行い、処理を終える(ステップS6)。
なお、アクセスポリシのパス表現形式への変換は、設定者が指定した範囲で、リソース毎、階層毎又はグループ毎に情報を読み出して行う。例えばあるディレクトリを指定することにより、そのディレクトリに属するファイルのみの情報を読み出す。これにより、全階層のすべての情報を読み込む必要がなくなり、処理量が節約されるので、設定に要する時間が短縮される。
【0040】
次に、図5の全体処理における各処理の手順を詳細に説明する。
[ステップS1の詳細手順]
対象プログラムを定める処理(ステップS1)の詳細手順を図6に示す。
まず、図11に例示される初期情報入力画面300を表示装置120に表示させる(ステップ210)。図11において、「AP」はアクセス制御の対象となるプロセスを表す。「APのパス」は、そのAPがどこに存在するどのプログラムであるかを指定するパス表現領域310である。「APを起動するユーザ(320)」か、「APを起動するプログラムのパス(330)」は、どちらか一方が必須入力となる。これらは、パス表現領域310の入力内容とあわせて、「以降設定するアクセス制御内容は、領域320で指定されたユーザか、領域330で指定されたプログラムが、領域310で指定したプログラムを実行したときに生成されるプロセスに対して有効である」という意味になる。
【0041】
ユーザ指定領域320への指定を検出した場合、処理装置110は、入力されたユーザのIDをキーとして、端末装置200が保持するアクセス制御ルール230を参照し、そのユーザに付与されるラベルを取得する(ステップS230)。例えば、ユーザ名「root」が入力されたとする。処理装置110は、例えば、図4(b)のアクセス制御ルール230の「root:root:s0-s0:c0.c1023」の記述を参照し、「root」の設定を検出する。検出された設定が「user root roles {my_root_r system_r} level s0 range s0-s0:c0.1023」であった場合、「my_root_r」をキーとして、例えば「my_root_r:my_root_t」の結果を検出し、ラベル「my_root_t」を得る。
【0042】
一方、プログラム指定領域330への指定を検出した場合、処理装置110は、アクセス制御ルール230及びマッピングファイル220から、そのプログラムが実行されたときに付与されるラベルを取得する(ステップS240)。
例えば、APを起動するプログラムのパスとして「/etc/init.d/httpd」が指定されたとする。処理装置110は、図3のマッピングファイル220における「/etc/init.d/http--system_u:object_r:initrc_exec_t:s0」を参照する。「/etc/init.d/httpd」にはラベル「initrc_exec_t」が付与されていることがわかるので、「initrc_exec_t」をキーとしてアクセス制御ルール230を検索し、例えば「type_transition XXX_t initrc_exec_t:process YYY_t;」のように「initrc_exec_t」を「:」の直前に含むルールを検出し、APを起動するプログラム「/etc/init.d/httpd」のラベル「YYY_t」を得る。
このように、各領域310〜330への指定により、「ユーザ○○/プログラム○○が実行したAPについてのアクセス制御の設定を行う」という内容の初期情報が設定者より入力され、ステップS2により保持されることになる。
【0043】
[ステップS3の詳細手順]
表現形式の変換処理(ステップS3)の詳細手順を図7乃至図9に示す。
以下では、主にルートディレクトリ"/"に属するリソースの場合を例にとって説明する。
【0044】
処理装置110は、まず、マッピングファイルを取得して、マッピングオブジェクトを生成する(ステップS310)。個々のマッピングオブジェクトは、例えば図3におけるマッピングファイルの一行一行に対応し、ラベルオブジェクトと同様にラベル情報と属性情報を有する他、パス情報と正規表現情報を有する。
マッピングファイルは、通常、高々数千行なので、マッピングオブジェクトはマッピングファイル全体を一度に読み込んで生成してもよい。マッピングオブジェクトの属性情報はマッピングファイルの定義を書き写したものなので、マッピングオブジェクトではアクセス制御設定対象となるリソース個々の属性を特定できない。そこで、具体的なアクセス制御設定作業の対象となるリソースと直接関連付けて生成されるラベルオブジェクトを利用して、設定対象リソースの属性を特定する。
【0045】
一方、名前と属性情報のみからなるラベルオブジェクトだけでは、そのラベルはパスに
直すとどこのことかを特定できないため、パス情報を参照するためのマッピングオブジェクトが必要となる。
マッピングオブジェクトは、例えば、図3のマッピングファイル220の「/var(/.*)? system_u:object_r:var_t:s0」の記述に基づくと、マッピングオブジェクトには、ラベル名は「var_t」、パスは「/var」、正規表現は「(/.*)?」、属性は「正規表現が表すリソースの属性」が記述されることとなる。また、設定者が新しいラベルを作成した場合には、マッピングオブジェクトが新たに作成される。マッピングオブジェクトは、処理の簡易化のため、処理装置110で定義したマッピング設定とデフォルトのマッピング設定と、ラベル名の付与ルールを区別する等して、分けて保持するものとしてもよい。
【0046】
マッピングオブジェクトは、様々なパターンを有する。このことを、図12を参照して説明する。図12において、パターン1におけるマッピングオブジェクト710は、デフォルトのマッピング設定のオブジェクトである。正規表現がパス表現から分離できないため、マッピングオブジェクト710の正規表現の欄は空欄となっており、属性は「dir(ディレクトリ)」である。パターン2のマッピングオブジェクト720は、処理装置110でディレクトリに対して新しいラベルを割り当てた場合の例である。パスには新しいラベルを定義したリソースのパスが記述される。正規表現は「(/.*)?」となり、属性は「dir(ディレクトリ)」である。パターン3のマッピングオブジェクト730は、処理装置110でファイルに対して新しいラベルを割り当てた場合の例である。パスには新しいラベルを定義したリソースのパスが記述され、属性は「file(ファイル)」である。パターン4のマッピングオブジェクト740は、処理装置110で、あるディレクトリ中に動的に作成されるファイルに、親ディレクトリとは異なるラベルを割り当てた場合の例である。パスには親ディレクトリのフルパスが記述され、正規表現にはファイル名のパターンが記述されている。パターン5は、パターン4とほぼ同様の例で、正規表現を定義せず、「*(何でもよい)」とする例である。
【0047】
次に、処理装置110は端末装置200から、リソースの階層構造(ディレクトリツリー:パス表現)に関する情報と、リソースのラベル情報に関する情報を取得する。
具体的には、端末装置200に対して、リモート操作によりコマンド“ls /”を実行することにより、例えば、“/”以下のファイル、ディレクトリ等のリソースの一覧を取得する(ステップS315)。
また、端末装置200に対し、コマンド“ls−Z /”を実行することにより、例えば“/”以下のファイル、ディレクトリ等のリソースに対するラベルの一覧を取得する(ステップS320)。その際、上述したように、処理量を減らすために、実際に表示装置120での表示に必要な範囲、例えば、“ /”の1段だけ下位の階層のリソースについてのみ、リソース一覧とラベル一覧を取得し、その他のリソースについては、その下位のリソースが展開される都度、リソース一覧とラベル一覧を取得するものとする。このようにすると、実際に展開され、表示装置120に表示され、設定者に視認される等の必要な範囲でのみ処理を行うため、処理量を分散することができ、一回あたり処理の負担を減らすことができる。
【0048】
次に、処理装置110は、ステップS315とステップS320で取得した情報に基づき、パス表現用のオブジェクト(以下、「パスオブジェクト」)とラベル表現用のオブジェクト(以下、「ラベルオブジェクト」)を生成する。また、6種類のパーミッションオブジェクトを生成する(ステップS325)。
【0049】
ステップS325におけるオブジェクト生成の概念を図14に示す。図14の左側は、パスオブジェクト410〜414であり、それぞれ、ファイル、ディレクトリ等のリソースの「名前」、OSのディレクトリツリーの親子関係を示す「親参照」情報、ラベルオブジェクトとの対応付けを示す「旧参照」、「新参照」情報が記述される。
「旧参照」には既存のラベルとの対応関係を示すための情報が記述される。「新参照」は、「旧参照」と同様にラベルとの対応関係を示すためのものであるが、設定者が新しいラベルを割り当てた場合に、その新しいラベルを参照先として記述する。このように、「旧参照」とは別に「新参照」を記述するため、一旦新しいラベルを割り当てた後であっても、「新参照」を削除し、「旧参照」の記述に基づいて、元の状態に容易に戻すことができる。
【0050】
パスオブジェクト410〜414は、それぞれ、ラベルオブジェクト510〜512と関連付けられる。ラベルオブジェクト510〜512は、ラベル表現用のオブジェクトであり、ラベルの「名前」と「属性」とを示している。ラベルオブジェクト510〜512は、それぞれ、パーミッションオブジェクト610〜612に関連付けられる。パーミッションオブジェクト610〜612は、アクセス制御の一例となる制限内容を示すオブジェクトである。例えば「RWXC」は「読み取り(Read)、書き込み(Write)、実行(eXecute)、ファイル作成(fileCreate)について制限なし」を意味し、ブラックリスト方式におけるデフォルトの設定である。これに対して「RW」は「実行(eXecute)、ファイル作成(fileCreate)の制限」を、「R」は「書き込み(Write)、実行(eXecute)、ファイル作成(fileCreate)の制限」を意味する。
制限内容を示すオブジェクトを「パーミッションオブジェクト」と呼ぶことは、一見、適切でないが、見方を変えれば「R」は「読み取りだけ許可」、「RW」は「読み取りと書き込みだけ許可」を意味するので、このように呼ぶこととする。
パーミッションオブジェクトには、この他に「すべて制限」、「RWC」、「RWX」のパターンがある。パスオブジェクトがラベルオブジェクトを介してパーミッションオブジェクトと関連づけられることにより、後述するように、図20や図21のようなツリー構造表示において、パスリソースはパーミッションタイプごとに(RWXC情報と共に)色分けして表示される。
【0051】
図7に戻り、処理装置110は、各パスオブジェクトの「旧参照」が、そのパスリソースに割り当てられたラベルを参照するように、パスオブジェクトとラベルオブジェクトを関連付ける(ステップS330)。
次に、図8のステップS335に進み、処理装置110は、ステップS320で取得したラベル一覧の中に、アクセス制御設定装置100により設定されたラベル(以下、「ラベルA」という。また、ラベルAの定義したラベルオブジェクトを「ラベルオブジェクトA」という。)があるか否か判定する(ステップS335)。ラベルAがない場合(ステップS335:No)、図9のステップS340に進み、処理装置110はさらにマッピングオブジェクトを参照して、図12のパターン4または5に該当する、プログラムによって動的に生成・削除されるファイルとラベルの定義したマッピングオブジェクト(以下、「マッピングオブジェクトB」という。また、マッピングオブジェクトBを定義したラベルを「ラベルB」という。)がないか検索する。マッピングオブジェクトBがなければ(S340:No)、表現形式変換処理(ステップS3)を終了する。
【0052】
端末装置200について初めてアクセス制御設定装置100を使用した場合、当然、ラベルAもマッピングオブジェクトBも発見されることはない。この場合、表現形式変換処理(ステップS3)終了後、設定情報生成処理(ステップS4)のためにユーザに提示されるリソースのツリー構造表示は、全てのリソースについてR、W、X、Cが全て許可された初期状態としてユーザに提示される。
【0053】
ここで、いったんステップS3を離れ、先に設定情報の生成処理(ステップS4)について説明する。
[ステップS4の詳細手順]
処理装置110は、ステップS3の処理により、表現形式の変換処理を終えると、設定情報を生成するための処理を行う。設定情報の生成処理(ステップS4)の詳細手順を図10に示す。
ステップS3の処理を終えると、処理装置110はリソースをツリー構造で表現した、「アクセス制御設定画面」をユーザに提示する。各リソースについて種々のパーミッション情報が得られた場合、アクセス制御設定画面に表示されるリソースは、例えば図20や図21のように、パーミッション情報RWXCとともに色分けされて表示される。
アクセス制御設定画面を提示された設定者は、アクセス制御の内容を設定(あるいは変更)したいファイルやディレクトリを指定してクリックする(ステップS410)。
クリック内容を解読した処理装置110は、図15(a)に示すアクセス制御詳細設定画面900を表示装置120に表示させる(ステップS420)。
設定者が、設定画面900に従い、「このパスのアクセス許可」の設定領域901に提示されたパーミッションの中から一つを選び、OKボタン905を押し、パーミッションの設定を行う(ステップS430)。選んだ内容をキャンセルする場合は、キャンセルボタン906を押す。なお、ブラックリスト方式における「アクセス許可」とは許可行為以外の「制限」を意味し、例えば設定領域901のラジオボタン「rwc」の選択は「実行(eXecute)」の制限を意味する。
「同じアクセス許可のパス」の表示領域902には、同じアクセス許可のリソースのパスが表示される。表示領域902にリストされたリソースとは異なるアクセス制御の内容を設定するために、新しいラベルを割り当てる場合には、チェックボックス903を選択する。指定したパスの下位のリソースに同様のアクセス許可を設定する場合には、チェックボックス904を選択する。
【0054】
図10に戻り、設定者が設定操作を行うと、処理装置110は、設定者によって選択されたリソース名を読み取り、該当するパスオブジェクトを参照する(ステップS440)。さらに、そのパスオブジェクトからラベルオブジェクトを参照する(ステップS450)。
以下、図16乃至図19を参照し、パスオブジェクトとラベルオブジェクトのタイプごとに場合分けして、アクセス制御設定作業と各オブジェクトの関係を説明する。
パスオブジェクトの新参照がいずれのラベルオブジェクトも参照していない場合、処理装置110はパスオブジェクトの旧参照にしたがってデフォルトラベルのラベルオブジェクトを参照し、ステップS430で選ばれたパーミッションに基づき、パーミッションオブジェクトのリスト構造に該当するラベルオブジェクトを追加する(図16(a)参照)。この結果、ラベルオブジェクトとパーミッションオブジェクトが関連付けられる(ステップS460)。
【0055】
設定者が新しいラベルの割り当てを選択していた場合、処理装置110は新しいラベルオブジェクトを生成し、パスオブジェクトの新参照が当該新ラベルオブジェクトを参照するようにする。そして、ステップS430で選ばれたパーミッションに基づき、パーミッションオブジェクトのリスト構造に新ラベルオブジェクトを追加することにより、ラベルオブジェクトとパーミッションオブジェクトを関連付ける(ステップS460)(図16(b)参照)。なお、新しいラベルは一定の命名規則に則って付与し、デフォルトマッピングファイルに記載されたラベルと区別できるようにする。
パスオブジェクトの新参照が参照する新ラベルのラベルオブジェクトがすでに存在する場合、処理装置110は当該ラベルオブジェクトとパーミッションオブジェクトの関連付けを、ステップ430で選ばれたパーミッションの内容に更新する(図16(c)参照)。
【0056】
なお、「ディレクトリ○○に新しいラベル○○を割り当てる」とは、通常、「ディレクトリ○○以下の全てのリソースに対して新ラベル○○を割り当てる」という意味になる。しかし、ディレクトリ○○配下のリソースを示すパスオブジェクトの全てについて、いちいち新参照が新ラベル○○のラベルオブジェクトを参照するように設定する必要はない。子リソースのラベルは、親リソースに従うことを原則とすることで、親をたどっていけば任意の子リソースのラベルを把握することができるからである。
【0057】
設定者による設定作業の結果、図17に示されるように、パスオブジェクトには3つのタイプが生まれることになる。
タイプ1は、新ラベルが付与されず、旧参照だけがデフォルトラベルを参照するパスオブジェクトである(図17のタイプ1参照)。
タイプ2は、新ラベルが付与され、旧参照はデフォルトラベルを、新参照は新ラベルを参照するパスオブジェクトである(図17のタイプ2参照)。
タイプ3は、新ラベルが付与されたリソースの子リソースを表すパスオブジェクトであって、新参照が新ラベルオブジェクトを参照することはしないが、親リソースを介して実質的に新ラベルを参照するパスオブジェクトである(図17のタイプ3参照)。
【0058】
パスオブジェクト〜ラベルオブジェクト〜パーミッションオブジェクトについて必要な関連付けを終えると、アクセス制御設定装置100は、画面上に、ディレクトリツリー構造を再描画する(ステップS470)。
図20は、ステップS3の処理の結果、ルートディレクトリ"/"とその直下のディレクトリからなるツリー構造が、パーミッション制限なしの状態で設定者に提示され、設定者がディレクトリ802、804、806にパーミッション制限設定を施したものである。
図20において、ディレクトリはリソースの集合を表している。図示の例では、ディレクトリ800を最上位とする階層構造となっており、ディレクトリ804には、さらに下位層のディレクトリが存在することを示す「+」表示のボタン(画像)851が示されている。ディレクトリ813には下位層のディレクトリ814が関連付けられている。「−」表示のボタン(画像)852を押すことにより、ディレクトリ814が表示画面から消え、「−」表示が「+」表示に変わる。
ディレクトリ802は所定の色付けがなされ、且つ、「RX」が表示されている。前述したように、「R」は「読み取り許可(Read)」、「X」は「実行許可(eXecute)」であるから、ディレクトリ802には、「書き込み」と「ファイル作成」の禁止が設定されていることがわかる。また、ディレクトリ804には、別の色が付され、且つ、「RW」が設定されている。「R」は「読み取り許可(Read)」、「W」は、「書き込み許可(Write)」であるから、ディレクトリ804には、「ファイル作成」と「実行」の禁止が設定されていることがわかる。同様に、ディレクトリ806には、読み取り許可のみが設定されていることがわかる。
【0059】
図20の「+」表示のボタン(画像)851をクリックすると、表示装置120の表示画面は、図19から図20のようにディレクトリ804の下位層のディレクトリが表示され、ボタン(画像)851は「+」から「−」に変わる。図21の例では、ディレクトリ804に属する複数のディレクトリ815〜825のうち、「PTS」により識別されるディレクトリ824を除いて、他のすべてのディレクトリ815〜822、824、825が同じ色で表されることから、設定されている制御内容が同じであることが一目で理解でき、また、制御内容は「RW」とあるから「ファイル作成」と「実行」の禁止が設定されていることがわかる。
【0060】
ここで、設定者が、例えば図21において、ディレクトリ804に設定を行うと、同じラベルに関連付けられている下位層のディレクトリ815〜822、824〜825も、連動して色及び設定内容の表示が変更される。そのため、設定者は、その設定操作の過程で、どのディレクトリに対して同じラベルが関連づけられており、どのような設定内容となっているかを知ることができるため、マッピングファイル220及びアクセス制御ルール230を参照する必要がなく、設定作業が容易になる。
【0061】
このように、本実施形態では、一度に、全てのリソースのツリー構造とマッピングファイル220及びアクセス制御ルール230の情報とを関連付けると膨大な処理量となり、時間がかかるため、下位層のディレクトリを展開し、表示装置120に表示するときにはじめて、必要な範囲で、マッピングファイル220及びアクセス制御ルール230の情報を収集し、ラベルの関連付けを行うようにしている。これにより、設定者の操作単位で、ラベルの関連付けを行う結果、一度に大量の処理を行う必要がなくなる。
また、一旦収集した情報を、内部のメモリに記録しておけば、情報収集のため再度同じ処理を行う必要がなくなる。
【0062】
このように色づけを行う中での例外は、例えば、図4(a)の3行目「type_transition httpd_t var_run_t:file httpd_var_run_t:」で示す表現である。あるプロセスが、あるラベルに割当てられたディレクトリ以下に、ファイルやディレクトリを作成した場合、別ラベルを割当てるというものである。つまり、事前に新ラベルを一つ作成しておき、決められたラベルが付与されるディレクトリ以下にファイルを作成する場合、通常親のラベルを踏襲するが、今回は作成した新ラベルを割当てるということである。この場合、図15の(b)で示す画面で設定を行う。907は901と同じ用途であるが、908については、作成するファイルやディレクトリの正規表現で表されたパスを入力する。図13の750で示されるように’*’(何でも良い)という表記も可能である。
図15の(b)においてOKボタンを押した直後は、新ラベルを生成し、指定されたパーミッションオブジェクトと関連付けるが、S410で指定したファイルやディレクトリに新ラベルを割当てればよいわけではなく、S410で指定したディレクトリ以下に存在するファイルやディレクトリに対して907で指定した正規表現がマッチングするか調べ、逐次新ラベルを割当てる必要がある(S480)。
【0063】
[ステップS3の詳細手順]
ここで再び図7乃至図9に戻り、過去にアクセス制御設定装置100による設定がなされていた場合の、表現形式変換処理(ステップS3)について説明する。
本実施形態による設定作業のためには、パスオブジェクトが前述のとおり、図16に示される3つのタイプで表現されていなければならない。しかし、いったん設定作業を終えて設定内容をアクセスポリシに反映してしまうと、リソースと直接関連するラベル情報は新ラベルに置き換わり、“ls−Z”コマンドでラベル情報を読み込むだけでは、タイプ1(旧参照のみがデフォルトラベルオブジェクトを参照)は再現されるが、タイプ2(旧参照がデフォルトラベルオブジェクトを、新参照が新ラベルオブジェクトを参照するもの)とタイプ3(タイプ2の子ノード)のパスオブジェクトが再現されない。以下、タイプ2とタイプ3のパスオブジェクトを再現する手順を、図7乃至9、図18及び図19を用いて説明する。
【0064】
ステップS320で取得したラベルが、過去にアクセス制御設定装置100により設定されたラベル"myLabel_t"であった場合でも、処理装置110はまず旧参照に当該新ラベルのラベルオブジェクトを参照させる(ステップS330)。この結果、タイプ2およびタイプ3のパスオブジェクトはそれぞれ図18(a)及び(b)のようになる。
次に、図8に移り、処理装置110は、ステップ320で取得したラベルがアクセス制御設定装置100が付与したものか否かを判定する。アクセス制御設定装置100が生成したラベルAがあった場合(ステップS335:Yes)、処理装置110はさらにラベルオブジェクトAと関連付けられたパスオブジェクトが、過去に新ラベルを割り当てた親ノードなのか、その子ノードなのか判定する(ステップS345)。パスオブジェクトの名前がマッピングオブジェクトのパスと一致すれば親ノードであり、一致しなければ子ノードである。
まずタイプ2(図18(a))について見ると、"/boot"はマッピングオブジェクト(図18(c))のパス"/boot"と一致するので親ノードであり、この場合は当該パスオブジェクトの新参照にも同じ(新ラベルの)ラベルオブジェクトを参照させる(図18(d):ステップS350)。
【0065】
一方、タイプ3(図18(b))では、"/boot/xxx"はマッピングオブジェクト(図18(c))のパス"/boot"と一致しないので子ノードであり、この場合は新参照によるラベルオブジェクトの参照は行わせない(図18(b)のまま変わらない:ステップS350)。
ついで、処理装置110は、新ラベルを参照するパスオブジェクトの旧参照と、その親ノードのパスオブジェクトの旧参照とを一致させる(親に従わせる:ステップS355)。すなわち、図19(a)のように"/boot"の親ディレクトリ"/"のパスオブジェクトの旧参照がデフォルトラベルオブジェクト"boot_t"を参照している場合、タイプ2は図19(b)のようになり、タイプ2(図17のタイプ2)が再現される。
また、旧参照のみが新ラベルオブジェクトを参照していたタイプ3(図18(b))の場合は、親ノード("/boot")の旧参照がデフォルトラベルオブジェクト"boot_t"を参照することになったので、図19(c)のようになり、やはりタイプ3(図17のタイプ3)が再現される。
【0066】
以上の処理を経て、処理装置110は、過去にアクセス制御設定装置100による設定がなされていた場合、表現形式変換処理に必要なパスオブジェクトの再現に成功する。
【0067】
設定作業が一度終了した後は、パーミッション情報はアクセス制御ルールに反映されている。したがって、続いて処理装置110は、アクセス制御設定装置100によって付与されたラベルAをキーにしてアクセス制御ルールを検索し、ラベルAに関するパーミッション情報を取得する(ステップS360)。処理装置110は得られたパーミッション情報に基づいてラベルオブジェクトとパーミッションオブジェクトを関連付ける(ステップS365)。
以上の結果、処理装置110は図14に示したような、パスオブジェクト、ラベルオブジェクト、パーミッションオブジェクトの再構成を完了し、ラベルオブジェクトを介して結合されたパーミッションオブジェクトの種類にしたがって、パスオブジェクトが指示するリソースに色づけを行う(ステップS370)。
【0068】
次に図9に移る。プログラムによって動的に生成・削除されるファイルやディレクトリについては、新たなラベルオブジェクトを生成してもパスオブジェクトからは旧参照にも新参照にも参照させない。実在パスについてパスオブジェクト、ラベルオブジェクト、パーミッションオブジェクトについて関連付ける処理を終えると、処理装置110はマッピングオブジェクトの中に動的に生成・消滅するファイルBとラベルBの定義がないか検索する(ステップS340)。
動的に生成・消滅するファイルBとラベルBの定義がある場合(ステップS340:Yes)、処理装置110はさらにパスオブジェクトを確認し、動的なファイルBがある場合は(ステップS375:Yes)、対応するラベルBをキーにアクセス制御ルールを検索し、ラベルBに関するパーミッション情報を取得する(ステップS380)。処理装置110は得られたパーミッション情報に基づいてラベルオブジェクトBとパーミッションオブジェクトを関連づけ(ステップS385)、パーミッションオブジェクトの種類にしたがって、動的リソースに色付けを行う(ステップS390)。
【0069】
このようにして、本実施形態のアクセス制御設定装置100は、過去になした設定情報から3つのタイプのパスオブジェクトを再現して表現形式変換処理を行い、リソースをツリー構造で表現した「アクセス制御設定画面」をユーザに提示する。過去にアクセス制御設定がなされていた場合、アクセス制御設定画面に表示されるリソースは、例えば図20や図21のように、パーミッション情報RWXCとともに色分けされて表示される。
【0070】
[ステップS5の詳細手順]
設定漏れ検出処理(ステップS5)の詳細手順を図11に示す。
処理装置110は、設定者の設定漏れ検出指示を受け付けると、ラベルオブジェクトから処理装置110が保持するラベル一覧(ラベルリスト1)を生成する(S510)。ラベルオブジェクトは、アクセス制御設定者がツリー構造を展開することにより収集されたものと、アクセス制御設定者が新たに定義したラベルの集合なので、ラベルリスト1はアクセス制御設定者が確認済みのラベル一覧である。ここで、アクセス制御設定者がツリー構造を展開することにより収集されたものには、既にアクセス制限が設定されているものと、単に表示装置に表示されただけのものが含まれる。
一方で、処理装置110は、マッピングファイル220に記録されている全てのラベル情報を取得してラベル一覧(ラベルリスト2)を生成する(S520)。ラベルリスト2は、ツリー構造展開の過程で処理装置110が取得し、すでにアクセス制御設定者が確認したものも含む。
そして、処理装置110はラベルリスト1とラベルリスト2をマージしたラベル一覧(ラベルリスト3)を生成する(S530)。ラベルリスト3は、アクセス制御設定対象となりうる全ラベル一覧となる。
さらに、処理装置110はラベルリスト3からラベルリスト1を差し引いたラベル一覧(ラベルリスト4)を生成し(S540)、ラベルリスト4を設定者に提示する(S550)。すなわち、アクセス制御設定対象となりうる全ラベル一覧(ラベルリスト3)からアクセス制御設定者が確認済のラベル一覧(ラベルリスト1)を差し引くこととなり、ラベルリスト4は全ラベル一覧のうち、アクセス制御設定者が未確認のラベル一覧となる。
【0071】
ブラックリスト方式では、ブラックリスト方式のデフォルト状態である「RWXC全て許可」のまま残されたリソースが、確認の上で「全許可」としたものか、未確認のために「全許可」となっているのか容易に判別できない、という問題があった。本発明のブラックリスト方式に基づくアクセス制御設定装置によれば、設定者は設定作業完了後、未確認のラベルのみを把握することができるので、ブラックリスト方式の設定作業が容易、かつ確実なものとなる。
【0072】
設定者は、処理装置110が提示したラベルリスト4を確認し、設定漏れを確認する。設定者が設定漏れを発見した場合(ステップS6:No)、処理装置110は設定者の指示を受けて設定情報生成処理(ステップS4)に戻る。
設定者が設定漏れを発見しなければ、処理装置110は設定者の指示を受けて設定情報をマッピングファイルとアクセス制御ルールに反映させて、全体処理を終了する(ステップS7)。
【0073】
このように、本実施形態によるアクセス制御設定装置100は、端末装置200から、リソースの情報とラベル表現形式で設定されたアクセス制御の内容を表す情報を取得し、取得した情報のうち、各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、各グループ名と、そのグループに設定されたアクセス制御の内容とをリンクさせることにより、当該アクセス制御の内容をパス表現形式の代表例である階層構造のものに変換し、変換されたアクセス制御の内容を表示装置120に表示させるとともに、アクセス制御の設定内容が同一となる複数のリソースについては同一の態様で表示させるようにしたので、階層構造の表現形式には詳しいが、ラベル表現形式への理解が十分でない設定者が、容易に既存の設定内容を把握することができる。
これにより、過大なアクセス制限が設定されていたり、あるリソースに対しては必要以上に厳しいアクセス制限がなされているなど、ゆる過ぎたり厳しすぎたりする設定がなされている状況の把握が容易になり、端末装置200のセキュアOSを使用する際の初期学習効果を軽減することができる。また、ラベル表現形式でアクセス制御の設定を行った設定者がいなくなった場合でも、階層構造の表現形式に慣れた者が容易に既存の設定内容を把握できるという利点も生じる。
【0074】
また、すべてのリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことで設定漏れのリソースを検出するようにしたので、ブラックリスト方式をアクセス制御に適用したときの利点を活かしつつ、残っていた設定漏れなのか、設定者が確認のうえ許可したものなのか判断がつかないという課題を解決することができる。
【0075】
なお、設定漏れの検出に際しては、検出されたリソースについては、設定者による設定処理を待つことなく、自動的にアクセス禁止とする処理を加えるようにしても良い。このようにすれば、例えばセキュアOSがアクセス可能なリソースとしてUSBメモリを設定する場合、設定時にそのUSBメモリが存在しない場合であっても、設定をし忘れることが無くなり、より安全なアクセス制御が可能になるという効果が得られる。
【0076】
なお、上記実施例ではファイルやフォルダ等のリソースにR、W、X、Cの記号が表示されている場合、それぞれ当該リソースについて読み取り、書き込み、実行、ファイル作成が「許可」されていることを意味したが、逆に、ファイルやフォルダ等のリソースにR、W、X、Cの記号が表示されている場合、それぞれ当該リソースについて読み取り、書き込み、実行、ファイル作成が「禁止」されている状態を表すものとしてアクセス制御設定装置を構成してもよい。
【符号の説明】
【0077】
100・・・アクセス制御設定装置、110・・・処理装置、111・・・入力受付部、112・・・情報取得部、113・・・設定情報更新部、114・・・表現形式変換部、115・・・表示制御部、116・・・出力制御部、120・・・表示装置、130・・・入力装置、140・・・接続インタフェース、200・・・端末装置、210・・・セキュアOS、211・・・OSカーネル、212・・・アクセス制御モジュール、220・・・マッピングファイル、230・・・アクセス制御ルール、240・・・アクセスポリシ、300・・・初期情報入力画面、410〜426・・・パスオブジェクト、510〜528・・・ラベルオブジェクト、610〜615・・・パーミッションオブジェクト、710〜760・・・マッピングオブジェクト、800〜825・・・ディレクトリ、851〜852・・・ボタン(画像)、900・・・詳細設定用画面、1000・・・相互確認用の設定画面。
【技術分野】
【0001】
本発明は、例えばセキュリティを強化するためにアクセス制御機能を具備したオペレーティングシステム(以下、「セキュアOS(Secure OS)という)において、そのセキュアOSに対するアクセス制御の設定を行う際に、設定漏れを容易に検出するための情報処理技術に関する。
【背景技術】
【0002】
セキュアOSのアクセス制御方式として、アクセスを許可したい行為を設定ファイルに記述し、記述されていない行為についてはアクセスを拒否するホワイトリスト方式と、その逆で、アクセスを拒否したい行為を設定ファイルに記述し、記述されていない行為はアクセスを許可するブラックリスト方式とが存在する。
【0003】
ホワイトリスト方式において、OSカーネル上で動作するプログラムは、設定ファイルに記述されたアクセス許可ルール以外の振る舞いができないため、不正アクセスやプログラムの誤動作が発生した際でも、それらの動作を最小限に制限することができる。そのため、近年のセキュアOSには、ホワイトリスト方式が比較的多く採択されている。
【0004】
しかしながら、ホワイトリスト方式は、プログラムの全ての振る舞いについてアクセス許可しないと、正当なプログラムであっても正常動作しない。そのため、アクセス制御の設定にあたっては、プログラムの振る舞いを考慮して、設定作業を行う必要があり、通常はプログラムの振る舞いまで関知していない設定者にとっては、設定作業に多大な時間がかかり、負担となっている。
【0005】
そこで、設定者の負担を軽減するために、例えば、プログラムをしばらく動作させ、アクセスした履歴をログに出力し、そのログをセキュアOSの設定に変換することが行われている(特許文献1参照)。また、例えば、プログラムのソースコードやバイナリから、プログラムがアクセスすべき箇所を探索し、探索結果をセキュアOSの設定に変換することも行われている(特許文献2参照)。
【0006】
しかし、特許文献1に記載のような技術にあっては、プログラムをどれだけ動かせば充分なログを取得できるのかを把握できず、また、プログラムを動かすこと自体に時間がかかるといった問題がある。また、特許文献2に記載のような技術にあっても、様々な言語で記述されたプログラムから、プログラムのアクセス箇所を全て抽出するのは困難である。
以上の説明から明らかなように、ホワイトリスト方式を改善するものでは、その問題の全面的な解決には至らない。
【0007】
一方、ブラックリスト方式は、ホワイト方式とは逆に、当初はプログラムの全ての振る舞いについてアクセスが許可されており、必要最小限の振る舞いについて随時アクセス制御をする。そのため、プログラムの全振る舞いを意識することなく、アクセス制御の設定をすることができ、設定者の負担は比較的小さい。
しかしながら、ブラックリスト方式においては、OSのアクセス対象となるリソースの数は数十万にもなるため、設定漏れの起こるおそれがある。
【0008】
ブラックリスト方式の問題点を改善するためには、設定漏れを有効に検出する必要があるが、ブラックリスト方式では、アクセス許可されていても、それが、設定漏れなのか、設定者が確認のうえ許可したものなのか判断がつかない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−109016
【特許文献2】特開2005−63224
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の課題は、セキュアOSのアクセス制御の設定において、設定漏れを有効に検出するアクセス制御設定装置を提供することにある。
【課題を解決するための手段】
【0011】
本発明は、上記課題を解決するために、アクセス制御設定装置、アクセス制限の設定漏れ検出方法及びコンピュータプログラムを提供する。
本発明のアクセス制御設定装置は、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段と、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段と、を有するものである。
このアクセス制御設定装置によれば、すべてのリソース情報から既にアクセス制限が設定されたリソース及び表示されたリソースのリソース情報が特定されるので、本来アクセス制限が設定されるべきリソースに対する設定漏れを有効に防止することができる。
【0012】
ある実施の態様では、前記複数のリソースの各々が、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在し、分類されたときはグループ単位でアクセスの制限内容の設定がなされるものであり、前記リソース情報は、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されたかをそのグループ名と共に表す第2情報で構成されており、前記保持されている設定状況情報は、グループ毎に非パス表現形式で表現されるものである。そして、前記制御手段は、前記リソース情報及び前記設定状況情報を表示する際に、前記第1情報により特定される各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、前記第2情報により特定される各グループ名とそのグループに設定された設定状況情報とをリンクさせることにより、前記非パス表現形式の設定状況情報をパス表現形式のものに変換する。
これにより、複数のリソースを階層構造で表現できるとともに、表示装置に表示されるパス表現形式の設定状況情報は、既にアクセス制限が設定済であるか、あるいは設定不要のものということになるので、表示をもって設定の有無が確認されることになり、設定漏れをより有効に防止することができる。
【0013】
他の実施の態様では、前記制御手段は、個々のリソース、階層化又はグループに分類されたリソースのリソース情報及び前記設定状況方法を、前記表示装置に表示されたときと表示されていないときとで異なる態様で前記表示装置に表示させる。また、前記制御手段は、設定されているアクセス制限の内容が同一となる複数のリソース又はグループのリソース情報については同じ態様で前記表示装置に表示させる。
これにより、アクセス制限の設定の有無及び設定内容を視覚的に把握できるようになり、アクセス制御設定装置の操作性を高めることができる。
【0014】
本発明のアクセス制限の設定漏れ検出方法は、それぞれ、アクセス制限が設定される可能性のある複数のリソースに対するアクセス制御内容を設定する装置が実行する方法であって、前記複数のリソースの各々を特定するためのリソース情報と、各々のリソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを所定のメモリに保持するステップと、前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御を行うステップとを有することを特徴とする。
【0015】
本発明のコンピュータプログラムは、コンピュータを、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段;前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段;として機能させるコンピュータプログラムである。
【発明の効果】
【0016】
本発明によれば、表示装置において未だ表示されず、且つ、アクセス制限が設定されていないリソースが特定されるので、本来アクセス制限が設定されるべきリソースに対する設定漏れを有効に防止することができる。
【図面の簡単な説明】
【0017】
【図1】本実施形態のアクセス制御設定装置と端末装置とを含む情報処理システムの全体構成図。
【図2】アクセス制御設定装置及び端末装置の機能ブロック図。
【図3】マッピングファイルの例を示す説明図。
【図4】(a),(b)はアクセス制御ルールの例を示す説明図。
【図5】アクセス制御設定装置の動作時の全体処理図。
【図6】対象範囲を定める処理(S1)の詳細手順説明図。
【図7】表現形式の変換処理(S3)の詳細手順説明図。
【図8】表現形式の変換処理(S3)の詳細手順説明図。
【図9】表現形式の変換処理(S3)の詳細手順説明図。
【図10】設定情報の生成処理(S4)の詳細手順説明図。
【図11】設定漏れ検出処理(S5)の詳細手順説明図。
【図12】初期情報入力画面の例を示す説明図。
【図13】マッピングオブジェクトのパターン説明図。
【図14】オブジェクト生成の概念図。
【図15】(a),(b)はアクセス制御詳細設定画面の例を示す説明図。
【図16】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図17】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図18】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図19】ラベルオブジェクトとパスオブジェクトの関係を示す概念図。
【図20】リソースの階層構造を示す説明図。
【図21】リソースの階層構造を示す説明図。
【図22】相互確認に関する設定画面の例を示す説明図。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態例を説明する。本実施形態は、セキュアOSを搭載した端末装置に対するブラックリスト方式によるアクセス制御内容の設定の有無の確認、制御内容の変更、更新等をリモートで行うアクセス制御設定装置の例を挙げる。
【0019】
[全体構成]
図1は、本実施形態のアクセス制御設定装置100と、このアクセス制御設定装置100によりリモート操作される端末装置200とを含む情報処理システムの全体構成図であり、特徴的な部分のみを示してある。端末装置200は、アクセスポリシ240に従ってアクセス制御内容が設定されるセキュアOS210を搭載している。このセキュアOS210は、非パス表現形式の一例となるラベルベースの制御方式によって、リソースに対するアクセス制御が設定されるものである。
【0020】
アクセス制御設定装置100と端末装置200は、例えば、SSH(Secure SHell)などによって双方向の通信可能に接続されている。本例では、端末装置200によるアクセスが制限されるリソースは、HDD(Hard disk drive)などの外部デバイスにおいて、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在するものとして説明する。これらのリソースは、例えばプログラム、ファイル、ディレクトリ等であり、グループに分類されたときはそのグループ単位でアクセス制御の設定がなされるものである。
【0021】
[アクセス制御設定装置]
まず、アクセス制御設定装置100の構成例を説明する。図2は、本実施形態におけるアクセス制御設定装置の機能ブロック図である。
アクセス制御設定装置100は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ネットワークカード、入出力インタフェース等を備えた処理装置110と、ディスプレイ等の表示装置120と、キーボード等の入力装置130と、端末装置200又は外部デバイスと接続するための接続インタフェース140とを備えている。
処理装置110は、コンピュータの一種であり、CPUが本発明のコンピュータプログラムを読み込んで実行することにより、端末装置200のアクセス制御設定に関する機能、具体的には、入力受付部111、情報取得部112、設定情報更新部113、表現形式変換部114、表示制御部115、及び、出力制御部116として動作する。
【0022】
入力受付部111は、入力装置130から、アクセス制御の設定に関わる情報、例えば現在の設定内容の確認指示情報、設定内容の変更情報または新たな指定情報、設定漏れの検出指示等の入力を受け付ける。
【0023】
情報取得部112は、端末装置200から、セキュアOS210がアクセス可能なすべてのリソースを特定するためのリソース情報、例えば、各リソースが何処にどのような状態で存在するかを表す情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを取得する。リソース情報は、具体的には、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されているかをそのグループ名と共に表す第2情報で構成されている。設定状況情報は、設定済か未設定か、設定されている場合はどのような設定内容かを各々のグループについてラベル表現形式で表現されるものである。
【0024】
設定情報更新部113は、図示しないメモリ制御機構との協働により、情報取得部112で取得したリソース情報及び設定状況情報をRAMの所定領域に保持する。また、入力装置130から変更情報又は設定情報を受け付けたときは、受け付けた内容に従って、保持されている設定状況情報を更新する。更新する際には、更新前の設定状況情報をRAMに保持し、更新後の設定状況情報に代えて更新前の設定状況情報に復帰可能にする。
【0025】
表現形式変換部114は、保持されているリソース情報及び設定状況情報のうち、リソース情報に含まれる第1情報により特定される各階層のリソースのIDと、第2情報により特定されるそのリソースが属するグループ名とをリンクさせ、さらに、各グループ名と、設定状況情報により特定されるそのグループに設定されたアクセス制御の内容とをリンクさせることにより、当該アクセス制御の内容をラベル表現形式からパス表現形式のものに変換する。
【0026】
表示制御部115は、表示装置120への情報の表示制御を行う。表示される情報は、ラベル表現形式からパス表現形式に変換されたリソースの状態を表す画面、各リソースに対して設定されたアクセス制御の内容を表す画面、初期設定を含む各種設定画面等である。リソース及び各リソースの設定状況情報を表す画面において表示される情報は、表現形式変換部114でパス表現形式に変換されているので、表示されることをもってアクセス制御の内容が確認されたことと同様となる。
【0027】
表示制御部115は、設定者の指示に従い、設定漏れの検出を容易にするための処理の制御を行う。この制御は、具体的には、RAMに保持されているすべてのリソース情報を読み出し、読み出したリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御である。既にアクセス制限が設定されているリソースかどうかは、設定状況情報より特定することができる。表示されたリソースかどうかは、例えば、表示済みのリソースについては色を変える等の処理を行うことで特定が可能である。
【0028】
出力制御部116は、RAMに保持されている設定状況情報が更新されたときは、更新された設定状況情報を端末装置200に出力するための制御を行う。
【0029】
[端末装置]
次に、端末装置200の構成を詳しく説明する。端末装置200のセキュアOS210において、OSカーネル211の内部にはアクセス制御モジュール212が存在する。アクセス制御モジュール212は、OS起動時に、アクセスポリシ240からマッピングファイル220とアクセス制御ルール230を読み込み、アクセス制御を開始するものである。マッピングファイル220は、ファイル、ディレクトリ等のリソースが、それぞれ、どのラベルに割り当てられるべきかを記述したファイルであり、アクセス制御ルール230は、どのプロセスが、どのリソースに対して、どのようなアクセスが可能なのかを示すファイルである。
【0030】
マッピングファイル220の内容例を図3に示す。リソースへのアクセス行為には「アクセス主体」と「アクセス客体」が関与するが、アクセス主体となりうるプログラムも、アクセス客体となるファイルやディレクトリも一つのマッピングファイルに記述される。なお、アクセス主体となりうるのはプログラム(プロセス)のみであり、アクセス客体にはプログラムがアクセスするファイルやディレクトリのほか、プログラムによって起動されるプログラムも含まれる。
【0031】
この例のマッピングファイルの1行目、2行目、4行目はアクセス客体に関するラベル定義の例であり、1行目の「/var(/.*)? system_u:object_r:var_t:s0」は、「ラベルvar_tが、/var以下全てのリソースに割り当てられる」ことを意味する。2行目の「/var/run/*.pid system_u:object_r:var_run_t:s0」は、「ラベルvar_run_tが、/var/run/*.pidの正規表現にマッチするリソースに割り当てられる」ことを意味する。4行目の「/usr(/.*)? system_u:object_r:var_t:s0」は、「ラベルvar_tが、/usr以下全てのリソースに割り当てられる」ことを意味する。1行目と4行目の定義の結果、/varと/usr以下の全てのリソースが1個のラベルvar_tで指定されたことになる。
この例の3行目はアクセス主体になりうるプログラムに関するラベル定義の例であり、「/usr/sbin/httpd system_u:object_r:httpd_exec_t:s0」は、「ラベルhttpd_exec_tが、/usr/sbin/httpdに割り当てられる」ことを意味する。
【0032】
アクセス制御ルール230の内容例を図4(a),(b)に示す。
アクセス制御ルール230には、アクセス主体がアクセス客体にどのようなアクセスをしてよいかを記述する。また、アクセス主体が新たにプログラムを起動した場合や新たにファイルを作成した場合、起動されたプログラムや作成されたファイルに付与されるラベルを定義する。また、ユーザ用のプロセスはログインデーモン(プログラム)が生成するので、やはりアクセス制御ルールにおいてラベルを定義する。
なお、ブラックリスト方式においてもホワイトリスト方式と同様のアクセスポリシファイルを利用するが、ブラックリスト方式においては、全てのリソースについてあらゆるアクセス許可が基本となるので、このための設定を行う。
【0033】
図4(a)のアクセス制御ルールの5行目の「allow httpd_t var_t:file read;」は、「アクセス主体httpd_tは、アクセス客体var_tのfileにreadしかできない」ことを意味する。なお、var_tにはファイルの他、ディレクトリやプログラムが属する場合もあり得るが、このうちfileのreadだけに制限したことを意味する。
6行目の「type_transition usr_t httpd_exec_t:process httpd_t;」は、「アクセス主体usr_tがアクセス客体httpd_exexc_tを実行した結果起動したプロセスは、ラベルhttpd_tに属する」ことを意味する。7行目の「type_transition httpd_t var_run_t:file httpd_var_run_t:」は、「アクセス主体httpd_tがアクセス客体 var_run_t に作ったファイルは、ラベルhttpd_var_run_tに属する」ことを意味する。
1行目から3行目では「属性」と、その「属性」を有するラベルを定義している。「属性」はラベルをまとめるグループのようなもので、ファイルやディレクトリがまとめられたラベルを、さらにまとめるために使用する。1行目〜3行目の例では、ラベル「var_t」とラベル「usr_t」が同じ属性「sysadm_type」を有することを意味している。
このように定義されたグループ情報を利用して、例えば4行目の「allow masumoto_t sysadm_type :file read;」のように、ブラックリスト方式の前提となる広範囲のアクセス許可を効率的に行う。
図4(b)はアクセス主体がユーザプロセスの場合のラベル定義の例であって、ここではユーザ root がログインした直後のプロセスにラベル「my_root_t」が付与された例を示す。
【0034】
従来のアクセス制御の設定は、マッピングファイル220とアクセス制御ルール230の双方を参照することによって可能となっていた。すなわち、図3のマッピングファイル220の1行目の「/var(/.*)? system_u:object_r:var_t:s0」(var_tとは、/var以下全てのことである)と、図4(a)のアクセス制御ルール230の5行目の「allow httpd_t var_t:file read;」(httpd_tは、var_tのfileにreadしかできない)とによって、「httpd_tは、/var以下全てのfileにreadしかできない」との設定がなされていた。
【0035】
[アクセス制御設定装置の動作例]
次に、アクセス制御設定装置100の動作例を説明する。
図5は、全体的な動作手順説明図である。図5を参照すると、アクセス制御設定装置100が端末装置200に接続され、処理装置110が起動すると、処理装置110は、動作環境を整え、端末装置200から現在のリソースの情報及びアクセスポリシ240の内容を表す情報を取得し、RAMに保持するとともに、表示装置120に初期情報入力画面を表示させ、アクセス制御の対象プログラムを定める処理を行う(ステップS1)。
初期情報入力画面は、リソースへのアクセスを制限する主体を定めるための情報の入力を促す画面である。本例では、アクセス主体はどのプログラムか、及びどのユーザ又はどのプログラムがそれを起動したのか、という内容を指定できるようにしている。このような指定を設定者が入力装置130を通じて入力すると、処理装置110は、指定された内容を受け付け、以後の処理のためにRAMに保持する(ステップS2)。
【0036】
処理装置110は、RAMに保持された情報をもとに、アクセスポリシの表現形式の変換処理を行う(ステップS3)。本例では、ラベル表現形式のアクセスポリシをパス表現形式のものに変換する処理を行う。そして、変換された表現形式のアクセスポリシの内容を表示装置120に表示させる。
【0037】
表示画面をみた設定者が、制御内容の新たな指定又は変更の情報を入力すると、処理装置110は、これらの情報を受け付け、設定情報の生成処理を行う(ステップS4)。具体的には、受け付けた指定又は変更の情報に従って、それ以前に端末装置200より取得してRAMに保持した情報を更新し、更新された情報を端末装置200に出力するための制御を行う。情報を更新するときは更新内容に従って表示装置120における表示態様を変化させる。なお、情報を更新する際には更新前の情報を保持しておき、更新後の情報に代えて何時でも更新前の情報に復帰可能にする。
【0038】
設定情報の生成処理(ステップS4)をリソース毎に繰り返し実行した後、処理装置110は、設定漏れ検出処理を行う(ステップS5)。この処理は、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定することにより行う。
【0039】
その後、処理装置110は、ステップS1で取得したアクセス主体情報と、ステップS4で取得したアクセス制御設定情報(アクセス客体情報と、パーミッション情報)を、端末装置200のアクセスポリシ240に書き込む処理を行い、処理を終える(ステップS6)。
なお、アクセスポリシのパス表現形式への変換は、設定者が指定した範囲で、リソース毎、階層毎又はグループ毎に情報を読み出して行う。例えばあるディレクトリを指定することにより、そのディレクトリに属するファイルのみの情報を読み出す。これにより、全階層のすべての情報を読み込む必要がなくなり、処理量が節約されるので、設定に要する時間が短縮される。
【0040】
次に、図5の全体処理における各処理の手順を詳細に説明する。
[ステップS1の詳細手順]
対象プログラムを定める処理(ステップS1)の詳細手順を図6に示す。
まず、図11に例示される初期情報入力画面300を表示装置120に表示させる(ステップ210)。図11において、「AP」はアクセス制御の対象となるプロセスを表す。「APのパス」は、そのAPがどこに存在するどのプログラムであるかを指定するパス表現領域310である。「APを起動するユーザ(320)」か、「APを起動するプログラムのパス(330)」は、どちらか一方が必須入力となる。これらは、パス表現領域310の入力内容とあわせて、「以降設定するアクセス制御内容は、領域320で指定されたユーザか、領域330で指定されたプログラムが、領域310で指定したプログラムを実行したときに生成されるプロセスに対して有効である」という意味になる。
【0041】
ユーザ指定領域320への指定を検出した場合、処理装置110は、入力されたユーザのIDをキーとして、端末装置200が保持するアクセス制御ルール230を参照し、そのユーザに付与されるラベルを取得する(ステップS230)。例えば、ユーザ名「root」が入力されたとする。処理装置110は、例えば、図4(b)のアクセス制御ルール230の「root:root:s0-s0:c0.c1023」の記述を参照し、「root」の設定を検出する。検出された設定が「user root roles {my_root_r system_r} level s0 range s0-s0:c0.1023」であった場合、「my_root_r」をキーとして、例えば「my_root_r:my_root_t」の結果を検出し、ラベル「my_root_t」を得る。
【0042】
一方、プログラム指定領域330への指定を検出した場合、処理装置110は、アクセス制御ルール230及びマッピングファイル220から、そのプログラムが実行されたときに付与されるラベルを取得する(ステップS240)。
例えば、APを起動するプログラムのパスとして「/etc/init.d/httpd」が指定されたとする。処理装置110は、図3のマッピングファイル220における「/etc/init.d/http--system_u:object_r:initrc_exec_t:s0」を参照する。「/etc/init.d/httpd」にはラベル「initrc_exec_t」が付与されていることがわかるので、「initrc_exec_t」をキーとしてアクセス制御ルール230を検索し、例えば「type_transition XXX_t initrc_exec_t:process YYY_t;」のように「initrc_exec_t」を「:」の直前に含むルールを検出し、APを起動するプログラム「/etc/init.d/httpd」のラベル「YYY_t」を得る。
このように、各領域310〜330への指定により、「ユーザ○○/プログラム○○が実行したAPについてのアクセス制御の設定を行う」という内容の初期情報が設定者より入力され、ステップS2により保持されることになる。
【0043】
[ステップS3の詳細手順]
表現形式の変換処理(ステップS3)の詳細手順を図7乃至図9に示す。
以下では、主にルートディレクトリ"/"に属するリソースの場合を例にとって説明する。
【0044】
処理装置110は、まず、マッピングファイルを取得して、マッピングオブジェクトを生成する(ステップS310)。個々のマッピングオブジェクトは、例えば図3におけるマッピングファイルの一行一行に対応し、ラベルオブジェクトと同様にラベル情報と属性情報を有する他、パス情報と正規表現情報を有する。
マッピングファイルは、通常、高々数千行なので、マッピングオブジェクトはマッピングファイル全体を一度に読み込んで生成してもよい。マッピングオブジェクトの属性情報はマッピングファイルの定義を書き写したものなので、マッピングオブジェクトではアクセス制御設定対象となるリソース個々の属性を特定できない。そこで、具体的なアクセス制御設定作業の対象となるリソースと直接関連付けて生成されるラベルオブジェクトを利用して、設定対象リソースの属性を特定する。
【0045】
一方、名前と属性情報のみからなるラベルオブジェクトだけでは、そのラベルはパスに
直すとどこのことかを特定できないため、パス情報を参照するためのマッピングオブジェクトが必要となる。
マッピングオブジェクトは、例えば、図3のマッピングファイル220の「/var(/.*)? system_u:object_r:var_t:s0」の記述に基づくと、マッピングオブジェクトには、ラベル名は「var_t」、パスは「/var」、正規表現は「(/.*)?」、属性は「正規表現が表すリソースの属性」が記述されることとなる。また、設定者が新しいラベルを作成した場合には、マッピングオブジェクトが新たに作成される。マッピングオブジェクトは、処理の簡易化のため、処理装置110で定義したマッピング設定とデフォルトのマッピング設定と、ラベル名の付与ルールを区別する等して、分けて保持するものとしてもよい。
【0046】
マッピングオブジェクトは、様々なパターンを有する。このことを、図12を参照して説明する。図12において、パターン1におけるマッピングオブジェクト710は、デフォルトのマッピング設定のオブジェクトである。正規表現がパス表現から分離できないため、マッピングオブジェクト710の正規表現の欄は空欄となっており、属性は「dir(ディレクトリ)」である。パターン2のマッピングオブジェクト720は、処理装置110でディレクトリに対して新しいラベルを割り当てた場合の例である。パスには新しいラベルを定義したリソースのパスが記述される。正規表現は「(/.*)?」となり、属性は「dir(ディレクトリ)」である。パターン3のマッピングオブジェクト730は、処理装置110でファイルに対して新しいラベルを割り当てた場合の例である。パスには新しいラベルを定義したリソースのパスが記述され、属性は「file(ファイル)」である。パターン4のマッピングオブジェクト740は、処理装置110で、あるディレクトリ中に動的に作成されるファイルに、親ディレクトリとは異なるラベルを割り当てた場合の例である。パスには親ディレクトリのフルパスが記述され、正規表現にはファイル名のパターンが記述されている。パターン5は、パターン4とほぼ同様の例で、正規表現を定義せず、「*(何でもよい)」とする例である。
【0047】
次に、処理装置110は端末装置200から、リソースの階層構造(ディレクトリツリー:パス表現)に関する情報と、リソースのラベル情報に関する情報を取得する。
具体的には、端末装置200に対して、リモート操作によりコマンド“ls /”を実行することにより、例えば、“/”以下のファイル、ディレクトリ等のリソースの一覧を取得する(ステップS315)。
また、端末装置200に対し、コマンド“ls−Z /”を実行することにより、例えば“/”以下のファイル、ディレクトリ等のリソースに対するラベルの一覧を取得する(ステップS320)。その際、上述したように、処理量を減らすために、実際に表示装置120での表示に必要な範囲、例えば、“ /”の1段だけ下位の階層のリソースについてのみ、リソース一覧とラベル一覧を取得し、その他のリソースについては、その下位のリソースが展開される都度、リソース一覧とラベル一覧を取得するものとする。このようにすると、実際に展開され、表示装置120に表示され、設定者に視認される等の必要な範囲でのみ処理を行うため、処理量を分散することができ、一回あたり処理の負担を減らすことができる。
【0048】
次に、処理装置110は、ステップS315とステップS320で取得した情報に基づき、パス表現用のオブジェクト(以下、「パスオブジェクト」)とラベル表現用のオブジェクト(以下、「ラベルオブジェクト」)を生成する。また、6種類のパーミッションオブジェクトを生成する(ステップS325)。
【0049】
ステップS325におけるオブジェクト生成の概念を図14に示す。図14の左側は、パスオブジェクト410〜414であり、それぞれ、ファイル、ディレクトリ等のリソースの「名前」、OSのディレクトリツリーの親子関係を示す「親参照」情報、ラベルオブジェクトとの対応付けを示す「旧参照」、「新参照」情報が記述される。
「旧参照」には既存のラベルとの対応関係を示すための情報が記述される。「新参照」は、「旧参照」と同様にラベルとの対応関係を示すためのものであるが、設定者が新しいラベルを割り当てた場合に、その新しいラベルを参照先として記述する。このように、「旧参照」とは別に「新参照」を記述するため、一旦新しいラベルを割り当てた後であっても、「新参照」を削除し、「旧参照」の記述に基づいて、元の状態に容易に戻すことができる。
【0050】
パスオブジェクト410〜414は、それぞれ、ラベルオブジェクト510〜512と関連付けられる。ラベルオブジェクト510〜512は、ラベル表現用のオブジェクトであり、ラベルの「名前」と「属性」とを示している。ラベルオブジェクト510〜512は、それぞれ、パーミッションオブジェクト610〜612に関連付けられる。パーミッションオブジェクト610〜612は、アクセス制御の一例となる制限内容を示すオブジェクトである。例えば「RWXC」は「読み取り(Read)、書き込み(Write)、実行(eXecute)、ファイル作成(fileCreate)について制限なし」を意味し、ブラックリスト方式におけるデフォルトの設定である。これに対して「RW」は「実行(eXecute)、ファイル作成(fileCreate)の制限」を、「R」は「書き込み(Write)、実行(eXecute)、ファイル作成(fileCreate)の制限」を意味する。
制限内容を示すオブジェクトを「パーミッションオブジェクト」と呼ぶことは、一見、適切でないが、見方を変えれば「R」は「読み取りだけ許可」、「RW」は「読み取りと書き込みだけ許可」を意味するので、このように呼ぶこととする。
パーミッションオブジェクトには、この他に「すべて制限」、「RWC」、「RWX」のパターンがある。パスオブジェクトがラベルオブジェクトを介してパーミッションオブジェクトと関連づけられることにより、後述するように、図20や図21のようなツリー構造表示において、パスリソースはパーミッションタイプごとに(RWXC情報と共に)色分けして表示される。
【0051】
図7に戻り、処理装置110は、各パスオブジェクトの「旧参照」が、そのパスリソースに割り当てられたラベルを参照するように、パスオブジェクトとラベルオブジェクトを関連付ける(ステップS330)。
次に、図8のステップS335に進み、処理装置110は、ステップS320で取得したラベル一覧の中に、アクセス制御設定装置100により設定されたラベル(以下、「ラベルA」という。また、ラベルAの定義したラベルオブジェクトを「ラベルオブジェクトA」という。)があるか否か判定する(ステップS335)。ラベルAがない場合(ステップS335:No)、図9のステップS340に進み、処理装置110はさらにマッピングオブジェクトを参照して、図12のパターン4または5に該当する、プログラムによって動的に生成・削除されるファイルとラベルの定義したマッピングオブジェクト(以下、「マッピングオブジェクトB」という。また、マッピングオブジェクトBを定義したラベルを「ラベルB」という。)がないか検索する。マッピングオブジェクトBがなければ(S340:No)、表現形式変換処理(ステップS3)を終了する。
【0052】
端末装置200について初めてアクセス制御設定装置100を使用した場合、当然、ラベルAもマッピングオブジェクトBも発見されることはない。この場合、表現形式変換処理(ステップS3)終了後、設定情報生成処理(ステップS4)のためにユーザに提示されるリソースのツリー構造表示は、全てのリソースについてR、W、X、Cが全て許可された初期状態としてユーザに提示される。
【0053】
ここで、いったんステップS3を離れ、先に設定情報の生成処理(ステップS4)について説明する。
[ステップS4の詳細手順]
処理装置110は、ステップS3の処理により、表現形式の変換処理を終えると、設定情報を生成するための処理を行う。設定情報の生成処理(ステップS4)の詳細手順を図10に示す。
ステップS3の処理を終えると、処理装置110はリソースをツリー構造で表現した、「アクセス制御設定画面」をユーザに提示する。各リソースについて種々のパーミッション情報が得られた場合、アクセス制御設定画面に表示されるリソースは、例えば図20や図21のように、パーミッション情報RWXCとともに色分けされて表示される。
アクセス制御設定画面を提示された設定者は、アクセス制御の内容を設定(あるいは変更)したいファイルやディレクトリを指定してクリックする(ステップS410)。
クリック内容を解読した処理装置110は、図15(a)に示すアクセス制御詳細設定画面900を表示装置120に表示させる(ステップS420)。
設定者が、設定画面900に従い、「このパスのアクセス許可」の設定領域901に提示されたパーミッションの中から一つを選び、OKボタン905を押し、パーミッションの設定を行う(ステップS430)。選んだ内容をキャンセルする場合は、キャンセルボタン906を押す。なお、ブラックリスト方式における「アクセス許可」とは許可行為以外の「制限」を意味し、例えば設定領域901のラジオボタン「rwc」の選択は「実行(eXecute)」の制限を意味する。
「同じアクセス許可のパス」の表示領域902には、同じアクセス許可のリソースのパスが表示される。表示領域902にリストされたリソースとは異なるアクセス制御の内容を設定するために、新しいラベルを割り当てる場合には、チェックボックス903を選択する。指定したパスの下位のリソースに同様のアクセス許可を設定する場合には、チェックボックス904を選択する。
【0054】
図10に戻り、設定者が設定操作を行うと、処理装置110は、設定者によって選択されたリソース名を読み取り、該当するパスオブジェクトを参照する(ステップS440)。さらに、そのパスオブジェクトからラベルオブジェクトを参照する(ステップS450)。
以下、図16乃至図19を参照し、パスオブジェクトとラベルオブジェクトのタイプごとに場合分けして、アクセス制御設定作業と各オブジェクトの関係を説明する。
パスオブジェクトの新参照がいずれのラベルオブジェクトも参照していない場合、処理装置110はパスオブジェクトの旧参照にしたがってデフォルトラベルのラベルオブジェクトを参照し、ステップS430で選ばれたパーミッションに基づき、パーミッションオブジェクトのリスト構造に該当するラベルオブジェクトを追加する(図16(a)参照)。この結果、ラベルオブジェクトとパーミッションオブジェクトが関連付けられる(ステップS460)。
【0055】
設定者が新しいラベルの割り当てを選択していた場合、処理装置110は新しいラベルオブジェクトを生成し、パスオブジェクトの新参照が当該新ラベルオブジェクトを参照するようにする。そして、ステップS430で選ばれたパーミッションに基づき、パーミッションオブジェクトのリスト構造に新ラベルオブジェクトを追加することにより、ラベルオブジェクトとパーミッションオブジェクトを関連付ける(ステップS460)(図16(b)参照)。なお、新しいラベルは一定の命名規則に則って付与し、デフォルトマッピングファイルに記載されたラベルと区別できるようにする。
パスオブジェクトの新参照が参照する新ラベルのラベルオブジェクトがすでに存在する場合、処理装置110は当該ラベルオブジェクトとパーミッションオブジェクトの関連付けを、ステップ430で選ばれたパーミッションの内容に更新する(図16(c)参照)。
【0056】
なお、「ディレクトリ○○に新しいラベル○○を割り当てる」とは、通常、「ディレクトリ○○以下の全てのリソースに対して新ラベル○○を割り当てる」という意味になる。しかし、ディレクトリ○○配下のリソースを示すパスオブジェクトの全てについて、いちいち新参照が新ラベル○○のラベルオブジェクトを参照するように設定する必要はない。子リソースのラベルは、親リソースに従うことを原則とすることで、親をたどっていけば任意の子リソースのラベルを把握することができるからである。
【0057】
設定者による設定作業の結果、図17に示されるように、パスオブジェクトには3つのタイプが生まれることになる。
タイプ1は、新ラベルが付与されず、旧参照だけがデフォルトラベルを参照するパスオブジェクトである(図17のタイプ1参照)。
タイプ2は、新ラベルが付与され、旧参照はデフォルトラベルを、新参照は新ラベルを参照するパスオブジェクトである(図17のタイプ2参照)。
タイプ3は、新ラベルが付与されたリソースの子リソースを表すパスオブジェクトであって、新参照が新ラベルオブジェクトを参照することはしないが、親リソースを介して実質的に新ラベルを参照するパスオブジェクトである(図17のタイプ3参照)。
【0058】
パスオブジェクト〜ラベルオブジェクト〜パーミッションオブジェクトについて必要な関連付けを終えると、アクセス制御設定装置100は、画面上に、ディレクトリツリー構造を再描画する(ステップS470)。
図20は、ステップS3の処理の結果、ルートディレクトリ"/"とその直下のディレクトリからなるツリー構造が、パーミッション制限なしの状態で設定者に提示され、設定者がディレクトリ802、804、806にパーミッション制限設定を施したものである。
図20において、ディレクトリはリソースの集合を表している。図示の例では、ディレクトリ800を最上位とする階層構造となっており、ディレクトリ804には、さらに下位層のディレクトリが存在することを示す「+」表示のボタン(画像)851が示されている。ディレクトリ813には下位層のディレクトリ814が関連付けられている。「−」表示のボタン(画像)852を押すことにより、ディレクトリ814が表示画面から消え、「−」表示が「+」表示に変わる。
ディレクトリ802は所定の色付けがなされ、且つ、「RX」が表示されている。前述したように、「R」は「読み取り許可(Read)」、「X」は「実行許可(eXecute)」であるから、ディレクトリ802には、「書き込み」と「ファイル作成」の禁止が設定されていることがわかる。また、ディレクトリ804には、別の色が付され、且つ、「RW」が設定されている。「R」は「読み取り許可(Read)」、「W」は、「書き込み許可(Write)」であるから、ディレクトリ804には、「ファイル作成」と「実行」の禁止が設定されていることがわかる。同様に、ディレクトリ806には、読み取り許可のみが設定されていることがわかる。
【0059】
図20の「+」表示のボタン(画像)851をクリックすると、表示装置120の表示画面は、図19から図20のようにディレクトリ804の下位層のディレクトリが表示され、ボタン(画像)851は「+」から「−」に変わる。図21の例では、ディレクトリ804に属する複数のディレクトリ815〜825のうち、「PTS」により識別されるディレクトリ824を除いて、他のすべてのディレクトリ815〜822、824、825が同じ色で表されることから、設定されている制御内容が同じであることが一目で理解でき、また、制御内容は「RW」とあるから「ファイル作成」と「実行」の禁止が設定されていることがわかる。
【0060】
ここで、設定者が、例えば図21において、ディレクトリ804に設定を行うと、同じラベルに関連付けられている下位層のディレクトリ815〜822、824〜825も、連動して色及び設定内容の表示が変更される。そのため、設定者は、その設定操作の過程で、どのディレクトリに対して同じラベルが関連づけられており、どのような設定内容となっているかを知ることができるため、マッピングファイル220及びアクセス制御ルール230を参照する必要がなく、設定作業が容易になる。
【0061】
このように、本実施形態では、一度に、全てのリソースのツリー構造とマッピングファイル220及びアクセス制御ルール230の情報とを関連付けると膨大な処理量となり、時間がかかるため、下位層のディレクトリを展開し、表示装置120に表示するときにはじめて、必要な範囲で、マッピングファイル220及びアクセス制御ルール230の情報を収集し、ラベルの関連付けを行うようにしている。これにより、設定者の操作単位で、ラベルの関連付けを行う結果、一度に大量の処理を行う必要がなくなる。
また、一旦収集した情報を、内部のメモリに記録しておけば、情報収集のため再度同じ処理を行う必要がなくなる。
【0062】
このように色づけを行う中での例外は、例えば、図4(a)の3行目「type_transition httpd_t var_run_t:file httpd_var_run_t:」で示す表現である。あるプロセスが、あるラベルに割当てられたディレクトリ以下に、ファイルやディレクトリを作成した場合、別ラベルを割当てるというものである。つまり、事前に新ラベルを一つ作成しておき、決められたラベルが付与されるディレクトリ以下にファイルを作成する場合、通常親のラベルを踏襲するが、今回は作成した新ラベルを割当てるということである。この場合、図15の(b)で示す画面で設定を行う。907は901と同じ用途であるが、908については、作成するファイルやディレクトリの正規表現で表されたパスを入力する。図13の750で示されるように’*’(何でも良い)という表記も可能である。
図15の(b)においてOKボタンを押した直後は、新ラベルを生成し、指定されたパーミッションオブジェクトと関連付けるが、S410で指定したファイルやディレクトリに新ラベルを割当てればよいわけではなく、S410で指定したディレクトリ以下に存在するファイルやディレクトリに対して907で指定した正規表現がマッチングするか調べ、逐次新ラベルを割当てる必要がある(S480)。
【0063】
[ステップS3の詳細手順]
ここで再び図7乃至図9に戻り、過去にアクセス制御設定装置100による設定がなされていた場合の、表現形式変換処理(ステップS3)について説明する。
本実施形態による設定作業のためには、パスオブジェクトが前述のとおり、図16に示される3つのタイプで表現されていなければならない。しかし、いったん設定作業を終えて設定内容をアクセスポリシに反映してしまうと、リソースと直接関連するラベル情報は新ラベルに置き換わり、“ls−Z”コマンドでラベル情報を読み込むだけでは、タイプ1(旧参照のみがデフォルトラベルオブジェクトを参照)は再現されるが、タイプ2(旧参照がデフォルトラベルオブジェクトを、新参照が新ラベルオブジェクトを参照するもの)とタイプ3(タイプ2の子ノード)のパスオブジェクトが再現されない。以下、タイプ2とタイプ3のパスオブジェクトを再現する手順を、図7乃至9、図18及び図19を用いて説明する。
【0064】
ステップS320で取得したラベルが、過去にアクセス制御設定装置100により設定されたラベル"myLabel_t"であった場合でも、処理装置110はまず旧参照に当該新ラベルのラベルオブジェクトを参照させる(ステップS330)。この結果、タイプ2およびタイプ3のパスオブジェクトはそれぞれ図18(a)及び(b)のようになる。
次に、図8に移り、処理装置110は、ステップ320で取得したラベルがアクセス制御設定装置100が付与したものか否かを判定する。アクセス制御設定装置100が生成したラベルAがあった場合(ステップS335:Yes)、処理装置110はさらにラベルオブジェクトAと関連付けられたパスオブジェクトが、過去に新ラベルを割り当てた親ノードなのか、その子ノードなのか判定する(ステップS345)。パスオブジェクトの名前がマッピングオブジェクトのパスと一致すれば親ノードであり、一致しなければ子ノードである。
まずタイプ2(図18(a))について見ると、"/boot"はマッピングオブジェクト(図18(c))のパス"/boot"と一致するので親ノードであり、この場合は当該パスオブジェクトの新参照にも同じ(新ラベルの)ラベルオブジェクトを参照させる(図18(d):ステップS350)。
【0065】
一方、タイプ3(図18(b))では、"/boot/xxx"はマッピングオブジェクト(図18(c))のパス"/boot"と一致しないので子ノードであり、この場合は新参照によるラベルオブジェクトの参照は行わせない(図18(b)のまま変わらない:ステップS350)。
ついで、処理装置110は、新ラベルを参照するパスオブジェクトの旧参照と、その親ノードのパスオブジェクトの旧参照とを一致させる(親に従わせる:ステップS355)。すなわち、図19(a)のように"/boot"の親ディレクトリ"/"のパスオブジェクトの旧参照がデフォルトラベルオブジェクト"boot_t"を参照している場合、タイプ2は図19(b)のようになり、タイプ2(図17のタイプ2)が再現される。
また、旧参照のみが新ラベルオブジェクトを参照していたタイプ3(図18(b))の場合は、親ノード("/boot")の旧参照がデフォルトラベルオブジェクト"boot_t"を参照することになったので、図19(c)のようになり、やはりタイプ3(図17のタイプ3)が再現される。
【0066】
以上の処理を経て、処理装置110は、過去にアクセス制御設定装置100による設定がなされていた場合、表現形式変換処理に必要なパスオブジェクトの再現に成功する。
【0067】
設定作業が一度終了した後は、パーミッション情報はアクセス制御ルールに反映されている。したがって、続いて処理装置110は、アクセス制御設定装置100によって付与されたラベルAをキーにしてアクセス制御ルールを検索し、ラベルAに関するパーミッション情報を取得する(ステップS360)。処理装置110は得られたパーミッション情報に基づいてラベルオブジェクトとパーミッションオブジェクトを関連付ける(ステップS365)。
以上の結果、処理装置110は図14に示したような、パスオブジェクト、ラベルオブジェクト、パーミッションオブジェクトの再構成を完了し、ラベルオブジェクトを介して結合されたパーミッションオブジェクトの種類にしたがって、パスオブジェクトが指示するリソースに色づけを行う(ステップS370)。
【0068】
次に図9に移る。プログラムによって動的に生成・削除されるファイルやディレクトリについては、新たなラベルオブジェクトを生成してもパスオブジェクトからは旧参照にも新参照にも参照させない。実在パスについてパスオブジェクト、ラベルオブジェクト、パーミッションオブジェクトについて関連付ける処理を終えると、処理装置110はマッピングオブジェクトの中に動的に生成・消滅するファイルBとラベルBの定義がないか検索する(ステップS340)。
動的に生成・消滅するファイルBとラベルBの定義がある場合(ステップS340:Yes)、処理装置110はさらにパスオブジェクトを確認し、動的なファイルBがある場合は(ステップS375:Yes)、対応するラベルBをキーにアクセス制御ルールを検索し、ラベルBに関するパーミッション情報を取得する(ステップS380)。処理装置110は得られたパーミッション情報に基づいてラベルオブジェクトBとパーミッションオブジェクトを関連づけ(ステップS385)、パーミッションオブジェクトの種類にしたがって、動的リソースに色付けを行う(ステップS390)。
【0069】
このようにして、本実施形態のアクセス制御設定装置100は、過去になした設定情報から3つのタイプのパスオブジェクトを再現して表現形式変換処理を行い、リソースをツリー構造で表現した「アクセス制御設定画面」をユーザに提示する。過去にアクセス制御設定がなされていた場合、アクセス制御設定画面に表示されるリソースは、例えば図20や図21のように、パーミッション情報RWXCとともに色分けされて表示される。
【0070】
[ステップS5の詳細手順]
設定漏れ検出処理(ステップS5)の詳細手順を図11に示す。
処理装置110は、設定者の設定漏れ検出指示を受け付けると、ラベルオブジェクトから処理装置110が保持するラベル一覧(ラベルリスト1)を生成する(S510)。ラベルオブジェクトは、アクセス制御設定者がツリー構造を展開することにより収集されたものと、アクセス制御設定者が新たに定義したラベルの集合なので、ラベルリスト1はアクセス制御設定者が確認済みのラベル一覧である。ここで、アクセス制御設定者がツリー構造を展開することにより収集されたものには、既にアクセス制限が設定されているものと、単に表示装置に表示されただけのものが含まれる。
一方で、処理装置110は、マッピングファイル220に記録されている全てのラベル情報を取得してラベル一覧(ラベルリスト2)を生成する(S520)。ラベルリスト2は、ツリー構造展開の過程で処理装置110が取得し、すでにアクセス制御設定者が確認したものも含む。
そして、処理装置110はラベルリスト1とラベルリスト2をマージしたラベル一覧(ラベルリスト3)を生成する(S530)。ラベルリスト3は、アクセス制御設定対象となりうる全ラベル一覧となる。
さらに、処理装置110はラベルリスト3からラベルリスト1を差し引いたラベル一覧(ラベルリスト4)を生成し(S540)、ラベルリスト4を設定者に提示する(S550)。すなわち、アクセス制御設定対象となりうる全ラベル一覧(ラベルリスト3)からアクセス制御設定者が確認済のラベル一覧(ラベルリスト1)を差し引くこととなり、ラベルリスト4は全ラベル一覧のうち、アクセス制御設定者が未確認のラベル一覧となる。
【0071】
ブラックリスト方式では、ブラックリスト方式のデフォルト状態である「RWXC全て許可」のまま残されたリソースが、確認の上で「全許可」としたものか、未確認のために「全許可」となっているのか容易に判別できない、という問題があった。本発明のブラックリスト方式に基づくアクセス制御設定装置によれば、設定者は設定作業完了後、未確認のラベルのみを把握することができるので、ブラックリスト方式の設定作業が容易、かつ確実なものとなる。
【0072】
設定者は、処理装置110が提示したラベルリスト4を確認し、設定漏れを確認する。設定者が設定漏れを発見した場合(ステップS6:No)、処理装置110は設定者の指示を受けて設定情報生成処理(ステップS4)に戻る。
設定者が設定漏れを発見しなければ、処理装置110は設定者の指示を受けて設定情報をマッピングファイルとアクセス制御ルールに反映させて、全体処理を終了する(ステップS7)。
【0073】
このように、本実施形態によるアクセス制御設定装置100は、端末装置200から、リソースの情報とラベル表現形式で設定されたアクセス制御の内容を表す情報を取得し、取得した情報のうち、各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、各グループ名と、そのグループに設定されたアクセス制御の内容とをリンクさせることにより、当該アクセス制御の内容をパス表現形式の代表例である階層構造のものに変換し、変換されたアクセス制御の内容を表示装置120に表示させるとともに、アクセス制御の設定内容が同一となる複数のリソースについては同一の態様で表示させるようにしたので、階層構造の表現形式には詳しいが、ラベル表現形式への理解が十分でない設定者が、容易に既存の設定内容を把握することができる。
これにより、過大なアクセス制限が設定されていたり、あるリソースに対しては必要以上に厳しいアクセス制限がなされているなど、ゆる過ぎたり厳しすぎたりする設定がなされている状況の把握が容易になり、端末装置200のセキュアOSを使用する際の初期学習効果を軽減することができる。また、ラベル表現形式でアクセス制御の設定を行った設定者がいなくなった場合でも、階層構造の表現形式に慣れた者が容易に既存の設定内容を把握できるという利点も生じる。
【0074】
また、すべてのリソース情報から、既にアクセス制限が設定されているリソース及び表示装置120に表示されたリソースのリソース情報を差し引くことで設定漏れのリソースを検出するようにしたので、ブラックリスト方式をアクセス制御に適用したときの利点を活かしつつ、残っていた設定漏れなのか、設定者が確認のうえ許可したものなのか判断がつかないという課題を解決することができる。
【0075】
なお、設定漏れの検出に際しては、検出されたリソースについては、設定者による設定処理を待つことなく、自動的にアクセス禁止とする処理を加えるようにしても良い。このようにすれば、例えばセキュアOSがアクセス可能なリソースとしてUSBメモリを設定する場合、設定時にそのUSBメモリが存在しない場合であっても、設定をし忘れることが無くなり、より安全なアクセス制御が可能になるという効果が得られる。
【0076】
なお、上記実施例ではファイルやフォルダ等のリソースにR、W、X、Cの記号が表示されている場合、それぞれ当該リソースについて読み取り、書き込み、実行、ファイル作成が「許可」されていることを意味したが、逆に、ファイルやフォルダ等のリソースにR、W、X、Cの記号が表示されている場合、それぞれ当該リソースについて読み取り、書き込み、実行、ファイル作成が「禁止」されている状態を表すものとしてアクセス制御設定装置を構成してもよい。
【符号の説明】
【0077】
100・・・アクセス制御設定装置、110・・・処理装置、111・・・入力受付部、112・・・情報取得部、113・・・設定情報更新部、114・・・表現形式変換部、115・・・表示制御部、116・・・出力制御部、120・・・表示装置、130・・・入力装置、140・・・接続インタフェース、200・・・端末装置、210・・・セキュアOS、211・・・OSカーネル、212・・・アクセス制御モジュール、220・・・マッピングファイル、230・・・アクセス制御ルール、240・・・アクセスポリシ、300・・・初期情報入力画面、410〜426・・・パスオブジェクト、510〜528・・・ラベルオブジェクト、610〜615・・・パーミッションオブジェクト、710〜760・・・マッピングオブジェクト、800〜825・・・ディレクトリ、851〜852・・・ボタン(画像)、900・・・詳細設定用画面、1000・・・相互確認用の設定画面。
【特許請求の範囲】
【請求項1】
それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段と、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段と、
を有する、アクセス制御設定装置。
【請求項2】
前記複数のリソースの各々が、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在し、分類されたときはグループ単位でアクセスの制限内容の設定がなされるものであり、
前記リソース情報は、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されたかをそのグループ名と共に表す第2情報で構成されており、
前記保持されている設定状況情報は、グループ毎に非パス表現形式で表現されるものであり、
前記制御手段は、前記リソース情報及び前記設定状況情報を表示する際に、前記第1情報により特定される各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、前記第2情報により特定される各グループ名とそのグループに設定された設定状況情報とをリンクさせることにより、前記非パス表現形式の設定状況情報をパス表現形式のものに変換する、
請求項1記載のアクセス制御設定装置。
【請求項3】
前記制御手段は、個々のリソース、階層化又はグループに分類されたリソースのリソース情報及び前記設定状況方法を、前記表示装置に表示されたときと表示されていないときとで異なる態様で前記表示装置に表示させる、
請求項2記載のアクセス制御設定装置。
【請求項4】
前記制御手段は、設定されているアクセス制限の内容が同一となる複数のリソース又はグループのリソース情報については同じ態様で前記表示装置に表示させる、
請求項3記載のアクセス制御設定装置。
【請求項5】
それぞれ、アクセス制限が設定される可能性のある複数のリソースに対するアクセス制御内容を設定する装置が実行する方法であって、
前記複数のリソースの各々を特定するためのリソース情報と、各々のリソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを所定のメモリに保持するステップと、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御を行うステップとを有する、
アクセス制限の設定漏れ検出方法。
【請求項6】
コンピュータを、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段;
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段;
として機能させる、
コンピュータプログラム。
【請求項1】
それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段と、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段と、
を有する、アクセス制御設定装置。
【請求項2】
前記複数のリソースの各々が、それぞれ、他のリソースと階層的に関連付けられ、且つ、所定のグループに分類可能な状態で存在し、分類されたときはグループ単位でアクセスの制限内容の設定がなされるものであり、
前記リソース情報は、階層構造を表す情報と各々のリソースのIDとを含む第1情報、及び、各々のリソースがどのグループに分類されたかをそのグループ名と共に表す第2情報で構成されており、
前記保持されている設定状況情報は、グループ毎に非パス表現形式で表現されるものであり、
前記制御手段は、前記リソース情報及び前記設定状況情報を表示する際に、前記第1情報により特定される各階層のリソースのIDとそのリソースが属するグループ名とをリンクさせ、さらに、前記第2情報により特定される各グループ名とそのグループに設定された設定状況情報とをリンクさせることにより、前記非パス表現形式の設定状況情報をパス表現形式のものに変換する、
請求項1記載のアクセス制御設定装置。
【請求項3】
前記制御手段は、個々のリソース、階層化又はグループに分類されたリソースのリソース情報及び前記設定状況方法を、前記表示装置に表示されたときと表示されていないときとで異なる態様で前記表示装置に表示させる、
請求項2記載のアクセス制御設定装置。
【請求項4】
前記制御手段は、設定されているアクセス制限の内容が同一となる複数のリソース又はグループのリソース情報については同じ態様で前記表示装置に表示させる、
請求項3記載のアクセス制御設定装置。
【請求項5】
それぞれ、アクセス制限が設定される可能性のある複数のリソースに対するアクセス制御内容を設定する装置が実行する方法であって、
前記複数のリソースの各々を特定するためのリソース情報と、各々のリソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを所定のメモリに保持するステップと、
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定するための制御を行うステップとを有する、
アクセス制限の設定漏れ検出方法。
【請求項6】
コンピュータを、それぞれ、アクセス制限が設定される可能性のある複数のリソースの各々を特定するためのリソース情報と、各リソースについて既にアクセス制限が設定されているかどうかを表す設定状況情報とを保持する保持手段;
前記リソース情報及び前記設定状況情報を所定の表示装置に表示させるとともに、前記保持されているすべてのリソース情報から、既にアクセス制限が設定されているリソース及び前記表示装置に表示されたリソースのリソース情報を差し引くことにより、未だ表示がなされておらず且つアクセス制限が設定されていないリソースを特定する制御手段;
として機能させる、
コンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2011−138298(P2011−138298A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−297522(P2009−297522)
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
[ Back to top ]