Kubernetes Hardening
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Tools to analyse a cluster
Kubescape είναι ένα εργαλείο ανοιχτού κώδικα K8s που παρέχει μια ενιαία οθόνη πολλαπλών cloud K8s, συμπεριλαμβανομένης της ανάλυσης κινδύνου, της συμμόρφωσης ασφαλείας, του οπτικοποιητή RBAC και της σάρωσης ευπαθειών εικόνας. Το Kubescape σαρώνει τα K8s clusters, τα αρχεία YAML και τα HELM charts, ανιχνεύοντας κακοδιαμορφώσεις σύμφωνα με πολλαπλά πλαίσια (όπως το NSA-CISA, MITRE ATT&CK®), ευπάθειες λογισμικού και παραβιάσεις RBAC (role-based-access-control) σε πρώιμα στάδια της CI/CD pipeline, υπολογίζει άμεσα το σκορ κινδύνου και δείχνει τις τάσεις κινδύνου με την πάροδο του χρόνου.
Το εργαλείο kube-bench είναι ένα εργαλείο που ελέγχει αν το Kubernetes έχει αναπτυχθεί με ασφάλεια εκτελώντας τους ελέγχους που τεκμηριώνονται στο CIS Kubernetes Benchmark. Μπορείτε να επιλέξετε να:
εκτελέσετε το kube-bench από μέσα σε ένα κοντέινερ (μοιράζοντας το PID namespace με τον κεντρικό υπολογιστή)
εκτελέσετε ένα κοντέινερ που εγκαθιστά το kube-bench στον κεντρικό υπολογιστή και στη συνέχεια να εκτελέσετε το kube-bench απευθείας στον κεντρικό υπολογιστή
εγκαταστήσετε τα τελευταία δυαδικά από τη σελίδα Releases,
το συντάξετε από πηγή.
Το εργαλείο kubeaudit είναι ένα εργαλείο γραμμής εντολών και ένα πακέτο Go για audit Kubernetes clusters για διάφορες διαφορετικές ανησυχίες ασφαλείας.
Το Kubeaudit μπορεί να ανιχνεύσει αν εκτελείται μέσα σε ένα κοντέινερ σε ένα cluster. Αν ναι, θα προσπαθήσει να ελέγξει όλους τους πόρους Kubernetes σε αυτό το cluster:
Αυτό το εργαλείο έχει επίσης το επιχείρημα autofix
για να διορθώνει αυτόματα τα ανιχνευμένα προβλήματα.
Το εργαλείο kube-hunter αναζητά αδυναμίες ασφαλείας σε κλάστερ Kubernetes. Το εργαλείο αναπτύχθηκε για να αυξήσει την ευαισθητοποίηση και την ορατότητα για τα ζητήματα ασφαλείας σε περιβάλλοντα Kubernetes.
Kubei είναι ένα εργαλείο σάρωσης ευπαθειών και CIS Docker benchmark που επιτρέπει στους χρήστες να αποκτούν μια ακριβή και άμεση εκτίμηση κινδύνου για τα clusters kubernetes τους. Το Kubei σαρώνει όλες τις εικόνες που χρησιμοποιούνται σε ένα Kubernetes cluster, συμπεριλαμβανομένων των εικόνων των application pods και system pods.
KubiScan είναι ένα εργαλείο για τη σάρωση του Kubernetes cluster για επικίνδυνες άδειες στο μοντέλο εξουσιοδότησης Role-based access control (RBAC) του Kubernetes.
Mkat είναι ένα εργαλείο που έχει κατασκευαστεί για να δοκιμάσει άλλους τύπους ελέγχων υψηλού κινδύνου σε σύγκριση με τα άλλα εργαλεία. Έχει κυρίως 3 διαφορετικούς τρόπους:
find-role-relationships
: Που θα βρει ποιες ρόλοι AWS εκτελούνται σε ποια podsfind-secrets
: Που προσπαθεί να εντοπίσει μυστικά σε πόρους K8s όπως Pods, ConfigMaps και Secrets.test-imds-access
: Που θα προσπαθήσει να εκτελέσει pods και να προσπαθήσει να αποκτήσει πρόσβαση στα metadata v1 και v2. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό θα εκτελέσει ένα pod στο cluster, να είστε πολύ προσεκτικοί γιατί ίσως δεν θέλετε να το κάνετε αυτό!
Audit IaC Code
Popeye είναι ένα εργαλείο που σαρώνει το ζωντανό Kubernetes cluster και αναφέρει πιθανά προβλήματα με τους αναπτυγμένους πόρους και τις ρυθμίσεις. Καθαρίζει το cluster σας με βάση το τι είναι αναπτυγμένο και όχι το τι βρίσκεται στο δίσκο. Σαρώνοντας το cluster σας, ανιχνεύει κακές ρυθμίσεις και σας βοηθά να διασφαλίσετε ότι οι καλύτερες πρακτικές είναι σε εφαρμογή, αποτρέποντας έτσι μελλοντικούς πονοκεφάλους. Στοχεύει στη μείωση της γνωστικής _υπερφόρτωσης που αντιμετωπίζει κανείς όταν λειτουργεί ένα Kubernetes cluster στο πεδίο. Επιπλέον, αν το cluster σας χρησιμοποιεί έναν metric-server, αναφέρει πιθανά υπερβολικά/υπο-κατανεμημένα πόρους και προσπαθεί να σας προειδοποιήσει αν το cluster σας εξαντληθεί από χωρητικότητα.
KICS βρίσκει ευπάθειες ασφαλείας, ζητήματα συμμόρφωσης και κακές ρυθμίσεις υποδομής στις παρακάτω λύσεις Infrastructure as Code: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM και OpenAPI 3.0 specifications
Checkov είναι ένα εργαλείο στατικής ανάλυσης κώδικα για infrastructure-as-code.
Σαρώνει την υποδομή cloud που παρέχεται χρησιμοποιώντας Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless ή ARM Templates και ανιχνεύει κακές ρυθμίσεις ασφαλείας και συμμόρφωσης χρησιμοποιώντας σάρωση βασισμένη σε γραφήματα.
kube-score είναι ένα εργαλείο που εκτελεί στατική ανάλυση κώδικα των ορισμών αντικειμένων Kubernetes σας.
Για να εγκαταστήσετε:
Προκατασκευασμένα δυαδικά αρχεία για macOS, Linux και Windows
Docker
docker pull zegl/kube-score
(Docker Hub)
Homebrew (macOS και Linux)
brew install kube-score
Krew (macOS και Linux)
kubectl krew install score
Tips
Kubernetes PodSecurityContext και SecurityContext
Μπορείτε να ρυθμίσετε το security context των Pods (με PodSecurityContext) και των containers που πρόκειται να εκτελούνται (με SecurityContext). Για περισσότερες πληροφορίες διαβάστε:
Kubernetes SecurityContext(s)Kubernetes API Hardening
Είναι πολύ σημαντικό να προστατεύσετε την πρόσβαση στον Kubernetes Api Server καθώς ένας κακόβουλος παράγοντας με αρκετά προνόμια θα μπορούσε να είναι σε θέση να το καταχραστεί και να βλάψει το περιβάλλον με πολλούς τρόπους. Είναι σημαντικό να ασφαλίσετε τόσο την πρόσβαση (whitelist προελεύσεις για πρόσβαση στον API Server και να απορρίψετε οποιαδήποτε άλλη σύνδεση) όσο και την αυθεντικοποίηση (ακολουθώντας την αρχή της ελάχιστης εξουσίας). Και σίγουρα ποτέ μην επιτρέπετε ανώνυμες αιτήσεις.
Κοινή διαδικασία Αίτησης: Χρήστης ή K8s ServiceAccount –> Αυθεντικοποίηση –> Εξουσιοδότηση –> Έλεγχος Εισόδου.
Συμβουλές:
Κλείστε τις θύρες.
Αποφύγετε την ανώνυμη πρόσβαση.
NodeRestriction; Καμία πρόσβαση από συγκεκριμένους κόμβους στον API.
Βασικά αποτρέπει τους kubelets από το να προσθέτουν/αφαιρούν/ενημερώνουν ετικέτες με το prefix node-restriction.kubernetes.io/. Αυτό το prefix ετικέτας είναι επιφυλαγμένο για τους διαχειριστές για να ετικετοποιούν τα αντικείμενα Node τους για σκοπούς απομόνωσης φορτίου εργασίας, και οι kubelets δεν θα επιτρέπεται να τροποποιούν ετικέτες με αυτό το prefix.
Και επίσης, επιτρέπει στους kubelets να προσθέτουν/αφαιρούν/ενημερώνουν αυτές τις ετικέτες και τα prefix ετικετών.
Διασφαλίστε με ετικέτες την ασφαλή απομόνωση φορτίου εργασίας.
Αποφύγετε συγκεκριμένα pods από την πρόσβαση στο API.
Αποφύγετε την έκθεση του ApiServer στο διαδίκτυο.
Αποφύγετε την μη εξουσιοδοτημένη πρόσβαση RBAC.
Θύρα ApiServer με firewall και whitelisting IP.
SecurityContext Hardening
Από προεπιλογή, ο χρήστης root θα χρησιμοποιείται όταν ξεκινά ένα Pod αν δεν έχει καθοριστεί άλλος χρήστης. Μπορείτε να εκτελέσετε την εφαρμογή σας μέσα σε ένα πιο ασφαλές περιβάλλον χρησιμοποιώντας ένα πρότυπο παρόμοιο με το παρακάτω:
Γενική Σκληροποίηση
Πρέπει να ενημερώνετε το περιβάλλον Kubernetes σας όσο συχνά είναι απαραίτητο για να έχετε:
Εξαρτήσεις ενημερωμένες.
Διορθώσεις σφαλμάτων και ασφαλείας.
Κύκλοι κυκλοφορίας: Κάθε 3 μήνες υπάρχει μια νέα μικρή έκδοση -- 1.20.3 = 1(Μεγάλη).20(Μικρή).3(διορθωτική)
Ο καλύτερος τρόπος για να ενημερώσετε ένα Kubernetes Cluster είναι (από εδώ):
Αναβαθμίστε τα συστατικά του Master Node ακολουθώντας αυτή τη σειρά:
etcd (όλες οι περιπτώσεις).
kube-apiserver (όλοι οι ελεγκτές του ελέγχου).
kube-controller-manager.
kube-scheduler.
cloud controller manager, αν χρησιμοποιείτε ένα.
Αναβαθμίστε τα συστατικά του Worker Node όπως kube-proxy, kubelet.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated