【はじめに】
こんにちは、キャスレーコンサルティングSI部インフラ担当の大塚です。

サーバ構築を行う際、我々インフラエンジニアが最も意識しなくてはならないのは、
サーバの脆弱性を減らし要塞化を行うことです。

今回は、サーバ要塞化の手法の一つである、
SUID/SGIDの除去についてお話しようと思います。

【SUID/SGIDとは】
SUIDは、実行ファイルに設定される特殊な権限です。

通常、実行ファイルは実行者の権限で実行されますが、
このSUIDが付与されていると、実行ファイルの所有者の
権限で実行されることとなります。

同様に、実行ファイルが所有グループの権限で実行される
特殊な権限がSGIDです。

【SUIDの除去】
SUID/SGIDが付与された実行ファイルでは、
上記の理由で、通常は所有者・グループのみ書き込みの
可能なファイルに任意のユーザによる書き込みが発生したりと、
所有者の意図しない操作が可能となります。

そこで、SUID/SGIDがデフォルトで付与されている
実行ファイルを認識し、適切に権限を除去する
必要があります。

SUID/SGIDの付与されているファイルは下記の様に
見つけることができます。

SUIDが付与されている実行ファイルには、ユーザの実行権に「s」が
SGIDの付与されている実行ファイルにはグループの実行権に「s」が表示されています。

今回は、この中でも/usr/bin/passwordを例にSUIDを除去してみたいと思います。

まずは改めて/usr/bin/passwordの実行権限を確認したいと思います。

ユーザの実行権に「s」が表示されていることが確認できます。

これをchmodコマンドにて除去させます。

ユーザの実行権限が「x」に変更されたことが確認できます。

これで、SUIDの除去は完了しました。

【最後に】
SUID/SGIDをデフォルトのままにしておくと、
所有者の意図しない操作が任意のユーザにより可能となります。

サーバの用途や、組織のセキュリティポリシー等に
従い、適切に設定を行うことが必要となります。