LinuCレベル3 セキュリティスペシャリスト アクセスおよび権限制御の強化 問50
アクセスおよび権限制御の強化/Linux Capabilities による権限制御Linux の CAP_SYS_ADMIN ケーパビリティを持つプロセスが実行できる操作として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「アクセスおよび権限制御の強化」に対応。実際の試験問題ではありません)
- Araw ソケットや PACKET ソケットを作成し、任意の形式のパケットを送受信する
- Bファイルの読み取り・書き込み・実行の DAC(任意アクセス制御)権限チェックを迂回する
- Cmount(2) システムコールを呼び出してファイルシステムをマウントする
- D任意のプロセスへ SIGKILL を送信してプロセスを強制終了させる
正解:C
解説
CAP_SYS_ADMIN はシステム管理操作全般を許可する広範なケーパビリティで、mount(2) によるファイルシステムのマウント・ループデバイスの設定・ユーザー名前空間の作成・カーネルキーリングの操作など多岐にわたる特権操作を含みます。rawソケット作成には CAP_NET_RAW が、DAC権限チェックの迂回には CAP_DAC_OVERRIDE が、任意プロセスへのSIGKILL送信には CAP_KILL がそれぞれ必要です。CAP_SYS_ADMIN はコンテナ環境では「第二のroot」とも呼ばれるほど広範なため、付与を避けることが推奨されます。
選択肢ごとの解説
- A誤り。raw ソケットや PACKET ソケットの作成には CAP_NET_RAW が必要である。CAP_SYS_ADMIN ではなくネットワーク操作に特化したケーパビリティで行われる。
- B誤り。ファイルのDAC権限チェック(読み取り・書き込み・実行)を迂回するのは CAP_DAC_OVERRIDE の機能である。任意アクセス制御の迂回に特化したケーパビリティである。
- C正しい。CAP_SYS_ADMIN はシステム管理操作全般を含む広範なケーパビリティで、mount(2) によるファイルシステムのマウント操作が含まれる。このほかにもループデバイス設定・名前空間作成・quota の設定など多様な操作を許可する。
- D誤り。任意のプロセスへシグナルを送信する特権には CAP_KILL が必要である。CAP_KILL がなければ、通常はシグナルを送れるのは同じ UID のプロセスに限られる。