Kubernetes Hardening
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Kubescape, risk analizi, güvenlik uyumluluğu, RBAC görselleştirici ve görüntü güvenlik açıkları taraması dahil olmak üzere çoklu bulut K8s tek bir görünüm sağlayan K8s açık kaynaklı bir aracıdır. Kubescape, K8s kümelerini, YAML dosyalarını ve HELM grafiklerini tarar, birden fazla çerçeveye (örneğin, NSA-CISA, MITRE ATT&CK®) göre yanlış yapılandırmaları, yazılım güvenlik açıklarını ve RBAC (rol tabanlı erişim kontrolü) ihlallerini CI/CD boru hattının erken aşamalarında tespit eder, risk puanını anında hesaplar ve zaman içindeki risk eğilimlerini gösterir.
Araç kube-bench, Kubernetes'in güvenli bir şekilde dağıtılıp dağıtılmadığını kontrol eden bir araçtır ve CIS Kubernetes Benchmark belgelerinde yer alan kontrolleri çalıştırır. Şunları seçebilirsiniz:
kube-bench'i bir konteynerin içinde çalıştırmak (ana bilgisayarla PID ad alanını paylaşarak)
ana bilgisayarda kube-bench'i kuran bir konteyner çalıştırmak ve ardından kube-bench'i doğrudan ana bilgisayarda çalıştırmak
Releases sayfasından en son ikili dosyaları kurmak,
kaynaktan derlemek.
Araç kubeaudit, çeşitli güvenlik endişeleri için Kubernetes kümelerini denetlemek amacıyla bir komut satırı aracı ve bir Go paketidir.
Kubeaudit, bir kümedeki bir konteyner içinde çalışıp çalışmadığını tespit edebilir. Eğer öyleyse, o kümedeki tüm Kubernetes kaynaklarını denetlemeye çalışacaktır:
Bu araç ayrıca tespit edilen sorunları otomatik olarak düzeltmek için autofix
argümanına sahiptir.
Araç kube-hunter, Kubernetes kümelerindeki güvenlik zayıflıklarını avlar. Araç, Kubernetes ortamlarındaki güvenlik sorunları için farkındalığı ve görünürlüğü artırmak amacıyla geliştirilmiştir.
Kubei, kullanıcıların Kubernetes kümelerinin doğru ve anlık risk değerlendirmesini almasına olanak tanıyan bir güvenlik açığı tarama ve CIS Docker benchmark aracıdır. Kubei, bir Kubernetes kümesinde kullanılan tüm görüntüleri, uygulama pod'ları ve sistem pod'ları dahil olmak üzere tarar.
KubiScan, Kubernetes'in Rol tabanlı erişim kontrolü (RBAC) yetkilendirme modelinde riskli izinler için Kubernetes kümesini tarayan bir araçtır.
Mkat, diğer araçlarla karşılaştırıldığında yüksek riskli kontrollerin test edilmesi için oluşturulmuş bir araçtır. Temelde 3 farklı moda sahiptir:
find-role-relationships
: Hangi AWS rollerinin hangi pod'larda çalıştığını bulur.
find-secrets
: Pod'lar, ConfigMap'ler ve Secrets gibi K8s kaynaklarında gizli bilgileri tanımlamaya çalışır.
test-imds-access
: Pod'ları çalıştırmaya ve metadata v1 ve v2'ye erişmeye çalışır. UYARI: Bu, kümede bir pod çalıştıracaktır, dikkatli olun çünkü bunu yapmak istemiyor olabilirsiniz!
Popeye, canlı Kubernetes kümesini tarayan ve dağıtılan kaynaklar ve yapılandırmalarla ilgili potansiyel sorunları rapor eden bir yardımcı programdır. Dağıtılanlara göre kümenizi temizler ve disk üzerinde bulunanlara göre değil. Kümenizi tarayarak, yanlış yapılandırmaları tespit eder ve en iyi uygulamaların yerinde olmasını sağlamanıza yardımcı olur, böylece gelecekteki sorunları önler. Ayrıca, kümeniz bir metric-server kullanıyorsa, potansiyel kaynak aşırı/az tahsislerini raporlar ve kümeniz kapasiteyi doldurursa sizi uyarmaya çalışır.
KICS, aşağıdaki Infrastructure as Code çözümlerinde güvenlik açıklarını, uyum sorunlarını ve altyapı yanlış yapılandırmalarını bulur: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM ve OpenAPI 3.0 spesifikasyonları.
Checkov, altyapı-as-code için statik kod analizi aracıdır.
Terraform, Terraform planı, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless veya ARM Templates kullanılarak sağlanan bulut altyapısını tarar ve grafik tabanlı tarama kullanarak güvenlik ve uyum yanlış yapılandırmalarını tespit eder.
kube-score, Kubernetes nesne tanımlarınızın statik kod analizini gerçekleştiren bir araçtır.
Kurmak için:
macOS, Linux ve Windows için önceden derlenmiş ikililer
Docker
Homebrew (macOS ve Linux)
brew install kube-score
kubectl krew install score
Pod'ların güvenlik bağlamını ( PodSecurityContext ile) ve çalıştırılacak konteynerlerin güvenlik bağlamını ( SecurityContext ile) yapılandırabilirsiniz. Daha fazla bilgi için okuyun:
Kubernetes Api Server'a erişimi korumak çok önemlidir çünkü yeterli ayrıcalıklara sahip kötü niyetli bir aktör bunu kötüye kullanabilir ve ortamda birçok şekilde zarar verebilir. Hem erişimi (API Sunucusuna erişim için beyaz liste kökenleri ve diğer tüm bağlantıları reddetmek) hem de kimlik doğrulama ( en az ayrıcalık ilkesini izleyerek) güvence altına almak önemlidir. Ve kesinlikle asla anonim isteklere izin vermeyin.
Ortak İstek süreci: Kullanıcı veya K8s ServiceAccount –> Kimlik Doğrulama –> Yetkilendirme –> Kabul Kontrolü.
İpuçları:
Portları kapatın.
Anonim erişimi önleyin.
NodeRestriction; API'ye belirli düğümlerden erişimi engelleyin.
Temelde, kubelet'lerin node-restriction.kubernetes.io/ ön eki ile etiket eklemesini/çıkarmasını/güncellemesini engeller. Bu etiket ön eki, yöneticilerin Node nesnelerini iş yükü izolasyonu amacıyla etiketlemesi için ayrılmıştır ve kubelet'lerin bu ön ekle etiketleri değiştirmesine izin verilmeyecektir.
Ayrıca, kubelet'lerin bu etiketleri ve etiket ön eklerini eklemesine/çıkarmasına/güncellemesine izin verir.
Etiketlerle güvenli iş yükü izolasyonunu sağlayın.
Belirli pod'ların API erişimini önleyin.
ApiServer'ın internete maruz kalmasını önleyin.
Yetkisiz erişim RBAC'sını önleyin.
ApiServer portunu güvenlik duvarı ve IP beyaz listesi ile koruyun.
Varsayılan olarak, başka bir kullanıcı belirtilmediğinde bir Pod başlatıldığında root kullanıcısı kullanılacaktır. Uygulamanızı daha güvenli bir bağlamda çalıştırmak için aşağıdaki gibi bir şablon kullanabilirsiniz:
Kubernetes ortamınızı, aşağıdakilere sahip olmak için gerektiği sıklıkta güncellemelisiniz:
Bağımlılıkların güncel olması.
Hata ve güvenlik yamaları.
Sürüm döngüleri: Her 3 ayda bir yeni bir küçük sürüm çıkar -- 1.20.3 = 1(Büyük).20(Küçük).3(yama)
Kubernetes Kümesini güncellemenin en iyi yolu (şuradan buraya):
Master Node bileşenlerini şu sırayla yükseltin:
etcd (tüm örnekler).
kube-apiserver (tüm kontrol düzlemi sunucuları).
kube-controller-manager.
kube-scheduler.
bir tane kullanıyorsanız cloud controller manager.
kube-proxy, kubelet gibi Worker Node bileşenlerini yükseltin.
docker pull zegl/kube-score
()
(macOS ve Linux)
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)