Kubernetes Hardening
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kubescape je K8s open-source alat koji pruža multi-cloud K8s jedinstveni pregled, uključujući analizu rizika, usklađenost sa bezbednošću, vizualizator RBAC-a i skeniranje ranjivosti slika. Kubescape skenira K8s klastere, YAML datoteke i HELM šeme, otkrivajući pogrešne konfiguracije prema više okvira (kao što su NSA-CISA , MITRE ATT&CK®), softverske ranjivosti i kršenja RBAC-a (kontrola pristupa zasnovana na ulozi) u ranim fazama CI/CD pipeline-a, odmah izračunava rezultat rizika i prikazuje trendove rizika tokom vremena.
Alat kube-bench je alat koji proverava da li je Kubernetes bezbedno implementiran pokretanjem provere dokumentovanih u CIS Kubernetes Benchmark. Možete izabrati da:
pokrenete kube-bench iznutra kontejnera (deljenje PID imenskog prostora sa hostom)
pokrenete kontejner koji instalira kube-bench na hostu, a zatim pokrenete kube-bench direktno na hostu
instalirate najnovije binarne datoteke sa Releases page,
kompajlirate ga iz izvora.
Alat kubeaudit je alat za komandnu liniju i Go paket za audit Kubernetes klastera zbog različitih bezbednosnih problema.
Kubeaudit može da detektuje da li se pokreće unutar kontejnera u klasteru. Ako je tako, pokušaće da izvrši audit svih Kubernetes resursa u tom klasteru:
Ovaj alat takođe ima argument autofix
da automatski ispravi otkrivene probleme.
Alat kube-hunter traži bezbednosne slabosti u Kubernetes klasterima. Alat je razvijen da poveća svest i vidljivost o bezbednosnim problemima u Kubernetes okruženjima.
Kubei je alat za skeniranje ranjivosti i CIS Docker benchmark koji omogućava korisnicima da dobiju tačnu i trenutnu procenu rizika svojih Kubernetes klastera. Kubei skenira sve slike koje se koriste u Kubernetes klasteru, uključujući slike aplikacionih podova i sistemskih podova.
KubiScan je alat za skeniranje Kubernetes klastera za rizične dozvole u modelu autorizacije zasnovanom na rolama (RBAC) Kubernetes-a.
Mkat je alat napravljen za testiranje drugih tipova visokorizičnih provera u poređenju sa drugim alatima. Ima 3 različita moda:
find-role-relationships
: Koji će pronaći koje AWS uloge se izvršavaju u kojim podovima
find-secrets
: Koji pokušava da identifikuje tajne u K8s resursima kao što su Podovi, ConfigMaps i Secrets.
test-imds-access
: Koji će pokušati da pokrene podove i pokuša da pristupi metapodacima v1 i v2. UPOZORENJE: Ovo će pokrenuti pod u klasteru, budite veoma oprezni jer možda ne želite to da uradite!
Popeye je alat koji skenira aktivni Kubernetes klaster i izveštava o potencijalnim problemima sa raspoređenim resursima i konfiguracijama. Sanitizuje vaš klaster na osnovu onoga što je raspoređeno, a ne onoga što se nalazi na disku. Skeniranjem vašeg klastera, otkriva pogrešne konfiguracije i pomaže vam da osigurate da su najbolje prakse na snazi, čime se sprečavaju buduće glavobolje. Cilj mu je smanjenje kognitivnog _opterećenja_ s kojim se suočava kada upravlja Kubernetes klasterom u stvarnom svetu. Pored toga, ako vaš klaster koristi metric-server, izveštava o potencijalnim prekomernim/podkomernim alokacijama resursa i pokušava da vas upozori ako vaš klaster ostane bez kapaciteta.
KICS pronalazi bezbednosne ranjivosti, probleme usklađenosti i pogrešne konfiguracije infrastrukture u sledećim rešenjima infrastrukture kao koda: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM i OpenAPI 3.0 specifikacije
Checkov je alat za statičku analizu koda za infrastrukturu kao kod.
Skenira cloud infrastrukturu koja je obezbeđena koristeći Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless ili ARM Templates i otkriva bezbednosne i usklađenosti pogrešne konfiguracije koristeći skeniranje zasnovano na grafu.
kube-score je alat koji vrši statičku analizu koda vaših definicija Kubernetes objekata.
Za instalaciju:
Pre-izgrađeni binarni fajlovi za macOS, Linux i Windows
Docker
docker pull zegl/kube-score
(Docker Hub)
Homebrew (macOS i Linux)
brew install kube-score
Krew (macOS i Linux)
kubectl krew install score
Možete konfigurisati bezbednosni kontekst Podova (sa PodSecurityContext) i kontejnera koji će biti pokrenuti (sa SecurityContext). Za više informacija pročitajte:
Kubernetes SecurityContext(s)Veoma je važno zaštititi pristup Kubernetes Api Serveru jer bi zlonameran akter sa dovoljno privilegija mogao da ga zloupotrebi i na mnogo načina ošteti okruženje. Važno je osigurati i pristup (whitelist porekla za pristup API Serveru i odbiti sve druge veze) i autentifikaciju (prateći princip najmanjih privilegija). I definitivno nikada ne dozvoliti anonimne zahteve.
Uobičajen proces zahteva: Korisnik ili K8s ServiceAccount –> Autentifikacija –> Autorizacija –> Kontrola prijema.
Saveti:
Zatvorite portove.
Izbegavajte anonimni pristup.
NodeRestriction; Nema pristupa sa specifičnih čvorova do API.
U suštini sprečava kubelete da dodaju/uklanjaju/aktuelizuju oznake sa prefiksom node-restriction.kubernetes.io/. Ovaj prefiks oznake je rezervisan za administratore da označe svoje Node objekte u svrhu izolacije radnog opterećenja, a kubeleti neće moći da menjaju oznake sa tim prefiksom.
Takođe, omogućava kubeletima da dodaju/uklanjaju/aktuelizuju ove oznake i prefikse oznaka.
Osigurajte sa oznakama sigurnu izolaciju radnog opterećenja.
Izbegavajte specifične podove iz API pristupa.
Izbegavajte izlaganje ApiServer-a internetu.
Izbegavajte neovlašćen pristup RBAC.
ApiServer port sa firewall-om i IP whitelist-om.
Podrazumevano će se koristiti korisnik root kada se pod pokrene ako nije naveden nijedan drugi korisnik. Možete pokrenuti svoju aplikaciju unutar sigurnijeg konteksta koristeći šablon sličan sledećem:
Trebalo bi da ažurirate svoje Kubernetes okruženje koliko god je potrebno da imate:
Zavisnosti ažurirane.
Ispravke grešaka i bezbednosne zakrpe.
Ciklus izdanja: Svakih 3 meseca dolazi do novog manjeg izdanja -- 1.20.3 = 1(Majors).20(Minors).3(patch)
Najbolji način za ažuriranje Kubernetes klastera je (iz ovde):
Ažurirajte komponente Master Node-a prateći ovu sekvencu:
etcd (sve instance).
kube-apiserver (svi hostovi kontrolne ravni).
kube-controller-manager.
kube-scheduler.
cloud controller manager, ako ga koristite.
Ažurirajte komponente Worker Node-a kao što su 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)