KCSA — 쿠버네티스 보안 어소시에이트 · 클라우드 네이티브 보안 개요 · 퀴즈
퀴즈: 클라우드 네이티브 보안 개요
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
4C 모델에서 '바깥 계층이 안쪽 계층을 구해 줄 수 없다'는 말의 가장 정확한 예는?
- 정상 인증된 사용자가 남의 리소스 ID 를 호출하는 IDOR 은 클라우드 방화벽이나 RBAC 으로 막을 수 없다
- 노드 OS 를 최신으로 유지하면 컨테이너 이미지 취약점도 함께 해결된다
- RBAC 을 잘 짜면 애플리케이션 인가 코드를 생략할 수 있다
- 네트워크 정책을 걸면 컨테이너를 root 로 돌려도 안전하다
kubelet 의 읽기 전용 포트(10255)를 0 으로 닫아야 하는 이유는?
- 이 포트로 컨테이너를 삭제할 수 있기 때문
- kubelet 이 이 포트로 etcd 에 직접 쓰기 때문
- 이 포트는 인증 없이 파드 스펙과 환경변수 등 노드 상태를 노출하기 때문
- 이 포트는 TLS 를 지원하지 않아 apiserver 통신이 평문이 되기 때문
etcd 에 대한 읽기 접근을 얻은 공격자가 얻는 것은?
- 기본 설정에서 클러스터의 모든 Secret 을 포함한 전체 상태
- 노드의 셸 접근
- 컨테이너 이미지의 소스 코드
- 아무것도. etcd 는 항상 암호화되어 있다
파드에 ServiceAccount 토큰이 자동 마운트되는 기본 동작이 보안상 문제가 되는 이유는?
- 토큰이 컨테이너 이미지에 구워지기 때문
- 파드에 자동 마운트된 토큰이 만료되지 않아 영구적으로 유효하게 남기 때문
- 토큰이 모든 파드에서 동일한 값이기 때문
- API 서버와 대화할 필요 없는 워크로드까지 API 접근 자격을 들고 있어, 그 파드가 침해되면 곧바로 클러스터 API 접근으로 이어지기 때문
이미지 태그 대신 다이제스트로 고정해야 하는 가장 중요한 이유는?
- 다이제스트로 받으면 태그로 받을 때보다 pull 속도가 빠르기 때문
- 다이제스트를 쓰면 이미지가 자동으로 스캔되기 때문
- 태그는 프라이빗 레지스트리에서 지원되지 않기 때문
- 태그는 움직일 수 있어 같은 태그가 시점에 따라 다른 이미지를 가리킬 수 있고, 그러면 무엇을 배포했는지 특정할 수 없기 때문
감사 로그에서 '거부(deny)'를 기록하는 것이 특히 중요한 이유는?
- 성공 로그는 용량이 커서 저장할 수 없기 때문
- 규정상 실패 요청만 보관 의무가 있기 때문
- 거부 로그가 남아 있어야 RBAC 규칙이 제대로 동작하기 때문
- 권한 탐색·열거 시도는 실패의 반복으로만 드러나므로, 거부를 남기지 않으면 그 신호 자체가 존재하지 않기 때문