호스트 운영 체제 네임스페이스를 사용하면 호스트 시스템이 손상될 수 있습니다.
공격 대상이 되는 부분
- 호스트 프로세스
- 호스트 프로세스 간 통신(IPC) 메커니즘
- 로컬 호스트 시스템의 네트워크 서비스
이 세 가지 항목에는 Kubernetes 클러스터의 내부 운영 시스템 또는 엔터프라이즈의 내부 인프라를 지원하는 시스템이 포함될 수 있습니다.
컨테이너의 이런 부분을 개방하 것은 컨테이너에 의해 노출된 서비스를 이미 성공적으로 악용한 공격자에게 새로운 공격 표면이 열리게됩니다.
클러스터의 복원력에 따라서, 공격자는 클러스터가 프로세스를 시작한 노드를 손상시켜 공격을 클러스터로 확장할 수 있습니다.
호스트 네트워크 공유는 중요한 네트워크 성능을 필요로 하는 워크로드에 상당한 성능 이점을 제공할 수 있습니다. 그러나 이 공격 벡터를 성공적으로 악용하면 클러스터 내의 기밀성에 치명적인 영향을 미칠 수 있습니다.
다음 질문을 확인하세요
- 이 POD의 서비스는 Kubernetes 클러스터의 관리자가 아닌 사용자가 접근할 수 있습니다.
- 클러스터의 서비스 성능은 운영체제 네임스페이스에 의존하지 않습니다.
만약 상위 질문에 해당된다면 위험이 있을 수 있습니다.
권장되는 보안 코딩 방법
호스트 운영 체제 네임스페이스를 사용하지 마세요.
민감한 코드 예시
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
hostPID: true # Sensitive
hostIPC: true # Sensitive
hostNetwork: true # Sensitive
규칙을 준수한 해결책
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
hostPID: false
hostIPC: false
hostNetwork: false
같이보면 좋은 자료
- MITRE, CWE-284 - 부적절한 접근 제어
If you like SONARKUBE, don’t forget to give me a star.