Kubernetes - OPA Gatekeeper bypass

Originalni autor ove stranice je Guillaume

Zloupotreba loše konfiguracije

Nabrojavanje pravila

Imati pregled može pomoći da se zna koja pravila su aktivna, u kojem režimu i ko može da ih zaobiđe.

Sa CLI-jem

$ 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 kako bi se primenila pravila na Kubernetes resurse.

$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

Sa grafičkim korisničkim interfejsom

Grafički korisnički interfejs može biti dostupan za pristup OPA pravilima pomoću Gatekeeper Policy Manager-a. To je "jednostavni samo za čitanje web UI za pregled statusa OPA Gatekeeper pravila u Kubernetes klasteru."

Potražite izloženu rutu:

$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

Isključeni namespace-ovi

Kao što je prikazano na slici iznad, određena pravila se ne primenjuju univerzalno na sve namespace-ove ili korisnike. Umesto toga, oni funkcionišu na osnovu bele liste. Na primer, ograničenje liveness-probe je isključeno iz primene na pet navedenih namespace-ova.

Bypass

Sa sveobuhvatnim pregledom konfiguracije Gatekeeper-a, moguće je identifikovati potencijalne loše konfiguracije koje bi mogle biti iskorišćene za sticanje privilegija. Potražite beležene ili isključene namespace-ove gde pravilo ne važi, a zatim izvršite napad tamo.

Abusing Roles/ClusterRoles in Kubernetes

Reference

Last updated