2min

Tags in dit artikel

, ,

SentinelOne biedt voor het eerst inzicht in de wijze waarop een onderzoeker zichzelf wist te machtigen om code naar wens op Oracle VirtualBox servers uit te voeren.

Securityprofessional Max van Amerongen is actief voor SentinelLabs, de onderzoeksafdeling van securityorganisatie SentinelOne. Van Amerongen werd in maart van dit jaar door een jaarlijkse hackwedstrijd van Zero Day Initiative aangespoord om Oracle VirtualBox te hacken. De laatstgenoemde oplossing omvat een hypervisor, benodigd voor de virtualisatie van hardware in de cloud.

Van Amerongen slaagde erin om als buitenstander machtiging te verkrijgen om code uit te voeren op door Oracle VirtualBox beheerde servers. Net te laat voor de livewedstrijd van Zero Day Initiative, maar desalniettemin succesvol.

Voor het eerst sinds de kraak zet SentinelOne de aanpak van Van Amerongen uiteen. “Virtualisatie is een enorm interessant doelwit”, vertelt de onderzoeker. “De emulatie van hardware en de verbinding van data en daadwerkelijke hardware zijn verbazingwekkend complex. En heeft iets complexiteit – dan heeft iets bugs.”

Beginselen

Met het laatstgenoemde mantra ging Van Amerongen van start. De onderzoeker verdiepte zich in de manier waarop Oracle VirtualBox packets tussen guests en de host uitwisselt. Term guest wordt in het geval virtualisatie gebruikt om workloads te omschrijven die zich in een virtuele machine bevinden, en dus toegang hebben tot de computing power van een de server waarop de machine draait. Term host omschrijft deze servers.

De reden voor Van Amerongens aanvankelijke interesse in de uitwisseling van gegevens tussen guests en de host is verklaarbaar. Oracle VirtualBox treft meerdere maatregelen om te zorgen dat een host geen schadelijke informatie van guests aanneemt. Zelfs als een organisatie de fout ingaat en een kwaadwillende applicatie op een virtuele machine installeert, wordt de applicatie bij de deur van de server geweigerd. Probeert een losgeslagen applicatie de server met packets te overspoelen, zij het bewust of door een codefout, dan blijft een server functioneel. Kwetsbaarheden in de interactie tussen guests en een host zijn kansrijk voor hackers. Van Amerongen zocht het laatste – en Van Amerongen vond het laatste.

Twee lekken

De onderzoeker begon met een blik op de broncode van de function waarmee packets van guests naar hosts worden verstuurd. Hij trof een afgezonderd veld voor Generic Segmentation Offload (GSO) frames. De technologie GSO wordt gebruikt om netwerkverkeer in efficiënte banen te leiden. Door een paravirtualized driver als netwerkadapter voor VirtualBox te gebruiken vond Van Amerongen een manier om de GSO-structuur van packets te manipuleren.

Oracle VirtualBox’ omgang met GSO maakte twee praktische methoden mogelijk. In beide gevallen (ZDI-21-455 en ZDI-21-456) voerde Van Amerongen data toe die niet door de host kon worden verwerkt, wat het mogelijk maakte om machtiging te verkrijgen en op hypervisor-niveau code te injecteren. Beide kwetsbaarheden zijn inmiddels door Oracle gepatcht.

Tip: SentinelOne is de flight recorder voor bescherming van endpoints