Kubernetes ValidatingWebhookConfiguration
이 페이지의 원래 저자는 Guillaume입니다.
정의
ValidatingWebhookConfiguration은 미리 정의된 규칙 및 제약 조건에 따라 들어오는 Kubernetes API 요청을 검증하는 서버 측 구성 요소인 검증 웹후크를 정의하는 Kubernetes 리소스입니다.
목적
ValidatingWebhookConfiguration의 목적은 들어오는 Kubernetes API 요청에 대해 미리 정의된 규칙 및 제약 조건을 적용하는 검증 웹후크를 정의하는 것입니다. 웹후크는 구성에 정의된 규칙 및 제약 조건에 따라 요청을 검증하고, 요청이 규칙에 부합하지 않을 경우 오류를 반환합니다.
예시
다음은 ValidatingWebhookConfiguration의 예입니다:
The main difference between a ValidatingWebhookConfiguration and policies :
ValidatingWebhookConfiguration (VWC) : Kubernetes 리소스로, 미리 정의된 규칙 및 제약 조건 집합에 대해 들어오는 Kubernetes API 요청을 검증하는 서버 측 구성 요소인 검증 웹후크를 정의합니다.
Kyverno ClusterPolicy: Kubernetes 리소스(예: pods, deployments, services)를 검증하고 시행하기 위한 규칙 및 제약 조건 집합을 지정하는 정책 정의입니다.
Enumeration
Kyverno 및 Gatekeeper VWC 악용
설치된 모든 운영자가 최소한 하나의 ValidatingWebHookConfiguration(VWC)을 가지고 있는 것을 볼 수 있습니다.
Kyverno와 Gatekeeper는 모두 클러스터 전반에 걸쳐 정책을 정의하고 시행하기 위한 프레임워크를 제공하는 Kubernetes 정책 엔진입니다.
예외는 특정 규칙이나 조건을 의미하며, 특정 상황에서 정책을 우회하거나 수정할 수 있도록 허용하지만 이것이 유일한 방법은 아닙니다!
kyverno의 경우, 유효성 검사 정책이 있는 한, 웹후크 kyverno-resource-validating-webhook-cfg
가 채워집니다.
Gatekeeper의 경우, gatekeeper-validating-webhook-configuration
YAML 파일이 있습니다.
둘 다 기본값으로 제공되지만, 관리자 팀이 이 두 파일을 업데이트할 수 있습니다.
사용 사례
이제 다음 출력을 식별하십시오:
여기서 kubernetes.io/metadata.name
레이블은 네임스페이스 이름을 나타냅니다. values
목록에 있는 이름을 가진 네임스페이스는 정책에서 제외됩니다:
네임스페이스 존재 여부를 확인하십시오. 때때로 자동화 또는 잘못된 구성으로 인해 일부 네임스페이스가 생성되지 않을 수 있습니다. 네임스페이스를 생성할 수 있는 권한이 있다면, values
목록에 있는 이름으로 네임스페이스를 생성할 수 있으며, 정책은 새 네임스페이스에 적용되지 않습니다.
이 공격의 목표는 잘못된 구성을 이용하여 VWC 내에서 운영자 제한을 우회하고, 다른 기술을 사용하여 권한을 상승시키는 것입니다.
References
Last updated