説明

情報処理装置および方法、並びにプログラム

【課題】他のユーザによってファイルが盗視・改竄されないようにする。
【解決手段】実行権限管理部314は、ユーザを特定するユーザIDと、ユーザにより所有されるリソースへアクセスするためのドメイン名とを対応付けて記憶し、プロセス実行権限変更部315は、リソースへのアクセスがURLを含んでリクエストされたとき、リクエストに含まれるURLのドメイン名に基づいて、実行権限管理部314で対応付けられたユーザIDを取得し、そのユーザIDにより特定されるユーザに、プロセスの実行権限を変更し、コンテンツ取得部316は、プロセス実行権限変更部315によって変更されたプロセスの実行権限で、ドメイン名に基づいてリソースを取得し、レスポンス送信制御部318は、コンテンツ取得部316によって取得されたリソースを、リクエストに対するレスポンスとして送信する処理を制御する。本発明は、例えば、ウェブサーバに適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、ファイルのセキュリティを高めることができるようにする情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
UNIX(登録商標)およびUNIX系OS(Operating System)には、プロセスの実行権限を変更するシステムコールとして、実ユーザID(Identification)や実グループIDを設定(変更)するsetuid(),setgid()等のシステムコールがある。また、同様に、実効ユーザIDや実効グループIDを設定(変更)するseteuid(),setegid()等のシステムコールがある。
【0003】
UNIXおよびUNIX系OSにおけるプロセスのうち、ユーザ毎に異なる実行権限で動作するものは、通常、管理者権限(root権限)で生成された後、上述したシステムコールを実行することで、実ユーザIDまたは実効ユーザID(実グループIDまたは実効グループID)が各ユーザ(一般ユーザ)に変更されて、動作する。例えば、シェルのプロセスは、ログインしたユーザによって、異なる実行権限で動作する。
【0004】
なお、root権限で動作するプロセスが、実ユーザIDや実グループIDを変更するsetuid(),setgid()等のシステムコールを実行して、その実行権限が一般ユーザに遷移すると、これ以降、実行権限はrootに戻ることができない。
【0005】
一方、root権限で動作するプロセスが、seteuid(),setegid()等のシステムコールを実行した場合、実ユーザID(実グループID)は変更されず、実効ユーザID(実効グループID)のみ変更されるため、実行権限はrootに戻ることができる。
【0006】
ところで、Apache(Apache HTTP(HyperText Transfer Protocol) Server)等のウェブサーバ(ウェブサーバソフトウェア)におけるプロセスは、伝統的に一律専用の一般ユーザ(専用ユーザ)の実行権限で動作する。
【0007】
このようなウェブサーバについて、例えば、図1に示されるように、同一の計算機(ウェブサーバ11)に、それぞれのアカウントを持つ複数のユーザA,B,Cがウェブサイトを開設する場合、ユーザA,B,Cは、各自のディレクトリ配下に、各自がその所有者であるリソース(ファイルf,f,f)を配置する。そして、インターネット等のネットワークを介したパーソナルコンピュータ12−1,12−2等からのリソースへのアクセスのリクエストがあった場合、専用ユーザの実行権限で動作するプロセスP,P,P,Pが、ファイルf,f,fに対して読み出しや書込みなどのアクセスができるように、各ファイルについて、UNIXにおけるパーミッションモデル“owner/group/other”の“other”に、読み出し、書込み、実行等のアクセス権を付与する必要があった。
【0008】
このように、“other”にアクセス権を付与した場合、ウェブサーバ11を共用するユーザの中の悪意のあるユーザによって、ファイルを盗視されたり、改竄される恐れがある。例えば、悪意のあるユーザBが、ウェブサーバ11にログインして、「cp」(ファイル・ディレクトリのコピー)や「rm」(ファイル・ディレクトリの削除)等のコマンドを実行することで、ファイルを盗視したり、改竄することができてしまう(図中、太点線矢印)。また、ユーザBが、自身のウェブサイト(ファイルf)にスクリプトを含むようにし、そのスクリプトに「cp」や「rm」等のコマンドを実行させることで、ファイルを盗視したり、改竄することができてしまう(図中、太線矢印)。
【0009】
なお、1つのプロセスの内部で、機能モジュール別にセキュリティ権限を設定することで、機能モジュール毎のファイルへのアクセスを制御するようにする手法がある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−331137号
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、特許文献1の手法では、リクエストに応じたプロセスの中の所定の機能モジュールが、ファイルの所有者に関わらず、そのファイルへアクセスできてしまい、ファイルが盗視されたり、改竄されるのを防ぐことができない。
【0012】
本発明は、このような状況に鑑みてなされたものであり、他のユーザによってファイルが盗視・改竄されないようにするものである。
【課題を解決するための手段】
【0013】
本発明の一側面の情報処理装置は、複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作する情報処理装置であって、前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段と、前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更手段と、前記変更手段によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得手段と、前記取得手段によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御手段とを備える。
【0014】
前記情報処理装置には、前記取得手段によって取得される前記リソースが、前記変更手段によって変更された前記プロセスの実行権限をさらに変更する動的なリソースであるか否かを判定する判定手段をさらに設け、前記リソースが動的なリソースである場合、前記取得手段には、前記プロセスの実行権限のさらなる変更を無効にする処理を行わせ、前記送信制御手段には、前記取得手段によって取得された前記リソースの送信を行わせないで、エラーを表すレスポンスの送信を行わせることができる。
【0015】
前記プロセスは、前記情報処理装置の管理者の実行権限で起動させ、前記変更手段には、前記送信制御手段によって前記レスポンスが送信された後、前記プロセスの実行権限を前記管理者に戻させることができる。
【0016】
前記変更手段には、再度、前記リソースへのアクセスがリクエストされたときに、前記プロセスの実行権限を管理者に戻させることができる。
【0017】
前記記憶手段には、前記ユーザ特定情報および前記ユーザの属するグループを特定するグループ特定情報と、前記位置情報とを対応付けて予め記憶させることができる。
【0018】
本発明の一側面の情報処理方法は、複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作し、前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段を備える情報処理装置の情報処理方法であって、前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ特定情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更ステップと、前記変更ステップの処理によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得ステップと、前記取得ステップの処理によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御ステップとを含む。
【0019】
本発明の一側面のプログラムは、複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作し、前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段を備える情報処理装置の処理をコンピュータに実行させるプログラムであって、前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ特定情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更ステップと、前記変更ステップの処理によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得ステップと、前記取得ステップの処理によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御ステップとを含む処理をコンピュータに実行させる。
【0020】
本発明の一側面においては、ユーザを特定するユーザ特定情報と、ユーザにより所有されるリソースへアクセスするための位置情報とが対応付けて記憶され、リソースへのアクセスが位置情報を含んでリクエストされたとき、リクエストに含まれる位置情報に基づいて、対応付けられたユーザ特定情報が取得され、取得したユーザ情報により特定されるユーザに、プロセスの実行権限が変更され、変更されたプロセスの実行権限で、位置情報に基づいてリソースが取得され、取得されたリソースを、リクエストに対するレスポンスとして送信する処理が制御される。
【発明の効果】
【0021】
本発明の一側面によれば、他のユーザによってファイルが盗視・改竄されないようにすることが可能となる。
【図面の簡単な説明】
【0022】
【図1】従来のウェブサーバについて説明する図である。
【図2】本発明の一実施の形態である情報処理装置としてのウェブサーバを含むネットワークシステムの構成例を示すブロック図である。
【図3】図2のウェブサーバのハードウェア構成例を示すブロック図である。
【図4】図2のウェブサーバの機能構成例を示すブロック図である。
【図5】プロセス実行権限変更処理について説明するフローチャートである。
【図6】実行権限情報について説明する図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施の形態について図を参照して説明する。
【0024】
[ウェブサーバを含むネットワークシステムの構成例]
図2は、本発明の一実施の形態である情報処理装置としてのウェブサーバを含むネットワークシステムの構成例を示している。
【0025】
図2において、ウェブサーバ111、およびパーソナルコンピュータ112−1乃至112−3は、インターネット113を介して相互に接続されている。ウェブサーバ111と、パーソナルコンピュータ112−1乃至112−3とは、HTTPに則り、相互に通信を行う。なお、以下において、パーソナルコンピュータ112−1乃至112−3のそれぞれについて、特に区別する必要がない場合は、単に、パーソナルコンピュータ112ということとする。
【0026】
ウェブサーバ111は、パーソナルコンピュータ112からのリクエストに基づいて、そのリクエストに応じたHTML(HyperText Markup Language)や画像などのオブジェクトを、リクエストに対するレスポンスとして、パーソナルコンピュータ112に送信する。なお、ウェブサーバ111には、複数のウェブサイトが複数のユーザによって開設されている。
【0027】
パーソナルコンピュータ112は、ユーザの操作に基づいて、ウェブサーバ111に対してリクエストを送信し、そのリクエストに応じたレスポンスであるHTMLや画像などのオブジェクトを、それぞれにおいて起動されるウェブブラウザに表示させる。
【0028】
なお、図2においては、パーソナルコンピュータ112は、パーソナルコンピュータ112−1乃至112−3の3個であるものとしたが、実際には、本実施の形態は、より多くのパーソナルコンピュータ112を含むネットワークシステムに対して適用されるものとする。
【0029】
また、図2においては、ウェブサーバ111とパーソナルコンピュータ112とは、インターネット113を介して接続されるものとしたが、イントラネットやローカルエリアネットワーク等、他のネットワークを介して接続されるようにしてもよい。
【0030】
[ウェブサーバのハードウェア構成例]
次に、図3を参照して、ウェブサーバ111のハードウェア構成例について説明する。
【0031】
図3に示されるように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203及び入出力インタフェース205がバス204に接続されている。また、入力部206、出力部207、記録部208、通信部209及びドライブ210が入出力インタフェース205に接続されている。また、ドライブ210にはリムーバブルメディア211が接続されている。
【0032】
CPU201は、ROM202、または記録部208に記録されているプログラムにしたがって各種の処理を実行する。RAM203には、CPU201が実行するプログラムやデータなどが適宜記録される。これらのCPU201、ROM202、およびRAM203は、バス204により相互に接続されている。
【0033】
入出力インタフェース205は、バス204を介して、CPU201に接続されている。入力部206は、キーボード、マウス、マイクロフォンなどで構成され、出力部207はディスプレイ、スピーカなどで構成されている。CPU201は、入力部206から入力される指令に対応して各種の処理を実行する。そして、CPU201は、実行処理の結果を出力部207に出力する。
【0034】
記録部208は、例えばハードディスクからなり、CPU201が実行するプログラムや各種のデータを記録する。通信部209は、インターネット113(図2参照)やローカルエリアネットワークなどのネットワークを介して、パーソナルコンピュータ112を含む外部の装置と通信する。
【0035】
また、ウェブサーバ111は、通信部209を介してプログラムを取得し、記録部208に記録してもよい。
【0036】
ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア211が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部208に転送され、記録される。
【0037】
[ウェブサーバの機能構成例]
次に、図4を参照して、ウェブサーバ111の具体的な機能構成例について説明する。
【0038】
図4のウェブサーバ111は、ネットワークI/F(Interface)311、リクエスト受信制御部312、実行権限情報取得部313、実行権限管理部314、プロセス実行権限変更部315、コンテンツ取得部316、コンテンツ記録部317、およびレスポンス送信制御部318から構成される。特に、リクエスト受信制御部312、実行権限情報取得部313、プロセス実行権限変更部315、コンテンツ取得部316、およびレスポンス送信制御部318は、ウェブサーバとしてのプログラムを実行するCPU201により実現される機能である。
【0039】
ネットワークI/F311は、図3の通信部209に対応し、インターネット113を介して、パーソナルコンピュータ112と通信する。ネットワークI/F311は、パーソナルコンピュータ112からのリクエストを受信し、そのリクエストに応じたオブジェクトとしてのリソースを、リクエストに対するレスポンスとして、パーソナルコンピュータ112に送信する。
【0040】
リクエスト受信制御部312は、パーソナルコンピュータ112からのリクエストをネットワークI/F311を介して取得する。リクエスト受信制御部312は、取得したリクエストに含まれる情報を、実行権限情報取得部313に供給する。
【0041】
実行権限情報取得部313は、リクエスト受信制御部312からの情報に基づいて、ウェブサーバ111において起動するプロセスの実行権限を管理するための情報である実行権限情報を、実行権限管理部314から取得し、取得した実行権限情報をプロセス実行権限変更部315に供給する。
【0042】
実行権限管理部314は、図3のRAM203または記録部208に対応し、ユーザにより予め設定された実行権限情報を記憶し、実行権限情報取得部313からの要求に応じた実行権限情報を、適宜、実行権限情報取得部313に供給する。実行権限管理部314には、後で図6を用いて詳述するように、ユーザを特定するユーザ特定情報(ユーザIDおよびグループID)とユーザにより所有されるリソースへアクセスするための位置情報(ドメイン名)とが対応付けられて記憶(登録)されている。実行権限管理部314は、本発明の記憶手段に相当する。
【0043】
プロセス実行権限変更部315は、実行権限情報取得部313から供給された実行権限情報に基づいて、ウェブサーバ111において起動しているプロセスの実行権限を変更する。なお、実行権限情報取得部313及びプロセス実行権限変更部315は、本発明の変更手段に相当する。
【0044】
コンテンツ取得部316は、プロセス実行権限変更部315によって変更された実行権限で、パーソナルコンピュータ112からのリクエストに応じて、コンテンツ記録部317から、ウェブサーバ111が保管しているリソースとしてのコンテンツファイルを取得する。コンテンツ取得部316は、取得したコンテンツファイルを、レスポンス送信制御部318に供給する。コンテンツ取得部316は、本発明の取得手段に相当する。
【0045】
また、コンテンツ取得部316は、コンテンツ判定部331を備えており、コンテンツ判定部331は、コンテンツ記録部317から取得したコンテンツファイルが、プロセスの実行権限をさらに変更する動的なコンテンツファイルであるか否かを判定する。コンテンツ判定部331は、本発明の判定手段に相当する。
【0046】
コンテンツ記録部317は、図3の記録部208に対応し、種々のコンテンツファイルを記録している。より具体的には、コンテンツ記録部317は、ウェブサーバ111内にそれぞれのウェブサイトを開設した複数のユーザ毎のディレクトリ配下にコンテンツファイルを配置するように記録している。コンテンツファイルは、そのファイル毎に定義された許可情報によって、ユーザに対するアクセス権が設定されている。
【0047】
レスポンス送信制御部318は、コンテンツ取得部316からのコンテンツファイルを、パーソナルコンピュータ112からのリクエストに対するレスポンスとして、ネットワークI/F311に送信させる制御を行う。なお、レスポンス送信制御部318は、本発明の送信制御手段に相当する。
【0048】
[ウェブサーバによるプロセス実行権限変更処理]
次に、図5のフローチャートを参照して、ウェブサーバ111によるプロセス実行権限変更処理について説明する。
【0049】
なお、前提として、ウェブサーバ111におけるプロセスは、root権限で起動するものとする。
【0050】
ステップS11において、ネットワークI/F311は、パーソナルコンピュータ112から送信されてくる、コンテンツファイル(リソース)へのアクセスのリクエストを受信する。パーソナルコンピュータ112から送信されてくるリクエストには、コンテンツファイルの所在を特定するためのURL(Uniform Resource Locator)や、パーソナルコンピュータ112において起動されるウェブブラウザを介して入力されたログイン名およびパスワード等が含まれる。なお、URLまたはこれに含まれるドメイン名(ホスト名)は、本発明の位置情報に対応する。リクエスト受信制御部312は、ネットワークI/F311によって受信されたリクエストを取得し、そのリクエストに含まれるURLを、実行権限情報取得部313に供給する。例えば、リクエスト受信制御部312は、リクエストに含まれるURLである“http://aaa.com/main.html”を、実行権限情報取得部313に供給する。このとき、リクエスト受信制御部312は、リクエストにログイン名およびパスワードが含まれる場合、それらに基づいて、パーソナルコンピュータ112の使用者を認証する。
【0051】
ステップS12において、実行権限情報取得部313は、パーソナルコンピュータ112からのリクエストに含まれるURLのドメイン名(ホスト名)(例えば、“aaa.com”)が、実行権限管理部314が記憶している実行権限情報に登録(記憶)されているか否かを判定する。
【0052】
ここで、図6を参照して、実行権限情報取得部313が記憶している実行権限情報の例について説明する。
【0053】
図6においては、実行権限情報として、ドメイン名と、ユーザIDおよびグループIDとが対応付けられている。より具体的には、ドメイン名“aaa.com”と、ユーザID“1234”およびグループID“111”とが対応付けられており、ドメイン名“bbb.net”と、ユーザID“2345”およびグループID“222”とが対応付けられており、ドメイン名“zzz.jp”と、ユーザID“9999”およびグループID“999”とが対応付けられている。
【0054】
図6の実行権限情報において、ドメイン名は、ウェブサーバ111においてコンテンツファイル(リソース)が記録(保管)されている位置(場所)を示しており、ユーザIDおよびグループIDは、そのコンテンツファイルの所有者(ユーザ)およびその所有者が属するグループを特定する情報である。ユーザIDおよびグループIDは、本発明のユーザ特定情報及びグループ特定情報にそれぞれ対応する。
【0055】
なお、実行権限情報は、各ユーザによってウェブサイトが開設され、コンテンツファイルが作成されたときに追加登録されてもよいし、ユーザによって任意のタイミングで追加登録されてもよい。
【0056】
図5のフローチャートに戻り、ステップS12において、リクエストに含まれるURLのドメイン名が実行権限情報に登録されていないと判定された場合、実行権限情報取得部313は、その旨を表す情報をコンテンツ取得部316に供給し、処理は、後述するステップS20に進む。
【0057】
一方、ステップS12において、リクエストに含まれるドメイン名が実行権限情報に登録されていると判定された場合、ステップS13において、実行権限情報取得部313は、リクエストに含まれるURLのドメイン名(例えば、“aaa.com”)に対応するユーザID(例えば、“1234”)およびグループID(例えば、“111”)を取得し、リクエストに含まれるURLとともに、プロセス実行権限変更部315に供給する。
【0058】
ステップS14において、プロセス実行権限変更部315は、実行権限情報取得部313からのユーザIDおよびグループIDに基づいて、プロセスの実行権限を変更する。より具体的には、例えば、プロセス実行権限変更部315は、seteuid(1234),setegid(111)のシステムコールを実行し、実効ユーザIDおよび実効グループIDを変更することで、プロセスの実行権限を、rootから、リクエストされているファイル(main.html)の所有者(以下、ユーザAともいう)に変更し、リクエストに含まれるURL“http://aaa.com/main.html”をコンテンツ取得部316に供給する。
【0059】
ステップS15において、コンテンツ取得部316は、プロセス実行権限変更部315によって変更された実行権限で、パーソナルコンピュータ112からのリクエストに含まれるURLのドメイン名(ホスト名)に基づいて、コンテンツ記録部317から、コンテンツファイルを取得する。より具体的には、例えば、コンテンツ取得部316は、プロセス実行権限変更部315からのURLのドメイン名(ホスト名)“http://aaa.com/main.html”に基づいて、コンテンツ記録部317から、コンテンツファイルmain.htmlを取得する。
【0060】
ここで、コンテンツファイルは、ファイルパーミッションという、ファイル毎に定義された、読み出し、書込み、実行等のアクセスについての許可情報によって、所定のユーザやグループに対するアクセス権が設定されている。この場合、コンテンツファイルmain.htmlについては、ファイルパーミッションによって、その所有者であるユーザAのみに対して、読み出し、書込み、実行が可能であるように設定されている。このとき、プロセスの実行権限はユーザAにあるので、コンテンツ取得部316は、コンテンツファイルmain.htmlを取得することができる。
【0061】
ステップS16において、コンテンツ判定部331は、コンテンツ取得部316が取得したコンテンツファイルが、プロセスの実行権限をさらに変更する動的なコンテンツファイルであるか否かを判定する。より具体的には、コンテンツ判定部331は、取得されたコンテンツファイルが、CGI(Common Gateway Interface)等を利用した、スクリプトを含むコンテンツファイルであるか否かを判定する。このようなスクリプトを含むコンテンツファイルを動的なコンテンツファイルという。
【0062】
ステップS16において、取得したコンテンツファイルが、動的なコンテンツファイルであると判定された場合、ステップS17において、コンテンツ判定部331は、そのコンテンツファイルが、実ユーザIDや実グループIDを変更するsetuid(),setgid()系のシステムコールを実行するか否かを判定する。
【0063】
ステップS17において、動的なコンテンツファイルが、setuid(),setgid()系のシステムコールを実行しないと判定されたか、または、ステップS16において、取得したコンテンツファイルが、動的なコンテンツファイルでないと判定された場合、コンテンツ取得部316は、取得したコンテンツファイルをレスポンス送信制御部318に供給し、処理はステップS18に進む。
【0064】
ステップS18において、レスポンス送信制御部318は、コンテンツ取得部316からのコンテンツファイルを、パーソナルコンピュータ112からのリクエストに対するレスポンスとして、ネットワークI/F311に送信させる制御を行う。また、レスポンス送信制御部318は、レスポンスを送信した旨を表す情報を、プロセス実行権限変更部315に供給する。
【0065】
これにより、パーソナルコンピュータ112のウェブブラウザには、リクエストに応じたHTMLや画像などのオブジェクトが表示される。
【0066】
一方、ステップS17において、動的なコンテンツファイルが、setuid(),setgid()系のシステムコールを実行すると判定された場合、ステップS19において、コンテンツ判定部331は、setuid(),setgid()系のシステムコールを無効にする。
【0067】
ステップS19の処理の後、または、ステップS12において、リクエストに含まれるURLのドメイン名が実行権限情報に登録されていないと判定された場合、ステップS20において、コンテンツ取得部316は、エラーが発生したことを示すエラーレスポンスを表示させるためのコンテンツファイルを、コンテンツ記録部317から取得し、レスポンス送信制御部318に供給する。レスポンス送信制御部318は、コンテンツ取得部316からのコンテンツファイルを、ネットワークI/F311に送信させるとともに、レスポンスを送信した旨を表す情報を、プロセス実行権限変更部315に供給する。このとき、レスポンス送信制御部318は、ステップS15でコンテンツ取得部316によりコンテンツファイルmain.htmlが取得された場合には、ネットワークI/F311に対して、その取得されたコンテンツファイルmain.htmlを送信させる制御を行わず、エラーが発生したことを示すエラーレスポンスを表示させるためのコンテンツファイルのみを送信させる制御を行う。
【0068】
これにより、パーソナルコンピュータ112のウェブブラウザには、「Sorry, Not Found.」や、「要求されたページは見つかりません」等のコメントを含むエラーレスポンスが表示される。
【0069】
ステップS21において、プロセス実行権限変更部315は、レスポンス送信制御部318からの情報に基づいて、実行権限をrootに戻す。より具体的には、プロセス実行権限変更部315は、seteuid(0),setegid(0)のシステムコールを実行し、実効ユーザIDおよび実効グループIDを変更することで、プロセスの実行権限を、ユーザAからrootに変更する。
【0070】
なお、ステップS21の処理は、ステップS12において、リクエストに含まれるドメイン名が実行権限情報に登録されていないと判定された場合には、プロセスの実行権限は変更されていないので、実行されない。
【0071】
以上の処理によれば、ウェブサーバにおいて、リソースへのアクセスのリクエストに応じて、プロセスの実行権限をリソースの所有者に変更し、その実行権限の下で、リクエストに含まれるURLで指定されるリソースのみへアクセスできる。したがって、アクセスの対象となるリソースの所有者以外のユーザ権限では、そのリソースへはアクセスできないので、他のユーザによってファイルが盗視されたり、改竄されるのを防ぐことができる。
【0072】
また、CGI等を利用した、スクリプトを含むコンテンツファイルにおいては、setuid(),setgid()系のシステムコールを実行することができ、悪意のあるユーザに実行権限を取られてしまう可能性があるが、以上の処理によれば、setuid(),setgid()系のシステムコールを実行できるのは、ウェブサーバ111のプログラムのみであるので、悪意のあるユーザに実行権限を取られてしまう可能性を低減することができる。
【0073】
なお、以上においては、レスポンスが送信された後に、プロセスの実行権限をrootに戻すようにしたが、ウェブブラウザから、再度、コンテンツファイルへのアクセスのリクエストを受信して(ステップS11)から、一般ユーザに実行権限が変更される(ステップS14)までの間に、プロセスの実行権限をrootに戻すようにしてもよい。
【0074】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、例えば、UNIXおよびUNIX系OSで起動する、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0075】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0076】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0077】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0078】
111 ウェブサーバ, 201 CPU, 203 RAM, 208 記録部, 209 通信部, 311 ネットワークI/F, 312 リクエスト受信制御部, 313 実行権限情報取得部, 314 実行権限管理部, 315 プロセス実行権限変更部, 316 コンテンツ取得部, 317 コンテンツ記録部, 318 レスポンス送信制御部, 331 コンテンツ判定部

