De groep van hackhoogleraar Herbert Bos aan de VU is het gelukt in te breken in een computer zonder dat er een bug zat in de software. Het is een nieuwe manier van hacken, waar de computerindustrie nog geen antwoord op heeft. De groep presenteerde z’n bevindingen vorige week in de VS op een congres over computerveiligheid.
Bos en zijn groep maakten bij hun aanval gebruik van doodnormale eigenschappen van zowel de hardware als de software van geheugenchips. Door die handig te combineren, konden ze een Windows-systeem overnemen. “Het is een van de coolste aanvallen die ik ooit heb gezien”, zegt Bos aan de telefoon.
Efficiënt geheugen
De aanval begint bij de software. Moderne systemen zoals Windows zetten deduplicatie in om het geheugen zo efficiënt mogelijk te gebruiken. “Deduplicatie betekent dat Windows ervoor probeert te zorgen dat dezelfde data niet twee keer in het geheugen staat”, legt Bos uit. “Als bijvoorbeeld meerdere programma’s dezelfde data in het geheugen hebben, worden deze maar één keer opgeslagen in de fysieke geheugenchips. Beide programma’s verwijzen dan naar diezelfde data.”
Zodra een van de programma’s de data wil wijzigen, maakt Windows weer een eigen kopie voor elk programma. En daar zit ‘m de kwetsbaarheid, want een aanvaller kan daardoor ontdekken of bepaalde data al in het geheugen staan.
Wachtwoorden achterhalen
“Stel dat een aanvaller precies hetzelfde stukje data in het geheugen zet dat er al in staat, dan wordt dat door Windows gededupliceerd. Als hij vervolgens zijn data probeert te wijzigen, dan duurt dat iets langer dan normaal, omdat er eerst een kopie gemaakt moet worden. Dat kan de aanvaller meten. Zo kun je informatie lekken uit het geheugen van een ander programma.” De VU-hackers gebruikten dit bijvoorbeeld om wachtwoorden en andere privacy-gevoelige informatie te achterhalen.
Om de software vervolgens over te nemen, komt een hardwarebug om de hoek kijken. Om chips zo klein mogelijk te maken, zitten de cellen die de informatiebits bewaren zo dicht mogelijk op elkaar gepakt. En daar gaat wel eens iets mis.
Omklappende bit
Bos: “We zijn een rijtje bits in het geheugen heel vaak achter elkaar gaan lezen. Als je dat snel genoeg doet, lekt er spanning van naburige bits, waardoor in een extreem geval een naastliggende bit kan omklappen. Een 1 wordt dan een 0 of omgekeerd. Deze bug staat bekend als Rowhammer en is een van de meest bizarre bugs in hardware die we kennen.”
Door de omklappende bit kan een aanvaller zorgen dat de computer naar een andere plek in het geheugen gaat dan normaal om programmacode te lezen. Zo kan de aanvaller dus bepalen welke instructies worden uitgevoerd.
Niet de enigen
Volgens Bos is Microsoft op de hoogte van de succesvolle aanval en al een aantal maanden bezig met een oplossing, maar die is er nog niet. “Ze vonden het niet leuk dat ik dit naar buiten wilde brengen, maar ik vind dat het publiek ook moet weten dat hun computers kwetsbaar zijn. Wij zijn niet de enigen die hiermee bezig zijn.”
Bos raadt aan om deduplicatie uit te zetten op je computer. Het National Cyber Security Center beschrijft hoe dat kan. Ook helpt het volgens Bos om een Javascript-blokker zoals ScriptSafe te gebruiken in je browsers, voor alle websites, behalve de paar die je echt vertrouwt.