Kubernetes Kyverno bypass

Ο αρχικός συγγραφέας αυτής της σελίδας είναι Guillaume

Κατάχρηση κακής διαμόρφωσης πολιτικών

Καταμέτρηση κανόνων

Η επισκόπηση μπορεί να βοηθήσει στο να γνωρίζουμε ποιες κανόνες είναι ενεργοί, σε ποιον τρόπο και ποιος μπορεί να τους παρακάμψει

$ kubectl get clusterpolicies
$ kubectl get policies

Enumerate Excluded

Για κάθε ClusterPolicy και Policy, μπορείτε να καθορίσετε μια λίστα εξαιρούμενων οντοτήτων, συμπεριλαμβανομένων:

  • Ομάδες: excludedGroups

  • Χρήστες: excludedUsers

  • Λογαριασμοί Υπηρεσιών (SA): excludedServiceAccounts

  • Ρόλοι: excludedRoles

  • Ρόλοι Cluster: excludedClusterRoles

Αυτές οι εξαιρούμενες οντότητες θα είναι απαλλαγμένες από τις απαιτήσεις πολιτικής, και η Kyverno δεν θα επιβάλει την πολιτική για αυτές.

Example

Ας εξετάσουμε ένα παράδειγμα 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:*

Μέσα σε ένα cluster, πολλαπλά πρόσθετα συστατικά, operators και εφαρμογές μπορεί να απαιτούν εξαίρεση από μια πολιτική cluster. Ωστόσο, αυτό μπορεί να εκμεταλλευτεί στοχεύοντας σε προνομιούχες οντότητες. Σε ορισμένες περιπτώσεις, μπορεί να φαίνεται ότι ένα namespace δεν υπάρχει ή ότι δεν έχετε άδεια να προσποιηθείτε έναν χρήστη, κάτι που μπορεί να είναι ένδειξη κακής διαμόρφωσης.

Κατάχρηση του ValidatingWebhookConfiguration

Ένας άλλος τρόπος για να παρακάμψετε τις πολιτικές είναι να εστιάσετε στον πόρο ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Last updated