Kubernetes OPA Gatekeeper bypass
Reading time: 1 minute
Originalni autor ove stranice je Guillaume
Zloupotreba pogrešne konfiguracije
Nabrajanje pravila
Imati pregled može pomoći da se zna koja su pravila aktivna, u kojem režimu i ko može da ih zaobiđe.
Sa CLI
$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations constraints.gatekeeper.sh/v1beta1 false K8sMandatoryAnnotations
k8smandatorylabels constraints.gatekeeper.sh/v1beta1 false K8sMandatoryLabel
constrainttemplates templates.gatekeeper.sh/v1 false ConstraintTemplate
ConstraintTemplate i Constraint mogu se koristiti u Open Policy Agent (OPA) Gatekeeper-u za sprovođenje pravila na Kubernetes resursima.
$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels
Sa GUI
Grafički korisnički interfejs može biti dostupan za pristup OPA pravilima putem Gatekeeper Policy Manager. To je "jednostavan samo-za-čitanje web UI za pregled statusa OPA Gatekeeper politika u Kubernetes klasteru."

Pretražite izloženu uslugu:
$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'
Isključeni prostori imena
Kao što je prikazano na gornjoj slici, određena pravila se možda neće primenjivati univerzalno na sve prostore imena ili korisnike. Umesto toga, funkcionišu na osnovu bele liste. Na primer, liveness-probe
ograničenje je isključeno iz primene na pet navedenih prostora imena.
Bypass
Sa sveobuhvatnim pregledom Gatekeeper konfiguracije, moguće je identifikovati potencijalne pogrešne konfiguracije koje bi mogle biti iskorišćene za sticanje privilegija. Potražite prostore imena koji su na beloj listi ili isključeni gde pravilo ne važi, a zatim izvršite svoj napad tamo.
Abusing Roles/ClusterRoles in Kubernetes
Iskorišćavanje ValidatingWebhookConfiguration
Još jedan način za zaobilaženje ograničenja je fokusiranje na ValidatingWebhookConfiguration resurs :
Kubernetes ValidatingWebhookConfiguration