Kubernetes Hardening
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kubescape is 'n K8s open-source hulpmiddel wat 'n multi-cloud K8s enkele venster bied, insluitend risiko-analise, sekuriteits-nakoming, RBAC visualiseerder en beeld kwesbaarhede skandering. Kubescape skandeer K8s klusters, YAML-lêers, en HELM-kaarte, wat miskonfigurasies volgens verskeie raamwerke (soos die NSA-CISA , MITRE ATT&CK®), sagteware kwesbaarhede, en RBAC (rol-gebaseerde-toegang-beheer) oortredings in vroeë stadiums van die CI/CD-pyplyn, bereken risiko telling onmiddellik en wys risiko tendense oor tyd.
Die hulpmiddel kube-bench is 'n hulpmiddel wat nagaan of Kubernetes veilig ontplooi is deur die kontroles wat in die CIS Kubernetes Benchmark gedokumenteer is, uit te voer. Jy kan kies om:
kube-bench van binne 'n houer te loop (wat PID-naamruimte met die gasheer deel)
'n houer te loop wat kube-bench op die gasheer installeer, en dan kube-bench direk op die gasheer te loop
die nuutste binêre van die Releases-bladsy te installeer,
dit van bron te kompileer.
Die hulpmiddel kubeaudit is 'n opdraglyn-hulpmiddel en 'n Go-pakket om Kubernetes-klusters te audite vir verskeie verskillende sekuriteitskwessies.
Kubeaudit kan opspoor of dit binne 'n houer in 'n kluster loop. As dit so is, sal dit probeer om al die Kubernetes-hulpbronne in daardie kluster te audite:
Hierdie hulpmiddel het ook die argument autofix
om automaties gedetecteerde probleme op te los.
Die hulpmiddel kube-hunter jag vir sekuriteits swakhede in Kubernetes klusters. Die hulpmiddel is ontwikkel om bewustheid en sigbaarheid vir sekuriteitskwessies in Kubernetes omgewings te verhoog.
Kubei is 'n kwesbaarheidskandering en CIS Docker-benchmark hulpmiddel wat gebruikers toelaat om 'n akkurate en onmiddellike risiko-assessering van hul kubernetes klusters te verkry. Kubei skandeer alle beelde wat in 'n Kubernetes-kluster gebruik word, insluitend beelde van toepassingspods en stelselpods.
KubiScan is 'n hulpmiddel om Kubernetes-klusters te skandeer vir riskante toestemmings in Kubernetes se rol-gebaseerde toegangsbeheer (RBAC) outorisasiemodel.
Mkat is 'n hulpmiddel wat gebou is om ander tipes hoë risiko-toetse te toets in vergelyking met die ander hulpmiddels. Dit het hoofsaaklik 3 verskillende modi:
find-role-relationships
: Wat sal vind watter AWS rolle in watter pods loop
find-secrets
: Wat probeer om geheime in K8s hulpbronne soos Pods, ConfigMaps, en Secrets te identifiseer.
test-imds-access
: Wat sal probeer om pods te laat loop en toegang tot die metadata v1 en v2 te verkry. WAARSKUWING: Dit sal 'n pod in die kluster laat loop, wees baie versigtig omdat jy dalk nie dit wil doen nie!
Popeye is 'n nut wat lewendige Kubernetes-klusters skandeer en potensiële probleme met ontplooide hulpbronne en konfigurasies rapporteer. Dit sanitiseer jou kluster gebaseer op wat ontplooi is en nie wat op skyf sit nie. Deur jou kluster te skandeer, detecteer dit misconfigurasies en help jy om te verseker dat beste praktyke in plek is, wat toekomstige kopseer voorkom. Dit is daarop gemik om die kognitiewe _oor_las te verminder wat 'n mens ervaar wanneer jy 'n Kubernetes-kluster in die natuur bedryf. Verder, as jou kluster 'n metriek-bediener gebruik, rapporteer dit potensiële hulpbronne oor/onder toewysings en probeer om jou te waarsku as jou kluster uit kapasiteit loop.
KICS vind sekuriteitskwesbaarhede, nakomingkwessies, en infrastruktuur misconfigurasies in die volgende Infrastruktuur as Kode oplossings: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, en OpenAPI 3.0 spesifikasies
Checkov is 'n statiese kode analise hulpmiddel vir infrastruktuur-as-kode.
Dit skandeer wolkinfrastruktuur wat voorsien is met behulp van Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless of ARM Templates en detecteer sekuriteits- en nakoming misconfigurasies met behulp van graf-gebaseerde skandering.
kube-score is 'n hulpmiddel wat statiese kode analise van jou Kubernetes objek definisies uitvoer.
Om te installeer:
Voorgeboude binêre vir macOS, Linux, en Windows
Docker
docker pull zegl/kube-score
(Docker Hub)
Homebrew (macOS en Linux)
brew install kube-score
Krew (macOS en Linux)
kubectl krew install score
Jy kan die sekuriteitskonteks van die Pods (met PodSecurityContext) en van die houers wat gaan loop (met SecurityContext) konfigureer. Vir meer inligting lees:
Kubernetes SecurityContext(s)Dit is baie belangrik om die toegang tot die Kubernetes Api Server te beskerm aangesien 'n kwaadwillige akteur met genoeg bevoegdhede dit kan misbruik en op baie maniere die omgewing kan benadeel. Dit is belangrik om beide die toegang (whitelist oorspronge om toegang tot die API Server te verkry en enige ander verbinding te weier) en die outentisering (volgens die beginsel van min bevoegdheid). En beslis nooit anonieme versoeke toelaat.
Algemene Versoekproses: Gebruiker of K8s ServiceAccount –> Outentisering –> Outorisering –> Toelatingsbeheer.
Tips:
Sluit poorte.
Vermy Anonieme toegang.
NodeRestriction; Geen toegang vanaf spesifieke nodes tot die API.
Basies verhoed dit dat kubelets etikette met 'n node-restriction.kubernetes.io/ voorvoegsel byvoeg/verwyder/opdateer. Hierdie etiketvoorvoegsel is gereserveer vir administrateurs om hul Node-objekte vir werklading-isolasie doeleindes te etiketteer, en kubelets sal nie toegelaat word om etikette met daardie voorvoegsel te wysig nie.
En ook, laat kubelets toe om hierdie etikette en etiketvoorvoegsels by te voeg/verwyder/op te dateer.
Verseker met etikette die veilige werklading-isolasie.
Vermy spesifieke pods van API-toegang.
Vermy ApiServer blootstelling aan die internet.
Vermy ongeautoriseerde toegang RBAC.
ApiServer poort met firewall en IP whitelisting.
Standaard sal die wortelgebruiker gebruik word wanneer 'n Pod begin word as geen ander gebruiker gespesifiseer is nie. Jy kan jou toepassing binne 'n meer veilige konteks laat loop met 'n sjabloon soortgelyk aan die volgende:
Jy moet jou Kubernetes-omgewing so gereeld as nodig opdateer om te hê:
Afhanklikhede op datum.
Fout- en sekuriteitsoplossings.
Uitreik siklusse: Elke 3 maande is daar 'n nuwe klein uitgawe -- 1.20.3 = 1(Groot).20(Klein).3(patch)
Die beste manier om 'n Kubernetes-kluster op te dateer is (van hier):
Opgradeer die Meester Knoop komponente volgens hierdie volgorde:
etcd (alle instansies).
kube-apiserver (alle kontrolevlak gasheers).
kube-controller-manager.
kube-scheduler.
cloud controller manager, indien jy een gebruik.
Opgradeer die Werker Knoop komponente soos 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)