컨테이너/K8s 진단 - Host Network/Port 공유
점검 결과
| Pod | hostNetwork | hostPort | 평가 |
|---|
| monitoring-agent | Yes | 9090 | 위험! |
| logging-sidecar | Yes | - | 위험! |
| app-api | No | - | 안전 |
Host 네트워크 공유 분석
apiVersion: v1
kind: Pod
metadata:
name: monitoring-agent
spec:
hostNetwork: true
hostPID: true
containers:
- name: agent
image: monitoring:latest
ports:
- name: metrics
containerPort: 9090
hostPort: 9090
[위험한 설정]
- hostNetwork: true
-> 호스트의 네트워크 네임스페이스 사용
-> Pod이 호스트 IP 주소 직접 사용
-> 호스트의 모든 포트/인터페이스 접근
- hostPort: 9090
-> 호스트의 포트 9090을 점유
-> 호스트와 동일한 포트에서 수신
- hostPID: true
-> 호스트의 프로세스 네임스페이스 공유
-> 모든 호스트 프로세스 보이기/제어
[공격 영향]
1. 네트워크 패킷 스니핑
2. 호스트 로컬 서비스 접근
3. ARP 스푸핑, DNS 스푸핑
4. 다른 Pod 트래픽 가로채기
5. 호스트 프로세스 제어
# 네트워크 네임스페이스 확인
kubectl exec -it monitoring-agent -- hostname
[호스트 이름 출력 = 호스트 네트워크 사용]
조치 가이드
- hostNetwork 제거: 대부분의 경우 불필요
- hostPort 사용 금지: NodePort 서비스 대신 사용
- hostPID 제거: 프로세스 격리 유지
- CNI 플러그인: 네트워크 정책으로 통신 제어