프리빌리지드 모드에서 컨테이너를 실행하면 호스트와 컨테이너 간의 격리가 약해지기 때문에 보안 사고 발생 시 클러스터의 복원력이 감소할 수 있습니다.
프리빌리지드 컨테이너의 프로세스 권한은 기본적으로 호스트의 루트 권한과 동일합니다. 이러한 프로세스가 강력한 보안 조치로 보호되지 않으면 POD의 호스트에서 루트 프로세스를 손상시키는 공격자는 클러스터 내에서 피벗(공격 방향을 바꾸어 나아감)하는 능력을 얻을 수 있습니다.
클러스터의 복원력에 따라 공격자는 클러스터가 프로세스를 시작한 노드를 손상시켜 공격을 클러스터로 확장할 수 있습니다.
다음 질문을 확인하세요
- 이 POD의 서비스는 Kubernetes 클러스터의 관리자가 아닌 사용자가 접근할 수 있습니다.
만약 상위 질문에 해당된다면 위험이 있을 수 있습니다.
권장되는 보안 코딩 방법
프리빌리지드 모드를 사용하지 마세요.
민감한 코드 예시
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
securityContext:
privileged: true # Sensitive
규칙을 준수한 해결책
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
securityContext:
privileged: false
같이보면 좋은 자료
- MITRE, CWE-284 - 부적절한 접근 제어
If you like SONARKUBE, don’t forget to give me a star.