LabHub

CKS — 쿠버네티스 보안 전문가 · 시스템 하드닝 · 퀴즈

퀴즈: 시스템 하드닝

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. securityContext 의 privileged: true 가 위험한 이유를 가장 정확히 설명한 것은?

    1. 컨테이너가 호스트의 네트워크 네임스페이스를 그대로 쓰게 되어 노드 포트에 닿는다
    2. 컨테이너가 root UID 로 실행된다
    3. 루트 파일시스템이 쓰기 가능해진다
    4. 모든 capability 부여, 모든 디바이스 접근 허용, AppArmor·SELinux·seccomp 비활성화가 한꺼번에 일어난다
  2. seccompProfile 의 type 을 Localhost 로 지정했는데 파드가 기동하지 못한다. 가장 유력한 원인은?

    1. seccomp 는 컨테이너 레벨에만 설정할 수 있다
    2. RuntimeDefault 와 함께 써야 한다
    3. PodSecurity 의 baseline 프로파일이 Localhost 를 금지한다
    4. localhostProfile 에 지정한 프로파일 파일이 노드에 없다
  3. 80 포트를 열어야 하는 웹 서버 컨테이너를 최소 권한으로 만들려면?

    1. privileged: true 로 두고 runAsUser 만 1000 으로 낮춘다
    2. capabilities.add 에 NET_ADMIN 을 넣는다
    3. capabilities.drop 에 ALL 을 넣고 add 에 NET_BIND_SERVICE 만 넣는다
    4. hostNetwork: true 로 노드 포트를 직접 쓴다
  4. hostPID: true 인 컨테이너가 다른 워크로드의 시크릿을 읽을 수 있는 경로는?

    1. 노드의 etcd 데이터 디렉터리를 직접 읽는다
    2. kubelet 의 읽기 전용 포트로 Secret API 를 호출한다
    3. 다른 프로세스의 /proc/<PID>/environ 에서 환경변수를 읽는다
    4. CNI 의 eBPF 맵을 덤프한다
  5. 쿠버네티스 1.30 이상에서 AppArmor 프로파일을 지정하는 정식 방법은?

    1. securityContext.appArmorProfile 필드
    2. container.apparmor.security.beta.kubernetes.io/<컨테이너> 어노테이션
    3. RuntimeClass 의 handler 값
    4. PodSecurity 네임스페이스 라벨
  6. readOnlyRootFilesystem: true 를 적용한 컨테이너가 임시 파일 쓰기에 실패한다. 올바른 대응은?

    1. readOnlyRootFilesystem 을 false 로 되돌린다
    2. hostPath 볼륨으로 노드의 /tmp 를 마운트한다
    3. 쓰기가 필요한 경로에 emptyDir 볼륨을 마운트한다
    4. allowPrivilegeEscalation 을 true 로 켠다