Fordi den er en av de mest brukte plattformene for orkestrering av konteinere i skyen, er sikkerheten i åpen kildekode-plattformen Kubernetes vesentlig for svært mange brukere over hele verden.
Én ting er å undersøke systemets motstandskraft mot inntrengning utenfra. En annen er å undersøke hvordan systemet allerede inneholder og reagerer på ulike sikkerhetsfeil.
Det siste er noe Matas Kulkovas kan noe om. I slutten av oktober ble den nylig uteksaminerte studenten ved Danmarks tekniske universitet hedret med IDA Connects studentpris for oppgaven «Security Chaos Engineering in Kubernetes», som presenterer en helt ny tilnærming til testing av sikkerhet i en Kubernetes-klynge.
– Tilnærmingen er bygget opp over en sirkulær sekvens av handlinger. Først fremsetter du en hypotese for systemet om hvordan det vil motstå en gitt trussel. Deretter setter du inn en sikkerhetsfeil i systemet og kan dermed verifisere om systemet oppfører seg som det skal, forklarer Kulkovas.
– På den måten kan du sjekke hva som fungerer og hva du må jobbe med – og gjenta sirkelen om og om igjen.
Erter systemet og observerer reaksjonen
Med sikkerhetsbristen hos Tesla i 2018 som eksempel, tar Kulkovas' eksamensoppgave utgangspunkt i den utfordringen det er at flertallet av sikkerhetsbristene i Kubernetes oppstår på grunn av feil konfigurasjoner og menneskelige feil.
Det er altså slike småfeil Kulkovas har eksperimentert med å plante i en Kubernetes-klynge – gjort som henholdsvis demonstrasjon av Kubernetes 1.20 på Minikube og i et miljø med Kubeadm installert. Eksperimentet er designet ved å kombinere ulike kjente metoder for å injisere feil i systemer ved såkalt Chaos Engineering, mer spesifikt Security Chaos Engineering (SCE), som hittil ikke har vært brukt på Kubernetes-plattformer, og det kan lett flyttes til andre Kubernetes-miljøer enn dem han har undersøkt.
– Kan man si at du erter systemet ved konstant å injisere små feil?
– Du kan si det. Men i tillegg til å erte systemet, observerer jeg også hvordan det reagerer, forklarer Kulkovas, som vant IDA-prisen for «en formidabel kombinasjon av ulike metoder, programmeringsspråk og eksisterende åpen kildekode-elementer», som det het i juryens begrunnelse.
Skiller seg fra penetrasjonstesting
Fordi den er en konteinerorkestreringsplattform, kan usikkerheten med Kubernetes oppstå på fire ulike nivåer: koden, containeren, klyngen og skyen (fire C'er på engelsk).
Som bruker er det nødvendig å følge med på sikkerheten på alle nivåer, og Kulkovas presenterer altså en tilnærming som kan brukes på klyngenivå.
Han forklarer hvordan han med SCE-tilnærmingen ikke nødvendigvis leter etter sårbarheter i selve systemet, som når white hat-hackere prøver å infiltrere et system. I stedet spesialiserer han seg på å plassere ulike typer trusler inne i selve systemet.
– Det er eksperimenter med åpne porter, eksperimenter som simulerer eksistensen av feilkonfigurasjoner og lignende sikkerhetsfeil. Og ved å sette inn en oppkobling til Tor-nettverket har jeg også simulert eksperimenter på kryptomining og datalekkasjer, forklarer Kulkovas, som har gjort rundt ti forskjellige eksperimenter i eksamensoppgaven.
Hvert eksperiment er strukturert som applikasjoner som kan settes inn i Kubernetes-klyngen som konteiner-bilder, og hver applikasjon kan kjøres separat.
– Det er ikke mulig å dekke alle sikkerhetsmangler som finnes, ettersom Kubernetes brukes så mye. Så prosjektet gjør ikke alt folk har bruk for, men vi har presentert en interessant tilnærming som kan bygges videre på, sier Kulkovas.
Gode fremtidsperspektiver
Og det er akkurat det han nå gjør.
Allerede i forbindelse med oppgaven, som ble levert i sommer, var han i dialog med ulike bedrifter. Flere så gode muligheter til å bruke systemet hans til å teste hvor motstandsdyktig en gitt Kubernetes-klynge er mot sikkerhetsfeil og farer som kommer fra for eksempel internett-tilkobling. Han har nå fortsatt dialogen og håper at han neste år kan presentere oppsett på en større konferanse.
– Neste steg blir å modne oppsettet slik at det kan brukes mer generelt, sier Kulkovas, som trekker frem at systemet er egnet for automatiserte prosesser.
– Det er ikke et magisk verktøy – du kan ikke bare kjøre et program som så påpeker feil i systemet. Men bruker du tid på programmet og kjører det flere ganger, kan du bruke det til å sette inn feil og på den måten teste for og identifisere sikkerhetshull, avslutter Matas Kulkovas.
Denne artikkelen ble først publisert på Version 2.
Overrasket utviklerne: «KI-forsker» redigerte sin egen kode uten menneskelig innblanding