MAD: Memory Allocation meets Software Diversity

Het paper introduceert MAD, een nieuwe aanpak die geheugenallocatie combineert met softwarediversiteit om RowHammer-aanvallen te vertragen door middel van ruimtelijke diversificatie, waardoor de aanval wordt uitgesteld voor verdere reacties zonder prestatieverlies of hardwarewijzigingen.

Manuel Wiesinger, Daniel Dorfmeister, Stefan Brunthaler

Gepubliceerd Thu, 12 Ma
📖 5 min leestijd🧠 Diepgaand

Each language version is independently generated for its own context, not a direct translation.

Hier is een uitleg van het paper "MAD: Memory Allocation meets Software Diversity" in eenvoudig Nederlands, met behulp van creatieve analogieën.

Het Probleem: De "RowHammer" (De Trillende Muur)

Stel je voor dat je computergeheugen (RAM) een enorm appartementencomplex is met miljoenen kleine kamers (de geheugencellen). In deze kamers worden je bestanden en programma's opgeslagen.

Sinds 2014 weten we dat er een gevaarlijke truc bestaat, genaamd RowHammer.

  • De Analogie: Stel je voor dat je een muur van bakstenen hebt. Als je heel snel en hard tegen één specifieke baksteen trapt (of "hamert"), kan de trilling zo sterk zijn dat een andere baksteen, die je niet eens aanraakt, uit zijn voegen springt.
  • In de computer: Als een hacker heel snel toegang heeft tot een rij geheugen, kan hij ervoor zorgen dat een buurrij een foutje krijgt (een bit flip). Hierdoor kan de hacker gegevens veranderen, zelfs als hij geen toestemming heeft om die gegevens te lezen.

Tot nu toe hebben beveiligingsdeskundigen geprobeerd deze trillingen te stoppen door specifieke "zwakke plekken" te isoleren of extra trage herhalingen toe te voegen. Maar hackers zijn slim: ze hebben nieuwe manieren gevonden om deze trillingen te veroorzaken, zelfs op de nieuwste computers. De oude methoden werken niet meer goed genoeg.

De Oplossing: MAD (Memory Allocation Diversity)

De auteurs van dit paper, Manuel, Daniel en Stefan, hebben een nieuwe aanpak bedacht die ze MAD noemen.

  • MAD staat voor Memory Allocation Diversity (Verscheidenheid in Geheugentoewijzing).
  • Het idee: In plaats van te proberen de trillingen te stoppen, maken ze het voor de hacker onmogelijk om te weten waar hij moet hameren.

De Creatieve Analogie: De "Willekeurige Woningverdeling"

Stel je voor dat je een grote voorraad sleutels hebt voor het appartementencomplex.

  • De oude manier (Zonder MAD): Als je een huurder een kamer geeft, krijgt hij altijd kamer 101. Als hij vertrekt en terugkomt, krijgt hij weer kamer 101. Een hacker kan dit patroon leren: "Ah, als ik kamer 101 en 102 snel achter elkaar gebruik, zit er een kwetsbare muur tussen."
  • De MAD-methode: MAD werkt als een dichtstapende, willekeurige conciërge.
    1. Horizontale Diversiteit (De Willekeurige Sleutelkast): Als een huurder een kamer verlaat, gooit de conciërge de sleutel niet terug in de rij, maar in een willekeurige lade. Als de huurder terugkomt, krijgt hij misschien weer dezelfde kamer, maar misschien ook een heel andere. De hacker kan het patroon niet voorspellen.
    2. Verticale Diversiteit (De "Buddy" Truc): Soms zijn er lege kamers die te groot zijn voor de huurder. De conciërge splitst een grote kamer op in twee kleine, of zet twee kleine kamers samen tot een grote. Dit gebeurt ook willekeurig.

Het resultaat: De hacker moet nu urenlang proberen om de juiste combinatie van kamers te vinden. Terwijl hij probeert, verandert het hele complex van indeling. Het is alsof je probeert een specifieke steen te vinden in een muur, terwijl de muur voortdurend van vorm verandert en de stenen van plek wisselen.

Hoe werkt dit in de praktijk?

Het paper beschrijft twee strategieën die hackers gebruiken om hun "slachtoffer" te vinden:

  1. De "Dichte" aanval (Dense-allocation): De hacker probeert alle kamers in het complex te huren om de indeling te forceren.

    • MAD's reactie: Omdat MAD de sleutels willekeurig verdeelt, ziet de hacker ineens een "alarm" oplichten. Hij probeert te veel kamers tegelijk, en het systeem merkt dit op als een verdachte activiteit. Het is alsof iemand probeert het hele hotel te huren; de conciërge wordt argwanend.
  2. De "Verspreide" aanval (Sparse-allocation): De hacker probeert heel slim en zuinig te huren, alleen de kamers die hij nodig heeft, en hoopt dat de rest van het complex op de juiste manier gevuld wordt.

    • MAD's reactie: Dit is waar MAD het sterkst is. Omdat de indeling voortdurend willekeurig verandert, moet de hacker miljoenen keren proberen om de juiste "tril-muur" te vinden. In plaats van dat hij dit in een seconde doet, duurt het nu misschien wel jaren.

Waarom is dit belangrijk?

  • Het vertraagt de hacker: De hoofddoel van MAD is niet om de aanval onmogelijk te maken (niets is 100% veilig), maar om de hacker zo langzaam te maken dat hij opgeeft.
  • Het geeft tijd voor reactie: Omdat de aanval zo lang duurt, kan de computer (of de beheerder) merken dat er iets vreemds gebeurt en de computer veilig afsluiten voordat de hacker zijn doel bereikt.
  • Het werkt overal: MAD maakt geen onderscheid tussen het besturingssysteem (Windows/Linux) of een webbrowser. Het werkt bovenop de normale geheugenbeheerder en heeft geen speciale hardware nodig.

Conclusie

Kortom: MAD is een slimme truc die het geheugen van je computer chaotisch en onvoorspelbaar maakt voor hackers.

  • Vroeger: Hackers konden een kaart tekenen van het geheugen en precies weten waar ze moesten hameren.
  • Nu met MAD: De kaart is voortdurend aan het veranderen. De hacker moet blindelings rondlopen en hopelijk op de juiste plek trappen, maar tegen die tijd is de kaart alweer veranderd.

Het is een beetje alsof je probeert een naald te vinden in een hooiberg, maar terwijl je zoekt, wordt de hooiberg voortdurend opgeschud en verplaatst. Het maakt de aanval zo moeilijk en tijdrovend dat het voor de hacker niet meer de moeite waard is.