de EDP-Auditor nummer 3 2005
39
Virtualisatie en de IT-auditor Virtualisatie is het gebruik van software om hardware of een gehele computeromgeving anders dan die waar de software feitelijk op 1 draait, te emuleren . In het geval dat een heel systeem wordt
geëmuleerd, wordt vaak gesproken over een virtuele machine. Een virtuele machine kan bestaan naast reguliere applicaties die actief zijn op een computersysteem. Dit artikel gaat in op virtualisatie van Bert Rechter
systemen met virtuele machines op basis van software.
Inleiding In dit artikel zal worden ingegaan op de achtergrond en historie van het concept virtualisatie en wordt een introductie gegeven op de werking van het concept virtualisatie. Vervolgens komen de mogelijke toepassingen, voor- en nadelen van het gebruik van virtualisatie, en de invloed die virtualisatie heeft op de audit-aanpak bij het beoordelen van omgevingen waar virtualisatie wordt toegepast aan bod. Daarnaast wordt een overzicht gegeven van veel voorkomende virtualisatiesoftwareproducten.
Achtergrond en historie De techniek van virtualisatie is afkomstig van mainframe systemen waar het ‘Dynamic Logical Partitioning’ (kortweg LPAR) heet. IBM heeft deze techniek ontwikkeld om timesharing mogelijk te maken op mainframes. In het verleden hadden veel organisaties maar één mainframe en dit mainframe werd gebruikt voor zowel ontwikkeling, test als productie2. Met de LPAR-functionaliteit kunnen meerdere virtuele omgevingen op hetzelfde mainframe worden gebruikt. Later (in 1999) is deze techniek ook beschikbaar gekomen op IBM AS/400-systemen. Tegenwoordig is virtualisatie mogelijk op vrijwel alle midrange-systemen van IBM3 en bieden ook andere leveranciers soortgelijke functionaliteit op hun systemen.
Het concept virtualisatie De werking van virtualisatie De werking van virtualisatie is gebaseerd op een extra laag besturingssoftware (eigenlijk een soort besturingssysteem op zichzelf) bovenop het bestaande besturingssysteem waarin virtuele machines worden gedefinieerd.
Drs B.J. Rechter RE is werkzaam als Projectmanager EDP Audit bij Ernst & Young EDP Audit in Den Haag. Hij heeft dit artikel op persoonlijke titel geschreven.
Een virtuele machine is een logische representatie van een fysiek computersysteem met alle bijbehorende eigenschappen. Binnen een virtuele machine wordt vervolgens een besturingssysteem (bijvoorbeeld Windows 2003 Server) geïnstalleerd. Schematisch ziet virtualisatie er uit als in figuur 1.
Applicatie
Applicatie Applicatie
Applicatie Applicatie
Applicatie Applicatie
BesturingsBesturingssysteem Systeem (bv.Windows (bv.Windows NT4) NT4)
BesturingsBesturingssysteem Systeem (bv. (bv. Linux) Linux)
BesturingsBesturingssysteem Systeem (bv.Windows (bv.Windows 2003) 2003)
Intel Architectuur
Virtualisatie Virtualisatie software
Besturingssysteem Hardware Figuur 1. Schematische weergave van een virtuele omgeving Figuur 1 geeft een schematische weergave van de onderdelen van een mogelijke virtuele omgeving. In deze figuur is de applicatie aan de linkerkant een applicatie die rechtstreeks op het besturingssysteem draait dat in de tweede laag zit. De drie applicaties rechtsboven draaien allemaal op een besturingssysteem in een virtuele machine. Gemeenschappelijk gebruik hardware Voordat een besturingssysteem kan worden geïnstalleerd, moet worden geconfigureerd welke hardware voor de virtuele machine beschikbaar is (bijvoorbeeld aantal en omvang van de harde schijven, netwerkkaarten, communicatiepoorten zoals USB en seriële/parallelle poorten en overige randapparatuur zoals een diskettedrive). Deze configuratieslag is nodig om te voorkomen dat de virtuali-
40
de EDP-Auditor nummer 3 2005
satiesoftware altijd alle mogelijke randapparatuur van een virtuele machine moet koppelen aan hardware van de fysieke server. Een dergelijke aanpak zou een flinke aanslag op de performance van de virtuele machines betekenen, omdat de virtualisatiesoftware iedere keer als er iets gebeurt op de server hardware dit door moet geven aan de virtuele machine. De virtualisatiesoftware zorgt er op basis van de hardware configuratie per virtuele machine voor dat het gemeenschappelijke gebruik van hardware door meerdere virtuele machines in goede banen wordt geleid. Scheiding van virtuele machines Om de bestanden van verschillende virtuele machines van elkaar te scheiden, wordt schijfruimte veelal gesimuleerd door middel van een bestand. Hierbij wordt voor ieder volume (te vergelijken met de letter die in Windows aan een harde schijf wordt toegewezen) een separaat bestand gebruikt. Eventueel is het ook mogelijk direct gebruik te maken van een fysieke harde schijf in het systeem. Dit is echter niet aan te raden omdat dan geen zekerheid bestaat dat de bestanden van de virtuele machines onderling en die van het onderliggende besturingssysteem van elkaar gescheiden blijven. De virtualisatiesoftware zorgt ervoor dat de verschillende virtuele machines van elkaar zijn gescheiden. Deze scheiding wordt gerealiseerd doordat de virtualisatiesoftware bepaalde systeeminstructies4 afvangt en eventueel simuleert. Dit betreft systeeminstructies die niet zonder meer kunnen worden uitgevoerd omdat het effect ervan zou kunnen doorwerken op andere virtuele machines (bijvoorbeeld directe toegang tot hardware). Omdat het afvangen van alle systeeminstructies een enorme vertraging zou betekenen, worden de meeste ‘normale’ systeeminstructies direct op het systeem zelf uitgevoerd zonder tussenkomst van de virtualisatiesoftware. In de praktijk betekent dit dat één virtuele machine kan ‘crashen’ (bijvoorbeeld een blauw scherm in Windows) zonder dat dit invloed heeft op de andere virtuele machines die actief zijn. Om te voorkomen dat één virtuele machine alle systeembronnen (processortijd en intern geheugen) gebruikt zodat de andere virtuele machines effectief niet meer functioneren, is het mogelijk beperkingen in te stellen op het gebruik van intern geheugen en processortijd.
Toepassingen Server consolidatie In de afgelopen jaren is een sterke trend zichtbaar in de ontwikkeling van serverhardware waarbij relatief steeds meer capaciteit beschikbaar komt voor een nagenoeg gelijke prijs. Voor een geringe meerprijs is zelfs een
forse hoeveelheid extra capaciteit verkrijgbaar. Deze ontwikkeling maakt het mogelijk meerdere applicaties op dezelfde fysieke server te draaien. In veel gevallen is dit echter geen bevredigende oplossing omdat één applicatie nu de correcte werking van alle andere applicaties op die server kan verhinderen. Ook kunnen sommige applicaties niet op hetzelfde systeem naast elkaar worden gebruikt vanwege specifieke afhankelijkheden (denk bijvoorbeeld aan verschillende versies van een databasemanagementsysteem die niet tegelijkertijd binnen één besturingssysteem actief kunnen zijn). In deze gevallen biedt het gebruik van virtualisatie een oplossing. Door het gebruik van virtualisatiesoftware en meerdere virtuele machines zijn er geen beperkingen meer om meerdere applicaties binnen één besturingssysteem te gebruiken. Ook is via de virtualisatiesoftware de onderlinge invloed van applicaties beperkt tot performance omdat alle applicaties uiteindelijk nog wel van dezelfde hardware gebruikmaken. Scheiding van ontwikkel/test/productie omgevingen Omdat virtuele machines volledig van elkaar gescheiden kunnen worden, biedt virtualisatie de mogelijkheid om op één fysiek computersysteem meerdere gescheiden omgevingen te creëren, bijvoorbeeld een ontwikkel/testomgeving en een productieomgeving. Met name in kleinere bedrijven, waar vaak niet zo veel verschillende computersystemen beschikbaar zijn, kan zo toch een vrijwel fysiek gescheiden testomgeving worden gerealiseerd. Scheiding ontwikkel/productieomgeving voor softwareontwikkelaars Bij het testen van nieuwe of aangepaste programmatuur kunnen fouten optreden die de stabiliteit van het besturingssysteem kunnen aantasten. Ook is het voor softwareontwikkelaars vaak wenselijk om volledige beheerderrechten op de eigen pc te hebben om de nieuwste ontwikkelgereedschappen zelf te kunnen installeren. Veel beheerders hebben daarom een extra pc op hun bureau staan omdat het niet wenselijk is de standaard kantoor pc te gebruiken. Door gebruik te maken van virtualisatie kan op één (weliswaar iets krachtiger pc) een extra omgeving worden aangemaakt voor systeemontwikkeling. De ontwikkelaar heeft volledige controle over deze omgeving zonder dat deze invloed heeft op de standaard kantoorautomatiseringomgeving. Ook kan gemakkelijk een back-up worden gemaakt, door het kopiëren van het bestand dat de harde schijf van de virtuele machine bevat samen met de bijbehorende configuratiebestanden. Het herstellen van de virtuele omgeving na een fout is dan relatief eenvoudig
de EDP-Auditor nummer 3 2005
doordat alleen de juiste bestanden moeten worden teruggezet om weer een goed werkende omgeving te krijgen. Consolidatie externe koppelingen Met name bij banken en verzekeraars worden veel koppelingen met externe netwerken gebruikt die in sommige gevallen ook nog een eigen server hebben voor het verwerken van de gegevens. Zonder virtualisatie zijn hiervoor allemaal aparte servers (of soms gewoon losse standaard pc’s) nodig die al dan niet aan het reguliere netwerk zijn gekoppeld via een firewall. Meestal vragen deze toepassingen niet veel rekenkracht, waardoor ze via virtualisatie relatief eenvoudig te consolideren zijn op één fysieke server. Daar waar sprake is van gescheiden netwerken is wel van belang dat de fysieke server over voldoende netwerkkaarten beschikt om de verkeersstromen fysiek te scheiden. Iedere virtuele machine moet dan wel de beschikking hebben over een separate netwerkkaart.
Voor- en nadelen van virtualisatie Afhankelijk van de situatie kan het gebruik van virtualisatie voordelen bieden. In alle gevallen zijn er echter ook nadelen aan het gebruik van virtualisatie verbonden. Hierna is een overzicht opgenomen van de belangrijkste voor- en nadelen van de toepassing van virtualisatie. Voordelen • Er is minder hardware nodig Door het consolideren van meerdere servers in meerdere virtuele machines op één server met virtualisatiesoftware is nog maar één fysieke server nodig. Dit betekent minder onderhoudskosten en een overzichtelijker serverruimte. • Het maken en het beheer van back-ups wordt makkelijker Doordat alle software en data op een server staat is het eenvoudig om een back-up te maken en deze weer terug te zetten. Het maken van een back-up van de gehele virtuele machine kan eenvoudig worden uitgevoerd door het kopieren van één bestand. • Vergemakkelijkt en versnelt uitwijk Het is niet meer noodzakelijk om alle systemen afzonderlijk op te bouwen als vooraf kopieën zijn gemaakt van de virtuele machines. Een standaard server met voldoende capaciteit is dan voldoende om de virtualisatiesoftware te installeren en de virtuele machines terug te zetten. Om dit proces verder te vergemakkelijken en versnellen kan vooraf een ‘image’ (digitale kopie van de gehele harde schijf van een server) worden gemaakt van de host server waarop de virtuele machines draaien. In geval van uitwijk wordt dan alleen dit image teruggezet om weer een server beschikbaar te hebben als basis voor de virtuele machines.
Nadelen • Toegenomen afhankelijkheid van hardware Meerdere applicaties zijn bij toepassing van virtualisatie afhankelijk van één enkel fysiek apparaat. Als hardware van de server niet meer functioneert, treft dit gelijk alle virtuele machines die actief zijn op die server. Om dit risico te beperken zijn extra maatregelen wenselijk, zoals een dubbele voeding en redundante harde schijven (bijvoorbeeld via RAID-5 technologie waarbij de gegevens zo zijn verdeeld dat bij uitval van één schijf de gegevens nog beschikbaar zijn op de andere schijven). •Additioneel beheer voor de virtuele machines en virtualisatiesoftware Hoewel het fysieke beheer makkelijker is geworden, moet ook een additionele beheerinspanning worden geleverd, namelijk het beheer van de (configuratie van de) virtuele machines en van de virtualisatie software zelf. De hoeveelheid werk die dit met zich meebrengt is met name afhankelijk van de snelheid waarmee het gebruik van de virtuele machines toeneemt en/of er nieuwe virtuele machines bijkomen. Afhankelijk van de stabiliteit van de IT-omgeving voor wat betreft groei in gebruik en aantal en aard van de applicaties is dit meer of minder werk. Bijvoorbeeld bij een sterke groei in het gebruik kan het nodig zijn dat een virtuele machine meer systeembronnen zoals schijfruimte en intern geheugen krijgt toegewezen.
Virtualisatie en de IT-auditor Het gebruik van virtualisatie heeft uiteraard invloed op ons werk als IT-auditor. In deze paragraaf zal worden ingegaan op de invloed die virtualisatie heeft op de automatiseringsomgeving en de consequenties die dit heeft voor het werk van de IT-auditor. De invloed die virtualisatie heeft op een specifieke automatiseringsomgeving is enerzijds afhankelijk van de specifieke doelstelling die men daarmee heeft (bijvoorbeeld voor serverconsolidatie of juist voor scheiding van test en productieomgeving) en anderzijds van het product dat wordt gebruikt. Onafhankelijk van het gebruik van virtualisatie en van het product dat wordt gebruikt zijn de volgende punten van belang: • Beheer van de virtualisatiesoftware Met het gebruik van virtualisatie is ook extra software geïntroduceerd: de virtualisatiesoftware. Aangezien deze software het kloppend hart is van de virtuele machines is het van groot belang dat deze software goed wordt beheerd. Aandachtspunten zijn met name configuratie- en versiebeheer omdat onzorgvuldig doorgevoerde wijzigingen in de configuratie (denk aan het wijzigen van de hoe-
41
42
de EDP-Auditor nummer 3 2005
veelheid beschikbaar geheugen of netwerkinstellingen) en/of de softwareversie grote gevolgen kunnen hebben voor de werking van de virtuele machines. • Beperken van toegang tot de management console Alle virtualisatieproducten maken gebruik van een al dan niet geïntegreerde managementconsole waarmee de virtuele omgeving kan worden beheerd. Vanuit deze console kunnen virtuele machines worden toegevoegd en verwijderd en kan ook de configuratie van iedere virtuele machine worden aangepast. Punt van aandacht is ook het gebruik van een beveiligde verbinding voor remote toegang tot de management console en virtuele machines. Het gebruik van een beveiligde verbinding is meestal een standaardinstelling die echter ook kan worden uitgeschakeld. Ongeautoriseerde toegang tot de managementconsole betekent dat instellingen kunnen worden aangepast die de betrouwbare werking van de virtuele omgeving aan kunnen tasten of de beschikbaarheid in gevaar kunnen brengen. Om het risico te beperken moet de toegang tot het account voor de managementconsole worden beperkt tot een zo klein mogelijke groep beheerders en dient het gebruik van dit account te worden gelogd. • Beveiliging van (configuratie)bestanden van virtuele machines In aanvulling op de afscherming van de management console is het van belang de configuratiebestanden en de bestanden met de inhoud van de virtuele machine zelf goed af te schermen door de toegang te beperken tot het beheerdersaccount (‘root’ in Unix of ‘Administrator’ in Windows). Ongeautoriseerde wijziging van configuratiebestanden kan de betrouwbare werking van de virtuele machine in gevaar brengen. Ongeautoriseerde wijziging in bestanden met de inhoud van de virtuele machine kunnen de integriteit van die bestanden aantasten waardoor de virtuele machine niet meer bruikbaar is. • Scheiding van bestanden tussen de virtuele machines Voor welke toepassing virtualisatie ook wordt gebruikt, scheiding van bestanden tussen de virtuele machines is van belang om te voorkomen dat ze óf afhankelijk van elkaar worden óf elkaars werking zouden kunnen beïnvloeden. Voor de IT-auditor is van belang dat hij nagaat op welke wijze de bestanden zijn gescheiden. Hiertoe is allereerst van belang welk product wordt gebruikt en afhankelijk van het product kan vervolgens worden bepaald op welke wijze de bestanden gescheiden kunnen worden. •Aanwezigheid van back-ups van de configuratie van de virtuele omgeving Het opnieuw inrichten van de virtuele omgeving is een tijdrovende klus en foutgevoelig vanwege de vele instel-
lingen die moeten worden nagelopen en mogelijk aangepast. In aanvulling op de reguliere back-ups van de inhoud van de virtuele omgevingen is het dus van belang dat goede back-ups aanwezig zijn van configuratie van de virtuele omgeving. Naast de genoemde punten is het van belang dat het gebruik van virtualisatie tijdig (nog vóór het plannen van de audit) wordt herkend: met name in AS/400-omgevingen valt een partitie niet zonder meer als zodanig te herkennen en bestaat het risico dat wordt voorbijgegaan aan de invloed van virtualisatie, terwijl dit wel had gemoeten. Om dit risico te beperken kan het beste bij het in kaart brengen van de te onderzoeken omgeving expliciet worden nagegaan of sprake is van virtualisatie. Om een juiste beoordeling te kunnen uitvoeren van de configuratie van de virtualisatiesoftware is voldoende kennis van de gebruikte virtualisatiesoftware noodzakelijk, vooral ook vanwege de specifieke eigenschappen en mogelijkheden van de virtualisatiesoftware die verschilt per leverancier. De IT-auditor dient zich dus van te voren voldoende te verdiepen in de te onderzoeken situatie en zich ervan te vergewissen dat of hijzelf voldoende kennis heeft of dat hij een specialist inschakelt met voldoende kennis. Bij het herkennen van virtualisatiesoftware kan het volgende overzicht van virtualisatieproducten behulpzaam zijn: • Virtualisatie op IBM-systemen Gezien de oorsprong van virtualisatie bij IBM Mainframes mag het geen verbazing wekken dat IBM’s virtualisatie techniek ‘Dynamic Logical Partioning (LPAR)’ op de nieuwste IBM midrange hardware (de i5 series) ondersteuning biedt voor IBM i5/OS (de nieuwste versie van wat voorheen OS/400 heette), AIX (IBM’s Unix variant) en Linux (een public domain Unix variant)5. • Virtualisatie op Intel systemen Voor op Intel-processoren gebaseerde hardware zijn er twee producten: VMWare6 en Microsoft Virtual Server 20057. Microsoft Virtual Server 2005 wordt als extra software geïnstalleerd bovenop Windows 2003 Server. In principe ondersteunt Microsoft Virtual Server 2005 alleen Windows besturingssystemen, maar in Servicepack 1, dat later dit jaar uitkomt, is ondersteuning voor Linux ingebouwd. VMware ondersteunt vrijwel alle voor Intel beschikbare besturingssystemen en heeft meerdere virtualisatie producten: • VMWare Workstation VMWare Workstation is gericht op desktop systemen en wordt geïnstalleerd bovenop een bestaand besturingssysteem. De console van de virtuele machines is alleen bruikbaar vanaf het eigen systeem en kan niet vanaf
de EDP-Auditor nummer 3 2005
afstand worden benaderd. Deze versie is met name gericht op IT-professionals zoals systeembeheerders en systeemontwikkelaars die behoefte aan flexibele gescheiden testen/of ontwikkelomgeving hebben, maar geen extra hardware kunnen of willen aanschaffen. • VMWare GSX server VMWare GSX Server is bedoeld voor de professionele markt. Deze versie wordt net als VMWare Workstation geïnstalleerd bovenop een bestaand besturingssysteem. De console van de virtuele machines is desgewenst vanaf afstand te gebruiken met een ‘Remote Console’ functionaliteit over een beveiligde verbinding. Deze versie is gericht op server consolidatie en het vergemakkelijken van softwareontwikkeling. • VMWare ESX server Dit is het paradepaardje van VMWare, bedoeld voor gebruik met bedrijfskritische applicaties. Deze versie wordt direct op de hardware geïnstalleerd zonder dat eerst een besturingssysteem aanwezig moet zijn. VMWare ESX server maakt hiervoor gebruik van een eigen aangepaste versie van Linux. Naast de functionaliteit van GSX Server biedt deze versie mogelijkheden voor zero-downtime onderhoud en load-balancing van virtuele machines over meerdere processoren en meerdere VMWare ESX Servers. Voor zero-downtime onderhoud kunnen de activiteiten van een virtuele machine op één ESX server door een realtime kopie van deze virtuele machine op een andere ESX server worden overgenomen. Vanwege de uitgebreide functionaliteiten en additionele ondersteuning voor gebruik met meerdere servers is deze versie ook zeer geschikt voor gebruik in rekencentra. • Overige(systemen Tegenwoordig bieden alle grote leveranciers van (op Unix) gebaseerde systemen wel functionaliteit aan voor virtualisatie. Meestal noemen ze dit partitioning. Hierna is een overzicht van de meest voorkomende Unix-varianten met de naam waaronder de ondersteuning voor virtualisatie wordt geleverd: • HP-UX 11i: HP Virtual Server Environment8; • Sun Solaris 10: Solaris Containers (geen volledige virtualisatie van een systeem)9; • OpenVMS: OpenVMS Galaxy soft partitions10.
ieder denkbaar platform en wordt steeds vaker toegepast als kostenbesparende oplossing voor het consolideren van servers of het realiseren van gescheiden omgevingen. Voor de IT-auditor betekent dat in ieder geval dat hij zich bewust moet zijn van de mogelijkheid dat sprake is van virtualisatie in een te beoordelen omgeving. Daar waar virtualisatie wordt toegepast betekent dit verder dat extra werkzaamheden moeten worden verricht om inzicht te krijgen in de maatregelen die zijn getroffen rondom virtuele machines en in de virtualisatiesoftware. Om een goede beoordeling van deze maatregelen te kunnen uitvoeren is voldoende kennis van zaken nodig bij de IT-auditor of moet deze een specialist inschakelen die over deze specifieke materiekennis beschikt. Noten 1 Deze definitie is uit het Engels vertaald op basis van de definitie op SearchStorage.com onder ‘virtualization’, http://www.searchstorage.com, juni 2005. 2 R. Rose, ‘Survey of System Virtualization Techniques’, http://www.robertwrose.com/vita/rose-virtualization.pdf, maart 2004. 3 Op basis van informatie over Dynamic Logical Partioning op de website van IBM, http://www.ibm.com/servers/eserver/iseries/lpar, 2005. 4 Instructies die door het besturingssysteem aan de hardware worden gegeven om bepaalde taken uit te voeren, zoals het openen van een bestand op de harde schijf of het uitvoeren van berekeningen 5 Op basis van informatie over Dynamic Logical Partioning op de website van IBM, http://www.ibm.com/servers/eserver/iseries/lpar, 2005. 6 Op basis van informatie over vPlatform op de website van VMware,’vPlatform’, http://www.vmware.com/products/ vplatform, 2005. 7 Op basis van informatie over Microsoft Virtual Server 2005 op de website van Microsoft, http://www.microsoft.com/ windowsserversystem/virtualserver/default.mspx, september 2004. 8 Op basis van informatie over HP-UX11i op de website HP, ‘HP Virtual Server Enviornment for HP-UX 11i and multiOS’, http://h71028.www7.hp/com/enterprise/cache10381-00-0-121.aspx, 2005.
Tot slot ‘Virtualisatie is het gebruik van software om hardware of een gehele computeromgeving anders dan die waar de software feitelijk op draait, te emuleren11’. Na deze definitie is in dit artikel ingegaan op de achtergrond van virtualisatie, is de werking uitgelegd, zijn de voor- en nadelen op een rijtje gezet, en is de invloed van virtualisatie op het werk van de IT-auditor behandeld. Virtualisatie is tegenwoordig beschikbaar voor vrijwel
9 Op basis van informatie over Sun Solaris op de website van Sun, ‘Solaris 10 Utilization’, http://www.sun.com/software/solaris/utilization.jsp. 10 Op basis van informatie over Galaxy op de website van HP, ‘OpenVMS Galaxy’, http://h71000.www7.jp.com/availability/galaxy.htm, 2005. 11 Deze definitie is uit het Engels vertaald op basis van de definitie op SearchStorage.com onder ‘virtualization’, http://www.searchstorage.com, juni 2005.
43