Oracle® Solaris 11.2 でのファイルのセキュリティー保護とファイル整合性の検証

印刷ビューの終了

更新: 2014 年 7 月
 
 

setuidsetgid、およびスティッキービットを使用する特殊なファイルアクセス権

実行可能ファイルと公開ディレクトリには、 3 種類の特殊なアクセス権 (setuidsetgid、およびスティッキービット) を設定できます。これらのアクセス権を設定すると、その実行可能ファイルを実行するユーザーは、そのファイルの所有者 (またはグループ) の ID を持つことができます。

特殊なアクセス権はセキュリティー上の問題を引き起こすため、設定するときは十分な注意が必要です。たとえば、ユーザーは、ユーザー ID (UID) を 0 (root の UID) に設定するプログラムを実行することによって root 権限を取得できます。また、すべてのユーザーは、所有するファイルに対して特殊なアクセス権を設定できるため、これもセキュリティー上の問題の原因となります。

root 権限を取得するための setuid アクセス権や setgid アクセス権の承認されていない使用がないかどうか、システムをモニターするようにしてください。疑わしいアクセス権によって、管理プログラムの所有権が rootbin ではなく一般ユーザーに付与されていることが考えられます。この特殊なアクセス権を使用しているファイルをすべて検索し、リストする方法は、特殊なファイルアクセス権が設定されたファイルを見つける方法を参照してください。

setuid アクセス権

setuid アクセス権を実行可能ファイルに設定すると、このファイルを実行するプロセスにはその実行可能ファイルを実行しているユーザーではなく、ファイルの所有者に基づいてアクセス権が与えられます。この特殊なアクセス権を使用すると、通常は所有者しか利用できないファイルやディレクトリにアクセスできます。

たとえば、passwd コマンドの setuid アクセス権によってユーザーはパスワードを変更できます。次に、setuid アクセス権のある passwd コマンドの例を示します。

-r-sr-sr-x   1 root     sys       56808 Jun 17 12:02 /usr/bin/passwd

この特殊なアクセス権にはセキュリティーリスクが存在します。この特殊なアクセス権は、プロセスの実行が終了したあとでも、高度な知識のあるユーザーは setuid プロセスによって与えられたアクセス権を維持する手段を見つけることができるため、セキュリティー上の危険が存在します。


注 - プログラムから、予約済みの UID (0 から 100) で setuid アクセス権を使用しても、実効 UID が正しく設定されないことがあります。シェルスクリプトを使用するか、setuid アクセス権では予約済み UID を使用しないようにしてください。

setgid アクセス権

setgidアクセス権は setuid アクセス権に似ています。プロセスの実効グループ ID (GID) はファイルを所有するグループに変更され、ユーザーにはそのグループに与えられたアクセス権に基づくアクセス権が与えられます。/usr/bin/mail コマンドには、次のように setgid アクセス権が設定されています。

-r-x--s--x   1 root   mail     71212 Jun 17 12:01 /usr/bin/mail

setgid アクセス権がディレクトリに適用されると、このディレクトリ内で作成されたファイルは、ディレクトリを所有するグループに属します。生成するプロセスが所属するグループに含まれるわけではありません。ディレクトリに対する書き込み権および実行権を持つユーザーは、そのディレクトリにファイルを作成できます。ただし、作成したファイルはユーザーのグループではなくディレクトリを所有するグループに割り当てられます。

root 権限を取得するための setgid アクセス権の承認されていない使用がないかどうか、システムをモニターするようにしてください。疑わしいアクセス権によって、このようなプログラムへのグループアクセス権が、rootbin ではなく、意外なグループに与えられることがあります。このようなアクセス権を使用しているファイルをすべて検索し、一覧表示する方法は、特殊なファイルアクセス権が設定されたファイルを見つける方法を参照してください。

スティッキービット

「スティッキービット」は、ディレクトリ内のファイルを保護するアクセス権ビットです。ディレクトリにスティッキービットが設定されている場合、そのファイルを削除できるのはその所有者、ディレクトリの所有者、または特権ユーザーだけです。特権ユーザーの例として root ユーザーが挙げられます。スティッキービットにより、ユーザーは /tmp などの公開ディレクトリからほかのユーザーのファイルを削除できなくなります。

drwxrwxrwt 7  root  sys   400 Sep  3 13:37 tmp

TMPFS ファイルシステム上で公開ディレクトリを設定するときには、スティッキービットを手動で設定してください。手順については、Example 1–5 を参照してください。