過去問ドリル

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

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

docker run のオプションによるコンテナの権限制御に関する説明として、正しいものをすべて選べ。

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

正解:B、D

解説

--read-only はコンテナのルートファイルシステムを読み取り専用でマウントし、侵入者による実行ファイルの改ざんやツールの設置を難しくします。一時ファイルなど書き込みが必要な場所は --tmpfs /tmp やボリュームで個別に用意します。--pids-limit はcgroupのpidsコントローラを使ってコンテナ内のプロセス数に上限を設け、fork爆弾などによる資源の枯渇を防ぎます。no-new-privileges は、execve でsetuidプログラムなどを実行したときに新たな特権を得させない設定で、既に持っているケーパビリティを外すものではありません。既定のコンテナは CAP_SYS_ADMIN を持たず、seccompやAppArmorでもmountが制限されるため、読み取り専用のバインドマウントを再マウントで書き込み可能に戻すことはできません。

選択肢ごとの解説

  • A誤り。no-new-privileges は、setuidプログラムやファイルケーパビリティで新たな特権を得られなくするもので、既に持っているケーパビリティは外しません。外すには --cap-drop を使います。
  • B正しい。--read-only でルートファイルシステムが読み取り専用になり、書き込みが必要な場所は --tmpfs やボリュームで個別に用意します。
  • C誤り。既定のコンテナは CAP_SYS_ADMIN を持たず、seccompやAppArmorでもmountが制限されるため、コンテナ内のrootでも再マウントで書き込み可能には戻せません。
  • D正しい。--pids-limit はpidsコントローラでコンテナ内のプロセス数に上限を設け、fork爆弾などによる資源の枯渇を防ぎます。
LinuCレベル3 セキュリティスペシャリストの問題を演習モードで解く