suidビットが設定されている実行ファイルは,所有ユーザー権で実行される。このため,次のような実行ファイルがある場合には,例え一般ユーザーの実行でもroot権限で動作するのだ。
まず最初に,次のように指定してsuidビットが設定されているファイルを検索してみよう。
# find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -ald {} \; -rwsr-xr-x1 root root13884 Nov 27 23:38 /bin/su -rwsr-xr-x1 root root60416 Jul 242001 /bin/mount -rwsr-xr-x1 root root27268 Jul 242001 /bin/umount -rwsr-xr-x1 root root24572 Jul 242001 /bin/ping -rwsr-xr-x1 root root32252 Jul 242001 /bin/ping6 -r-sr-xr-x1 root root28676 Jul 242001 /sbin/pwdb_chkpwd -r-sr-xr-x1 root root29698 Jul 242001 /sbin/unix_chkpwd -rwxr-sr-x1 root root 3896 Jul 312001 /sbin/netreport ......以下略....... |
「su」や「passwd」コマンドはroot権限で実行されることが必須であるが,環境によってはほかの実行ファイルにはsuidビットが必要ない場合が多い。
そこで,必要がないと思われる実行ファイルは,次のように指定してビットを解除(ビットを落とすと表現することが多い)させておこう。極力セキュアな環境を構築するためには,必要となる地道な作業だ。
# ls -l /bin/ping -rwsr-xr-x1 root root24572 Jul 242001 /bin/ping* # chmod a-s /bin/ping # ls -l /bin/ping -rwxr-xr-x1 root root24572 Jul 242001 /bin/ping* |
Copyright © ITmedia, Inc. All Rights Reserved.