프로세스 권한 상승을 허용하는 것은 보안에 민감합니다.

 

프로세스 권한 상승을 허용하면 POD가 setuid 바이너리를 악용하는 공격에 노출됩니다.

이 필드는 컨테이너 프로세스에 no_new_privs 플래그가 설정되어 있는지 여부를 직접 제어합니다. 이 플래그가 활성화되면 setuid 또는 setgid 비트로 구성된 바이너리는 런타임 uid 또는 gid를 변경할 수 없습니다: 잠재적인 공격자는 POD에서 성공적으로 Root로 작동하기 위해 다른 권한 상승 기술에 의존해야 합니다.

Kubernetes 클러스터와 POD의 복원력에 따라 공격자는 클러스터가 포드를 시작한 노드를 손상시켜 클러스터에 대한 공격을 확장할 수 있습니다.

setuid 또는 setgid 비트와 관련된 POD의 위험이 완화되지 않은 경우 allowPrivilegeEscalation 필드를 true로 설정하면 안 됩니다.

다음 질문을 확인하세요

  • 이 POD는 Kubernetes 클러스터의 관리자가 아닌 사용자가 접근할 수 있습니다.
  • 이 POD에는 setuid 또는 setgid 기능이 있는 바이너리가 포함되어 있습니다.

만약 모든 질문에 해당된다면 위험이 있을 수 있습니다.

권장되는 보안 코딩 방법

권한 상승을 사용하지마세요.

민감한 코드 예시

apiVersion: v1
kind: Pod
metadata:
  name: example
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP
      securityContext:
        allowPrivilegeEscalation: true # Sensitive

규칙을 준수한 해결책

apiVersion: v1
kind: Pod
metadata:
  name: example
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP
      securityContext:
        allowPrivilegeEscalation: false

같이보면 좋은 자료


If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project