Uit 'Opgesloten virussen' Sandbox-technologie voor virusbeschrijving
artikel in PC ACTIVE 11 2005 door Robbert Wethmar
Natuurlijk denkt u bij het horen van het woord zandbak niet meteen aan virusbestrijding, maar aan de fysieke zandbak waar kinderen onbevangen kunnen spelen. Een veilige plek voor hen dus. Die lijn kunnen we ook doortrekken naar de virusbestrijding, want in de wereld van computerbeveiliging hebben experts deze term overgenomen voor een omgeving waarin een (mogelijk) gevaarlijk systeem geen kwaad kan. Net als de zandbak uit de echte wereld: een ondergrond die niet stuk kan met een stevige rand.
Norman is een virusbestrijder die gebruikmaakt van het zandbakprincipe. De virusscanner creëert een omgeving waarin een programma zijn gang kan gaan zonder echt kwaad aan te richten. De scanner zelf zit als een glimlachende ouder op een bankje het gedrag te bekijken en weet snel of het allemaal veilig is of dat er juist oorlogje wordt gespeeld. In eerste geval is er natuurlijk niets aan de hand, maar in het laatste geval betreft het mogelijk een virus en is het tijd voor actie.
Verkeerschaos
Als we computerprogramma’s voorstellen als automobilisten, dan zijn de virussen de echte wegpiraten. Het antivirusprogramma geeft de te onderzoeken ‘bestuurder’ niet alleen een auto, maar ook een stuk weg, compleet met zijstraten, ander verkeer en stoplichten. Maar niets is echt, alles is een virtueel circuit in de software. Botsingen kunnen geen kwaad, geen enkele afslag leidt naar de openbare weg. De bestuurder wordt onwetend gehouden. Hij denkt in de ‘echte’ wereld rond te rijden, maar werkelijkheid zit hij gevangen op het testcircuit van de softwareprogrammeur: de sandbox of in het Nederlands gewoon zandbak.
Virtualisatie
De omgeving die Normans zandbak aan virussen biedt, is in feite een virtuele pc. De techniek lijkt veel op wat programma’s als VM Ware en VirtualPC doen. De te onderzoeken instructies worden niet op de echte pc uitgevoerd, maar op een virtuele. Daar door kunnen ook bijvoorbeeld schrijfacties naar de harde schijf eenvoudig worden afgevangen en onderzocht. Als viruscode de datum controleert om te zien of het al tijd is om actief te worden, heeft de sandbox dat direct in de gaten. Het is zelfs mogelijk de ‘payload’ van het virus zijn werk te laten doen in de virtuele omgeving. Op die manier wordt duidelijk wat het virus gaat doen mocht het actief worden, zonder dat er echt schade wordt aangericht.
Op het eerste gezicht lijkt het misschien bijna ondoenlijk om software een omgeving aan te bieden die op Windows lijkt. Maar dat valt gelukkig mee: het is in ieder geval niet nodig heel Windows na te bouwen. En die stukken die wel nodig zijn, hoeven niet echt functioneel te zijn. Zo kunnen programma’s in het echte Windows-besturingssysteem bijvoorbeeld de vrije ruimte op de harde schijf opvragen. Dat moet in de sandbox dan ook kunnen. Alleen hoeft die geen reële waarde te berekenen, maar gewoon altijd 2,86 GB teruggeven, of desnoods een willekeurige waarde tussen 2 en 8 GB, is afdoende.
De sandbox heeft dus aan een beperkt deel van de functionaliteit van Windows genoeg. Aan de andere kant geldt echter dat juist op plekken waar Windows controles mist, de sandbox juist wel alert moet zijn. Immers: virussen maken graag gebruik van zwakke plekken in het besturingssysteem. Hoeveel dat er zijn - of in ieder geval: waren - blijkt wel uit het grote aantal security patches dat Microsoft de laatste jaren heeft uitgebracht. Elk van die patches is op zich weer een punt waar de sandbox extra alert moet zijn.
Daarnaast moet de zandbak ook goed overweg kunnen met de instructiesets van de verschillende Intel- en AMD-processors. Er zijn soms subtiele verschillen tussen de typen, waar virussen gebruik van kunnen maken of afhankelijk van zijn. Simpelweg een Pentium 4 emuleren is dus niet voldoende, de sandbox moet ook een AMD-processor in de virtuele pc kunnen zetten.
![]() |
Oases
Met een virtuele pc met toeters en bellen zijn we er echter nog niet. Waar virussen zich vroeger verspreidden door zich in de bootsector van een diskette of exe-bestand te nestelen, wordt tegenwoordig steeds vaker internet gebruikt. De meest succesvolle virussen van de laatste jaren verspreiden zichzelf gewoon per mail. Het is voor een virus namelijk helemaal niet zo ingewikkeld om op een besmette pc e-mailadressen bij elkaar te sprokkelen en daar dan zonder dat de gebruiker het merkt berichten naartoe te sturen. Als die mailtjes weer het virus bevatten en door de geadresseerden worden geopend, kan de verspreiding erg snel gaan!
De sandbox van Norman is dan ook meer dan een zandbak. Het is een enorme woestijn met naast de virtuele pc nog veel andere oases. Zo is er een compleet netwerk, waardoor een virus dat e-mail gaat versturen net als in de buitenwereld het ip-nummer van de juiste mailserver kan achterhalen. Alleen krijgt hij die informatie natuurlijk niet van een echte, maar van een virtuele DNS-server in de sandbox. En dat ip-nummer zelf zal natuurlijk ook van een virtuele mailserver in diezelfde sandbox zijn. Kortom: een virus kan zich lekker uitleven en terwijl het zich denkt te verspreiden, komt het in werkelijkheid de zandbak niet uit. En de viruscanner kijkt rustig toe wat er gebeurt.
Een ander geintje dat virussen gebruiken, is het ophalen van een stukje programmacode van een website om dat vervolgens uit te voeren. Op die manier hoeft schadelijke code niet in het virus zelf te zitten. Bovendien kan de maker van het virus - die natuurlijk ook die website onder controle heeft - zo nog op het allerlaatste mo ment bepalen wat het virus precies moet gaan doen, of wanneer. Ook dat soort trucs worden door de sandbox genadeloos blootgelegd. Een virus in de zandbak krijgt natuurlijk niets van de echte site, maar van een virtuele site. En de gegevens die op die manier door het virus worden opgehaald, kunnen natuurlijk eenvoudig worden gevolgd. Zodra het virus er dingen mee doet die niet door de beugel kunnen, valt het onmiddellijk door de mand.
![]() |
Resistentie?
Virusmakers zitten natuurlijk niet stil. Ze zullen alles doen om te proberen detectie te vermijden. Door de zandbak uit te breiden tot een complete woestijn heeft Norman dat al een stuk lastiger gemaakt: een virus zal niet snel tegen de rand aanlopen.
Standaard verbergtrucs als zelfencryptie zoals stealth-virussen doen, zullen de sandbox niet voor de gek houden. Maar er blijven - in ieder geval in theorie - voldoende mogelijkheden over. De virtuele machine waarop Normans sandbox de virussen loslaat, heeft een reeks van eigenschappen waarop een virus zou kunnen testen. Probleem is natuurlijk dat virus makers die machine niet kennen en hem niet zomaar uit Normans Antivirus kunnen verwijderen. Het zal dus niet eenvoudig zijn hier op te testen. En als het al lukt, zullen de techneuten bij Norman de bewuste eigenschap van de zandbak binnen no-time aanpassen, zodat het virus alsnog tegen de lamp loopt. Dergelijk updates komen dan op dezelfde manier als updates van het signature-bestand bij de gebruikers terecht.
Een ander risico dat een virusmaker die deze aanpak volgt, loopt, is dat hij test op een eigenschap die niet alleen de sandbox, maar ook echt bestaande systemen hebben. Daar mee zal het virus op zo’n systeem ook niet werken. Daarmee wordt het virus in ieder geval minder schadelijk. Om het risico van resistente virussen te minimaliseren, is de code van de zandbak niet openbaar.
PC-ACTIVE 11-2005
U kunt het complete artikel lezen in PC Active van november; u kunt het in de vorm van een pdf bestand hier downloaden of openen:

