findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック

システム全体のファイルにセットユーザーID(SUID)、セットグループID(SGID)が不要にセットされていないかfindコマンドで一斉にチェックする方法についてです。

セットユーザーID(SUID)、セットグループID(SGID)とは?


 
セットユーザーIDが設定されているファイルは、実行するユーザーではなくそのファイルの所有者(セットグループIDの場合はグループ)の権限で実行されます。
 
suやsudoコマンドは、他のユーザーとしてコマンドを実行するので所有者がrootでセットユーザーIDが設定されています。
 

確認方法


 
下記findコマンドでセットユーザーID、セットグループIDが設定されているファイルをピックアップ出来ます。
 
# find PART -xdev \( -perm -4000 -o -perm -2000 \) -type f -print
“PART”の部分には調査対象のパーティションを記述します。
 
※”-xdev”オプション
他のファイルシステム上のディレクトリは検索しない。このオプションを指定しないと、”/”を検索した場合、他のマウントされている他のファイルシステムも検索してしまう。
 

変更方法


 
下記コマンドを実行します。
# chmod -s file
 
●セットユーザーID/セットグループIDが不要かも知れないファイル
 
※参考資料
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』の2.2.3.4
 
・/sbin/mount.nfs、/sbin/umount.nfs
 NFSを使用していなければ不要
・/sbin/mount.nfs4、/sbin/umount.nfs4
 NFSv4を使用していなければ不要
・/sbin/netreport
 ユーザーがインターフェースを修正しないなら不要
・/usr/bin/chage
 ユーザーがexiry情報を表示しないなら不要
・/usr/bin/chfn
 ユーザーがfinger情報を変更しないなら不要
・/usr/bin/chsh
 ユーザーがシェルを変更しないなら不要
・/usr/bin/crontab
 ユーザーがcronを使用しないなら不要
・/usr/bin/lockfile
 procmailを使用しないなら不要
・/usr/bin/rcp
 rshは非推奨で不要
・/usr/bin/rlogin
 rshは非推奨で不要
・/usr/bin/rsh
 rshは非推奨で不要
・/usr/bin/wall
 コンソールメッセージングを使用しないなら不要
・/usr/bin/write
 コンソールメッセージングを使用しないなら不要
・/usr/bin/Xorg
 X11を使用しないなら不要
・/usr/kerberos/bin/ksu
 Kerberosを使用しないなら不要
・/usr/libexec/openssh/ssh-keysign
 sshdがホストベース認証を使用しないなら不要
・/usr/lib/squid/pam
 squidを使用しないなら不要
・/usr/lib/squid/ncsa
 squidを使用しないなら不要
・/usr/lib/vte/gnome-pty-helper
 X11を使用しないなら不要
・/usr/sbin/ccreds
 PAM auth cachingを使用しないなら不要
・/usr/sbin/suexec
 apacheを使用しないなら不要
・/usr/sbin/userhelper
 
・/usr/sbin/userisdnctl
 ISDNを使用しないなら不要
・/usr/sbin/usernetctl
 ユーザーがインターフェースを変更しないなら不要

関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • nmapでオープンしているポート番号とバージョンを確認
  •  
    rpmパッケージ、サービス
  • CentOSで不要なサービスは起動しないようにする
  • RPMパッケージのインテグリティチェック
  •  
    パーミッション
  • CentOSのumaskの設定
  • cronで使用するファイルのパーミッション設定
  • ユーザーホームディレクトリ内の権限設定をセキュアにする
  • CentOSのパスワードファイルのパーミッション設定
  • findコマンドでファイル書込権限をいっせいにチェック
  • findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
  • findコマンドで所有者、グループが存在しないファイルを抽出
  •  
    ログイン、認証、パスワード、アカウント制御
  • ログイン時などに表示されるシステムバナーを変更するには?
  • CentOSのユーザーアカウントのパスワードポリシーを設定
  • pam_cracklibモジュールでパスワードポリシーを設定
  • pam_unix.soモジュールを使って過去のパスワード再使用を制限する
  • システムコンソールでのrootログインを制限する方法
  • suコマンドによるrootへのスイッチを制限する
  • root権限でのコマンド実行、sudoだと監査ログが取得できる
  • デーモン用アカウントなどに対しシェルを使用を無効にする
  • パスワード認証を失敗時にアカウントをロックアウトする設定
  • rootアカウントのPATH環境変数のセキュリティについて
  •  
    auditdでシステム監査
  • auditdを使ってシステム監査
  • auditdのログ容量の設定
  • auditd監査ルールの設定方法
  • auditdで時間設定変更操作を監査する
  • auditdでユーザー・グループ設定ファイル変更操作を監査する
  • auditdでネットワーク関連の設定変更を監査する
  • auditdでログイン記録のログファイルの変更を監査する
  • auditdでファイル所有者や権限の変更に関するイベントを監査する
  • auditdでsetuid、setgidプログラムの実行を監査する
  • auditdでマウント操作を監査する
  • auditdでファイル削除操作を監査する
  • auditdでsudo設定ファイルに対する操作を監査する
  • auditdでカーネルモジュールのロード、アンロードを監査する
  • マシン再起動後にauditdの設定変更を有効にする設定
  • ausearch、aureportで監査ログのサマリレポートを作成
  •  
    ツール
  • NTPのセキュリティを考慮した設定
  • セキュリティを考慮してX Windowsを設定または削除する方法
  • ファイルの改ざん対策用にTripwireを導入
  • CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
  •  
    トラブルシューティング
  • アイドルのシェルを自動で強制終了させるには?
  • CentOSでコアダンプを無効にする方法
  • Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
  • CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください