Het Franse securitybedrijf Vupen geeft in een uitgebreide blogpost bloot hoe het Windows 8, via Internet Explorer 10, onlangs heeft gepwned op Pwn2Own. Die beruchte hackwedstrijd vond in maart dit jaar plaats en daarbij is onder meer Microsofts nieuwste software voor de bijl gegaan. Vupen heeft IE10 op de Pro-variant van Windows 8 gekraakt, draaiend op de Surface Pro-tablet van Microsoft zelf.

'Moeilijker dan ooit tevoren'

"Pwn2Own 2013 was een veel grotere uitdaging dan ooit", begint security-onderzoeker Nicolas Joly van Vupen de uitleg. Windows 8 heeft namelijk vele functies ingebouwd die de mogelijkheden van exploits inperken. "DEP, HiASLR, /GS, SEHOP, vTable Guard, Protected Mode sandbox, etc", somt Joly op.

"Maar met de juiste kwetsbaarheden kunnen al deze functies verslagen worden om de nieuwe tablet te pwnen." En dat is wat Vupen eerder dit jaar heeft gedaan. De kraak is in meerdere stappen gepleegd, met als eerste fase een integer-overflow die heeft geleid tot code-uitvoering in de context van de IE10-sandbox.

Vervolgens wist Vupen ook uit die isolatiezone van de browser te breken. Microsoft heeft het gebruikte 0-day gat niet in de eerstvolgende patchronde weten te dichten. De Patch Tuesday van april heeft het gat open laten staan, maar in mei is het gebruikte gat gedicht.

Ongedocumenteerde functies

Het begin van deze pwnage is gevonden in de oude browsertechnologie VML (Vector Markup Language), een XML-bestandsformaat voor tweedimensionale vector graphics. Deze voorloper van SVG (Scalable Vector Graphics) is volgens de officiële specificatie een afgeschaft (deprecated) formaat, maar "het is nog altijd default ondersteund door IE10", blogt Vupens senior researcher Joly.

Een uitvoerige analyse van IE10's VML-component vgx.dll heeft de innerlijke werking blootgelegd. Daarbij heeft Vupen ongedocumenteerde functies ontdekt die zijn te manipuleren wat vervolgens een bruikbare ingang heeft opgeleverd. "Er zijn verschillende manieren om deze kwetsbaarheid te exploiten."

32-bit en 64-bit, desktop en Metro

De ontdekte en op Pwn2Own ingezette kwetsbaarheid betreft de 32-bit variant van Windows 8, maar de impact is groter. "Met enkele kleine wijzigingen is het ook mogelijk om dezelfde techniek te gebruiken om de 64-bit versies van IE10 Desktop (Classic) en IE10 Modern (Metro) te exploiten", rondt Joly de blogpost af. Hiermee zijn dus zowel de klassieke desktopomgeving van Windows als de nieuwe touch-omgeving te grazen te nemen.

Met laatstgenoemde is deze kraak in theorie dus ook van toepassing op de uitgeklede Windows 8-variant RT, draaiend op ARM-processors. "Voor Windows 8 is er zelfs nog een andere exploittechniek", meldt de Vupen-researcher waarbij hij deze 'bonus' niet onthuld. Deze techniek "vertrouwt niet op gadgets en vereist bijna geen veranderingen voor de verschillende VML-versies".

Vupen legt zijn Pwn2Own-gat uit, hoewel het daarbij niet alles blootgeeft: