권한 상승이 허용된 Kubernetes 컨테이너

Linux 컨테이너의 추가 권한 획득을 제한하고 필요한 최소 권한으로 실행하세요.

설명

securityContext.allowPrivilegeEscalation은 프로세스가 부모보다 더 높은 권한을 얻을 수 있는지 제어합니다. Linux에서 false로 설정하면 새 프로그램 실행 시 setuid 등으로 추가 권한을 얻는 것을 제한합니다. 생략하면 기본값은 true입니다.

이미 가진 권한을 제거하거나 모든 취약점 악용을 막는 설정은 아닙니다. privileged 또는 SYS_ADMIN과는 false를 함께 사용할 수 없으므로 과도한 권한도 제거해야 합니다.

잠재적 영향

  • 침해된 프로세스가 권한 상승 기능을 가진 프로그램을 실행해 더 넓은 권한을 얻을 수 있습니다.
  • 추가 권한으로 접근 가능한 파일이나 자원까지 피해가 확대될 수 있습니다.

해결 방법

  • Linux 컨테이너와 초기화 컨테이너에 allowPrivilegeEscalation: false를 명시하세요.
  • 불필요한 privileged, SYS_ADMIN과 민감한 호스트 마운트를 제거하고 비루트 실행도 검토하세요.
  • 권한 상승에 의존하는 초기화 절차를 조정하고 실제 배포에서 애플리케이션이 동작하는지 시험하세요.

예시

이미지 주소는 예시입니다. 실제 Linux 애플리케이션 이미지와 배포 템플릿에 맞게 적용하세요.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod2
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4
      securityContext:
        allowPrivilegeEscalation: true

새 프로그램 실행을 통한 추가 권한 획득을 제한하지 않습니다.

변경 후

yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4
      securityContext:
        allowPrivilegeEscalation: false

권한 상승을 제한합니다. 이미 부여한 권한이나 다른 보안 설정도 함께 검토해야 합니다.

참조