この手順では、プログラムでの setuid および setgid アクセス権が承認なしで使用される可能性を検出します。疑わしい実行可能ファイルによって、所有権が root または bin ではなく、通常のユーザーに与えられることがあります。
始める前に
root 役割になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。
# find directory -user root -perm -4000 -exec ls -ldb {} \; >/tmp/filename
指定したディレクトリから始めて、マウントされているすべてのパスを検査します。ディレクトリとしてルート (/)、usr、opt などを指定できます。
root が所有するファイルを表示します。
アクセス権が 4000 に設定されているファイルだけを表示します。
find コマンドの出力を ls -ldb 形式で表示します。ls(1) のマニュアルページを参照してください。
find コマンドの結果が書き込まれるファイルです。
詳細は、find(1) のマニュアルページを参照してください。
# more /tmp/filename
背景知識については、setuid アクセス権を参照してください。
次の例の出力は、rar というグループのユーザーが /usr/bin/rlogin のコピーを作成し、そのアクセス権を root への setuid に設定したことを示しています。この結果、/usr/rar/bin/rlogin プログラムは root アクセス権で実行されます。
/usr/rar ディレクトリを調べ、/usr/rar/bin/rlogin コマンドを削除したあと、管理者は find コマンドの出力をアーカイブします。
# find /usr -user root -perm -4000 -exec ls -ldb {} \; > /var/tmp/ckprm # cat /var/tmp/ckprm -rwsr-xr-x 1 root sys 32432 Jul 14 14:14 /usr/bin/atq -rwsr-xr-x 1 root sys 32664 Jul 14 14:14 /usr/bin/atrm -rwsr-xr-x 1 root bin 82836 Jul 14 14:14 /usr/bin/cdrw -r-sr-xr-x 1 root sys 41448 Jul 14 14:14 /usr/bin/chkey -r-sr-xr-x 1 root bin 7968 Jul 14 14:14 /usr/bin/mailq -r-sr-sr-x 1 root sys 45364 Jul 14 14:14 /usr/bin/passwd -rwsr-xr-x 1 root bin 37740 Jul 14 14:14 /usr/bin/pfedit -r-sr-xr-x 1 root bin 51472 Jul 14 14:14 /usr/bin/rcp ---s--x--- 1 root rar 41592 Jul 24 16:14 /usr/rar/bin/rlogin -r-s--x--x 1 root bin 213092 Jul 14 14:14 /usr/bin/sudo -r-sr-xr-x 4 root bin 24056 Jul 14 14:14 /usr/bin/uptime -r-sr-xr-x 1 root bin 79540 Jul 14 14:14 /usr/bin/xlock # mv /var/tmp/ckprm /var/share/sysreports/ckprm