Instructeur: Om de beoogde kostenbesparingen
en efficiëntie te bereiken, is cloud computing
sterk afhankelijk van virtualisatie.
Door virtualisatie te gebruiken,
kunnen nu meerdere logische servers op één
fysieke server worden geplaatst.
Dit vermindert op zijn beurt de fysieke hoeveelheid ruimte,
stroom en koeling die nodig is in onze datacenters.
Bovendien kunnen we met virtualisatie een hogere
mate van beschikbaarheid bereiken door extra virtuele
servers op te starten wanneer we die nodig hebben.
Deze mogelijkheid om geheugen en CPU-bronnen dynamisch
beschikbaar te stellen is een van de belangrijkste
voordelen van cloud computing.
Hoewel cloud computing veel verschillende voordelen
heeft, zijn er nog steeds veel beveiligingskwesties
waar we rekening mee moeten houden.
De meeste van de beveiligingsproblemen
die we met fysieke servers hebben,
komen ook voor in de cloudomgeving.
Vaak denken managers dat de overstap naar de cloud
al hun problemen zal oplossen,
maar dit is nooit echt het geval.
Bij virtualisatie bevinden een of meer logische servers
zich op een enkele fysieke server.
Om dit te bereiken gebruiken we gespecialiseerde software
die we een hypervisor noemen.
De hypervisor regelt de verdeling
van alle bronnen, zoals de processor, het geheugen
en de beschikbare harde schijf.
In wezen emuleert de hypervisor een fysieke machine zodat
het besturingssysteem en
alle toepassingen niet eens doorhebben
dat ze in een virtuele omgeving werken.
Nu zijn hypervisors onderverdeeld in twee categorieën,
type één of bare metal hypervisors, en type
twee of hosted hypervisor.
Wanneer we nu bare metal versus gehoste
hypervisortypes vergelijken, is het enige
belangrijke verschil vanuit beveiligingsperspectief dat
we er bij gehoste types voor moeten zorgen dat het
onderliggende besturingssysteem
ook goed beveiligd en gepatcht is.
Vanuit het oogpunt van prestaties
zal bare metal sneller en efficiënter zijn
dan de gehoste tegenhanger.
Een andere virtualisatieoptie die we hebben staat
bekend als containergebaseerde virtualisatie, oftewel containerisatie.
Bij dit type wordt helemaal geen hypervisor gebruikt, in plaats daarvan
vertrouwt elke container op een gemeenschappelijk besturingssysteem
als basis voor elk van die containers. Terwijl elke container
hetzelfde onderliggende besturingssysteem
deelt, kan elke container zijn eigen
binaries, bibliotheken en applicaties hebben die kunnen worden aangepast aan
hun behoeften.
Momenteel wordt virtualisatie op basis van
containers bijna uitsluitend gebruikt met
Linux als onderliggend besturingssysteem.
Containergebaseerde virtualisatie gebruikt ook minder bronnen
dan een type één of type twee virtualisatie, omdat
het geen eigen kopie van het besturingssysteem
nodig heeft voor elke individuele container.
Veel cloudserviceproviders zijn nog een stap verder gegaan
met virtualisatie door middel van hyperconverged infrastructuur.
Hierdoor kan de provider de opslag, netwerken
en servers volledig integreren, zonder dat
er hardwarewijzigingen nodig zijn.
In plaats daarvan vertrouwen ze op software
en virtualisatietechnologie om
alle integraties uit te voeren.
We kunnen dit alles beheren vanuit een enkele interface
of een apparaat zonder ons zorgen te hoeven maken
over alle onderliggende oplossingen van leveranciers.
Applicatievirtualisatie is een ander type virtualisatie
dat vaak wordt gebruikt om extra beveiliging
te creëren voor onze onderliggende host.
Applicatievirtualisatie is een softwaretechnologie die computerprogramma's
loskoppelt van het onderliggende besturingssysteem waarop ze worden
uitgevoerd.
Een volledig gevirtualiseerde applicatie
wordt niet eens geïnstalleerd in de traditionele zin van het
woord, hoewel het nog steeds wordt uitgevoerd alsof dat wel zo is.
Met applicatievirtualisatie kun je legacy
applicaties draaien die zijn ontworpen voor een besturingssysteem
dat het einde van zijn levensduur heeft bereikt, zoals Windows
XP of Windows 7, bovenop een moderner besturingssysteem, of je kunt zelfs
cross-platform software draaien, zoals Android applicaties
op een Windows machine.
Veel cloudproviders bieden ook VDI, of virtuele
desktopinfrastructuur.
Met VDI kan een cloudprovider nu een volledig desktopbesturingssysteem
aanbieden aan je eindgebruikers vanaf een gecentraliseerde
server.
Het gebruik van deze aanpak heeft veel veiligheidsvoordelen.
Ik werkte bijvoorbeeld met een organisatie
die voor elke gebruiker een nieuwe virtuele desktopimage
aanmaakte als ze 's ochtends inlogden.
Deze desktop was niet persistent, dus zelfs
als hij werd misbruikt door een aanvaller, werd hij vernietigd
zodra de gebruiker uitlogde, of elke dag om middernacht.
Dit vernietigde effectief de mogelijkheid
van de aanvaller om persistent te blijven op de desktop
van die eindgebruiker, zelfs als er malware was geïnstalleerd.
Een ander goed gebruik van virtualisatie is het creëren van een sandbox.
Met een sandbox kun je een geïsoleerde
omgeving creëren waarin je virussen, wormen, Trojaanse
paarden en andere malware kunt analyseren binnen een
gastbesturingssysteem.
Nu, omdat het in deze virtuele zandbak zit
die zich in een geïsoleerde virtuele machine bevindt, kun
je ervoor zorgen dat je je eigen computer die het host
als het onderliggende host besturingssysteem of de onderliggende
hypervisor niet kunt infecteren.
Als je werkt als cyberbeveiligingsanalist
zul je vaak sandboxes gebruiken om malwareanalyses uit te voeren,
vooral als je dynamische malwareanalyses uitvoert
waarbij je een stuk malware neemt, het uitvoert
en vervolgens identificeert wat er gebeurt als die malware draait op
dat specifieke gastbesturingssysteem.
Een ander goed gebruik van virtuele
machines is cross-platform virtualisatie.
Ik gebruik bijvoorbeeld een MacBook Pro als mijn primaire machine.
Dus als ik software applicaties wil testen voor
verschillende besturingssystemen,
dan kan ik voor elk besturingssysteem
een nieuwe machine pakken, zoals
een laptop voor Windows, een laptop
voor Linux en een laptop voor Mac.
Maar als ik virtualisatie gebruik,
kan ik in plaats daarvan platformonafhankelijke
virtualisatie toepassen door een gehost systeem op mijn
MacBook Pro te gebruiken met software
zoals VMware, Parallels of VirtualBox om die gastbesturingssystemen bovenop
mijn bestaande Mac OS-omgeving te installeren.
Hierdoor kan ik alle stukjes software
testen, ongeacht het besturingssysteem
dat ze nodig hebben, en zien hoe
ze op elkaar inwerken.
Dit is vooral geweldig voor webontwikkelaars,
want als webontwikkelaar wil ik er
zeker van zijn dat mijn website werkt op Windows 10,
Windows 11, Mac, een Chromebook, een iPhone, een Android-apparaat of wat
dan ook, en als je dat allemaal kunt testen
op één machine door virtualisatie
te gebruiken, is dat een geweldige bron voor
ons als ontwikkelaars.
Een andere geweldige toepassing van virtualisatie is training.
Je kunt labomgevingen maken die zo zijn
opgezet dat mensen met deze virtuele
machines kunnen oefenen op een live besturingssysteem.
Als je bijvoorbeeld studeert voor je
verschillende CompTIA-certificeringen en je koopt
je cursus diontraining. com komen met
ingebouwde hands-on labs.
Met deze labs kun je inloggen op onze cloud-gebaseerde
omgeving en dan op een veilige manier acties uitvoeren
op Linux-systemen, Windows 10-systemen, Windows
Server-systemen en andere dingen, en dit heeft geen
invloed op onze productieomgeving omdat
het allemaal geïsoleerd is in dit trainingsgebied,
of deze trainingszandbak.
Een ander voordeel van het gebruik van virtuele
machines voor een training of labomgeving
is dat je op verschillende punten snapshots kunt maken
en dan weer verder kunt gaan waar je die snapshot had.
Toen ik mijn cursussen persoonlijk gaf, maakte ik bijvoorbeeld
kapotte machines met Windows 7 en had ik verschillende problemen
voor mijn A+ studenten om
problemen op te lossen.
Ik zou ze de virtuele machine geven, ik zou hem aanzetten,
ik zou herstellen vanaf het laatste veilige punt,
dat was waar ik hem kapot had gemaakt,
en dan zou ik ze laten proberen uit te zoeken
wat er mis mee was en hoe ze het konden repareren.
Dit is een goed gebruik van virtuele machines
in je training.
En als je verder studeert en begint te leren over
Linux, Windows, serveromgevingen, Mac OS en andere
dingen zoals dat, kun je verschillende virtuele
machines opstarten die deze gastbesturingssystemen bevatten en je
vaardigheden oefenen in een veilige omgeving.
Het laatste dat we moeten
bespreken is het concept van emulatie,
omdat veel mensen emulatie verwarren met virtualisatie.
Emulatie houdt in dat je een systeem gebruikt
dat een ander systeem imiteert.
Met virtualisatie wordt een virtuele instantie
van een bepaald stuk hardware gemaakt en gebruikt.
Dus in werkelijkheid gebruik je een nieuwe fysieke machine die
wordt gerepresenteerd door software.
Maar met een emulator vertaalt een stuk
software de omgeving in realtime om te doen
alsof het iets anders is.
Als ik bijvoorbeeld een oud Super
Nintendo-spel op mijn MacBook Pro wil spelen,
kan ik een Super Nintendo-emulator zoals OpenEmu downloaden,
die de spelcode in realtime vertaalt
naar instructies die mijn Mac kan begrijpen.
Met virtualisatie heeft de software die wordt uitgevoerd
fysiek toegang tot de hardware van je machine, waardoor het
veel, veel sneller is dan wanneer je een emulator gebruikt.
Dus wanneer wil je een emulator gebruiken
in plaats van virtualisatie?
Als je een besturingssysteem wilt gebruiken
dat bedoeld is voor een ander type hardware,
zoals een Super Nintendo op een Mac of Windows-machine, dan zul
je een emulator moeten gebruiken.
Als je software wilt draaien die
bedoeld is voor een ander besturingssysteem, zoals
een Android die is ontworpen om te draaien op een
ARM-processor, maar je hebt een Intel-processor
en een Windows-besturingssysteem,
dan zijn emulators weer de juiste keuze voor jou omdat je te maken hebt
met andere onderliggende hardware.
Aan de andere kant, als je hoge snelheid en betere
prestaties nodig hebt, wil
je een virtualisatieoplossing gebruiken.
Vergeet echter niet dat je met virtualisatie beperkt
bent tot het draaien van software die gecodeerd is
voor de specifieke onderliggende hardware van je processor.
Normaal gesproken gebruiken de meesten van ons x86- of x64-gebaseerde processors,
dus je draait Windows, Linux of Mac, of een van deze
drie besturingssystemen op dit soort
systemen met virtualisatie werkt prima.
Maar als je een besturingssysteem probeert te
draaien dat is ontworpen voor een ARM-processor,
dan werkt dat niet met virtualisatie, dan moet je
een emulator gebruiken.
Over het algemeen zul je virtualisatie gebruiken
in plaats van een emulator, omdat het
sneller en efficiënter is en de
meeste dingen geschreven zijn
om te werken op een x86 of x64 processor.
Maar nogmaals, als je iets voor een
andere processor wilt draaien,
dan zul je een emulator moeten gebruiken.