Kubernetes Kyverno bypass

Оригінальний автор цієї сторінки 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

Last updated