Solaris のシステム管理 (セキュリティサービス)

特殊なファイルアクセス権 (setuidsetgid、スティッキービット)

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

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

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

setuid アクセス権

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

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


-r-sr-sr-x   3 root     sys       28144 Jun 17 12:02 /usr/bin/passwd

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


注 –

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


setgid アクセス

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


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

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

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

スティッキービット

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


drwxrwxrwt 7  root  sys   400 Sep  3 13:37 tmp

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