次の作業マップは、リスクのある実行ファイルをシステム内に見つける作業や、プログラムが実行可能スタックを不正利用しないように防ぐ作業などの操作を説明した箇所を示しています。
タスク |
説明 |
参照先 |
---|---|---|
特殊なアクセス権を持つファイルを見つけます |
setuid ビットがセットされているが、root ユーザーによって所有されていないというファイルを見つけます。 | |
実行可能スタックがオーバーフローしないように防ぎます |
プログラムが実行可能スタックを不正に利用しないように防ぎます。 | |
実行可能スタックのメッセージがログに記録されるのを防ぎます |
実行可能スタックのメッセージのログ記録を無効にします。 |
管理者はシステムを監視し、プログラム上で承認を得ることなく setuid アクセス権および setgid アクセス権が使用されていないかをチェックする必要があります。setuid アクセス権と setgid アクセス権を使用すると、通常のユーザーでもスーパーユーザー権限を取得できてしまいます。疑わしい実行可能ファイルによって、所有権が root または bin ではなく、通常のユーザーに与えられることがあります。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
find コマンドを使用して setuid アクセス権が設定されているファイルを検索します。
# find directory -user root -perm -4000 -exec ls -ldb {} \; >/tmp/filename |
指定したディレクトリから始めて、マウントされているすべてのパスを検査します。ディレクトリとしてルート (/)、sys、bin、または mail を指定できます。
root が所有するファイルを表示します。
アクセス権が 4000 に設定されているファイルだけを表示します。
find コマンドの出力を ls -ldb 形式で表示します。
find コマンドの結果が書き込まれるファイルです。
結果を /tmp/filename に出力します。
# more /tmp/filename |
setuid アクセス権の詳細については、「setuid アクセス権」を参照してください。
次の例の出力は、rar というユーザーが /usr/bin/sh のコピーを作成し、そのアクセス権を root への setuid に設定したことを示しています。この結果、/usr/rar/bin/sh プログラムは root アクセス権で実行されます。
この出力は、将来の参考にするため、/tmp ディレクトリからファイルを移動することで保存されました。
# find / -user root -perm -4000 -exec ls -ldb {} \; > /var/tmp/ckprm # cat /var/tmp/ckprm -r-sr-xr-x 1 root bin 38836 Aug 10 16:16 /usr/bin/at -r-sr-xr-x 1 root bin 19812 Aug 10 16:16 /usr/bin/crontab ---s--x--x 1 root sys 46040 Aug 10 15:18 /usr/bin/ct -r-sr-xr-x 1 root sys 12092 Aug 11 01:29 /usr/lib/mv_dir -r-sr-sr-x 1 root bin 33208 Aug 10 15:55 /usr/lib/lpadmin -r-sr-sr-x 1 root bin 38696 Aug 10 15:55 /usr/lib/lpsched ---s--x--- 1 root rar 45376 Aug 18 15:11 /usr/rar/bin/sh -r-sr-xr-x 1 root bin 12524 Aug 11 01:27 /usr/bin/df -rwsr-xr-x 1 root sys 21780 Aug 11 01:27 /usr/bin/newgrp -r-sr-sr-x 1 root sys 23000 Aug 11 01:27 /usr/bin/passwd -r-sr-xr-x 1 root sys 23824 Aug 11 01:27 /usr/bin/su # mv /var/tmp/ckprm /export/sysreports/ckprm |
実行可能スタックのセキュリティーリスクについては、「実行可能ファイルを原因とするセキュリティーへの悪影響を防止する」を参照してください。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
/etc/system ファイルを編集し、次の行を追加します。
set noexec_user_stack=1 |
システムを再起動します。
# init 6 |
この例では、実行可能スタックメッセージのログ記録が無効にされ、続いてシステムの再起動が行われます。
# cat /etc/system set noexec_user_stack=1 set noexec_user_stack_log=0 # init 6 |