デフォルトの seccomp プロファイルが無効

不要な seccomp の無効化をやめ、必要なシステムコールだけを許可してください。

説明

seccomp はコンテナーが使用できるシステムコールを制限し、カーネルの攻撃対象となる範囲を減らします。

security_opt に seccomp:unconfined などを指定すると、この保護が無効になります。特別な必要性がないのにデフォルトの制限を解除すると、コンテナーの分離が弱まるおそれがあります。

想定される影響

  • 利用できるシステムコールが増え、攻撃対象となる範囲が広がります。
  • アプリケーションに脆弱性がある場合、カーネルの弱点を悪用される可能性が高まります。
  • セキュリティ基準で期待される分離機能の一つが失われます。

対処方法

  • security_opt から seccomp を無効にする設定を削除してください。
  • 追加のシステムコールが必要なら、全面的な解除ではなく専用プロファイルを検討してください。
  • デバッグ用の例外設定を本番環境のデプロイ設定から分離してください。

例

seccomp を利用できる Linux Docker 環境を前提とした抜粋です。sample/app:latest は実際のサービスイメージに置き換えてください。

変更前

yaml
services:
  demo:
    image: sample/app:latest
    security_opt:
      - seccomp:unconfined

変更後

yaml
services:
  demo:
    image: sample/app:latest

説明:

  • 変更前: seccomp の保護を無効にし、コンテナーが利用できるシステムコールを増やしています。
  • 変更後: seccomp の解除設定を削除します。ランタイムでデフォルトのプロファイルが実際に適用されることを確認してください。

参考資料