컨테이너 보안 · 탈출 경로와 그것을 막는 법 · 퀴즈
퀴즈: 탈출 경로와 차단
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`/var/run/docker.sock` 을 컨테이너에 마운트하는 것이 위험한 이유는?
- 소켓을 거치는 통신이 디스크를 많이 쓴다
- 데몬 API 로 특권 컨테이너를 새로 띄울 수 있어 사실상 호스트 root 다
- 데몬을 거쳐 네트워크가 느려진다
- 빌드 이미지 캐시가 깨진다
낮은 포트(80)를 바인딩해야 한다. 가장 적절한 조치는?
- `--privileged` 로 실행
- root 로 실행
- `NET_BIND_SERVICE` capability 만 추가
- 호스트 네트워크 사용
`-v /etc:/etc-host` 마운트의 위험으로 가장 정확한 것은?
- 마운트가 많아져 컨테이너 시작 시간이 크게 느려진다
- 마운트한 만큼 이미지 레이어가 커진다
- shadow·sudoers·cron 등 호스트 인증·실행 설정에 접근할 수 있다
- 마운트 네임스페이스가 통째로 공유된다
`--pid=host` 가 열어 주는 경로는?
- `/proc/<pid>/root` 를 통해 다른 프로세스의 파일시스템에 접근
- 호스트 디스크 장치에 직접 접근
- 호스트 커널에 모듈을 올리기
- 호스트의 iptables 규칙을 직접 변경
이미지에 `USER 10001` 을 넣는 것의 효과로 옳은 것은?
- 불필요한 계정이 빠져 이미지 크기가 준다
- 네트워크 네임스페이스가 격리된다
- seccomp 프로파일이 함께 켜진다
- 기본 실행 사용자가 비root 가 되어 다수의 권한 경로가 막힌다
실습 파드에서 root 로 로그인되는데도 호스트가 안전한 이유는?
- 컨테이너 안에서만 root 로 보일 뿐 실제 UID 는 0 이 아니라서
- capability 가 전부 제거되고 NO_NEW_PRIVS·seccomp·격리가 함께 걸려 있어서
- 파드에 네트워크가 아예 없어서
- 루트 파일시스템이 읽기 전용이라서