Kubernetes Hardening

Leer AWS hack vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Gereedskap om 'n cluster te analiseer

Kubescape is 'n K8s oopbron-gereedskap wat 'n multi-cloud K8s enkelvenster bied, insluitend risiko-analise, sekuriteitsnakoming, RBAC-visualisering en skandering van beeldkwesbaarhede. Kubescape skandeer K8s-klusters, YAML-lêers en HELM-grafieke en identifiseer verkeerde konfigurasies volgens verskeie raamwerke (soos die NSA-CISA, MITRE ATT&CK®), sagtewarekwesbaarhede en RBAC-oortredings (rolgebaseerde toegangsbeheer) in die vroeë stadiums van die CI/CD-pyplyn, bereken risikoscore onmiddellik en toon risikotendense oor tyd.

kubescape scan --verbose

Die instrument kube-bench is 'n instrument wat nagaan of Kubernetes veilig geïmplementeer is deur die toetse uit te voer wat gedokumenteer is in die CIS Kubernetes Benchmark. Jy kan kies om:

  • kube-bench uit te voer van binne 'n houer (waar die PID-ruimte gedeel word met die gasheer)

  • 'n houer te gebruik wat kube-bench op die gasheer installeer, en dan kube-bench direk op die gasheer uit te voer

  • die nuutste binnerwerke van die Vrystellingsbladsy te installeer,

  • dit van bron af saam te stel.

Die instrument kubeaudit is 'n opdraglyninstrument en 'n Go-pakket om Kubernetes-klusters te oudit vir verskeie sekuriteitskwessies.

Kubeaudit kan opspoor of dit binne 'n houer in 'n kluster uitgevoer word. As dit die geval is, sal dit probeer om alle Kubernetes-hulpbronne in daardie kluster te oudit:

kubeaudit all

Hierdie instrument het ook die argument autofix om opgespoorde kwessies outomaties te herstel.

Die instrument kube-hunter soek na sekuriteitskwessies in Kubernetes-klusters. Die instrument is ontwikkel om bewustheid en sigbaarheid vir sekuriteitskwessies in Kubernetes-omgewings te verhoog.

kube-hunter --remote some.node.com

Kubei is 'n hulpmiddel vir die skandering van kwesbaarhede en CIS Docker-benchmark wat gebruikers in staat stel 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 vir die skandering van 'n Kubernetes-kluster vir risikovolle toestemmings in Kubernetes se rolgebaseerde toegangsbeheer (RBAC) outoriseringsmodel.

Auditeer IaC-kode

Popeye is 'n hulpprogram wat 'n lewendige Kubernetes-kluster skandeer en potensiële probleme met geïmplementeerde hulpbronne en konfigurasies rapporteer. Dit maak jou kluster skoon op grond van wat geïmplementeer is en nie wat op skyf sit nie. Deur jou kluster te skandeer, identifiseer dit verkeerde konfigurasies en help dit om te verseker dat die beste praktyke in plek is, en voorkom dus toekomstige kopseer. Dit streef daarna om die kognitiewe oorlading te verminder wat 'n mens ervaar wanneer jy 'n Kubernetes-kluster in die wild bedryf. Verder, as jou kluster 'n metriek-bediener gebruik, rapporteer dit potensiële hulpbron-oor-/onder-toekenning en probeer dit jou waarsku as jou kluster uit kapasiteit loop.

KICS vind sekuriteitskwesbaarhede, nakomingsprobleme en infrastruktuurmisconfiguraties 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-analisehulpmiddel vir infrastruktuur as kode.

Dit skandeer wolk-infrastruktuur wat voorsien is met behulp van Terraform, Terraform-plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless of ARM-sjablone en identifiseer sekuriteits- en nakomingsmisconfiguraties deur middel van grafiekgebaseerde skandering.

kube-score is 'n hulpmiddel wat statiese kode-analise van jou Kubernetes-objekdefinisies uitvoer.

Om te installeer:

VerspreidingOpdrag / Skakel

Vooraf geboude binaêre lêers 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

Wenke

Kubernetes PodSecurityContext en SecurityContext

Jy kan die sekuriteitskonteks van die Pods (met PodSecurityContext) en van die houers wat uitgevoer gaan word, konfigureer (met SecurityContext). Vir meer inligting, lees:

Kubernetes SecurityContext(s)

Kubernetes API-verharding

Dit is baie belangrik om toegang tot die Kubernetes API-bediener te beskerm, aangesien 'n kwaadwillige aktor met genoeg voorregte dit kan misbruik en die omgewing op baie maniere kan beskadig. Dit is belangrik om beide die toegang (witlys oorspronge om toegang tot die API-bediener te verkry en enige ander verbinding te weier) en die outentisering (deur die beginsel van minste voorreg te volg) te beveilig. En beslis nooit anonieme versoeke toe te laat nie.

Gewone versoekproses: Gebruiker of K8s ServiceAccount –> Outentisering –> Outorisering –> Toelatingsbeheer.

Wenke:

  • Sluit porte.

  • Vermy anonieme toegang.

  • NodeRestriction; Geen toegang vanaf spesifieke nodes tot die API.

  • Voorkom dat kubelets etikette byvoeg/verwyder/opdateer met 'n node-restriction.kubernetes.io/ voorvoegsel. Hierdie etiketvoorvoegsel is gereserveer vir administrateurs om hul Node-voorwerpe te etiketteer vir werklas-isolasiedoeleindes, en kubelets sal nie toegelaat word om etikette met daardie voorvoegsel te wysig nie.

  • En laat ook toe dat kubelets hierdie etikette en etiketvoorvoegsels byvoeg/verwyder/opdateer.

  • Verseker met etikette die veilige werklas-isolasie.

  • Vermy spesifieke pods van API-toegang.

  • Vermy blootstelling van ApiServer aan die internet.

  • Vermy ongemagtigde toegang RBAC.

  • ApiServer-poort met firewall en IP-witlys.

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
volumes:
- name: sec-ctx-vol
emptyDir: {}
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
runAsNonRoot: true
volumeMounts:
- name: sec-ctx-vol
mountPath: /data/demo
securityContext:
allowPrivilegeEscalation: true

Algemene Verharding

Jy moet jou Kubernetes-omgewing so gereeld as nodig opdateer om te verseker dat:

  • Afhanklikhede op datum is.

  • Foute en sekuriteitspatches aangebring word.

Vrylatingsiklusse: Elke 3 maande is daar 'n nuwe klein vrylating -- 1.20.3 = 1(Groot).20(Klein).3(patch)

Die beste manier om 'n Kubernetes-kluster op te dateer is (vanaf hier):

  • Opgradeer die Meester Node-komponente volgens hierdie volgorde:

  • etcd (alle instansies).

  • kube-apiserver (alle beheervlak-gashere).

  • kube-controller-manager.

  • kube-scheduler.

  • wolkbeheerder, as jy een gebruik.

  • Opgradeer die Werker Node-komponente soos kube-proxy, kubelet.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated