-: De nieuwste vorm van virtualisatie
die steeds populairder wordt in onze netwerken
staat bekend als containergebaseerde virtualisatie,
ook wel bekend als containerisatie.
Dit type virtualisatie is echter veel meer
gericht op servers dan op de eindgebruiker.
Bij dit type virtualisatie wordt de
kernel van het besturingssysteem gedeeld
door meerdere virtuele machines, maar wordt de gebruikersruimte
voor elke virtuele machine uniek gemaakt en beheerd.
Containerisatie is een vorm van virtualisatie
die wordt toegepast door een hostbesturingssysteem om een
geïsoleerde uitvoeringsomgeving te bieden voor een applicatie.
Containerisatie wordt als redelijk veilig beschouwd
omdat het resource segmentatie en scheiding
afdwingt op het niveau van het besturingssysteem.
Nu wordt containerisatie vaak gebruikt
met Linux-servers en enkele voorbeelden
van deze op containers gebaseerde
virtualisatie zijn Docker, Parallels Virtuozzo en het
OpenVZ-project.
Hoe ziet containerisatie er nu echt uit?
Nou, je hebt een stuk hardware
en bovenop die hardware heb je een Host OS, meestal
Linux, en dan heb je een container manager.
Iets als Kubernetes of Docker of iets dergelijks.
Deze container manager gaat nu gebruikt worden om verschillende
containers aan te maken die verschillende applicaties bevatten.
In dit geval heb ik drie containers.
Ik heb de eerste omgeving, die gebaseerd
is op de kernel van het host OS, in dit voorbeeld een
Linux systeem dat gebruikt wordt.
En dus hebben we container één waarop Linnux draait
en die bevat enkele applicaties.
Nu kan container twee hetzelfde doen
en container drie hetzelfde.
Aangezien alle drie de containers dezelfde bestanden
van het host-besturingssysteem delen.
Dit neemt veel minder middelen in beslag
dan pure virtualisatie met behulp van virtuele machines.
Zoals we hebben besproken met virtualisatie.
Als we in plaats daarvan individuele virtuele machines zouden gebruiken, zou
elke machine zijn eigen kopie van een besturingssysteem nodig hebben.
En dat kan 8 tot 10 gigabyte per stuk zijn.
Maar met containers kunnen we
allemaal hetzelfde besturingssysteem delen.
Containerisatie gebruikt dus veel minder opslagruimte
en vergt veel minder rekenkracht.
Dit is het echte voordeel van het gebruik van zoiets als een container
vanuit een operationeel perspectief.
Omdat deze containers logisch geïsoleerd zijn.
Ze kunnen niet echt met elkaar communiceren.
Als ik twee containers met elkaar wil laten praten,
moet ik ze verbinden via een virtueel netwerk en de juiste routing
en switching uitvoeren om ze met elkaar
te laten praten.
Ze kunnen standaard niet met elkaar praten en dat
is vanuit beveiligingsoogpunt geweldig,
omdat we deze segmentatie hebben.
Hier is je grote waarschuwing als het gaat om het
omgaan met containers.
Als een aanvaller het host-besturingssysteem compromitteert
onder bijvoorbeeld dat Linux-besturingssysteem
waar ik het net over had, raad eens wat er dan gebeurt?
Nou, deze aanval heeft nu toegang tot alle containers in hun
gegevens, omdat dat ene besturingssysteem wordt gebruikt
door alle containers die worden gehost.
Dit is een van de grootste kwetsbaarheden
wanneer je containers gebruikt.
Ik kan een containersysteem hebben waarop
nu 50 verschillende servers draaien.
En elk van deze draait verschillende servers
en services met behulp van containerisatie.
Maar als iemand toegang kan krijgen tot die ene server
onder dat Linux besturingssysteem, heeft hij nu toegang
tot alle 50 van die gehoste servers en al hun gegevens.
Een ander risico waar je rekening mee moet houden is
hoe je containers en andere virtuele machines gehost gaan worden.
Zodra we gaan vertrouwen op virtualisatie en cloud computing,
wordt het heel belangrijk om te beseffen dat
onze gegevens op dezelfde fysieke server kunnen staan als de
gegevens van een andere organisatie.
Hierdoor introduceren we enkele kwetsbaarheden in
de beveiliging van onze systemen.
Ten eerste, als de fysieke server crasht door iets wat een van
de andere organisaties aan het doen is, kan
dit gevolgen hebben
voor alle organisaties op diezelfde server.
Op dezelfde manier, als één organisatie de beveiliging
van hun virtuele omgevingen niet op orde
heeft, omdat ze worden gehost op die fysieke
server, bestaat de mogelijkheid dat een aanvaller daar gebruik
van maakt ten nadele van alle andere organisaties die
op diezelfde server worden gehost.
Net zoals er zorgen zijn bij het verbinden van onze netwerken
met die van iemand anders, zijn er ook zorgen bij
het hosten van gegevens van meerdere organisaties
op dezelfde fysieke server.
Het is belangrijk dat we de gebruikerstoegang tot de virtuele
machines die op die servers worden gehost goed configureren,
beheren en controleren.
Ook willen we ervoor zorgen dat onze virtuele machines zijn
voorzien van de nieuwste patches, antivirus, animwire
en toegangscontrole.
Om het risico te minimaliseren
dat de fysieke servers overbelast raken, is het altijd
een goed idee om onze virtuele machines in te stellen
met de juiste failover, redundantie en elasticiteit.
Door de netwerkprestaties en de bronnen
van de fysieke servers in de gaten te houden,
zouden we de belasting moeten kunnen verdelen
over meerdere fysieke machines in plaats van te vertrouwen
op slechts één enkele.
Een andere kwetsbaarheid die kan worden uitgebuit
door een aanvaller is wanneer we hetzelfde type
hypervisor gebruiken voor al onze virtuele machines.
Dus als onze organisatie bijvoorbeeld alleen vertrouwt
op de ESXi hypervisor van VMware en er wordt een
nieuwe exploit gemaakt voor die hypervisor, dan
kan een aanvaller dat tegen al onze systemen gebruiken.
Dus als het succesvol is op één van onze servers, zullen ze het waarschijnlijk
ook op de rest van onze servers proberen.
En als al onze servers gebruik maken van hetzelfde
platform, in dit geval VMware ESXi, kan deze kwetsbaarheid
in onze hele organisatie worden uitgebuit.
De uitdaging hierbij is echter dat als we
meerdere hypervisor-platforms gebruiken,
onze ondersteuningskosten en trainingseisen
ook zullen toenemen.
De meeste organisaties kiezen om deze reden wel voor één
platform, maar ze nemen in ieder geval een weloverwogen
risicobeslissing als ze dat doen.
Om dat risico te beperken, moet de organisatie
de juiste configuraties gebruiken, ervoor
zorgen dat de hypervisor altijd gepatcht
en up-to-date blijft en alleen toegankelijk is via
een beveiligde beheerinterface.
Dit zijn enkele van de dingen waar je rekening mee moet
houden als je gaat uitzoeken of je je systemen gaat virtualiseren
en migreren naar een on-premise of cloud-gebaseerde
oplossing.
Ten eerste, ga je virtualiseren?
Zo ja, ga je traditionele virtuele machines gebruiken
of ga je containerisatie gebruiken?
Wat is hier het risico versus de beloning?
Er is een evenwichtsoefening die je moet doen.
Het is een zakelijke beslissing
en ook een beslissing over cyberveiligheid.
En dus moet je deze dingen meten en beslissen
wat het beste is om te selecteren voor jouw organisatie en
haar specifieke use cases.