権限昇格が許可された Kubernetes コンテナー

Linux コンテナーの追加権限取得を制限し、必要最小限の権限で実行してください。

説明

securityContext.allowPrivilegeEscalation は、プロセスが親より強い権限を得られるかを制御します。Linux で false にすると、setuid バイナリなど、新しいプログラムの実行による権限取得を制限します。省略した場合の既定値は true です。

既存の権限を削除したり、すべての脆弱性悪用を防いだりする設定ではありません。false は privileged や SYS_ADMIN と併用できないため、過剰な権限も削除してください。

想定される影響

  • 侵害されたプロセスが、権限を与えるプログラムを実行して、より強い権限を得る可能性があります。
  • 追加権限でアクセスできるファイルやリソースへ被害が広がる場合があります。

対処方法

  • Linux コンテナーと初期化コンテナーに allowPrivilegeEscalation: false を明示してください。
  • 不要な privileged、SYS_ADMIN、機密性の高いホストマウントを削除し、非 root での実行も検討してください。
  • 権限昇格に依存する初期化処理を調整し、実際のデプロイでアプリケーションをテストしてください。

例

イメージアドレスは例です。実際の Linux アプリケーションイメージとワークロードのテンプレートに合わせて適用してください。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod2
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4
      securityContext:
        allowPrivilegeEscalation: true

新しいプログラムの実行による追加権限の取得を制限していません。

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4
      securityContext:
        allowPrivilegeEscalation: false

権限昇格を制限しています。既に付与した権限と他のセキュリティ設定も確認してください。

参考資料