Een bijkomend voordeel van het werken met geautomatiseerde beheerprocessen in de cloud is het verlagen van de kans dat kwaadaardige software voor lange tijd in een cloud-omgeving aanwezig is. Het automatiseren van cloudbeheerprocessen leidt tot efficiëntie en snelheid, maar ook tot een verlaging van beveiligingsrisico's. Dit draagt bij aan de businesscase voor het verder automatiseren van cloudbeheerprocessen.
Wat opvalt bij de evaluatie van ransomware-aanvallen is dat kwaadaardige software vaak al langer op systemen aanwezig is, ver voordat deze daadwerkelijk in actie komt en data gaat versleutelen. Dit kan bijvoorbeeld als er misbruik wordt gemaakt van zero-day-kwetsbaarheden. Moderne ransomware weet zich goed te verbergen op systemen waardoor detectie niet gegarandeerd is. Natuurlijk kan goede detectie-software helpen bij het opsporen van dit soort situaties, maar er komt ook hulp uit onverwachte hoek, namelijk door de inzet van ‘wegwerp-servers’.
Image
De software die binnen ons bedrijf ontwikkeld wordt, draait binnen Docker-containers. De Docker-containers vormen een gecontroleerde omgeving waarbinnen de software draait. Een Docker-container wordt gemaakt op basis van een Docker-‘image’. We passen ‘hardening’ toe bij het tot stand brengen van de containers. Dat betekent dat alleen de ondersteunende (systeem) software wordt geïnstalleerd die ook echt door onze software wordt gebruikt. Alle overbodige software wordt niet geïnstalleerd.
Een Docker-container-image is nadat deze eenmalig is gebouwd niet te muteren (immutable). Bij elke herstart is de software weer terug in de staat zoals hij oorspronkelijk is ontworpen en daarmee ook ontdaan van eventuele ransomware. De container-images worden tevens continue gescand op kwetsbaarheden voordat ze worden uitgerold in de cloud.
De installatie van Docker-containers in de cloud (op virtuele servers) doen we met behulp van Kubernetes. Kubernetes zorgt voor een geautomatiseerde uitrol van de containers (Kubernetes-pod’s) op virtuele servers waarbij de continuïteit van de dienstverlening is gewaarborgd. Kubernetes bewaakt de belasting van de van de virtuele servers en schaalt automatisch bij of af. We kunnen hierdoor de Docker-containers vervangen zonder grote serviceonderbreking.
Infrastructure-as-code
Naast de software in Docker-containers (toepassingen) wordt ook de infrastructuur (servers, Kubernetes cluster, storage, networking) door middel van code gedefinieerd en volledig automatisch uitgerold. Onze cloud-engineers programmeren dit in scripts. De code die zij daarvoor schrijven wordt net als die van onze softwareontwikkelaars ondergebracht in Git-repositories. Dit staat ook wel bekend onder de naam infrastructure-as-code (iac).
Als onderdeel van de beheerprocedures rond onze cloud-omgeving worden infrastructuur inclusief toepassingen met een hoge frequentie compleet vervangen. De oude omgeving wordt verwijderd. Dit zorgt ervoor dat er weer een volledig gecontroleerde en bekende omgeving staat, waar alleen software op draait die wij erop gezet hebben (clean install).
Nooit lang aanwezig
Door bovenstaande werkwijze zijn de software en de virtuele servers nooit lang aanwezig in de cloud. Mocht er kwaadaardige software zonder ons medeweten geïnstalleerd zijn, dan wordt deze verwijderd op het moment dat de hele omgeving inclusief virtuele servers wordt vervangen. De kans dat zich kwaadaardige software binnen onze omgeving bevindt is daarmee niet weg, maar de kans dat deze zich lang op onze omgeving bevindt is wel een stuk kleiner geworden.