memory banksOnderzoekers van Google zijn er in geslaagd om op een x64-systeem met ddr3-geheugen bits in het geheugen te manipuleren door gebruik te maken van tekortkomingen in het fysieke geheugen. Door bepaalde plekken in het geheugen telkens te benaderen, kunnen aangrenzende bits worden 'geflipt'.

Door de aanval zou een proces met normale gebruikersrechten schrijftoegang kunnen krijgen tot andere, beveiligde delen van het geheugen. Dat schrijven de onderzoekers van Googles Project Zero. Daarmee zouden aanvallers met normale gebruikersrechten bijvoorbeeld root-toegang kunnen krijgen, een sandbox kunnen omzeilen of zelfs uit een virtuele machine kunnen breken.

Het probleem dat de Google-onderzoekers misbruiken bevindt zich niet in de software, maar in het fysieke geheugen. Doordat geheugen op steeds kleinere schaal wordt gemaakt en geheugencellen zich steeds dichter bij elkaar bevinden, kan de elektrische lading van bits in het geheugen 'lekken' naar aangrenzende bits. Dat dit kon, was al langer bekend, maar de Google-onderzoekers maakten twee proof-of-concepts om aan te tonen hoe dit concreet kan worden misbruikt. Aanvallers moeten daarvoor tienduizenden keren in minder dan een seconde geheugen benaderen, waardoor aangrenzende bits kunnen flippen.

De ram-hackers, die hun hack Rowhammer hebben genoemd, deden hun onderzoek op een x64-Linux-systeem, maar in principe is de hack niet aan een bepaalde instructieset of besturingssysteem gebonden. De onderzoekers leunden wel op een specifieke instructie uit de x86-instructieset, clflush, om de cache te omzeilen en tienduizenden keren rechtstreeks toegang te krijgen tot het geheugen, maar vergelijkbare instructies in andere instructiesets zouden daarvoor ook bruikbaar zijn.

De kwetsbaarheid is in verschillende ddr3-geheugenreepjes aanwezig, al geven de Google-onderzoekers niet aan welke modellen en fabrikanten kwetsbaar zijn. Duidelijk is wel dat ddr4-geheugen niet kwetsbaar is, evenals geheugen met error correcting code. De onderzoekers hebben een tool gemaakt waarmee gebruikers kunnen testen of hun pc is getroffen, al waarschuwen de onderzoekers dat de test niet waterdicht is: als de tool aangeeft dat een pc niet is getroffen, wil dat niet zeggen dat de aanval niet op een andere manier kan worden opgezet. Ze hebben zelf een aantal laptops getest, waarvan een deel kwetsbaar was. De onderzoekers vonden nog geen kwetsbare desktops.

De onderzoekers maakten twee proof-of-concepts. In het eerste geval ging het om een tool in Native Client, een deel van Chrome dat websites gecompileerde code in een webbrowser laat draaien. De exploit wist uit de sandbox van Native Client te 'breken', waardoor het rechtstreeks kon communiceren met het geheugen van het besturingssysteem. Deze exploit is inmiddels onschadelijk gemaakt, al is onduidelijk of de patch al de stabiele versie van Chrome heeft bereikt.

Daarnaast maakten de onderzoekers een exploit die als een normaal x64-proces draait, maar hogere gebruikersrechten weet te krijgen en zo toegang krijgt tot het volledige geheugen. Volgens de onderzoekers is dit probleem moeilijker op te lossen met bestaande hardware. Het vervangen van kwetsbare ddr3-reepjes door niet-getroffen geheugen biedt wel soelaas.

Bron: Tweakers.net