mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-04-28 20:08:49 -07:00
Translated ['', 'src/pentesting-cloud/kubernetes-security/kubernetes-har
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
|
||||
## Εργαλεία για ανάλυση ενός cluster
|
||||
|
||||
### [**Steampipe - Kubernetes Compliance](https://github.com/turbot/steampipe-mod-kubernetes-compliance)
|
||||
### [Steampipe - Kubernetes Compliance](https://github.com/turbot/steampipe-mod-kubernetes-compliance)
|
||||
|
||||
Θα **εκτελέσει αρκετούς ελέγχους συμμόρφωσης πάνω στο Kubernetes cluster**. Περιλαμβάνει υποστήριξη για CIS, Εθνική Υπηρεσία Ασφαλείας (NSA) και την Υπηρεσία Κυβερνοασφάλειας και Ασφάλειας Υποδομών (CISA) τεχνική αναφορά για την ενίσχυση της ασφάλειας του Kubernetes.
|
||||
Εκτελεί **πολλούς ελέγχους συμμόρφωσης στο Kubernetes cluster**. Περιλαμβάνει υποστήριξη για τα πρότυπα CIS, καθώς και για τις οδηγίες της National Security Agency (NSA) και της Cybersecurity and Infrastructure Security Agency (CISA) σχετικά με το hardening του Kubernetes.
|
||||
```bash
|
||||
# Install Steampipe
|
||||
brew install turbot/tap/powerpipe
|
||||
@@ -27,130 +27,176 @@ powerpipe server
|
||||
```
|
||||
### [**Kubescape**](https://github.com/armosec/kubescape)
|
||||
|
||||
[**Kubescape**](https://github.com/armosec/kubescape) είναι ένα εργαλείο ανοιχτού κώδικα K8s που παρέχει μια ενιαία οθόνη πολλαπλών σύννεφων K8s, συμπεριλαμβανομένης της ανάλυσης κινδύνου, της συμμόρφωσης ασφαλείας, του οπτικοποιητή RBAC και της σάρωσης ευπαθειών εικόνας. Το Kubescape σαρώνει τα K8s clusters, τα αρχεία YAML και τα HELM charts, ανιχνεύοντας κακοδιαμορφώσεις σύμφωνα με πολλαπλά πλαίσια (όπως το [NSA-CISA](https://www.armosec.io/blog/kubernetes-hardening-guidance-summary-by-armo) , [MITRE ATT\&CK®](https://www.microsoft.com/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat-matrix-for-kubernetes/)), ευπάθειες λογισμικού και παραβιάσεις RBAC (role-based-access-control) σε πρώιμα στάδια της CI/CD pipeline, υπολογίζει άμεσα το σκορ κινδύνου και δείχνει τις τάσεις κινδύνου με την πάροδο του χρόνου.
|
||||
[**Kubescape**](https://github.com/armosec/kubescape) είναι ένα K8s open-source εργαλείο που παρέχει ένα multi-cloud K8s single pane of glass, περιλαμβάνοντας ανάλυση κινδύνου, security compliance, RBAC visualizer και image vulnerabilities scanning. Το Kubescape σαρώνει K8s clusters, YAML αρχεία και HELM charts, εντοπίζοντας misconfigurations σύμφωνα με πολλαπλά frameworks (όπως τα [NSA-CISA](https://www.armosec.io/blog/kubernetes-hardening-guidance-summary-by-armo) , [MITRE ATT\&CK®](https://www.microsoft.com/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat-matrix-for-kubernetes/)), ευπάθειες λογισμικού και παραβάσεις RBAC (role-based-access-control) σε πρώιμα στάδια του CI/CD pipeline, υπολογίζει άμεσα το risk score και εμφανίζει τις τάσεις κινδύνου με την πάροδο του χρόνου.
|
||||
```bash
|
||||
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
|
||||
kubescape scan --verbose
|
||||
```
|
||||
### [**Popeye**](https://github.com/derailed/popeye)
|
||||
|
||||
[**Popeye**](https://github.com/derailed/popeye) είναι ένα εργαλείο που σκανάρει ζωντανά Kubernetes clusters και **αναφέρει πιθανά προβλήματα με τους αναπτυγμένους πόρους και τις ρυθμίσεις**. Καθαρίζει το cluster σας με βάση το τι είναι αναπτυγμένο και όχι το τι βρίσκεται στον δίσκο. Σαρώνοντας το cluster σας, ανιχνεύει κακές ρυθμίσεις και σας βοηθά να διασφαλίσετε ότι οι καλύτερες πρακτικές είναι σε εφαρμογή, αποτρέποντας έτσι μελλοντικά προβλήματα. Στοχεύει στη μείωση της γνωστικής \_over_load που αντιμετωπίζει κανείς όταν λειτουργεί ένα Kubernetes cluster σε πραγματικές συνθήκες. Επιπλέον, αν το cluster σας χρησιμοποιεί έναν metric-server, αναφέρει πιθανά υπερβολικά/υπο-κατανεμημένα πόρους και προσπαθεί να σας προειδοποιήσει αν το cluster σας εξαντληθεί από χωρητικότητα.
|
||||
[**Popeye**](https://github.com/derailed/popeye) είναι ένα utility που σαρώνει live Kubernetes cluster και **αναφέρει πιθανά προβλήματα με τους αναπτυγμένους πόρους και τις διαμορφώσεις**. Καθαρίζει το cluster σας βασιζόμενο σε αυτό που είναι αναπτυγμένο και όχι σε αυτό που βρίσκεται στο δίσκο. Σαρώνοντας το cluster σας, εντοπίζει misconfigurations και σας βοηθά να διασφαλίσετε ότι οι βέλτιστες πρακτικές εφαρμόζονται, προλαμβάνοντας μελλοντικούς πονοκεφάλους. Στοχεύει στη μείωση του γνωστικού \_φορτίου που αντιμετωπίζει κανείς όταν λειτουργεί ένα Kubernetes cluster στο wild. Επιπλέον, αν το cluster σας χρησιμοποιεί metric-server, αναφέρει πιθανές υπερ/υπο-εκχωρήσεις πόρων και προσπαθεί να σας προειδοποιήσει σε περίπτωση που το cluster σας εξαντλήσει τη χωρητικότητα.
|
||||
|
||||
### [**Kube-bench**](https://github.com/aquasecurity/kube-bench)
|
||||
|
||||
Το εργαλείο [**kube-bench**](https://github.com/aquasecurity/kube-bench) είναι ένα εργαλείο που ελέγχει αν το Kubernetes είναι αναπτυγμένο με ασφάλεια εκτελώντας τους ελέγχους που τεκμηριώνονται στο [**CIS Kubernetes Benchmark**](https://www.cisecurity.org/benchmark/kubernetes/).\
|
||||
The tool [**kube-bench**](https://github.com/aquasecurity/kube-bench) is a tool that checks whether Kubernetes is deployed securely by running the checks documented in the [**CIS Kubernetes Benchmark**].\
|
||||
Μπορείτε να επιλέξετε να:
|
||||
|
||||
- εκτελέσετε το kube-bench από μέσα σε ένα container (μοιράζοντας το PID namespace με τον host)
|
||||
- εκτελέσετε ένα container που εγκαθιστά το kube-bench στον host, και στη συνέχεια να εκτελέσετε το kube-bench απευθείας στον host
|
||||
- εγκαταστήσετε τα τελευταία binaries από τη [σελίδα Releases](https://github.com/aquasecurity/kube-bench/releases),
|
||||
- το συντάξετε από πηγή.
|
||||
- τρέξετε kube-bench από μέσα σε ένα container (μοιράζοντας το PID namespace με το host)
|
||||
- τρέξετε ένα container που εγκαθιστά το kube-bench στο host, και στη συνέχεια να τρέξετε το kube-bench απευθείας στο host
|
||||
- εγκαταστήσετε τα τελευταία binaries από τη [Releases page](https://github.com/aquasecurity/kube-bench/releases),
|
||||
- κάνετε compile από το source.
|
||||
|
||||
### [**Kubeaudit**](https://github.com/Shopify/kubeaudit)
|
||||
|
||||
**[DEPRECATED]** Το εργαλείο [**kubeaudit**](https://github.com/Shopify/kubeaudit) είναι ένα εργαλείο γραμμής εντολών και ένα πακέτο Go για **έλεγχο των Kubernetes clusters** για διάφορες διαφορετικές ανησυχίες ασφαλείας.
|
||||
**[DEPRECATED]** Το εργαλείο [**kubeaudit**](https://github.com/Shopify/kubeaudit) είναι ένα command line tool και ένα πακέτο Go για να **ελέγχει Kubernetes clusters** για διάφορα ζητήματα ασφάλειας.
|
||||
|
||||
Το Kubeaudit μπορεί να ανιχνεύσει αν εκτελείται μέσα σε ένα container σε ένα cluster. Αν ναι, θα προσπαθήσει να ελέγξει όλους τους πόρους Kubernetes σε αυτό το cluster:
|
||||
Το Kubeaudit μπορεί να ανιχνεύσει αν τρέχει μέσα σε ένα container σε ένα cluster. Αν ναι, θα προσπαθήσει να ελέγξει όλους τους Kubernetes πόρους σε αυτό το cluster:
|
||||
```
|
||||
kubeaudit all
|
||||
```
|
||||
Αυτό το εργαλείο έχει επίσης το επιχείρημα `autofix` για **αυτόματη διόρθωση ανιχνευμένων προβλημάτων.**
|
||||
Αυτό το εργαλείο έχει επίσης το όρισμα `autofix` για **αυτόματη διόρθωση των εντοπισμένων προβλημάτων.**
|
||||
|
||||
### [**Kube-hunter**](https://github.com/aquasecurity/kube-hunter)
|
||||
|
||||
**[DEPRECATED]** Το εργαλείο [**kube-hunter**](https://github.com/aquasecurity/kube-hunter) αναζητά αδυναμίες ασφαλείας σε κλάστερ Kubernetes. Το εργαλείο αναπτύχθηκε για να αυξήσει την ευαισθητοποίηση και την ορατότητα για ζητήματα ασφαλείας σε περιβάλλοντα Kubernetes.
|
||||
**[DEPRECATED]** Το εργαλείο [**kube-hunter**](https://github.com/aquasecurity/kube-hunter) ανιχνεύει αδυναμίες ασφαλείας σε Kubernetes clusters. Το εργαλείο αναπτύχθηκε για να αυξήσει την ευαισθητοποίηση και την ορατότητα για ζητήματα ασφαλείας σε περιβάλλοντα Kubernetes.
|
||||
```bash
|
||||
kube-hunter --remote some.node.com
|
||||
```
|
||||
### [Trivy](https://github.com/aquasecurity/trivy)
|
||||
|
||||
[Trivy](https://github.com/aquasecurity/trivy) έχει σαρωτές που αναζητούν ζητήματα ασφάλειας και στόχους όπου μπορεί να βρει αυτά τα ζητήματα:
|
||||
[Trivy](https://github.com/aquasecurity/trivy) διαθέτει σαρωτές που αναζητούν θέματα ασφάλειας και στόχους όπου μπορεί να εντοπίσει αυτά τα ζητήματα:
|
||||
|
||||
- Εικόνα κοντέινερ
|
||||
- Σύστημα αρχείων
|
||||
- Αποθετήριο Git (απομακρυσμένο)
|
||||
- Εικόνα εικονικής μηχανής
|
||||
- Εικόνα container
|
||||
- Filesystem
|
||||
- Αποθετήριο Git (remote)
|
||||
- Εικόνα Virtual Machine
|
||||
- Kubernetes
|
||||
|
||||
|
||||
### [**Kubei**](https://github.com/Erezf-p/kubei)
|
||||
|
||||
**[Φαίνεται ότι δεν συντηρείται]**
|
||||
**[Φαίνεται μη συντηρούμενο]**
|
||||
|
||||
[**Kubei**](https://github.com/Erezf-p/kubei) είναι ένα εργαλείο σάρωσης ευπαθειών και CIS Docker benchmark που επιτρέπει στους χρήστες να αποκτούν μια ακριβή και άμεση εκτίμηση κινδύνου των κλάστερ Kubernetes τους. Το Kubei σαρώσει όλες τις εικόνες που χρησιμοποιούνται σε ένα κλάστερ Kubernetes, συμπεριλαμβανομένων των εικόνων των pods εφαρμογών και των pods συστήματος.
|
||||
[**Kubei**](https://github.com/Erezf-p/kubei) είναι ένα εργαλείο σάρωσης ευπαθειών και CIS Docker benchmark που επιτρέπει στους χρήστες να λάβουν μια ακριβή και άμεση εκτίμηση κινδύνου των Kubernetes clusters τους. Το Kubei σαρώνει όλες τις εικόνες που χρησιμοποιούνται σε ένα cluster Kubernetes, συμπεριλαμβανομένων των εικόνων των application pods και system pods.
|
||||
|
||||
### [**KubiScan**](https://github.com/cyberark/KubiScan)
|
||||
|
||||
[**KubiScan**](https://github.com/cyberark/KubiScan) είναι ένα εργαλείο για τη σάρωση του κλάστερ Kubernetes για επικίνδυνες άδειες στο μοντέλο εξουσιοδότησης Role-based access control (RBAC) του Kubernetes.
|
||||
[**KubiScan**](https://github.com/cyberark/KubiScan) είναι ένα εργαλείο για σάρωση cluster Kubernetes για επικίνδυνα δικαιώματα στο μοντέλο εξουσιοδότησης Role-based access control (RBAC) του Kubernetes.
|
||||
|
||||
### [Managed Kubernetes Auditing Toolkit](https://github.com/DataDog/managed-kubernetes-auditing-toolkit)
|
||||
|
||||
[**Mkat**](https://github.com/DataDog/managed-kubernetes-auditing-toolkit) είναι ένα εργαλείο που έχει κατασκευαστεί για να δοκιμάσει άλλους τύπους ελέγχων υψηλού κινδύνου σε σύγκριση με τα άλλα εργαλεία. Έχει κυρίως 3 διαφορετικούς τρόπους:
|
||||
[**Mkat**](https://github.com/DataDog/managed-kubernetes-auditing-toolkit) είναι ένα εργαλείο φτιαγμένο για να ελέγχει άλλου τύπου ελέγχους υψηλού κινδύνου σε σύγκριση με τα άλλα εργαλεία. Κυρίως έχει 3 διαφορετικές λειτουργίες:
|
||||
|
||||
- **`find-role-relationships`**: Που θα βρει ποιες ρόλοι AWS εκτελούνται σε ποια pods
|
||||
- **`find-secrets`**: Που προσπαθεί να εντοπίσει μυστικά σε πόρους K8s όπως Pods, ConfigMaps και Secrets.
|
||||
- **`test-imds-access`**: Που θα προσπαθήσει να εκτελέσει pods και να προσπαθήσει να αποκτήσει πρόσβαση στα μεταδεδομένα v1 και v2. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό θα εκτελέσει ένα pod στο κλάστερ, να είστε πολύ προσεκτικοί γιατί ίσως δεν θέλετε να το κάνετε αυτό!
|
||||
- **`find-role-relationships`**: Θα βρει ποιες AWS roles τρέχουν σε ποια pods
|
||||
- **`find-secrets`**: Προσπαθεί να εντοπίσει secrets σε K8s resources όπως Pods, ConfigMaps, και Secrets.
|
||||
- **`test-imds-access`**: Θα προσπαθήσει να τρέξει pods και να προσπελάσει το metadata v1 και v2. WARNING: Αυτό θα τρέξει ένα pod στο cluster — να είστε πολύ προσεκτικοί γιατί ίσως να μην θέλετε να το κάνετε!
|
||||
|
||||
## **Audit IaC Code**
|
||||
## **Έλεγχος IaC Κώδικα**
|
||||
|
||||
### [**KICS**](https://github.com/Checkmarx/kics)
|
||||
|
||||
[**KICS**](https://github.com/Checkmarx/kics) βρίσκει **ευπάθειες ασφαλείας**, ζητήματα συμμόρφωσης και κακοδιαρθρώσεις υποδομής στις παρακάτω **λύσεις Infrastructure as Code**: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM και προδιαγραφές OpenAPI 3.0
|
||||
[**KICS**](https://github.com/Checkmarx/kics) εντοπίζει **security vulnerabilities**, ζητήματα συμμόρφωσης και λανθασμένες ρυθμίσεις υποδομής στα ακόλουθα **Infrastructure as Code solutions**: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, και προδιαγραφές OpenAPI 3.0
|
||||
|
||||
### [**Checkov**](https://github.com/bridgecrewio/checkov)
|
||||
|
||||
[**Checkov**](https://github.com/bridgecrewio/checkov) είναι ένα εργαλείο στατικής ανάλυσης κώδικα για infrastructure-as-code.
|
||||
|
||||
Σαρώσει την υποδομή του cloud που έχει παρασχεθεί χρησιμοποιώντας [Terraform](https://terraform.io), σχέδιο Terraform, [Cloudformation](https://aws.amazon.com/cloudformation/), [AWS SAM](https://aws.amazon.com/serverless/sam/), [Kubernetes](https://kubernetes.io), [Dockerfile](https://www.docker.com), [Serverless](https://www.serverless.com) ή [ARM Templates](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) και ανιχνεύει κακοδιαρθρώσεις ασφαλείας και συμμόρφωσης χρησιμοποιώντας σάρωση βασισμένη σε γράφους.
|
||||
Σαρώει υποδομή cloud που έχει προμηθευτεί χρησιμοποιώντας [Terraform](https://terraform.io), Terraform plan, [Cloudformation](https://aws.amazon.com/cloudformation/), [AWS SAM](https://aws.amazon.com/serverless/sam/), [Kubernetes](https://kubernetes.io), [Dockerfile](https://www.docker.com), [Serverless](https://www.serverless.com) ή [ARM Templates](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) και εντοπίζει security και compliance misconfigurations χρησιμοποιώντας graph-based scanning.
|
||||
|
||||
### [**Kube-score**](https://github.com/zegl/kube-score)
|
||||
|
||||
[**kube-score**](https://github.com/zegl/kube-score) είναι ένα εργαλείο που εκτελεί στατική ανάλυση κώδικα των ορισμών αντικειμένων Kubernetes σας.
|
||||
[**kube-score**](https://github.com/zegl/kube-score) είναι ένα εργαλείο που εκτελεί στατική ανάλυση κώδικα των ορισμών αντικειμένων Kubernetes.
|
||||
|
||||
Για να εγκαταστήσετε:
|
||||
Για εγκατάσταση:
|
||||
|
||||
| Διανομή | Εντολή / Σύνδεσμος |
|
||||
| --------------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Προκατασκευασμένα δυαδικά αρχεία για macOS, Linux και Windows | [GitHub releases](https://github.com/zegl/kube-score/releases) |
|
||||
| Docker | `docker pull zegl/kube-score` ([Docker Hub)](https://hub.docker.com/r/zegl/kube-score/) |
|
||||
| Homebrew (macOS και Linux) | `brew install kube-score` |
|
||||
| [Krew](https://krew.sigs.k8s.io/) (macOS και Linux) | `kubectl krew install score` |
|
||||
| Distribution | Command / Link |
|
||||
| --------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| Pre-built binaries for macOS, Linux, and Windows | [GitHub releases](https://github.com/zegl/kube-score/releases) |
|
||||
| Docker | `docker pull zegl/kube-score` ([Docker Hub)](https://hub.docker.com/r/zegl/kube-score/) |
|
||||
| Homebrew (macOS and Linux) | `brew install kube-score` |
|
||||
| [Krew](https://krew.sigs.k8s.io/) (macOS and Linux) | `kubectl krew install score` |
|
||||
|
||||
## Tips
|
||||
## Εργαλεία για ανάλυση αρχείων YAML & Helm Charts
|
||||
|
||||
### [**Kube-linter**](https://github.com/stackrox/kube-linter)
|
||||
```bash
|
||||
# Install Kube-linter
|
||||
brew install kube-linter
|
||||
|
||||
# Run Kube-linter
|
||||
## lint ./path/to/yaml/or/chart
|
||||
```
|
||||
### [Checkov](https://github.com/bridgecrewio/checkov)
|
||||
```bash
|
||||
# Install Checkov
|
||||
pip install checkov
|
||||
|
||||
# Run Checkov
|
||||
checkov -d ./path/to/yaml/or/chart
|
||||
```
|
||||
### [kube‑score](https://github.com/zegl/kube-score)
|
||||
```bash
|
||||
# Install kube-score
|
||||
brew install kube-score
|
||||
|
||||
# Run kube-score
|
||||
kube-score score ./path/to/yaml
|
||||
# or
|
||||
helm template chart /path/to/chart | kube-score score -
|
||||
# or if the chart needs some values
|
||||
helm template chart /path/to/chart \
|
||||
--set 'config.urls[0]=https://dummy.backend.internal' \
|
||||
| kube-score score -
|
||||
```
|
||||
### [Kubesec](https://github.com/controlplaneio/kubesec)
|
||||
```bash
|
||||
# Install Kubesec
|
||||
## Download from https://github.com/controlplaneio/kubesec/releases
|
||||
|
||||
# Run Kubesec in a yaml
|
||||
kubesec scan ./path/to/yaml
|
||||
# or
|
||||
helm template chart /path/to/chart | kubesec scan -
|
||||
# or if the chart needs some values
|
||||
helm template chart /path/to/chart \
|
||||
--set 'config.urls[0]=https://dummy.backend.internal' \
|
||||
| kubesec scan -
|
||||
```
|
||||
## Συμβουλές
|
||||
|
||||
### Kubernetes PodSecurityContext και SecurityContext
|
||||
|
||||
Μπορείτε να διαμορφώσετε το **security context των Pods** (με _PodSecurityContext_) και των **κοντέινερ** που πρόκειται να εκτελούνται (με _SecurityContext_). Για περισσότερες πληροφορίες διαβάστε:
|
||||
Μπορείτε να διαμορφώσετε το **security context των Pods** (με _PodSecurityContext_) και των **containers** που θα εκτελεστούν (με _SecurityContext_). Για περισσότερες πληροφορίες διαβάστε:
|
||||
|
||||
{{#ref}}
|
||||
kubernetes-securitycontext-s.md
|
||||
{{#endref}}
|
||||
|
||||
### Kubernetes API Hardening
|
||||
### Ενίσχυση ασφάλειας του Kubernetes API
|
||||
|
||||
Είναι πολύ σημαντικό να **προστατεύσετε την πρόσβαση στον Kubernetes Api Server** καθώς ένας κακόβουλος παράγοντας με αρκετά προνόμια θα μπορούσε να είναι σε θέση να το καταχραστεί και να προκαλέσει ζημιά με πολλούς τρόπους στο περιβάλλον.\
|
||||
Είναι σημαντικό να ασφαλίσετε τόσο την **πρόσβαση** (**whitelist** προελεύσεις για πρόσβαση στον API Server και να απορρίψετε οποιαδήποτε άλλη σύνδεση) όσο και την [**αυθεντικοποίηση**](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/) (ακολουθώντας την αρχή της **ελάχιστης** **εξουσίας**). Και σίγουρα **ποτέ** **μην** **επιτρέπετε** **ανώνυμες** **αιτήσεις**.
|
||||
Είναι πολύ σημαντικό να **προστατεύσετε την πρόσβαση στο Kubernetes Api Server** καθώς ένας κακόβουλος παράγοντας με επαρκή δικαιώματα θα μπορούσε να το καταχραστεί και να βλάψει με πολλούς τρόπους το περιβάλλον.\
|
||||
Είναι σημαντικό να ασφαλίσετε τόσο την **πρόσβαση** (**whitelist** origins για πρόσβαση στον API Server και να απορρίπτετε οποιαδήποτε άλλη σύνδεση) όσο και την [**authentication**](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/) (ακολουθώντας την αρχή του **ελαχίστου** **δικαιώματος**). Και σίγουρα **μην** **επιτρέπετε** **ποτέ** **ανώνυμα** **αιτήματα**.
|
||||
|
||||
**Κοινή διαδικασία Αίτησης:**\
|
||||
Χρήστης ή K8s ServiceAccount –> Αυθεντικοποίηση –> Εξουσιοδότηση –> Έλεγχος Εισόδου.
|
||||
**Συνήθης ροή αιτήματος:**\
|
||||
User or K8s ServiceAccount –> Authentication –> Authorization –> Admission Control.
|
||||
|
||||
**Συμβουλές**:
|
||||
|
||||
- Κλείστε τις θύρες.
|
||||
- Αποφύγετε την ανώνυμη πρόσβαση.
|
||||
- NodeRestriction; Καμία πρόσβαση από συγκεκριμένους κόμβους στον API.
|
||||
- NodeRestriction; Χωρίς πρόσβαση από συγκεκριμένους nodes στο API.
|
||||
- [https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction)
|
||||
- Βασικά αποτρέπει τους kubelets από το να προσθέτουν/αφαιρούν/ενημερώνουν ετικέτες με ένα prefix node-restriction.kubernetes.io/. Αυτό το prefix ετικέτας είναι επιφυλαγμένο για τους διαχειριστές για να ετικετοποιούν τα αντικείμενα Node τους για σκοπούς απομόνωσης φορτίου εργασίας, και οι kubelets δεν θα επιτρέπεται να τροποποιούν ετικέτες με αυτό το prefix.
|
||||
- Και επίσης, επιτρέπει στους kubelets να προσθέτουν/αφαιρούν/ενημερώνουν αυτές τις ετικέτες και τα prefix ετικετών.
|
||||
- Διασφαλίστε με ετικέτες την ασφαλή απομόνωση φορτίου εργασίας.
|
||||
- Αποφύγετε συγκεκριμένα pods από την πρόσβαση στο API.
|
||||
- Αποφύγετε την έκθεση του ApiServer στο διαδίκτυο.
|
||||
- Αποφύγετε την μη εξουσιοδοτημένη πρόσβαση RBAC.
|
||||
- Θύρα ApiServer με τείχος προστασίας και whitelist IP.
|
||||
- Βασικά αποτρέπει τα kubelets από το να προσθέτουν/αφαιρούν/ενημερώνουν labels με το prefix node-restriction.kubernetes.io/. Αυτό το prefix είναι δεσμευμένο για τους administrators ώστε να επισημαίνουν τα Node αντικείμενά τους για σκοπούς απομόνωσης workload, και τα kubelets δεν θα επιτρέπεται να τροποποιούν labels με αυτό το prefix.
|
||||
- Επιπλέον, επιτρέπει στα kubelets να προσθέτουν/αφαιρούν/ενημερώνουν αυτά τα labels και τα αντίστοιχα prefix.
|
||||
- Διασφαλίστε με labels την ασφαλή απομόνωση workload.
|
||||
- Αποτρέψτε συγκεκριμένα pods από την πρόσβαση στο API.
|
||||
- Αποφύγετε την έκθεση του ApiServer στο internet.
|
||||
- Αποφύγετε μη εξουσιοδοτημένη πρόσβαση μέσω RBAC.
|
||||
- Βάλτε την θύρα του ApiServer πίσω από firewall και whitelist διευθύνσεων IP.
|
||||
|
||||
### SecurityContext Hardening
|
||||
|
||||
Από προεπιλογή, ο χρήστης root θα χρησιμοποιείται όταν ξεκινά ένα Pod αν δεν έχει καθοριστεί άλλος χρήστης. Μπορείτε να εκτελέσετε την εφαρμογή σας μέσα σε ένα πιο ασφαλές περιβάλλον χρησιμοποιώντας ένα πρότυπο παρόμοιο με το παρακάτω:
|
||||
Εξ ορισμού ο χρήστης root θα χρησιμοποιείται όταν ένα Pod ξεκινάει εάν δεν έχει οριστεί άλλος χρήστης. Μπορείτε να τρέξετε την εφαρμογή σας μέσα σε ένα πιο ασφαλές context χρησιμοποιώντας ένα πρότυπο παρόμοιο με το ακόλουθο:
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
@@ -179,30 +225,30 @@ allowPrivilegeEscalation: true
|
||||
- [https://kubernetes.io/docs/tasks/configure-pod-container/security-context/](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
|
||||
- [https://kubernetes.io/docs/concepts/policy/pod-security-policy/](https://kubernetes.io/docs/concepts/policy/pod-security-policy/)
|
||||
|
||||
### Γενική Σκληροποίηση
|
||||
### Γενική Σκληρυνση
|
||||
|
||||
Πρέπει να ενημερώνετε το περιβάλλον Kubernetes σας όσο συχνά είναι απαραίτητο για να έχετε:
|
||||
Πρέπει να ενημερώνετε το περιβάλλον Kubernetes όσο συχνά χρειάζεται ώστε να έχει:
|
||||
|
||||
- Εξαρτήσεις ενημερωμένες.
|
||||
- Διορθώσεις σφαλμάτων και ασφαλείας.
|
||||
- Ενημερωμένες εξαρτήσεις.
|
||||
- Διορθώσεις σφαλμάτων και ενημερώσεις ασφάλειας.
|
||||
|
||||
[**Κύκλοι κυκλοφορίας**](https://kubernetes.io/docs/setup/release/version-skew-policy/): Κάθε 3 μήνες υπάρχει μια νέα μικρή κυκλοφορία -- 1.20.3 = 1(Μεγάλο).20(Μικρό).3(διορθωτική)
|
||||
[**Release cycles**](https://kubernetes.io/docs/setup/release/version-skew-policy/): Κάθε 3 μήνες υπάρχει μια νέα δευτερεύουσα έκδοση -- 1.20.3 = 1(Κύρια).20(Δευτερεύουσα).3(διόρθωση)
|
||||
|
||||
**Ο καλύτερος τρόπος για να ενημερώσετε ένα Kubernetes Cluster είναι (από** [**εδώ**](https://kubernetes.io/docs/tasks/administer-cluster/cluster-upgrade/)**):**
|
||||
**Ο καλύτερος τρόπος για να ενημερώσετε ένα Kubernetes Cluster είναι (από** [**here**](https://kubernetes.io/docs/tasks/administer-cluster/cluster-upgrade/)**):**
|
||||
|
||||
- Αναβαθμίστε τα συστατικά του Master Node ακολουθώντας αυτή τη σειρά:
|
||||
- Αναβαθμίστε τα components του Master Node ακολουθώντας αυτή τη σειρά:
|
||||
- etcd (όλες οι περιπτώσεις).
|
||||
- kube-apiserver (όλοι οι κεντρικοί υπολογιστές ελέγχου).
|
||||
- kube-apiserver (όλοι οι hosts του control plane).
|
||||
- kube-controller-manager.
|
||||
- kube-scheduler.
|
||||
- cloud controller manager, αν χρησιμοποιείτε.
|
||||
- Αναβαθμίστε τα συστατικά του Worker Node όπως kube-proxy, kubelet.
|
||||
- cloud controller manager, αν χρησιμοποιείτε κάποιο.
|
||||
- Αναβαθμίστε τα components των Worker Node όπως kube-proxy, kubelet.
|
||||
|
||||
## Παρακολούθηση & ασφάλεια Kubernetes:
|
||||
|
||||
- Kyverno Policy Engine
|
||||
- Cilium Tetragon - eBPF-based Security Observability and Runtime Enforcement
|
||||
- Πολιτικές Ασφαλείας Δικτύου
|
||||
- Falco - Παρακολούθηση & ανίχνευση ασφάλειας σε πραγματικό χρόνο
|
||||
- Cilium Tetragon - Παρατηρησιμότητα ασφάλειας και επιβολή σε χρόνο εκτέλεσης βασισμένη σε eBPF
|
||||
- Network Security Policies
|
||||
- Falco - Παρακολούθηση ασφάλειας σε χρόνο εκτέλεσης & ανίχνευση
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user