설명
컨테이너 securityContext.capabilities.drop에 NET_RAW 또는 ALL이 없으면 원시 네트워크 관련 capability가 남을 수 있습니다. 이런 capability는 일반 애플리케이션에 꼭 필요하지 않은 경우가 많습니다.
위험 capability는 개별 파드 수준에서도 제거하는 것이 좋습니다. 정책과 워크로드 설정을 함께 맞춰야 실제 보호가 됩니다.
잠재적 영향
- 컨테이너가 원시 네트워크 기능을 사용할 수 있습니다.
- 네트워크 스캔, 패킷 조작 등 불필요한 동작 가능성이 커질 수 있습니다.
- 애플리케이션 침해 시 공격자가 더 강한 네트워크 권한을 활용할 수 있습니다.
해결 방법
- 컨테이너
capabilities.drop에ALL또는 최소한NET_RAW를 추가하세요. - 필요한 capability만
add로 예외적으로 허용하고NET_RAW를 다시 추가하지 않는지 확인하세요. - 보안 컨텍스트 검토 시 privilege escalation과 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만 제거하므로 원시 네트워크 권한이 남을 수 있습니다.
- 변경 후: ALL을 제거한 뒤 NET_BIND_SERVICE만 추가합니다. 필요한 권한과 정상 동작을 확인하세요.