image

Nieuwe Rowhammer-aanval op DRAM-geheugen ontwikkeld

woensdag 4 oktober 2017, 14:23 door Redactie, 7 reacties

Onderzoekers van Google onthulden twee jaar geleden een aanval op het werkgeheugen van computers die nu door onderzoekers van verschillende universiteiten is aangepast, waardoor bestaande verdedigingsmaatregelen worden omzeild. De Rowhammer-aanval, zoals de aanval wordt genoemd, maakt het mogelijk voor software om de inhoud van het geheugen te manipuleren en zo volledige controle over de computer te krijgen.

Geheugenchips zijn georganiseerd in een soort rasterpatroon van "rijen" en "kolommen". De afgelopen jaren hebben geheugenchips een steeds grotere capaciteit gekregen, waarbij de geheugencellen steeds dichterbij elkaar worden geplaatst. Hierdoor nemen de kosten af, maar de celdichtheid heeft negatieve gevolgen voor de betrouwbaarheid van het geheugen. De onderzoekers van Google demonstreerden dat de dichtheid ervoor zorgt dat de cellen invloed op elkaar kunnen hebben.

Door het herhaaldelijk benaderen van geheugenrijen kan data in nabijgelegen rijen corrupt raken. De aanval die de onderzoekers van Google ontwikkelden maakt hiervan gebruik, waarbij het herhaaldelijk benaderen van een geheugenrij ervoor kan zorgen dat bits in aangrenzende rijen worden "geflipt". Door het flippen van deze bits is het uiteindelijk mogelijk om lees-schrijftoegang tot het volledige fysieke werkgeheugen te krijgen, waarna het mogelijk is om kernelrechten te krijgen.

Naar aanleiding van de Rowhammer-aanval werden er allerlei verdedigingstechnieken ontwikkeld en bedacht om misbruik tegen te gaan. Onderzoekers van de Technische Universiteit van Graz, de Universiteit van Pennsylvania en de Universiteit van Maryland hebben nu een nieuwe Rowhammer-aanval ontwikkeld die al deze technieken kan omzeilen. Daarbij maken ze gebruik van een aanval die herhaaldelijk één geheugenrij benadert, in plaats van meerdere geheugenrijen zoals bij de oorspronkelijke Rowhammer-aanval het geval was.

Om de aanval voor zowel de gebruiker als het besturingssysteem te verbergen maken de onderzoekers gebruik van Intel SGX. De Software Guard Extensions (SGX) is een feature van moderne Intel-processoren om programma's in een geïsoleerde omgeving genaamd enclaves uit te voeren. Daarnaast is het geheugen van de enclave versleuteld, om aanpassingen of inspectie te voorkomen. Zelfs de kernel en hardware-onderdelen van het besturingssysteem hebben er geen toegang toe. Ook is de enclave uitgesloten van de "performance counters" van de processor. Om Rowhammer-aanvallen te detecteren werden er methodes ontwikkeld die naar performance counters kijken, maar via SGX weten de onderzoekers deze methode te omzeilen.

Aanvallen

In hun onderzoeksrapport omschrijven de onderzoekers twee mogelijke aanvalsscenario's. De eerste aanval is gericht op personal computers en kan een aanvaller rootrechten op het systeem geven, ook als er verschillende verdedigingstechnieken tegen Rowhammer zijn ingeschakeld. De tweede aanval betreft een ddos-aanval tegen cloudsystemen.

Volgens de onderzoekers is het mogelijk om via de Intel SGX-feature een groot aantal cloudsystemen uit te schakelen. Als SGX een fout in de versleutelde geheugenregio detecteert stopt het namelijk de gehele machine totdat die handmatig is uit- en weer ingeschakeld. Door de foutinjectie op meerdere machines te coördineren zou een aanvaller een cloudprovider volledig uit de lucht kunnen halen.

Beperkingen

Een beperking van de nu onthulde Rowhammer-aanval is dat een aanvaller in het geval van een aanval op een personal computer de Rowhammer-enclave gesigneerd moet zien te krijgen voordat die kan worden uitgevoerd. Toch is dit geen waterdichte oplossing om de aanval te voorkomen. "Het is goed mogelijk om malware in app-stores te krijgen", aldus de onderzoekers. Daarnaast zou het via SGX mogelijk zijn om code en data voor derde partijen verborgen te houden. Met name voor cloudaanbieders is het niet mogelijk om alleen gesigneerde enclaves uit te voeren. De cloudprovider zal in dit geval dan ook niet-gesigneerde enclaves van de gebruiker uitvoeren.

