LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問30
アクセスおよび権限制御の強化/Linux Capabilities による権限制御サーバーの点検で、ファイルケーパビリティが付与された実行ファイルを / 以下からすべて洗い出して一覧にしたい。コマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Acapsh --print
- Bgetcap -r / 2>/dev/null
- Cgetpcaps 1
- Dfind / -perm -4000 -type f 2>/dev/null
正解:B
解説
ファイルケーパビリティは拡張属性 security.capability としてファイルに保存され、getcap で確認できます。-r を付けると指定したディレクトリ以下を再帰的にたどり、ケーパビリティが付与されたファイルとその内容(例: cap_net_bind_service=ep)を一覧表示します。setuidビットと同じく権限昇格の経路になり得るため、定期的な点検で確認する価値があります。capsh --print と getpcaps はプロセスが持つケーパビリティを表示するもので、ファイルに付与されたものは調べられません。
選択肢ごとの解説
- A誤り。capsh --print は、実行したシェル自身(現在のプロセス)が持つケーパビリティのセットやバウンディングセットを表示するもので、ファイルは調べません。
- B正しい。getcap -r で / 以下を再帰的に調べると、ファイルケーパビリティが付与されたファイルとその内容を一覧できます。
- C誤り。getpcaps は指定したPIDのプロセスが持つケーパビリティを表示するコマンドで、ファイルに付与されたケーパビリティは調べられません。
- D誤り。find -perm -4000 はsetuidビットが立ったファイルを探す指定で、ファイルケーパビリティが付与されたファイルは見つけられません。