Google heeft de nieuwste Windowsversie van Chrome voorzien van een beveiligingsmaatregel genaamd hardware-enforced stack protection die het lastiger moet maken voor aanvallers om kwetsbaarheden te misbruiken. Bij deze technologie gebruikt de processor een shadow stack, een nieuwe, beschermde stack met return adressen.

De feature is beschikbaar voor Chrome-gebruikers op Windows 10 versie 20H1 (December Update) of nieuwer, die gebruikmaken van een processor met Control-flow Enforcement Technology (CET) zoals elfde generatie Intel- of AMD Zen 3-processoren, zo laat Google in een blogpost weten.

Een veelvoorkomende kwetsbaarheid is de zogenaamde use-after-free (UAF), waarbij een aanvaller het aangevallen programma een door hem gekozen pointer laat aanroepen. Hier heeft de aanvaller controle over een object dat de adresruimte gebruikt die eerder door een ander object in gebruik was en door het programma gebruikt blijft worden. Vervolgens kan de aanvaller zijn code laten aanroepen die hij wil uitvoeren.

In het verleden kon een aanvaller zijn shellcode naar een bekende geheugenlocatie schrijven en dan de instructiepointer naar deze shellcode laten wijzen. Om te voorkomen dat stacks of heaps uitvoerbaar waren werd Data Execution Prevention toegevoegd. In een reactie hierop kwamen aanvallers met Return Oriented Programming (ROP). Hierbij maken aanvallers misbruik van de eigen code van een proces, aangezien die uitvoerbaar moet zijn.

Via controle over de stack en de instructiepointer kan een aanvaller de ‘ret’ instructie gebruiken om naar verschillende, handige stukken code te springen. Tijdens een exploit wordt de instructiepointer aangepast zodat niet de normale bestemming wordt aangeroepen, maar een klein gedeelte van de code genaamd een ROP-gadget. Door deze gadgets aan elkaar te koppelen kan een aanvaller uiteindelijk een gewenste functie aanroepen.

Stack protection moet dergelijke aanvallen lastiger maken. Naast de bestaande stack beschikt de processor over een shadow stack. Deze stack is niet direct door een programma te manipuleren en bevat alleen return adressen. De ret-instructie maakt nog steeds gebruik van de return adressen van de normale stack, maar controleert nu dat die gelijk is aan het adres dat in de shadow stack is opgeslagen. Wanneer dit het geval is blijft het programma gewoon werken. Komen de adressen niet overeen, dan doet zich een exception voor die door het besturingssysteem wordt onderschept. Het besturingssysteem kan de shadow-regio aanpassen zodat het programma blijft werken, maar in de meeste gevallen wordt het programma meteen beëindigd, aldus Google.

Naast Chrome kunnen ook andere programma’s van hardware-enforced stack protection gebruikmaken. Via de Windows Task Manager kan worden gekeken of de maatregel staat ingeschakeld. Dit is zichtbaar via de Details-tab van de Task Manager en dan de procesweergave. “Het inschakelen van hardware-enforced stack protection past met bestaande en toekomstige maatregelen om misbruik lastiger en kostbaarder voor een aanvaller te maken, en zo de mensen te beschermen die Chrome dagelijks gebruiken”, zegt Alex Gough van het Chrome Platform Security Team.

Source