ビュー:
プロファイル適用性: レベル1
デフォルトでは、コンテナは自身のコンテキスト内でほぼ制限なく実行が許可されています。コンテナ内で実行権限を得たサイバーアクターは、ファイルを作成したり、スクリプトをダウンロードしたり、コンテナ内のアプリケーションを変更したりすることができます。Kubernetesはコンテナのファイルシステムをロックダウンすることで、多くのポストエクスプロイト活動を防ぐことができます。しかし、これらの制限は正当なコンテナアプリケーションにも影響を与え、クラッシュや異常な動作を引き起こす可能性があります。正当なアプリケーションへのダメージを防ぐために、Kubernetes管理者は、アプリケーションが書き込みアクセスを必要とする特定のディレクトリに対して、セカンダリの読み書き可能なファイルシステムをマウントすることができます。

監査

次のコマンドを実行し、各ポッドのコンテナのsecurityContextを確認してください:
kubectl get pods --all-namespaces
各コンテナにsecurityContext.readOnlyRootFilesystemtrueに設定されていることを確認してください。

修復

containers[].securityContext.readOnlyRootFilesystemtrueに変更します。
次の例は、読み取り専用のルートファイルシステムを使用するKubernetesデプロイメントテンプレートです。
securityContext: readOnlyRootFilesystem: true
volumeMountsvolumesを設定する行は、この機能を必要とするアプリケーションのために書き込み可能なボリュームを作成する方法を示しています。
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec: 
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
      name: web
    spec:
      containers:
      - command: ["sleep"]
        args: ["999"]
        image: ubuntu:latest
        name: web
        securityContext:
          readOnlyRootFilesystem: true
        volumeMounts:
          - mountPath: /writeable/location/here
            name: volName
    volumes:
    - emptyDir: {}
    name: volName