Kubernetes Kyverno bypass
Reading time: 1 minute
Оригінальний автор цієї сторінки Guillaume
Зловживання неправильними налаштуваннями політик
Перерахунок правил
Мати огляд може допомогти зрозуміти, які правила активні, в якому режимі і хто може їх обійти
$ kubectl get clusterpolicies
$ kubectl get policies
Перерахувати виключені
Для кожної ClusterPolicy та Policy ви можете вказати список виключених сутностей, включаючи:
- Групи:
excludedGroups
- Користувачі:
excludedUsers
- Облікові записи служб (SA):
excludedServiceAccounts
- Ролі:
excludedRoles
- Ролі кластера:
excludedClusterRoles
Ці виключені сутності будуть звільнені від вимог політики, і Kyverno не буде застосовувати політику до них.
Приклад
Давайте розглянемо один приклад clusterpolicy:
$ kubectl get clusterpolicies MYPOLICY -o 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:
Kubernetes ValidatingWebhookConfiguration
Більше інформації
Для отримання додаткової інформації перегляньте https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/