In dit artikel zullen we ingaan op:
Let's start!
Wat is Cloud Native security?
Cloud Native security is een benadering voor het bouwen en implementeren van veilige applicaties in de cloud. Hierbij wordt vanaf het begin rekening gehouden met de security van zowel de applicatie als de infrastructuur.
In dit model integreren we security in de hele softwarelevenscyclus, van coderen tot testen en van implementatie tot runtime. Het gaat om het beveiligen van de applicatie, de infrastructuur voor continue integratie (CI) en continue levering (CD) en alle software-artefacten zoals container-images, afhankelijkheden en Software Bills of Materials (SBOM).
In Cloud Native-omgevingen maakt security deel uit van alles wat je beschermt - van besturingssystemen tot containers tot applicaties. Het volgt de applicatie waar het ook gaat, of dat nu in de cloud is, op containers of in een hostsysteem.
In plaats van security op basis van de perimeter richten moderne benaderingen zich op identiteits- en toegangsbeheer, containerbeveiliging en workloadbeveiliging.
Wat is het doel van Cloud Native security?
Het doel van Cloud Native security is om bescherming te bieden tegen bedreigingen en kwetsbaarheden die specifiek zijn voor cloudomgevingen door gebruik te maken van Cloud Native securityoplossingen. Door beveiliging in elke fase van de softwarelevenscyclus te hebben, kunnen applicaties in de cloud continu worden beschermd en veerkrachtig zijn.
Traditionele Security vs Cloud Native: Hoe het verschilt
De beveiligingsaanpak voor Cloud Native-applicaties verschilt van traditionele on-premise oplossingen omdat Cloud Native-omgevingen dynamischer en schaalbaarder zijn en een "shared responsibility" hebben tussen de cloudprovider en de klant.
Cloud Native security is van binnenuit ingebouwd, waarbij applicaties continu worden gemonitord en tijdens runtime worden beschermd.
Traditionele security is gebouwd voor statische omgevingen met vaste IP's, geïsoleerde systemen (hardware of hypervisor) en persistente workloads. Cloud Native-omgevingen zijn daarentegen dynamisch en workloads worden voortdurend op en neer bewogen.
In plaats van problemen in productie op te lossen, moeten we beveiliging nu eerder in het ontwikkelproces integreren (shift-left). Dit komt door frequente geautomatiseerde releases in de CI- en CD-pijplijn.
Traditionele methoden omvatten propriëtaire code en weinig open-source. Dit nieuwe model vereist echter een analyse van de samenstelling van software, het scannen op kwetsbaarheden en SBOM. SBOM geeft inzicht in de componenten van een software supply chain en is cruciaal voor het verminderen van veiligheidsrisico's in de supply chain.
Netwerkbeveiliging, die vroeger gebaseerd was op statische hardwareconfiguraties, moet zich nu aanpassen aan een dynamische omgeving. Om het netwerk te beveiligen worden permanente adressen vervangen door wisselende adressen op subnetniveau, waarbij de identiteit moet worden geverifieerd over beveiligingsgroepen, resourcegroepen en labels. Op deze manier kan het verkeer worden gecontroleerd terwijl pods worden georkestreerd.
Met de opkomst van multi-clouds moeten organisaties zich richten op de beveiligingsconfiguraties van hun cloudprovider, niet op de infrastructuur zelf. Dit verandert de manier waarop we denken over beveiliging in een Cloud Native-wereld.
De 4 C’s van Cloud Native security
Als het gaat om Cloud Native security, zijn er vier primaire lagen om te overwegen voor containerbeveiliging:
- Cloud
- Cluster
- Container (Pod)
- Code
De volgorde is belangrijk omdat elke laag van het Cloud Native-beveiligingsmodel voortbouwt op de volgende, buitenste laag. We noemen dit ook wel “verdediging in de diepte”. Het is een reeks defensieve mechanismen in lagen om waardevolle gegevens en informatie te beschermen.
Stel je voor: iemand probeert toegang te krijgen tot je gegevens. Welke beschermingslagen moeten ze dan binnendringen?
1) De eerste laag is de cloudlaag (Microsoft Azure).
2) Dan hebben we de clusterlaag (Kubernetes).
3) De derde laag zijn de containers, beheerd door Kubernetes, die je applicatie en de runtime verpakken voor een consistente werking.
4) Tot slot heb je je code, die ook je gegevens of informatie kan bevatten.
We zullen ze hieronder in detail bespreken: