GlobalSign Blog

Waarom mTLS overal in Kubernetes moet zijn

Waarom mTLS overal in Kubernetes moet zijn

Kubernetes is snel uitgegroeid tot een van de meest gebruikte tools voor het beheer van gecontaineriseerde toepassingen. Uit het Cloud Native Computing Foundation Annual Survey in 2021 bleek dat 96% van de meer dan 2300 Kubernetes-specifieke respondenten Kubernetes al gebruikte of het aan het evalueren was. Bovendien werden in de enquête 5,6 miljoen Kubernetes-gebruikers geïdentificeerd, een stijging van bijna 70% in één jaar tijd.

Kubernetes is dan ook een veel voorkomend doelwit voor cyberaanvallen. In een enquête van Veritas Technologies heeft 94% van de respondenten zijn bezorgdheid geuit over ransomwareaanvallen op Kubernetes-omgevingen, en 56% heeft al ten minste één zo'n aanval meegemaakt.

Helaas haasten veel organisaties zich met de implementatie van Kubernetes voordat ze alle relevante veiligheidskwesties volledig begrijpen. Daarmee vergroten ze onnodig hun aanvalsoppervlak en stellen ze zich bloot aan hacks.

Er zijn veel stappen die bedrijven kunnen nemen om hun Kubernetes-workloads te beveiligen. Een best practice die Kubernetes zelf aanbeveelt is het uitgebreide gebruik van Transport Layer Security (TLS). TLS helpt het afluisteren van verkeer in een client-serververbinding te voorkomen door de server te verifiëren en het verkeer tussen de client en de server te versleutelen.

Een nog betere optie, die ontwikkelaars overal waar mogelijk zouden moeten toepassen, is Mutual TLS (mTLS). Dit artikel bespreekt de voordelen van mTLS en hoe ontwikkelaars het in hun voordeel kunnen gebruiken om potentiële aanvallers te frustreren. 

Wat is mTLS?

Mutual TLS brengt TLS op een hoger niveau door beide kanten van de client-serververbinding te authenticeren alvorens communicatie uit te wisselen. Dit lijkt misschien een verstandige aanpak, maar er zijn veel situaties waarin de identiteit van de client niet relevant is voor de verbinding.

Wanneer alleen de identiteit van de server van belang is, is standaard unidirectionele TLS de meest efficiënte aanpak. TLS maakt gebruik van public-key encryptie, waarvoor een private en public key nodig zijn voor versleutelde communicatie. Om de identiteit van de server te verifiëren, stuurt de client een bericht versleuteld met de public key (verkregen uit het TLS-certificaat van de server) naar de server. Alleen een server die in het bezit is van de juiste private key kan het bericht ontcijferen, dus een geslaagde ontcijfering authentiseert de server. 

Om tweerichtingsauthenticatie te hebben zouden alle clients ook TLS-certificaten moeten hebben, die van een certificeringsinstantie komen. Gezien het enorme aantal potentiële clients (browsers die websites bezoeken, bijvoorbeeld) zou het uiterst moeilijk zijn om zoveel certificaten te genereren en te beheren.

Voor sommige toepassingen en diensten kan het echter van cruciaal belang zijn om te verifiëren dat alleen vertrouwde clients verbinding maken met de server. Misschien moeten alleen bepaalde gebruikers toegang hebben tot bepaalde servers. Of misschien heeft u API-oproepen die alleen van specifieke diensten mogen komen. In deze situaties zijn de extra lasten van mTLS zeker de moeite waard. En als uw organisatie de beveiliging versterkt met een zero trust-beleid, waarbij elke poging om toegang te krijgen tot de server moet worden geverifieerd, is mTLS noodzakelijk.

mTLS voegt een aparte authenticatie van de client toe, na verificatie van de server. Pas na verificatie van beide partijen bij de verbinding kunnen de twee gegevens uitwisselen. Met mTLS weet de server dat een vertrouwde bron toegang probeert te krijgen.

Hoe is mTLS nuttig voor de beveiliging van Kubernetes?