Afsluitend laten de onderzoekers weten dat het onderzoek (pdf) laat zien dat alleen softwarematige maatregelen tegen Rowhammer-aanvallen onvoldoende zijn. Daarnaast hekelen ze de werking van SGX waardoor systemen kunnen worden stilgelegd. Dit gedrag omschrijven de onderzoekers als een beveiligingsrisico. Er wordt dan ook gepleit voor het alleen stoppen van de enclaves in plaats van het gehele systeem.

Reacties (7)
04-10-2017, 15:44 door Anoniem
SGX is aanwezig sinds de tweede batch van Skylake processors (26 okt.2015)
Eerdere processors hebben hier dus geen last van.

Het staat niet op de chip gedrukt, dus daaraan kan je niet meteen zien of SGX er wel of niet in zit.
SGX reference manual vind je hier https://software.intel.com/sites/default/files/managed/48/88/329298-002.pdf

SGX werkt normaalgesproken niet vanzelf!
BIOS support is nodig voor SGX om SGX te enablen en te configureren in het systeem..
De eigenaar van het systeem moet eerst kiezen voor opt in van Intel SGX door het te enablen via de BIOS. Daarvoor is een BIOS nodig van de OEM die nadrukkelijk Intel SGX ondersteunt. De ondersteuning van de BIOS kan variëren van OEM tot OEM en zelfs van product line tot product line bij dezelfde OEM.

Er zijn drie mogelijke BIOS settings.
1. Enabled - Intel SGX is enabled en beschikbaar voor gebruik in toepassingen.
2. Software Controlled - Intel SGX kan worden enabled door software applicaties, maar is niet beschikbaar totdat dit gebeurt (“software opt-in” genoemd). Intel SGX enablen via software opt-in kan een system reboot vereisen.
3. Disabled - Intel SGX is volstrekt disabled en het kan niet enabled worden door software. Deze setting kan alleen worden gewijzigd in the BIOS setup scherm..

Opmerking: afhankelijk van je BIOS, kan het zijn dat je alleen de Enabled and Disabled opties hebt.

https://software.intel.com/en-us/articles/properly-detecting-intel-software-guard-extensions-in-your-applications

Deze nieuwe Rowhammer-aanval zou zelfs nog werken als SGX disabled is in je BIOS.
ECC memory zou iets kunnen helpen, maar alleen als er 1 bit omvalt.
Als er 2 bits zouden omvallen heb je er niets aan.
04-10-2017, 15:53 door Anoniem
Hoe praktisch uitvoerbaar is dit nou eigenlijk? je weet toch niet waar een bepaalde applicatie of variabele in het geheugen komt of vergis ik me? hoe kun je dan een specifiek bit flippen die je bijvoorbeeld root toegang geeft? Ok, het crashen van van een computer lijkt me praktisch wel haalbaar. Maar voor de rest....is dit niet meer een theoretische kwetsbaarheid als iets wat praktisch uitvoerbaar is?
04-10-2017, 17:01 door User2048
Door Anoniem: Hoe praktisch uitvoerbaar is dit nou eigenlijk? je weet toch niet waar een bepaalde applicatie of variabele in het geheugen komt of vergis ik me? hoe kun je dan een specifiek bit flippen die je bijvoorbeeld root toegang geeft? Ok, het crashen van van een computer lijkt me praktisch wel haalbaar. Maar voor de rest....is dit niet meer een theoretische kwetsbaarheid als iets wat praktisch uitvoerbaar is?
Er zijn exploits voor beschikbaar: https://en.wikipedia.org/wiki/Row_hammer#Exploits
04-10-2017, 17:07 door Anoniem
Door Anoniem: Hoe praktisch uitvoerbaar is dit nou eigenlijk?

Zie b.v. https://www.youtube.com/watch?v=-JXZbGj0kFc.
04-10-2017, 17:58 door Anoniem
Dit soort dingen laat zien dat Joel Spolky's "Law of Leaky Abstractions" na 15 jaar niet minder actueel is geworden.
https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
04-10-2017, 18:19 door VriendP
Als ik dit lees voel ik vooral een heel diepe vermoeidheid.
05-10-2017, 11:22 door Anoniem
.Quote": "..Daarnaast is het geheugen van de enclave versleuteld ...."

Een beetje vreemd. Als het geheugen versleuteld is. Ik neem uiteraard aan 1) een goed algoritme en 2) in CBC mode.
Men gooit een bitje om in blokken voorafgaand aan het laatste blok, dan resulteert dat in een foutieve decryptie van alle opvolgende blokken => dus niet bruikbare data.
Uizondering kan zijn als er een bit in het laatste blok is omgegooid, maar ook hier resulteert dat in het omvallen van veel meer dan 1 bit na decryptie.
Kortom ik heb zo mijn twijfels over de effectiviteit, tenzij het doel een DDOS aanval is, maar volgens mij zijn daar wel makkelijkere methoden voor.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.