Cloud-native applicaties kennen een andere structuur dan traditionele applicaties. Het vraagt dan ook om een andere aanpak op het gebied van security. Cloud-native security is een moderne en pragmatische aanpak voor het beveiligen en veilig implementeren van applicaties op schaal. De aanpak is toegespitst op een cloud-first infrastructuur.
Cloud-native security wijkt af van traditionele beveiliging. We zetten enkele belangrijke aandachtspunten bij cloud-native security op een rij:
Zeer betrouwbaar inzicht
Een cloud-native applicatie bestaat in de meeste gevallen uit een verzameling microservices, die met behulp van API’s met elkaar communiceren en samenwerken. Deze microservices functioneren ieder als een losstaande applicatie. Die biedt belangrijke voordelen, maar zorgt ook voor een snelle groei van het aantal microservices binnen een organisatie. Overzicht houden over alle microservices kan hierdoor een uitdaging zijn.
Dit inzicht is echter van cruciaal belang. Hoe stel je immers zeker dat er geen ongeautoriseerde workloads of microservices draaien indien je geen volledig zicht heb op je cloud-native omgeving? Denk echter ook aan het tegengaan van configuratiefouten, wat tot grote beveiligingsproblemen en -incidenten kan leiden. Cloud-native security vereist dan ook zeer betrouwbaar inzicht in de cloud-native omgeving, wat ook wel High Fidelity heet.
Mensen, processen en technologie
Cloud-native applicaties functioneren heel anders dan traditionele monolithische applicaties. Onder meer door het gebruik van microservices, waarin individuele functies van een applicatie zijn ondergebracht. De aanpak vraagt om nieuwe kennis, nieuwe tools en een andere aanpak. Het budget, de tools en de beschikbaarheid van security-experts groeien in de praktijk doorgaans echter niet snel genoeg mee met de omarming van cloud-native technologie.
Organisaties kunnen het security-gat dat voortkomt uit de snel veranderende digitale ecosystemen van vandaag de dag dichten met behulp van een geïntegreerd cloud-native securityplatform. Een dergelijk platform omvat onder meer kunstmatige intelligentie (AI), automatisering, intelligence, threat detection en data-analytics.
Geïntegreerde beveiliging
Kenmerkend voor cloud-native applicaties is hun dynamische karakter. Zo zijn de applicaties continu in ontwikkeling, waarbij ontwikkelaars vaak met behulp van CI/CD-tools in korte cycli updates uitrollen. Deze updates stellen zij doorgaans geautomatiseerd beschikbaar aan eindgebruikers. Het integreren van security in het ontwikkel- en implementatieproces is dan ook cruciaal.
Voorbeelden zijn onder meer geïntegreerde scans op bekende kwetsbaarheden en beveiligingsproblemen. Denk echter ook aan security configuration management (SCM), dat ontwikkelaars helpt bij het voorkomen van configuratiefouten die tot beveiligingsproblemen leiden. Een ander voorbeeld zijn tools voor het snel terugkoppelen van feedback naar het ontwikkelteam, wat een snelle aanpak van eventuele problemen mogelijk maakt.
Download ook de whitepaper: Cloud-native Security
De 4C’s van cloud-native security
Kubernetes is een bekend orkestratieplatform voor containers. Voor het beveiligen van Kubernetes-implementaties is het Cloud-native Security-model van Kubernetes hanteerbaar. Het model bestaat uit een viertal lagen: code, container, cluster en cloud. Iedere laag bouwt hierbij voort op de onderliggende laag. We zetten de verschillende lagen uiteen.
1. Cloud
De cloud (of een extern of on-premises datacenter) vormt de basis waarop een Kubernetes cluster is uitgerold. Het is dan ook van belang dat de cloudlaag adequaat is beveiligd. Is dit niet het geval? Dan kan je onmogelijk zekerstellen dat de lagen die hierop zijn gebouwd veilig zijn.
2. Cluster
Containers draaien in een cluster, dat bestaat uit verschillende componenten. Het configureren van deze componenten is een belangrijk onderdeel van het beveiligen van de clusterlaag. Denk echter ook aan het beveiligen van de applicaties die in het cluster draaien.
3. Container
Microservices draaien in containers. Allerlei maatregelen helpen bij het beveiligen van containers. Denk hierbij aan het scannen van containers op bekende kwetsbaarheden, het ondertekenen van containerimages en het adequaat configureren van toegangsrechten.
4. Code
Iedere applicatie is opgebouwd uit programmeercode. Allerlei keuzes bij het schrijven van deze code zijn van invloed op de beveiliging van de uiteindelijke applicatie. Denk hierbij aan het afschermen van alle poorten die niet essentieel zijn voor bijvoorbeeld communicatie of het verzamelen van meetwaarden. Vergeet daarnaast niet de third-party libraries waarop de applicatie vertrouwd met regelmaat te scannen op kwetsbaarheden. Via dergelijke libraries kunnen beveiligingsproblemen in een applicatie sluipen, iets wat helaas lang niet altijd tijdig wordt opgemerkt.