Google wijst op gebrekkige bescherming in Microsoft Edge

Ivan Fratric, bugjager bij Googles Project Zero, heeft meer uitleg gegeven over een kwetsbaarheid in Microsoft Edge die hij eerder dit jaar heeft onthuld, en nog niet afdoende door Microsoft is gepatcht.

Fratric publiceerde afgelopen donderdag een whitepaper waarin hij stelt dat Microsofts Arbitrary Code Guard (ACG) niet helemaal waterdicht is. ACG is volgens de onderzoeker niet in staat om “geavanceerde aanvallers ervan te weerhouden uit de browsersandbox te ontsnappen en andere aanvallen uit te voeren.”

Arbitrary Code Guard

Arbitrary Code Guard werd vorig jaar door Microsoft aan de Edge-browser toegevoegd als onderdeel van de Windows 10 Creators Update.”Wanneer ACG wordt toegepast op een Microsoft Edge Content Process, is het onmogelijk om nieuw uitvoerbaar geheugen toe te wijzen binnen een proces of om het bestaande uitvoerbare geheugen aan te passen”, schrijft Fratric in een blogpost. “Het doel hiervan is om het moeilijker te maken voor een aanvaller om malafide code uit te voeren.”

Dat is ten minste de theorie. Fratric onthulde in februari van dit jaar immers een techniek om de nieuwe veiligheidsmaatregel te omzeilen. Het probleem is dat ACG niet compatibel is met de Just-in-Time (JIT)-compiler in Edge. Moderne browsers gebruiken een JIT-compiler om de prestaties te verbeteren bij het uitvoeren van JavaScript. Om niet aan snelheid in te boeten, heeft Microsoft de JIT-compiler losgetrokken van het Edge Content Process en in een apart proces ondergebracht.

Fratric deed zijn ontdekking al in november vorig jaar. Hij publiceerde de resultaten pas in februari van dit jaar, nadat Microsoft niet in staat was om het probleem te verhelpen binnen de periode van 90 dagen die Project Zero hanteert om een bug publiek te maken.

Effectief?

In de whitepaper die pas werd gepubliceerd, gaat Fratric dieper in op de vraag hoe effectief ACG is als veiligheidsmaatregel. Hij beschrijft de verschillende problemen die zijn team heeft ontdekt in de implementatie ervan, en hoe die kunnen worden omzeild.

Ondanks verschillende fixes die Microsoft recent heeft uitgerold, beweert Fratric dat de huidige implementatie van ACG in Edge ervoor zorgt dat een andere veiligheidsmaatregel, Control Flow Guard (CFG), gevoelig blijft voor aanvallen. CFG is een geoptimaliseerde beveiligingsfunctie om memory corruption kwetsbaarheden te bestrijden.

“Momenteel, met veel bekende bypasses, is het omzeilen van CFG in Windows niet moeilijk. Mocht Microsoft echter in staat zijn om alle bekende zwakke punten van CFG op te lossen, inclusief het toevoegen van return flow protection, kan de situatie in de komende paar jaar veranderen. Aangezien Microsoft al de intentie heeft getoond om dit te doen, geloven wij dat dit hun langetermijnplan is”, besluit Fratric.