このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
オペレーティング・システムとユーザー・データに別個のディスク・パーティションを使用して、ファイル・システム・フルの問題がサーバーの操作に影響を与えるのを防ぎます。 たとえば、/home
、/tmp
、p
、/oracle
などに別個のパーティションを作成できます。
ディスク割当てを作成することで、ユーザーが誤ってまたは意図的にファイル・システムをすべて使用し、他のユーザーへのアクセスを拒否するのを防ぎます。
オペレーティング・システム・ファイルおよびユーティリティが攻撃時に変更されるのを防ぐには、/usr
ファイル・システムを読取り専用でマウントします。 ファイル・システム上のRPMを更新する必要がある場合は、-o remount,rwオプションを指定してmountコマンドを使用し、読取りおよび書込みアクセスの両方で/usr
を再マウントします。 更新の実行後、-o remount,roオプションを使用して/usr
ファイル・システムを読取り専用モードに戻します。
/tmp
などの非root
ローカル・ファイル・システムまたはリムーバル・ストレージ・パーティションへのユーザー・アクセスを制限するには、mountに-o noexec、nosuid, nodevオプションを指定します。 これらのオプションは、バイナリ(スクリプトではなく)の実行を防ぎ、setuid
ビットがなんらかの影響を及ぼすのを防ぎ、デバイス・ファイルの使用を防ぎます。
findコマンドを使用して、各ファイル・システム上の所有されていないファイルおよびディレクトリをチェックします。次に例を示します。
#find
#mount_point
-mount -type f -nouser -o -nogroup -exec ls -l {} \;find
mount_point
-mount -type d -nouser -o -nogroup -exec ls -l {} \;
所有されていないファイルおよびディレクトリは、削除されたユーザー・アカウントに関連付けられている可能性があるため、ソフトウェアのインストール・エラーまたは削除エラー、あるいはシステムへの侵入を示している可能性があります。 見つかったファイルおよびディレクトリの権限と所有権を修正するか、これらを削除します。 可能な場合は、これが作成される原因となった問題を調査して修正してください。
findコマンドを使用して、各ファイル・システム上のあらゆるユーザーが書込み可能なディレクトリをチェックします。次に例を示します。
# find mount_point
-mount -type d -perm /o+w -exec ls -l {} \;
システム・ユーザー以外のユーザーによって所有される、あらゆるユーザーが書込み可能なディレクトリを調査します。 ユーザーは、他のユーザーがこのディレクトリに書き込んだファイルを削除または変更できます。 見つかったディレクトリの権限と所有権を修正するか、これらを削除します。
findを使用してsetuid
およびsetgid
実行可能ファイルをチェックすることもできます。
# find path
-type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
setuid
およびsetgid
ビットが設定されている場合、root
権限などの権限を必要とするタスクを実行可能ファイルで実行できます。 ただし、バッファ・オーバーラン攻撃によってこれらの実行可能ファイルが悪用され、利用されたプロセスの権限を使用して不正コードが実行される可能性があります。
setuid
およびsetgid
実行可能ファイルが非root
ユーザーに使用されるのを阻止するには、次のコマンドを使用してsetuid
またはsetgid
ビットを設定解除します。
#chmod u-s
#file
chmod g-s
file
たとえば、chmodコマンドを使用して/bin/ping6コマンドのsetuid
ビットを設定解除できます。
#ls -al /bin/ping6
-rwsr-xr-x. 1 root root 36488 May 20 2011 /bin/ping6 #chmod u-s /bin/ping6
#ls -al /bin/ping6
-rwxr-xr-x. 1 root root 36488 May 20 2011 /bin/ping6
次の表に、setuid
およびsetgid
の設定解除を検討できるプログラムを示します。
プログラム・ファイル | 設定ビット | 使用方法の説明 |
---|---|---|
|
|
ICMP |
|
|
ICMPv6 |
|
| 制御グループでタスクを実行します。 |
|
| NFSファイルシステムをマウントします。 ノート
|
|
| ネットワーク・インタフェースに対する変更の通知をリクエストします。 |
|
| パスワード・エージング情報を(-lオプションを使用して)見つけます。 |
|
|
|
|
| ログイン・シェルを変更します。 |
|
|
|
|
| システム全体にメッセージを送信します。 |
|
| 他のユーザーにメッセージを送信します。 |
|
| X Windowsサーバーを起動します。 |
|
| ホストベースの認証のためのSSHヘルパー・プログラムを実行します。 |
|
| 外部CGIおよびSSIプログラムを実行する前に、ユーザーを切り替えます。 このプログラムは、Apache HTTPサーバーで使用されます。 詳細は、http://httpd.apache.org/docs/2.2/suexec.htmlを参照してください。 |
|
|
ネットワーク・インタフェースを制御します。 ユーザーがネットワーク・インタフェースの状態を変更する権限で、インタフェース・ファイルで |
setuid
およびsetgid
プログラムは多くのオプション・パッケージに含まれるため、このリストは完全ではありません。