# Kubernetes Kyverno bypass

{{#include ../../../banners/hacktricks-training.md}}

**このページの元の著者は** [**Guillaume**](https://www.linkedin.com/in/guillaume-chapela-ab4b9a196)


## ポリシーの誤設定を悪用する

### ルールの列挙

概要を把握することで、どのルールがアクティブで、どのモードで、誰がそれをバイパスできるかを知るのに役立ちます。
```bash
$ kubectl get clusterpolicies
$ kubectl get policies
```
### 除外の列挙

各 ClusterPolicy および Policy に対して、以下の除外されたエンティティのリストを指定できます。

- グループ: `excludedGroups`
- ユーザー: `excludedUsers`
- サービスアカウント (SA): `excludedServiceAccounts`
- ロール: `excludedRoles`
- クラスターロール: `excludedClusterRoles`

これらの除外されたエンティティはポリシー要件から免除され、Kyverno はそれらに対してポリシーを強制しません。

## 例

1 つの clusterpolicy の例を掘り下げてみましょう :
```
$ kubectl get clusterpolicies MYPOLICY -o yaml
```
除外されたエンティティを探してください：
```yaml
exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*
```
クラスター内では、多くの追加コンポーネント、オペレーター、およびアプリケーションがクラスター ポリシーから除外される必要がある場合があります。しかし、これは特権エンティティをターゲットにすることで悪用される可能性があります。場合によっては、名前空間が存在しないか、ユーザーをなりすます権限がないように見えることがあり、これは設定ミスの兆候である可能性があります。

## ValidatingWebhookConfigurationの悪用

ポリシーをバイパスする別の方法は、ValidatingWebhookConfigurationリソースに焦点を当てることです：

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

## さらに詳しい情報

詳細については、[https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/](https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/)を確認してください。

{{#include ../../../banners/hacktricks-training.md}}
