LinuCレベル3 セキュリティスペシャリスト 堅牢なコンテナ設計 問7
堅牢なコンテナ設計/コンテナのアクセス制御と権限制御Dockerのコンテナに対するアクセス制御や権限制御に関する説明として、正しいものをすべて選べ。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「堅牢なコンテナ設計」に対応。実際の試験問題ではありません)
- AAppArmorが有効なUbuntuでも、Dockerはプロファイルを指定しない限りコンテナをAppArmorの制限なしで起動する
- B特に指定しなければ既定のseccompプロファイルが適用され、--security-opt seccomp=<JSONファイル>で置き換えられる
- C--user 1000:1000やDockerfileのUSER命令で、コンテナ内のプロセスをrootではないUIDで動かして影響を抑えられる
- D--network noneを指定しても、ループバックに加えて既定のブリッジネットワークへの接続は残り、外部と通信できる
正解:B、C
解説
Dockerは、カーネルとDockerがseccompに対応していれば、既定のseccompプロファイルを適用して危険なシステムコールを禁止します。独自の制限にしたい場合は --security-opt seccomp= にJSON形式のプロファイルを指定します。AppArmorが有効なホストでは、指定しなくても docker-default プロファイルがコンテナに適用されます。コンテナ内のプロセスをrootでないUIDで動かすことは、侵害されたときの影響を小さくする基本的な対策です。
選択肢ごとの解説
- A誤り。AppArmorが有効なホストでは、指定しなくても docker-default プロファイルが適用されます。
- B正しい。既定のseccompプロファイルが適用され、--security-opt seccomp= で独自のプロファイルに置き換えられます。
- C正しい。--user やUSER命令でrootではないUIDを使うと、コンテナ内で侵害されたときに取れる操作を減らせます。
- D誤り。--network none のコンテナはループバックだけを持ち、ブリッジネットワークには接続されません。