Kubernetes Hardening
Alati za analizu klastera
Kubescape je K8s open-source alat koji pruža višemrežni K8s pregled, uključujući analizu rizika, usklađenost sa bezbednosnim standardima, vizualizaciju RBAC-a i skeniranje ranjivosti slika. Kubescape skenira K8s klustere, YAML fajlove i HELM grafikone, otkrivajući netačne konfiguracije prema više okvira (kao što su NSA-CISA, MITRE ATT&CK®), softverske ranjivosti i povrede RBAC (role-based-access-control) na ranim fazama CI/CD pipeline-a, trenutno izračunava ocenu rizika i prikazuje trendove rizika tokom vremena.
Alatka kube-bench je alatka koja proverava da li je Kubernetes bezbedno implementiran pokretanjem provera dokumentovanih u CIS Kubernetes Benchmark. Možete izabrati da:
pokrenete kube-bench iznutra kontejnera (deljenje PID namespace-a sa hostom)
pokrenete kontejner koji instalira kube-bench na hostu, a zatim pokrenete kube-bench direktno na hostu
instalirate najnovije binarne datoteke sa stranice za izdanja,
kompajlirate ga iz izvornog koda.
Alatka kubeaudit je alatka komandne linije i Go paket za proveru Kubernetes klastera u vezi sa različitim sigurnosnim pitanjima.
Kubeaudit može otkriti da li se izvršava unutar kontejnera u klasteru. Ako je tako, pokušaće da proveri sve Kubernetes resurse u tom klasteru:
Ovaj alat takođe ima argument autofix
za automatsko popravljanje otkrivenih problema.
Alat kube-hunter traži sigurnosne slabosti u Kubernetes klasterima. Alat je razvijen kako bi povećao svijest i vidljivost sigurnosnih problema u Kubernetes okruženjima.
Kubei je alat za skeniranje ranjivosti i CIS Docker benchmark koji korisnicima omogućava tačnu i trenutnu procenu rizika njihovih 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 u potrazi za rizičnim dozvolama u Kubernetes-ovom modelu autorizacije zasnovanom na ulogama (RBAC).
Provera koda IaC
Popeye je alat koji skenira živi Kubernetes klaster i izveštava o potencijalnim problemima sa implementiranim resursima i konfiguracijama. On čisti vaš klaster na osnovu onoga što je implementirano, a ne onoga što se nalazi na disku. Skeniranjem klastera, otkriva netačne konfiguracije i pomaže vam da se uverite da su primenjene najbolje prakse, čime se sprečavaju budući problemi. Cilj mu je smanjenje kognitivnog opterećenja sa kojim se suočavate prilikom upravljanja Kubernetes klasterom u stvarnom okruženju. Takođe, ako vaš klaster koristi metrički server, izveštava o potencijalnom prekoračenju ili nedovoljnom dodeljivanju resursa i upozorava vas ako klaster ostane bez kapaciteta.
KICS pronalazi bezbednosne ranjivosti, probleme usaglašenosti i netačne konfiguracije infrastrukture u sledećim rešenjima Infrastructure as Code: 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.
On skenira cloud infrastrukturu koja je implementirana korišćenjem Terraforma, Terraform plana, Cloudformationa, AWS SAM-a, Kubernetesa, Dockerfile-a, Serverless-a ili ARM šablona i otkriva netačne konfiguracije bezbednosti i usaglašenosti korišćenjem grafičke analize.
kube-score je alat koji vrši statičku analizu koda vaših definicija objekata u Kubernetes-u.
Za instalaciju:
Distribucija | Komanda / Link |
---|---|
Pre-built binarije za macOS, Linux i Windows | |
Docker |
|
Homebrew (macOS i Linux) |
|
Krew (macOS i Linux) |
|
Saveti
Kubernetes PodSecurityContext i SecurityContext
Možete konfigurisati bezbednosni kontekst podova (pomoću PodSecurityContext) i kontejnera koji će se pokrenuti (pomoću SecurityContext). Za više informacija pročitajte:
Kubernetes SecurityContext(s)Ojačavanje Kubernetes API-ja
Veoma je važno zaštititi pristup Kubernetes API serveru, jer zlonamerni korisnik sa dovoljnim privilegijama može zloupotrebiti pristup i naneti štetu okruženju na mnogo načina. Važno je obezbediti i pristup (dozvoliti samo određenim izvorima pristup API serveru i zabraniti sve ostale veze) i autentifikaciju (prateći princip najmanjih privilegija). I definitivno nikada ne dozvoljavajte anonimne zahteve.
Uobičajeni proces zahteva: Korisnik ili K8s ServiceAccount –> Autentifikacija –> Autorizacija –> Kontrola prijema.
Saveti:
Zatvorite portove.
Izbegavajte anonimni pristup.
NodeRestriction; Nema pristupa sa određenih čvorova API-ju.
Osnovno sprečava kubelete da dodaju/uklanjaju/ažuriraju oznake sa prefiksom node-restriction.kubernetes.io/. Taj prefiks oznake je rezervisan za administratore koji obeležavaju svoje Node objekte u svrhu izolacije radnog opterećenja, i kubeletima neće biti dozvoljeno da menjaju oznake sa tim prefiksom.
Takođe, omogućava kubeletima da dodaju/uklanjaju/ažuriraju ove oznake i prefikse oznaka.
Osigurajte sigurnu izolaciju radnog opterećenja pomoću oznaka.
Izbegavajte pristup API-ju određenim podovima.
Izbegavajte izlaganje ApiServera internetu.
Izbegavajte neovlašćeni pristup RBAC-u.
ApiServer port sa zaštitnim zidom i belom listom IP adresa.
Ojačavanje SecurityContext-a
Podrazumevano će se koristiti korisnik root kada se pokrene Pod ako nije naveden drugi korisnik. Možete pokrenuti svoju aplikaciju u sigurnijem kontekstu koristeći šablon sličan sledećem:
Opšte ojačavanje
Treba redovno ažurirati vaše Kubernetes okruženje kako bi:
Zavisnosti bile ažurirane.
Bagovi i sigurnosni propusti bili ispravljeni.
Ciklusi izdanja: Svaka 3 meseca postoji novo manje izdanje -- 1.20.3 = 1(Glavno).20(Manje).3(ispravka)
Najbolji način za ažuriranje Kubernetes klastera je (od ovde):
Ažurirajte komponente Master Node-a sledeći ovaj redosled:
etcd (sve instance).
kube-apiserver (svi kontrolni čvorovi).
kube-controller-manager.
kube-scheduler.
cloud controller manager, ako ga koristite.
Ažurirajte komponente Worker Node-a kao što su kube-proxy, kubelet.
Last updated