【特許請求の範囲】
【請求項1】
複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作する情報処理装置において、
前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段と、
前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更手段と、
前記変更手段によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得手段と、
前記取得手段によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御手段と
を備える情報処理装置。
【請求項2】
前記取得手段によって取得される前記リソースが、前記変更手段によって変更された前記プロセスの実行権限をさらに変更する動的なリソースであるか否かを判定する判定手段をさらに備え、
前記リソースが動的なリソースである場合、
前記取得手段は、前記プロセスの実行権限のさらなる変更を無効にする処理を行い、
前記送信制御手段は、前記取得手段によって取得された前記リソースの送信を行わせないで、エラーを表すレスポンスの送信を行う
請求項1に記載の情報処理装置。
【請求項3】
前記プロセスは、前記情報処理装置の管理者の実行権限で起動し、
前記変更手段は、前記送信制御手段によって前記レスポンスが送信された後、前記プロセスの実行権限を前記管理者に戻す
請求項1に記載の情報処理装置。
【請求項4】
前記変更手段は、再度、前記リソースへのアクセスがリクエストされたときに、前記プロセスの実行権限を管理者に戻す
請求項1に記載の情報処理装置。
【請求項5】
前記記憶手段は、前記ユーザ特定情報および前記ユーザの属するグループを特定するグループ特定情報と、前記位置情報とを対応付けて予め記憶する
請求項1に記載の情報処理装置。
【請求項6】
複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作し、前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段を備える情報処理装置の情報処理方法において、
前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ特定情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更ステップと、
前記変更ステップの処理によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得ステップと、
前記取得ステップの処理によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御ステップと
を含む情報処理方法。
【請求項7】
複数のユーザそれぞれにより所有されるリソースへアクセスするプロセスが、所定の実行権限で動作し、前記ユーザを特定するユーザ特定情報と、前記ユーザにより所有される前記リソースへアクセスするための位置情報とを対応付けて記憶する記憶手段を備える情報処理装置の処理をコンピュータに実行させるプログラムにおいて、
前記リソースへのアクセスが前記位置情報を含んでリクエストされたとき、前記リクエストに含まれる位置情報に基づいて、前記記憶手段で対応付けられた前記ユーザ特定情報を取得し、取得した前記ユーザ情報により特定される前記ユーザに、前記プロセスの実行権限を変更する変更ステップと、
前記変更ステップの処理によって変更された前記プロセスの実行権限で、前記位置情報に基づいて前記リソースを取得する取得ステップと、
前記取得ステップの処理によって取得された前記リソースを、前記リクエストに対するレスポンスとして送信する処理を制御する送信制御ステップと
を含む処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−43912(P2011−43912A)
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2009−190257(P2009−190257)
【出願日】平成21年8月19日(2009.8.19)
【出願人】(504133110)国立大学法人電気通信大学 (383)
【Fターム(参考)】