JP2006155416A - アクセス制御装置及びアクセス制御方法 - Google Patents

アクセス制御装置及びアクセス制御方法 Download PDF

Info

Publication number
JP2006155416A
JP2006155416A JP2004347640A JP2004347640A JP2006155416A JP 2006155416 A JP2006155416 A JP 2006155416A JP 2004347640 A JP2004347640 A JP 2004347640A JP 2004347640 A JP2004347640 A JP 2004347640A JP 2006155416 A JP2006155416 A JP 2006155416A
Authority
JP
Japan
Prior art keywords
access control
output
control rule
input
data
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
JP2004347640A
Other languages
English (en)
Other versions
JP4628073B2 (ja
Inventor
Hiroshi Fujimoto
拓 藤本
Takashi Suzuki
敬 鈴木
Takehiro Nakayama
雄大 中山
Atsushi Takeshita
敦 竹下
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2004347640A priority Critical patent/JP4628073B2/ja
Publication of JP2006155416A publication Critical patent/JP2006155416A/ja
Application granted granted Critical
Publication of JP4628073B2 publication Critical patent/JP4628073B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】オーバーヘッドを軽減し、柔軟なアクセス制御を行うアクセス制御装置及びアクセス制御方法を提供する。
【解決手段】アクセス制御装置100は、入力データに対応する第一のアクセス制御規則210を導出する第一のアクセス制御規則導出部110と、入力変数と出力変数との対応を表す派生規則220に基づき、出力データの派生元である入力データを特定する入力データ特定部120と、入力データ特定部120によって特定された入力データに対応する第一のアクセス制御規則210に従って、出力データに対応する第二のアクセス制御規則230を導出する第二のアクセス制御規則導出部130と、第二のアクセス制御規則230に従って、出力データの出力処理を制御するアクセス制御部140とを備える。
【選択図】図1

Description

本発明は、アクセス制御装置及びアクセス制御方法に関する。
一般に、計算機上で実行されているプロセスが、キーボードからの入力データやファイルといった計算機上のリソースにアクセスするためには、カーネルプログラムにシステムコールと呼ばれる要求を発行し、カーネルを通じてアクセスする必要がある。これにより、リソースに対してアクセス権限を有するプロセスのみが、リソースへアクセス可能となる。
一方で、計算機上で動作する各プロセスは、信頼あるベンダから提供されたものや計算機に元々組み込まれた信頼度の高いプロセスから、計算機のユーザが独自に導入した信頼度の低いプロセスが存在する。信頼度の低いプロセスでは、プロセス自体が悪意を有していたり、脆弱性を有していたりする可能性があり、これらのプロセスに、計算機上のリソースに対するアクセスを許可した場合に、外部へ情報が漏えいしたり、計算機上のファイルが改ざんされたりするといった、危険性が存在する。
さらに、計算機上で動作するプロセスは、それぞれの役割に応じてアクセスする必要があるリソースが決まっている。例えば、Webのサーバプロセスであれば、HTTPリクエストに応じるために必要なファイル(例えば、Webサーバのルートディレクトリ以下)の入力や、ログファイルへの出力のみ可能であれば良い。
上記に挙げたような危険性を避けるためには、このような各プロセスの役割や権限に応じて、各プロセスの計算機上の各リソースに対するアクセスを制御可能である必要がある。
上記を実現する技術の一つとして、各プロセスの各リソースに対するアクセス権限を細かく設定したアクセス制御規則を利用することにより、細粒度のアクセス制御を行う強制アクセス制御と呼ばれる技術が存在する。例えば、SELinuxでは、各プロセスに対してドメインと呼ばれるアクセス権のレベルを設定し、また計算機上の各リソースに対しては、タイプと呼ばれるレベルを設定する(例えば、非特許文献1参照。)。しかるのち、各ドメインの各タイプに対するアクセス権を記述するアクセス制御規則を設定し、カーネルがこのアクセス制御規則により各プロセスの各リソースに対するアクセスを制御することが可能である。例えば、Webサーバの例では、図12に示したように、Webサーバプロセスに“httpd_t”というドメインを設定し、Webページ用のファイルが格納されたディレクトリ“/var/www/html/”には“httpd_sys_content_t”というタイプを設定し、さらに<httpd_tドメインに属するプロセスはhttpd_sys_content_tタイプに属するディレクトリのみ読み込み可能>というアクセス制御規則を設定することで、Webサーバプロセスに必要最小限の権限のみ与えることが可能である。
SELinuxのような強制アクセス制御技術を適用する例として、例えば、図13に示した例では、プロセスAはリソースAとリソースBを読み込むことが可能であり、プロセスBはリソースBのみ読み込むことが可能である。
ここで、プロセスAがリソースAを読み込んだ後、プロセスAがプロセスBに対して出力するような場合を考える。この場合、プロセスBは、本来読み込む権限がないはずのリソースAを読み込むことが可能となってしまう。
SELiunuxで実現されているような強制アクセス制御技術により、このような状況を避けるためには、<リソースAを読み込む権限がある全てのプロセスは、プロセスBとのプロセス間通信を禁止する>というアクセス制御規則があれば良い。
この場合、プロセスAが読み込んだリソースがBであったとしても、プロセスAはプロセスBに対してそれを出力することは不可能となる。
また、このような状況において、リソースAを読み込んだ時点でプロセスAのアクセス権限を変え、プロセスBとのプロセス間通信を禁止するという、SELinuxの強制アクセス制御技術に比べて柔軟なアクセス制御を実現可能とする技術も開示されている(例えば、特許文献1参照。)。この場合では、プロセスAはリソースAを読み込むまではプロセスBと通信可能であるが、リソースAを読み込んだ後は、プロセス Bと通信不可能となり、リソースBをプロセスBに対して出力することはできない。
以上挙げた二つの文献では、どちらも各プロセスの各リソースに対するアクセス制御を行う。しかし、プロセス間のアクセス権が異なる時には、図13で挙げたような場合に実際には許可されるはずのリソースBのプロセス間通信を禁止しなければならず、各プロセスの動作が必要以上に制限されてしまう。
例えば、JAVA(登録商標)アプレットのように、プロセスAがインターネット上から信頼のおけないコード(上記の例ではプロセスB)を取得して実行するようなアプリケーションは数多く存在する。この場合、プロセスAはプロセスBを実行するにあたり、pipe等のシステムコールを用いて情報のやり取りを行うのが一般的である。しかし、信頼性のないプロセスBは端末の特定のリソースに対してアクセスを許可されないのが一般的であり、この場合、例えばプロセスAがブラウザ等のプログラムでユーザから入力されたパスワードを保持している場合などでは、従来技術では、プロセスAはプロセスBを実行するにあたり、一切の情報のやり取りができなくなり、各プロセスの動作は非常に制限されることとなる。しかし、一方で、プロセスAとプロセスBの自由な情報のやり取りを許可することは、プロセスBが悪意を持っていた場合には、情報漏えいが発生する危険性が大きい。
上記のようにプロセスの柔軟性を損なうアクセス制御は、ユーザ・プログラムベンダの双方にとって不自由となるか、または、上記のような問題点を回避するために、アクセス制御規則を緩めることにより、セキュリティ上の脆弱性が発生する。
このような問題について、情報流解析と呼ばれる技術を用いた解決方法が考えられる(例えば、非特許文献2参照。)。情報流解析技術では、プロセスの動作を、元のプログラムソースの静的な解析、あるいはプロセス実行中の動的な解析により、プロセスに入力された情報の流れを追跡・制御する。具体的には、プロセスに入力された情報について、プロセスが参照する変数間での情報の伝播を解析する。
Security Enhanced Linux (SE Linux) http://www.nsa.gov/selinux/ 特開平8−87440号公報 Stephen Tse and Steve Zdancewic."Run-time principals in information-flow type systems". In proceedings of IEEE Symposium on Security and Privacy、 pages 179-193, 2004.
しかしながら、上記に挙げたような問題を解決するには、プロセスへのリソースの入力、及びプロセスからのリソースの出力のみ監視すれば良く、情報流解析技術のようにプロセスが参照する変数まで監視するのは、プロセスのパフォーマンスを低下させる要因となる。
そこで、本発明は、上記の課題に鑑み、オーバーヘッドを軽減し、柔軟なアクセス制御を行うアクセス制御装置及びアクセス制御方法を提供することを目的とする。
上記目的を達成するため、本発明の特徴は、入力データをプロセスが参照する入力変数へ入力し、プロセス実行に従い入力変数から派生した出力変数に格納された出力データを出力するアクセス制御装置であって、(a)入力データに対応する第一のアクセス制御規則を導出する第一のアクセス制御規則導出部と、(b)入力変数と出力変数との対応を表す派生規則に基づき、出力データの派生元である入力データを特定する入力データ特定部と、(c)入力データ特定部によって特定された入力データに対応する第一のアクセス制御規則に従って、出力データに対応する第二のアクセス制御規則を導出する第二のアクセス制御規則導出部と、(d)第二のアクセス制御規則に従って、出力データの出力処理を制御するアクセス制御部とを備えるアクセス制御装置であることを要旨とする。
第1の特徴に係るアクセス制御装置によると、オーバーヘッドを軽減し、柔軟なアクセス制御を行うことができる。
又、第1の特徴に係るアクセス制御装置において、入力データの入力元が計算機上のリソースである場合、第一のアクセス制御規則導出部は、リソースに対応する第一のアクセス制御規則を導出してもよい。このアクセス制御装置によると、リソースに応じた出力処理を行うことができる。
又、第1の特徴に係るアクセス制御装置において、第一のアクセス制御規則及び第二のアクセス制御規則は、出力処理の際に発生するシステムコールを許可するか否かを定めてもよい。このアクセス制御装置によると、システムコールの発行元プロセスが、指定されたリソースを入力する権限があるかどうかを調べ、権限がある場合にのみリソースを読み込むことができる。
又、第1の特徴に係るアクセス制御装置において、入力データの入力先が当該プロセスを生成したプログラムが参照する変数である場合、入力データ特定部は、変数を特定してもよい。このアクセス制御装置によると、変数に対応した第一のアクセス制御規則に従って、出力処理を制御することができる。
又、第1の特徴に係るアクセス制御装置において、出力データが複数の入力データから派生する場合、第二のアクセス制御規則導出部は、複数の入力データに対応する第一のアクセス制御規則に従って、出力データに対応する第二のアクセス制御規則を導出してもよい。このアクセス制御装置によると、すべての入力データを考慮した第二のアクセス制御規則を導出することができる。
又、第1の特徴に係るアクセス制御装置において、出力処理がプロセス間通信におけるデータの送信である場合、第二のアクセス制御規則導出部は、送信先のプロセスに対応する第一のアクセス制御規則に従って、出力データに対応する第二のアクセス制御規則を導出してもよい。このアクセス制御装置によると、送信先のプロセスに応じた出力制御を行うことができる。
又、第1の特徴に係るアクセス制御装置において、派生規則は、プロセスを生成したプログラムのプログラムソースを静的解析することにより生成されてもよい。このアクセス制御装置によると、生成された派生規則を参照することにより、出力変数の派生元の入力変数を適切に特定することができる。
又、第1の特徴に係るアクセス制御装置において、プロセスへの入力データが他のプロセスからの出力データである場合、第一のアクセス制御規則導出部は、他のプロセスの出力データに対応する第二のアクセス制御規則に従って、入力データに対応する第一のアクセス制御規則を導出してもよい。このアクセス制御装置によると、各プロセスに応じた、柔軟な出力制御を行うことができる。
又、第1の特徴に係るアクセス制御装置において、出力データの出力先が計算機上のリソースである場合、アクセス制御部は、出力データに対応する第二のアクセス制御規則に従って、リソースのアクセス制御規則を更新してもよい。このアクセス制御装置によると、出力処理に応じて、アクセス制御規則を適宜更新することができる。
本発明の第2の特徴は、入力データをプロセスが参照する入力変数へ入力し、プロセス実行に従い入力変数から派生した出力変数に格納された出力データを出力するアクセス制御方法であって、(a)入力データに対応する第一のアクセス制御規則を導出するステップと、(b)入力変数と前記出力変数との対応を表す派生規則に基づき、出力データの派生元である入力データを特定するステップと、(c)特定された入力データに対応する第一のアクセス制御規則に従って、出力データに対応する第二のアクセス制御規則を導出するステップと、(d)第二のアクセス制御規則に従って、出力データの出力処理を制御するステップとを含むアクセス制御方法であることを要旨とする。
第2の特徴に係るアクセス制御方法によると、オーバーヘッドを軽減し、柔軟なアクセス制御を行うことができる。
本発明によると、オーバーヘッドを軽減し、柔軟なアクセス制御を行うアクセス制御装置及びアクセス制御方法を提供することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
<第1の実施の形態>
(アクセス制御装置)
第1の実施の形態に係るアクセス制御装置100は、図1に示すように、第一のアクセス制御規則導出部110、入力データ特定部120、第二のアクセス制御規則導出部130、アクセス制御部140とを備える。
第1の実施の形態では、例えばSELinuxで実現されているような既存の強制アクセス制御技術と同じく、計算機上で動作する各プロセスの、計算機上の各リソースに対するアクセスを制御する、アクセス制御規則があらかじめ定められているものとする。
また、第1及び第2の実施の形態において、プロセスにデータが入力されてから出力されるまでの流れを図2に示す。図2に示すように、入力処理により、ファイルやキーボード等の計算機上のリソースからプロセスが参照する入力変数410へ入力された入力データ310は、プロセス実行に従い出力変数420へ派生し、出力処理により、出力変数420に格納された出力データ320が出力される。
各リソースに定められたアクセス制御規則とは、具体的には、図3に示すように、プロセスの各リソースに対する、メモリへの読み込み(入力処理)や別プロセス・別計算機への送信(出力処理)といった、入出力の処理を制御する規則である。例えば、プロセス1は、キーボードからのデータの入力を禁止される。また、図3では、以下の説明のため、各アクセス制御規則に一意の識別子を付与している。アクセス制御装置100は、プロセスによるデータの入出力処理を監視し、その制御まで行うため、例えばプロセスの入出力の処理を管理するカーネルの機能として組み込むことが考えられる。
アクセス制御装置100の第一のアクセス制御規則導出部110は、プロセスの記憶領域に入力される入力データ310に対応する第一のアクセス制御規則210を導出する。
入力データ特定部120は、与えられた入力変数410と出力変数420との対応を表す派生規則220に基づき、出力データ320の派生元である入力データ310を特定する。
第二のアクセス制御規則導出部130は、入力データ特定部120によって特定された入力データ310に対応する第一のアクセス制御規則に従って、出力データ320に対応する第二のアクセス制御規則230を導出する。
アクセス制御部140は、第二のアクセス制御規則230に従って、出力データ320の出力処理を制御する。
上述した各部の動作については、アクセス制御方法において、詳細に説明する。
又、第1の実施の形態に係るアクセス制御装置100は、処理制御装置(CPU)を有し、上述した第一のアクセス制御規則導出部110、入力データ特定部120、第二のアクセス制御規則導出部130、アクセス制御部140などをモジュールとして、CPUに内蔵する構成とすることができる。これらのモジュールは、パーソナルコンピュータ等の汎用コンピュータにおいて、所定のプログラム言語を利用するための専用プログラムを実行することにより実現することができる。
又、図示していないが、アクセス制御装置100は、第一のアクセス制御規則導出処理、入力データ特定処理、第二のアクセス制御規則導出処理、アクセス制御処理などをCPUに実行させるためのプログラムを蓄積するプログラム保持部を備えてもよい。プログラム保持部は、例えば、RAM、ROM、ハードディスク、フレキシブルディスク、コンパクトディスク、ICチップ、カセットテープなどの記録媒体である。このような記録媒体によれば、プログラムの蓄積、運搬、販売などを容易に行うことができる。
又、図示していないが、アクセス制御装置100は、入力元アクセス制御規則200、第一のアクセス制御規則210、派生規則220、第二のアクセス制御規則230を保持するデータ保持部を備えてもよい。データ保持部は、RAM等の内部記憶装置でもよく、ハードディスク等の外部記憶装置でもよい。
(アクセス制御方法)
次に、図3に示すようなアクセス制御規則があらかじめ与えられたものとして、アクセス制御装置100によるアクセス制御方法について、図5を用いて説明する。
まず、ステップS101において、第一のアクセス制御規則導出部110は、プロセスに入力された入力データ310の入力元にあらかじめ付与された入力元アクセス制御規則200を取得する。ここで、入力元とは例えば、計算機上のリソース、具体的には計算機上に保存されたデータや、計算機のユーザによりキーボードから入力されたデータを指す。これらがプロセスに入力される際、プロセスは必ずリソースを当該プロセスのメモリ空間に読み込むためにreadシステムコールを発行する。例えば、計算機上のファイルを読み込む際には、下記のようなシステムコールを発行する。
read ( “ファイルディスクリプタ”、 入力変数、 入力サイズ)
第一引数のファイルディスクリプタは、計算機上のファイルを一意に表す。このシステムコールは、ファイルディスクリプタで指定されたファイルから入力サイズで指定されたデータ長だけ読み取り入力変数410に代入することを、カーネルに要求するものである。
カーネルは、システムコールを受け取った際、あらかじめ与えられたアクセス制御規則により、システムコールの発行元プロセスが、指定されたリソースを入力する権限があるかどうかを調べ、権限がある場合には、そのシステムコールを許可する。
上記のようなシステムコールが発行され、入力データ310がプロセスに入力された際、ステップS102において、第一のアクセス制御規則導出部110は、入力元アクセス制御規則200を、入力変数410に対応する第一のアクセス制御規則210とする。入力データ310の入力先と一意に対応付けるため、例えば図4に示すように入力変数410と第一のアクセス制御規則210とを対応付けて記録する。
次に、ステップS104において、第二のアクセス制御規則導出部130は、プロセスからデータが出力される際、出力データ320に対応する第二のアクセス制御規則230を導出する。プロセスがメモリ空間からデータを出力する際、必ずwriteシステムコールを発行する。
write (“ファイルディスクリプタ”、出力変数、出力サイズ)
ファイルディスクリプタは、出力先を表す。例えば、ファイルディスクリプタが計算機上のファイルを指す場合、ディスプレイを指す場合、計算機内外の別プロセスを指す場合がある。このシステムコールは、出力変数420から出力サイズで指定されたデータ長だけ読み取り、ファイルディスクリプタで指定された出力先に出力することを、カーネルに要求するものである。
上記のようなシステムコールが発行され、出力データ320がプロセスから出力される際、第二のアクセス制御規則導出部130は、当該出力処理を制御するための第二のアクセス制御規則230を導出する。具体的には以下の手順による。
(1)当該出力データ320が格納された出力変数420の派生元となっている全ての入力変数410を導出
(2)上記各入力変数410に対応する第一のアクセス制御規則210を取得
(3)上記全ての第一のアクセス制御規則210から、出力変数420に対応する第二のアクセス制御規則230を導出
上記3つの手順のうち、手順(1)については、上記非特許文献2で挙げたような情報流解析技術を用いる方法も考えられるが、パフォーマンス低下に繋がる。従って、与えられた入力変数410と出力変数420との対応を表す派生規則220が入力されるものとし、ステップS103において、これを利用する。派生規則220の導出方法については、第2の実施の形態において詳細に述べる。ここでは、出力変数420の派生元となった全ての入力変数410が特定できたものとする。例えば、当該出力データが、図4で示した入力変数のうちX1、X2から派生したものであった場合、手順(2)によりPolicy2、Policy3を取得し、手順(3)により第二のアクセス制御規則230が導出される。この場合、第二のアクセス制御規則230は、Policy2、Policy3を結合し、以下のような規則となる。
・プロセス1とプロセス2は、ファイル出力を禁止
・プロセス1、2を含み、カーネルを除く全てのプロセスは、計算機外への出力を禁止
次に、ステップS105において、アクセス制御部140は、第二のアクセス制御規則230に従い、当該出力データ320の出力処理を制御する。上記で示した例では、出力処理の主体がプロセス1であった場合に、出力先が別プロセスであれば出力を許可するが、出力先が計算機外やファイルであった場合には、出力を禁止する。
(作用及び効果)
第1の実施の形態に係るアクセス制御装置及びアクセス制御方法によると、プロセスに入力されたデータに対してアクセス制御規則を与え、プロセスからデータが出力される際に、そのデータのアクセス制御規則に従い出力処理を制御することができる。このため、例えば、図13の例では、プロセスAがプロセスBにリソースAを出力する際は許可されないが、リソースBを出力する際は許可されるといった柔軟なアクセス制御が可能である。また、リソースの入出力のみを監視することにより、情報流解析技術に発生したようなオーバーヘッドを軽減することができる。
又、入力データ310の入力元が計算機上のリソースである場合、第一のアクセス制御規則導出部110は、リソースに対応する第一のアクセス制御規則210を導出することができる。このため、リソースに応じた出力処理を行うことができる。
又、第一のアクセス制御規則210及び第二のアクセス制御規則230は、出力処理の際に発生するシステムコールを許可するか否かを定めることができる。このため、システムコールの発行元プロセスが、指定されたリソースを入力する権限があるかどうかを調べ、権限がある場合にのみリソースを読み込むことができる。
又、入力データ310の入力先が当該プロセスを生成したプログラムが参照する変数である場合、入力データ特定部120は、変数を特定することができる。このため、変数に対応した第一のアクセス制御規則210に従って、出力処理を制御することができる。
又、出力データ320が複数の入力データ310から派生する場合、第二のアクセス制御規則導出部130は、複数の入力データ310に対応する第一のアクセス制御規則210に従って、出力データ320に対応する第二のアクセス制御規則230を導出することができる。このため、すべての入力データ310を考慮した第二のアクセス制御規則230を導出することができる。
又、出力処理がプロセス間通信におけるデータの送信である場合、第二のアクセス制御規則導出部130は、送信先のプロセスに対応する第一のアクセス制御規則210に従って、出力データ320に対応する第二のアクセス制御規則230を導出することができる。このため、送信先のプロセスに応じた出力制御を行うことができる。
<第2の実施の形態>
(アクセス制御装置及びアクセス制御方法)
第2の実施形態では、入力データ特定部120が、出力変数420へデータを派生する入力変数410を特定する方法を述べる。ここで、派生とは、具体的には、出力変数420に格納されている出力データ320が、派生元の入力変数410に格納されている入力データ310から生成されたことを表す。例えば、図6のようなプログラムでは、変数に格納されているデータは、変数aと変数bに格納されたデータから生成されている。
入力データ特定部120は、あらかじめ生成された派生規則220を用いることで、入力変数410を特定する。派生規則220は、例えば図7のように表され、出力変数420がどの入力変数410から派生するかを表す。この例では、出力変数Y1が入力変数X1、X2から派生することを表す。
派生規則220は、例えばプロセスを生成した実行プログラムのプログラムソースを静的解析することで生成可能である。具体的には、下記の手順による。
(1)入力変数410、及び出力変数420を特定する。
(ア) 入力変数410や出力変数420は、第1の実施の形態で示したようなシステムコールや、プログラム言語で規定された、そのシステムコールを呼び出すための高水準関数の引数となる変数であるため、プログラムソースの解析により特定可能である。
(イ) 例えば、ファイル入力には、第1の実施の形態で示したreadシステムコールや、その高水準関数であるfgets()関数等が用いられる。
(2)特定された入力変数410、出力変数420を用い、プログラムソースを静的解析することで、派生規則220を生成する。
(ア) 図6のような派生が発生する演算において、演算の入力側が入力変数410であった場合に、演算の出力側の変数は入力変数410から派生したことになる。
(イ) もし、入力変数410から派生した変数が入力となる演算が発生した場合、その演算の出力もまた、入力変数410から派生したことになる。
(ウ) 上記の繰り返しにおいて、入力変数410や入力変数410から派生した変数から、さらに派生した変数が出力変数420であった場合、出力変数420の派生元入力変数として入力変数410を派生規則220に記録する。
(エ) 全ての入力変数410について、上記処理を繰り返す。
入力データ特定部120は、上記のようにして得られた派生規則220を参照することで、出力処理に関わるシステムコールが発生した際、出力データ320が格納された出力変数420の派生元の入力変数410を特定する。
(作用及び効果)
第2の実施の形態に係るアクセス制御装置及びアクセス制御方法によると、派生規則220は、プロセスを生成したプログラムのプログラムソースを静的解析することにより生成される。
このように生成された派生規則220を参照することにより、出力変数420の派生元の入力変数410を適切に特定することができる。
<第3の実施の形態>
(アクセス制御装置及びアクセス制御方法)
第3の実施の形態では、第1の実施形態において特に出力処理による出力先が別のプロセスであった場合について述べる。第3の実施の形態では、アクセス制御部140により出力処理が許可され、プロセスへの出力データ320の出力が発生したものとする。
第3の実施形態に係わる入出力処理の流れを図8に示す。図8では、入力元プロセス510が参照する出力変数421に格納された出力データ321が、出力先プロセス520が参照する入力変数412に入力されている。
出力先プロセス520から見た場合、入力元アクセス制御規則200は入力元プロセス510の出力変数に対応する第二のアクセス制御規則231である。出力先プロセス520の第一のアクセス制御規則導出部110は、出力先プロセス520が発行したシステムコールを参照することで、入力変数412に対応する第一のアクセス制御規則212を導出する。具体的には、readシステムコールのファイルディスクリプタを参照することで、入力元プロセス510の出力変数421を特定し、出力変数421に対応する第二のアクセス制御規則231を入力元アクセス制御規則200として取得し、入力変数412に対応する第一のアクセス制御規則212とする。
(作用及び効果)
第3の実施の形態に係るアクセス制御装置及びアクセス制御方法によると、プロセスへの入力データが他のプロセスからの出力データ321である場合、第一のアクセス制御規則導出部110は、他のプロセスの出力データ321に対応する第二のアクセス制御規則231に従って、入力データに対応する第一のアクセス制御規則212を導出することができる。このため、各プロセスに応じた、柔軟な出力制御を行うことができる。
<第4の実施の形態>
(アクセス制御装置及びアクセス制御方法)
第4の実施形態では、第1の実施の形態において特に出力処理による出力先がファイルであった場合について述べる。第4の実施の形態では、アクセス制御部140により出力処理が許可され、ファイルへの出力データ320の出力が発生したものとする。
第4の実施形態に係わる入出力処理の流れを図9に示す。図9では、ファイル610から入力されたデータを格納する入力変数411に対応する第一のアクセス制御規則211、及びファイル620から入力されたデータを格納する入力変数412に対応する第一のアクセス制御規則212があり、出力変数420に対応する第二のアクセス制御規則230は、第一のアクセス制御規則211、及び第一のアクセス制御規則212から導出されている。また、出力データ320は、第二のアクセス制御規則230に従い、ファイル610へ出力されている。
あらかじめファイル610、及びファイル620について、図10に示したような入力元アクセス制御規則201、入力元アクセス制御規則202が定められていたとする。Policy610に該当するものが入力元アクセス制御規則201であり、Policy620に該当するものが入力元アクセス制御規則202である。
第1の実施の形態でも述べたように、第二のアクセス制御規則導出部は、入力変数411に対応する第一のアクセス制御規則210と入力変数412に対応する第二のアクセス制御規則212から、以下のような、出力変数420に対応する第二のアクセス制御規則230を導出する。
・プロセス1とプロセス2は、ディスプレイへの出力を禁止
・プロセス1、2を含み、カーネルを除く全てのプロセスは、プロセスへの出力を禁止
第二のアクセス制御規則230では、ファイル出力については禁止されていないので、アクセス制御部140は、出力データ320のファイル610への出力を許可する。この際、アクセス制御部140は、第二のアクセス制御規則230を参照し、それをファイル610の入力元アクセス制御規則201に継承する。これにより、出力処理後の入力元アクセス制御規則201は、図11に示すようになる。
(作用及び効果)
第4の実施の形態に係るアクセス制御装置及びアクセス制御方法によると、出力データ320の出力先が計算機上のリソース(例えば、ファイル610)である場合、アクセス制御部140は、出力データ320に対応する第二のアクセス制御規則230に従って、図11に示すように、リソース(例えば、ファイル610)のアクセス制御規則を更新することができる。このため、出力処理に応じて、アクセス制御規則を適宜更新することができる。
<その他の実施の形態>
本発明は上記の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
例えば、第1の実施の形態に係るアクセス制御装置100において、第一のアクセス制御規則導出部110、入力データ特定部120、第二のアクセス制御規則導出部130、アクセス制御部140などをモジュールとして、一つのCPUに内蔵する構成としてもよいとして説明したが、それらが二つあるいはそれ以上のCPUに分かれていても構わない。その際はそれらのCPU間でデータのやりとりが行えるようにバスなどで装置間を接続しているとする。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
第1の実施の形態に係るアクセス制御装置の構成ブロック図である。 第1の実施の形態に係る入出力処理を説明するための図である。 第1の実施の形態に係るリソースに付与されたアクセス制御規則の一例である。 第1の実施の形態に係る入力変数と第一のアクセス制御規則との対応表の一例である。 第1の実施の形態に係るアクセス制御方法を示すフローチャートである。 第2の実施の形態に係る派生を説明するための図である。 第2の実施の形態に係る派生規則の一例である。 第3の実施の形態に係る入出力処理を説明するための図である。 第4の実施の形態に係る入出力処理を説明するための図である。 第4の実施の形態に係る更新前のアクセス制御規則の一例である。 第4の実施の形態に係る更新後のアクセス制御規則の一例である。 SELinuxにおける強制アクセス制御を説明するための図である。 プロセスに入力されたリソースの出力を説明するための図である。
符号の説明
100…アクセス制御装置
110…アクセス制御規則導出部
120…入力データ特定部
130…アクセス制御規則導出部
140…アクセス制御部
200、201、202…入力元アクセス制御規則
210、211、212…第一のアクセス制御規則
220…派生規則
230、231…第二のアクセス制御規則
310…入力データ
320、321…出力データ
410、411、412…入力変数
420、421…出力変数
510…入力元プロセス
520…出力先プロセス
610、620…ファイル

Claims (10)

  1. 入力データをプロセスが参照する入力変数へ入力し、プロセス実行に従い入力変数から派生した出力変数に格納された出力データを出力するアクセス制御装置であって、
    前記入力データに対応する第一のアクセス制御規則を導出する第一のアクセス制御規則導出部と、
    前記入力変数と前記出力変数との対応を表す派生規則に基づき、前記出力データの派生元である前記入力データを特定する入力データ特定部と、
    前記入力データ特定部によって特定された入力データに対応する第一のアクセス制御規則に従って、前記出力データに対応する第二のアクセス制御規則を導出する第二のアクセス制御規則導出部と、
    前記第二のアクセス制御規則に従って、前記出力データの出力処理を制御するアクセス制御部と
    を備えることを特徴とするアクセス制御装置。
  2. 前記入力データの入力元が計算機上のリソースである場合、
    前記第一のアクセス制御規則導出部は、前記リソースに対応する第一のアクセス制御規則を導出することを特徴とする請求項1に記載のアクセス制御装置。
  3. 前記第一のアクセス制御規則及び前記第二のアクセス制御規則は、前記出力処理の際に発生するシステムコールを許可するか否かを定めることを特徴とする請求項1又は2に記載のアクセス制御装置。
  4. 前記入力データの入力先が当該プロセスを生成したプログラムが参照する変数である場合、
    前記入力データ特定部は、前記変数を特定することを特徴とする請求項1〜3のいずれか1項に記載のアクセス制御装置。
  5. 前記出力データが複数の入力データから派生する場合、
    前記第二のアクセス制御規則導出部は、前記複数の入力データに対応する第一のアクセス制御規則に従って、前記出力データに対応する第二のアクセス制御規則を導出することを特徴とする請求項1〜4のいずれか1項に記載のアクセス制御装置。
  6. 前記出力処理がプロセス間通信におけるデータの送信である場合、
    前記第二のアクセス制御規則導出部は、送信先のプロセスに対応する第一のアクセス制御規則に従って、前記出力データに対応する第二のアクセス制御規則を導出することを特徴とする請求項1〜5のいずれか1項に記載のアクセス制御装置。
  7. 前記派生規則は、プロセスを生成したプログラムのプログラムソースを静的解析することにより生成されることを特徴とする請求項1〜6のいずれか1項に記載のアクセス制御装置。
  8. プロセスへの入力データが他のプロセスからの出力データである場合、
    前記第一のアクセス制御規則導出部は、前記他のプロセスの出力データに対応する第二のアクセス制御規則に従って、前記入力データに対応する第一のアクセス制御規則を導出することを特徴とする請求項1〜7のいずれか1項に記載のアクセス制御装置。
  9. 出力データの出力先が計算機上のリソースである場合、
    前記アクセス制御部は、前記出力データに対応する第二のアクセス制御規則に従って、前記リソースのアクセス制御規則を更新することを特徴とする請求項1〜8のいずれか1項に記載のアクセス制御装置。
  10. 入力データをプロセスが参照する入力変数へ入力し、プロセス実行に従い入力変数から派生した出力変数に格納された出力データを出力するアクセス制御方法であって、
    前記入力データに対応する第一のアクセス制御規則を導出するステップと、
    前記入力変数と前記出力変数との対応を表す派生規則に基づき、前記出力データの派生元である前記入力データを特定するステップと、
    前記特定された入力データに対応する第一のアクセス制御規則に従って、前記出力データに対応する第二のアクセス制御規則を導出するステップと、
    前記第二のアクセス制御規則に従って、前記出力データの出力処理を制御するステップと
    を含むことを特徴とするアクセス制御方法。
JP2004347640A 2004-11-30 2004-11-30 アクセス制御装置及びアクセス制御方法 Expired - Fee Related JP4628073B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004347640A JP4628073B2 (ja) 2004-11-30 2004-11-30 アクセス制御装置及びアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004347640A JP4628073B2 (ja) 2004-11-30 2004-11-30 アクセス制御装置及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2006155416A true JP2006155416A (ja) 2006-06-15
JP4628073B2 JP4628073B2 (ja) 2011-02-09

Family

ID=36633607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004347640A Expired - Fee Related JP4628073B2 (ja) 2004-11-30 2004-11-30 アクセス制御装置及びアクセス制御方法

Country Status (1)

Country Link
JP (1) JP4628073B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010536107A (ja) * 2007-08-15 2010-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション データ発信源の追跡及びデータ伝送の制御
US9027123B2 (en) 2008-12-08 2015-05-05 Nec Corporation Data dependence analyzer, information processor, data dependence analysis method and program
JP2015529898A (ja) * 2012-08-03 2015-10-08 アルカテル−ルーセント 仮想マシンにおける強制保護制御
US9501646B2 (en) 2012-09-26 2016-11-22 Mitsubishi Electric Corporation Program verification apparatus, program verification method, and computer readable medium
KR20170022797A (ko) * 2015-08-21 2017-03-02 주식회사 케이티 커널영역에서의 접근통제 효율화 방법,그 프로그램 및 시스템
JP2019215901A (ja) * 2014-07-25 2019-12-19 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
JP7446544B1 (ja) 2023-07-05 2024-03-08 三菱電機株式会社 情報処理装置、および、情報処理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887440A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ入出力管理装置及びデータ入出力管理方法
JPH11219320A (ja) * 1998-02-03 1999-08-10 Toshiba Corp データ記録再生システム
JP2001290780A (ja) * 2000-04-04 2001-10-19 Canon Inc デジタルコンテンツ流通管理センタ、デジタルコンテンツ利用者端末、デジタルコンテンツ流通システム、デジタルコンテンツ管理方法、デジタルコンテンツ利用方法及び記憶媒体
JP2002268945A (ja) * 2001-03-07 2002-09-20 Kanazawa Inst Of Technology サーバー情報処理システムのセキュリティー強化方法
JP2002288030A (ja) * 2001-03-27 2002-10-04 Hitachi Software Eng Co Ltd データ持ち出し禁止用プログラム
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2006065689A (ja) * 2004-08-27 2006-03-09 Ntt Docomo Inc 秘密情報保護装置、伝播規則導出装置及び秘密情報保護方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887440A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ入出力管理装置及びデータ入出力管理方法
JPH11219320A (ja) * 1998-02-03 1999-08-10 Toshiba Corp データ記録再生システム
JP2001290780A (ja) * 2000-04-04 2001-10-19 Canon Inc デジタルコンテンツ流通管理センタ、デジタルコンテンツ利用者端末、デジタルコンテンツ流通システム、デジタルコンテンツ管理方法、デジタルコンテンツ利用方法及び記憶媒体
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2002268945A (ja) * 2001-03-07 2002-09-20 Kanazawa Inst Of Technology サーバー情報処理システムのセキュリティー強化方法
JP2002288030A (ja) * 2001-03-27 2002-10-04 Hitachi Software Eng Co Ltd データ持ち出し禁止用プログラム
JP2006065689A (ja) * 2004-08-27 2006-03-09 Ntt Docomo Inc 秘密情報保護装置、伝播規則導出装置及び秘密情報保護方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LARRY KOVED, MARCO PISTOIA, AARON KERSHENBAUM: "Access rights analysis for Java", PROCEEDINGS OF THE 17TH ACM SIGPLAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, A, JPN6010046794, November 2002 (2002-11-01), pages 359 - 372, ISSN: 0001768979 *
STEPHEN TSE, STEVE ZDANCEWIC: "Run-time Principals in Information-flow Type Systems", IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2004, JPN6010046795, March 2004 (2004-03-01), ISSN: 0001768980 *
双紙 正和,加藤 丈治,前川 守: "デュアルラベルを利用したアクセス制御モデル", 情報処理学会論文誌, vol. 第40巻,第3号, JPN6010046793, 15 March 1999 (1999-03-15), JP, pages 1305 - 1314, ISSN: 0001768978 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010536107A (ja) * 2007-08-15 2010-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション データ発信源の追跡及びデータ伝送の制御
US9027123B2 (en) 2008-12-08 2015-05-05 Nec Corporation Data dependence analyzer, information processor, data dependence analysis method and program
JP2015529898A (ja) * 2012-08-03 2015-10-08 アルカテル−ルーセント 仮想マシンにおける強制保護制御
US9374377B2 (en) 2012-08-03 2016-06-21 Alcatel Lucent Mandatory protection control in virtual machines
US9501646B2 (en) 2012-09-26 2016-11-22 Mitsubishi Electric Corporation Program verification apparatus, program verification method, and computer readable medium
JP2019215901A (ja) * 2014-07-25 2019-12-19 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
JP2021128785A (ja) * 2014-07-25 2021-09-02 フィッシャー−ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
US11275861B2 (en) 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
JP2022065090A (ja) * 2014-07-25 2022-04-26 フィッシャー-ローズマウント システムズ,インコーポレイテッド 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス
KR20170022797A (ko) * 2015-08-21 2017-03-02 주식회사 케이티 커널영역에서의 접근통제 효율화 방법,그 프로그램 및 시스템
KR102398014B1 (ko) * 2015-08-21 2022-05-16 주식회사 케이티 커널영역에서의 접근통제 효율화 방법,그 프로그램 및 시스템
JP7446544B1 (ja) 2023-07-05 2024-03-08 三菱電機株式会社 情報処理装置、および、情報処理方法

Also Published As

Publication number Publication date
JP4628073B2 (ja) 2011-02-09

Similar Documents

Publication Publication Date Title
JP6248153B2 (ja) 信頼レベルのアクティブ化
JP4676744B2 (ja) セキュリティ関連プログラミング・インターフェース
US8281410B1 (en) Methods and systems for providing resource-access information
EP2867820B1 (en) Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US11194914B2 (en) Method and apparatus to detect security vulnerabilities in a web application
US20180173876A1 (en) Deceiving attackers in endpoint systems
Lee et al. Lord of the x86 rings: A portable user mode privilege separation architecture on x86
Singh et al. Analysis of malicious behavior of android apps
WO2007103192A2 (en) Prevention of executable code modification
Wan et al. Practical and effective sandboxing for Linux containers
Athanasopoulos et al. Nacldroid: Native code isolation for android applications
US9477538B2 (en) Method and system for the support of application specific policies for conventional operating systems
JP4628073B2 (ja) アクセス制御装置及びアクセス制御方法
EP2754082B1 (en) Content handling for applications
US20110154364A1 (en) Security system to protect system services based on user defined policies
US8336059B2 (en) Access right checking system, access right checking method, and access right checking program
Kavitha et al. Exploring the malicious android applications and reducing risk using static analysis
KR101731920B1 (ko) 이동 단말기 및 그것의 제어방법
Kim et al. Extending a hand to attackers: browser privilege escalation attacks via extensions
Mao et al. Automatic permission inference for hybrid mobile apps
US8788845B1 (en) Data access security
US20230035678A1 (en) Method and system for protecting security of html5 file
JP2005149394A (ja) 情報処理装置および情報処理方法、プログラム、並びに記録媒体
Mituca et al. Access control for apps running on constrained devices in the internet of things
Nakamura et al. (Short Paper) Evidence Collection and Preservation System with Virtual Machine Monitoring

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101018

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101109

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees