Docker 소켓을 노출하면 호스트 시스템이 손상될 수 있습니다.
Docker 데몬은 예를 들어 UNIX 도메인 소켓을 통해 해당 기능에 접근할 수 있는 API를 제공합니다. Docker 소켓을 컨테이너에 마운트하면 컨테이너가 호스트 시스템의 Docker 데몬을 제어할 수 있으므로 전체 시스템에 대한 완전한 접근 가능합니다. Docker 소켓에 접할 수 있는 손상된 컨테이너 또는 악성 컨테이너는 전체 Kubernetes 클러스터의 무결성을 위험에 빠뜨릴 수 있습니다.
다음 질문을 확인하세요
- POD를 신뢰할 수 없거나, 취약점이 포함되어 있을 수 있습니다.
만약 상위 질문에 해당된다면 위험이 있을 수 있습니다.
권장되는 보안 코딩 방법
Docker 소켓을 POD의 볼륨으로 절대로 추가하지 않는 것이 좋습니다.
민감한 코드 예시
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /var/run/docker.sock
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /var/run/docker.sock # Sensitive
type: Socket
규칙을 준수한 해결책
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
같이보면 좋은 자료
- MITRE, CWE-284 - 부적절한 접근 제어
- Docker Documention - 데몬 소켓 옵션
- Kubernetes Documentation - 볼륨
If you like SONARKUBE, don’t forget to give me a star.