설명
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
권한 상승을 제한합니다. 이미 부여한 권한이나 다른 보안 설정도 함께 검토해야 합니다.