過去問ドリル

LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問1

堅牢なコンテナ設計/コンテナのアクセス制御と権限制御

docker run に --privileged を付けて起動したコンテナの説明として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)

正解:D

解説

--privilegedは、コンテナにホストとほぼ同等の権限を与えるオプションです。すべてのLinuxケーパビリティが有効になり、ホストのすべてのデバイスにアクセスでき、既定のseccompプロファイルやAppArmorプロファイル、SELinuxのプロセスラベルによる制限も無効になります。コンテナからホストを乗っ取られる危険が大きいため、必要な権限だけを --cap-add や --device で個別に与えるのが基本です。ホストのネットワークを共有するのは --network host、読み取り専用のルートファイルシステムは --read-only の役割です。

選択肢ごとの解説

  • A誤り。--privilegedはUIDの対応付けを変えるオプションではありません。全ケーパビリティが有効になるなど、ケーパビリティの既定値も大きく変わります。
  • B誤り。ホストのネットワーク名前空間を共有するのは --network host です。--privilegedはデバイスやケーパビリティの制限を外します。
  • C誤り。ルートファイルシステムを読み取り専用にするのは --read-only です。--privilegedはむしろ制限を緩めるオプションです。
  • D正しい。全ケーパビリティとホストの全デバイスが与えられ、既定のseccomp・AppArmor・SELinuxによる制限も外れるため、非常に危険です。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く