PSP의 NET_RAW Drop 미강제

PodSecurityPolicy에서 NET_RAW 또는 ALL capability 드롭을 강제하지 않으면 네트워크 관련 특권 사용이 남을 수 있습니다.

설명

PodSecurityPolicy의 requiredDropCapabilities에 NET_RAW 또는 ALL이 없으면, 파드가 원시 네트워크 기능을 사용할 여지가 남을 수 있습니다. NET_RAW는 패킷 생성 같은 민감한 네트워크 동작과 연결될 수 있어 주의가 필요합니다.

보안 정책은 개별 파드 설정에만 의존하지 말고, 기본적으로 위험 capability를 제거하도록 강제하는 편이 안전합니다. PSP를 사용 중인 환경이라면 이 기준을 정책에 직접 반영해야 합니다.

참고: PodSecurityPolicy는 Kubernetes v1.21에서 사용 중단되었고 v1.25에서 제거되었습니다. 이 문서는 PSP를 사용하는 레거시 클러스터나 PSP 리소스가 남아 있는 환경을 다룹니다. 최신 클러스터에서는 Pod Security Admission 또는 Gatekeeper나 Kyverno 같은 정책 엔진으로 같은 제한을 적용하세요.

잠재적 영향

  • 파드가 원시 네트워크 기능을 이용해 의도하지 않은 네트워크 동작을 수행할 수 있습니다.
  • 네트워크 공격 표면이 커질 수 있습니다.
  • 워크로드별 capability 관리가 느슨해질 수 있습니다.

해결 방법

  • PSP의 requiredDropCapabilities에 NET_RAW 또는 ALL을 포함하세요.
  • 개별 워크로드도 추가 capability를 최소화하도록 함께 점검하세요.
  • 보안 정책 변경 시 capability 관련 기준을 별도 체크리스트로 관리하세요.

예시

기존 PSP의 capability 설정만 발췌했습니다. 다른 필수 필드와 정책 사용 권한은 생략되어 있습니다.

변경 전

yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restricted2
spec:
  requiredDropCapabilities:
    - KILL

변경 후

yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restricted
spec:
  requiredDropCapabilities:
    - ALL

설명:

  • 변경 전: NET_RAW나 ALL 드롭을 강제하지 않아 위험 capability가 남을 수 있습니다.
  • 변경 후: ALL 드롭을 강제해 NET_RAW를 포함한 Linux capability 제거를 요구합니다.

참조