NET_RAW capability の削除設定の確認

不要な raw ネットワーク capability を削除し、コンテナーの権限を減らしてください。

説明

コンテナーの securityContext.capabilities.drop に NET_RAW または ALL がないと、raw ネットワークの capability が残る場合があります。一般的なアプリケーションでは不要なことが多い権限です。

ポリシーだけでなく、個々のワークロードでも不要な capability を削除してください。実際の保護にはポリシーとワークロード設定を合わせる必要があります。

想定される影響

  • コンテナーが raw ネットワーク機能を使える場合があります。
  • 不要なネットワークスキャンやパケット操作が可能になる場合があります。
  • アプリケーション侵害後に、攻撃者が強いネットワーク権限を利用するおそれがあります。

対処方法

  • コンテナーの capabilities.drop に ALL、または少なくとも NET_RAW を追加してください。
  • 必要な capability だけを add で許可し、NET_RAW を再追加していないか確認してください。
  • 権限昇格と capability 設定を合わせて確認し、Pod Security Admission やポリシーエンジンで基準を適用してください。

例

Linux Pod の例です。NET_BIND_SERVICE はアプリケーションが実際に必要とする場合だけ追加してください。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: example
spec:
  containers:
    - name: payment
      image: nginx
      securityContext:
        capabilities:
          drop:
            - SYS_ADMIN

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: example
spec:
  containers:
    - name: payment
      image: nginx
      securityContext:
        capabilities:
          drop:
            - ALL
          add:
            - NET_BIND_SERVICE

補足:

  • 変更前: SYS_ADMIN だけを削除しているため、raw ネットワーク権限が残る場合があります。
  • 変更後: ALL を削除してから NET_BIND_SERVICE だけを追加します。必要な権限と正常動作を確認してください。

参考資料