# Kubernetes OPA Gatekeeper bypass

**Originalni autor ove stranice je** [**Guillaume**](https://www.linkedin.com/in/guillaume-chapela-ab4b9a196)

## 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
```bash
$ 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.
```bash
$ 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."

<figure><img src="../../../images/05-constraints.png" alt=""><figcaption></figcaption></figure>

Pretražite izloženu uslugu:
```bash
$ 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.

{{#ref}}
../abusing-roles-clusterroles-in-kubernetes/
{{#endref}}

## Iskorišćavanje ValidatingWebhookConfiguration

Još jedan način za zaobilaženje ograničenja je fokusiranje na ValidatingWebhookConfiguration resurs :&#x20;

{{#ref}}
../kubernetes-validatingwebhookconfiguration.md
{{#endref}}

## Reference

- [https://github.com/open-policy-agent/gatekeeper](https://github.com/open-policy-agent/gatekeeper)
- [https://github.com/sighupio/gatekeeper-policy-manager](https://github.com/sighupio/gatekeeper-policy-manager)
