Beveiligingsonderzoeker Herbert Bos, verbonden aan de VU, heeft met zijn onderzoeksgroep een aanval ontwikkeld die niet gebruikmaakt van bugs in software. Deze komt deels voort uit tekortkomingen van dram-geheugen en staat bijvoorbeeld het achterhalen van wachtwoorden toe.
Ook heeft de aanval tot gevolg dat veel systemen van eindgebruikers kwetsbaar zijn. De hoogleraar systeem- en netwerkbeveiliging demonstreerde de techniek op een Windows 10-machine met de nieuwste versie van de Edge-browser, met behulp van een javascript-programma, zonder gebruik te maken van bekende bugs in de software. Hij voerde de aanval ook uit op Linux. Bos lichtte zijn onderzoek woensdag toe in het programma BNR Digitaal en presenteert het zowel op het IEEE symposium over beveiliging en privacy als op de Blackhat-conferentie. Het onderzoek werd uitgevoerd in samenwerking met Erik Bosman, Kaveh Razavi en Cristiano Giuffrida.
De aanval bestaat uit twee componenten. De eerste maakt volgens Bos gebruik van een tekortkoming in dram-geheugenchips. Deze techniek is niet nieuw en staat bekend als rowhammering. Door snel achter elkaar bepaalde geheugenrijen te activeren, kan de staat van aangrenzende geheugencellen worden veranderd. Het gevolg daarvan is dat een bitwaarde van 0 naar een waarde van 1 kan worden geflipt. Dit is mogelijk doordat de afstand tussen de verschillende cellen op geheugenchips klein is.
De tweede component van de aanval is het feit dat Windows 8.1 en 10 en bepaalde virtualisatiediensten standaard gebruikmaken van een geheugenoptimalisatietechniek, die bekendstaat als deduplicatie. Daarbij wordt identieke informatie, die op twee verschillende memory pages aanwezig is, samengevoegd op dezelfde fysieke pagina. Dit heeft het gevolg dat ruimte kan worden bespaard bij het opslaan van informatie.
De aanval gaat ervan uit dat een aanvaller weet dat er op een bepaalde plek in het geheugen een geheim aanwezig is, bijvoorbeeld in de vorm van een wachtwoord of een adres van programmacode. Bos legt uit dat een aanvaller vervolgens een grote hoeveelheid overeenkomende memory pages genereert, die alleen afwijken op het gebied waar het wachtwoord is opgeslagen.
Als een van die gegenereerde bytes overeenkomt met een van de 'geheime' bytes, dan wordt deze gededupliceerd door het systeem. Door in de gedeelde memory page te schrijven moet de deduplicatie weer ongedaan worden gemaakt, waardoor een tijdsverschil optreedt. Dit verschil is bijvoorbeeld met een javascript-programma in de browser uit te lezen. Doordat de aanvaller weet welke pagina werd aangepast, weet hij uiteindelijk ook het wachtwoord te achterhalen.
Daar komt bij dat het ook mogelijk is om via deze techniek data naar bepaalde plekken in het geheugen te schrijven, aldus Bos. Daarbij maakt hij gebruik van de eerdergenoemde tekortkoming in de dram-chips, door eerst op zoek te gaan naar geheugengebieden waar hij bits kan flippen. Daarna maakt hij op die plek een geheugenpagina aan, die overeenkomt met de pagina waar gevoelige gegevens staan. Door de overeenkomst gaat het systeem over tot deduplicatie en kan de aanvaller ervoor zorgen dat de daaruit voortkomende gegevens op de juiste plek komen te staan, waar bit flipping mogelijk is.
Door deze handeling vervolgens uit te voeren, is het op die manier mogelijk om de gevoelige informatie aan te passen, wat bijvoorbeeld kan leiden tot privilege escalation. Daarmee kan een aanvaller zichzelf hogere rechten toewijzen en zo verschillende handelingen op een systeem uitvoeren.
De ernst van deze aanval ligt in het feit dat er weinig tegen gedaan kan worden en dat er geen bestaande bugs in software voor nodig zijn, bijvoorbeeld een zero day. Volgens Bos is Microsoft al enkele maanden bezig met een oplossing, maar deze is op dit moment nog niet beschikbaar. Het uitschakelen van deduplicatie zou een mogelijkheid zijn, maar dat heeft grote gevolgen voor de opslag van gegevens, met name op apparaten die maar een kleine hoeveelheid geheugen bezitten. Bos besloot om met zijn bevindingen naar buiten te treden, om duidelijk te maken dat het vertrouwen in veel geheugenchips misplaatst is.