mTLS is over het algemeen waardevol voor het tegengaan van verschillende soorten aanvallen. De aanvallen die mTLS kan afweren zijn onder andere:

  • Phishingaanvallen: Phishing blijft een van de meest doeltreffende manieren voor hackers om toegang te krijgen tot bedrijfsnetwerken. In 2021 bereikte het aantal pogingen tot phishing zelfs het hoogste niveau ooit. Hackers hebben veel verschillende manieren om gebruikersgegevens buit te maken en zijn daar zeer succesvol in geweest. Ze kunnen die gebruikersgegevens echter niet gebruiken om toegang te krijgen tot servers zonder het nodige TLS-certificaat en de bijbehorende private key voor een met mTLS beveiligde verbinding. Gevoelige gegevens en systemen blijven veilig.
  • Brute force-aanvallen: Net als bij phishingaanvallen kunnen hackers, zelfs als ze brute force-methoden kunnen gebruiken (bv. woordenboekaanvallen) om de gebruikersgegevens buit te maken, niet binnendringen in verbindingen die met mTLS beveiligd zijn.
  • Kwaadaardige API-verzoeken: Veel aanvallers proberen API-oproepen te gebruiken om bedrijfssystemen te beschadigen of gegevens te exfiltreren. Kwaadaardige API-oproepen kunnen een doeltreffende vector zijn voor het injecteren van malware (waaronder ransomware) of zelfs voor het initiëren van DDoS-aanvallen. Maar als de API-verbinding wederzijdse authenticatie vereist, zullen aanvallers meer moeite hebben om toegang te krijgen.
  • Man-in-the-middle-aanvallen: Bij een man-in-the-middle (MitM)-aanval injecteert de hacker zichzelf tussen de server en de client, waarbij hij de communicatie tussen de twee afluistert of zelfs wijzigt. Hoewel TLS enige beveiliging biedt tegen MitM-aanvallen, slaagt het er vaak niet in ze af te weren. mTLS voegt een extra authenticatielaag toe die de pogingen van MitM-aanvallers nog ingewikkelder maakt en hun kansen op succes nog verder verkleint.

Met Kubernetes kunnen veel verschillende communicatiepaden baat hebben bij mTLS, met name communicatie tussen microservices en communicatie tussen microservices en een willekeurige API-server. Het gebruik van mTLS beveiligt deze communicatie zonder dat er een specifiek identiteitsbeheer of verificatieproces op toepassingsniveau nodig is.

Gecontaineriseerde toepassingen kunnen veel verschillende microservices omvatten die gegevens uitwisselen, waaronder gevoelige klantgegevens. mTLS weerhoudt hackers ervan deze communicatie te onderscheppen en een datalek te veroorzaken.

mTLS geeft u ook extra zicht op potentiële aanvallen. Net als met andere tools die u in real time informatie geven over afwijkend gedrag (tools voor de analyse van netwerkverkeer zoals BlueHexagon, tools voor het monitoren van websiteverandering en defacement zoals Visualping, enz.), kunt u, door de auditlogs te bekijken, snel ongeoorloofde activiteiten op het spoor komen.

Tenslotte hoeft mTLS geen extra moeilijkheden voor de gebruiker op te leveren. In plaats daarvan kan mTLS, als het goed geïmplementeerd is, gebruikers een extra gevoel van veiligheid geven zonder extra complexiteit, waardoor de algehele gebruikerservaring wordt verbeterd. Wanneer mTLS op platformniveau werkt, is slechts één enkele authenticatie-actie nodig. Gebruikers hoeven zich niet opnieuw te verifiëren voor elke microservice binnen de toepassing.

Praktische overwegingen voor het gebruik van mTLS met Kubernetes

Hoewel het gebruik van mTLS in uw Kubernetes-omgeving u een extra geruststelling over de veiligheid kan geven, brengt het kosten met zich mee. Die kosten vloeien voort uit de noodzaak van een doeltreffend systeem voor de verstrekking en het beheer van certificaten.

Als u mTLS breed toepast in een Kubernetes-containerimplementatie, bedenk dan dat veel clients individuele diensten zijn. Elk van deze diensten heeft zijn eigen certificaat nodig en dat zullen er heel wat zijn.

Bovendien zijn Kubernetes-diensten van nature vergankelijk. Met replica’s van Kubernetes-diensten die dynamisch aangemaakt en vernietigd worden, kan de uitdaging om certificaten te beheren ontmoedigend zijn.

Uw certificatenbeheersysteem moet ook robuust genoeg zijn om het beëindigen van de inrichting van certificaten en het opnieuw inrichten van certificaten volgens uw interne veiligheidsbeleid te behandelen. Als u, zoals velen, vertrouwt op certificaatrotatie (waarbij certificaten een beperkte levensduur krijgen en nieuwe certificaten worden uitgegeven als ze verlopen) om de kans dat een hacker ze kan uitbuiten zo klein mogelijk te maken, moet u snel nieuwe certificaten kunnen toekennen aan alle getroffen diensten.

Gelukkig zijn er veel verschillende tools beschikbaar om u te helpen certificaten gemakkelijk te beheren, zelfs als u een enorm aantal certificaten voor uw Kubernetes-diensten heeft.

Conclusie

Naarmate meer en meer bedrijven overschakelen op containerisatie en het gebruik van containerorkestratiediensten zoals Kubernetes, zal er meer behoefte zijn aan effectieve en efficiënte methoden voor de beveiliging van gegevensstromen tussen diensten in de containers. Door mTLS toe te passen op elk punt waar dat mogelijk is, kunnen ontwikkelaars het aanvalsoppervlak van een toepassing verkleinen en het risico dat een hacker toegang kan krijgen tot gevoelige gegevens en systemen tot een minimum beperken.

Share this Post

Recent Blogs