중요한 파일 시스템 경로를 마운트하면 호스트 시스템의 정보가 노출되고 손상될 수 있습니다.
시스템 경로에는 구성 파일 또는 캐시 파일과 같은 중요한 정보가 포함될 수 있습니다. 공격자가 사용 권한을 확장하거나 추가 공격을 위한 정보를 수집하는 데 사용할 수 있습니다. 또한, 시스템 경로에는 호스트 시스템에서 주기적으로 실행할 수 있는 바이너리 및 스크립트도 포함될 수 있습니다. 중요한 파일에 액세스할 수 있는 손상되거나 악성 컨테이너는 전체 Kubernetes 클러스터의 무결성을 위험하게 만들 수 있습니다.
다음 질문을 확인하세요
- 마운트된 파일 경로가 중요한 정보를 포함하고 있다.
- 마운트된 파일 경로에 쓰기 가능한 configuration 파일이나 실행 파일을 포함하고 있다.
- POD가 신뢰할 수 없거나 취약점이 포함되어 있을 수 있다.
만약 상위 질문에 해당된다면 위험이 있을 수 있습니다.
권장되는 보안 코딩 방법
중요한 시스템 파일 경로를 컨테이너에 마운트하지 않는 것이 좋습니다. 아키텍처 때문에 이러한 경로를 마운트해야 하는 경우, 최소한의 권한을 부여해야 합니다. 예를들어 불필요한 수정을 방지하기 위해 마운트를 읽기 전용으로 설정합니다.
민감한 코드 예시
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /data
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /etc # Sensitive
규칙을 준수한 해결책
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /data
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /mnt/nfs
같이보면 좋은 자료
- Kubernetes Documentation - 볼륨
- MITRE, CWE-668 - 잘못된 영역에 대한 자원 노출
If you like SONARKUBE, don’t forget to give me a star.