Twee security-onderzoekers hebben uitgevist hoe je de kleine controllerchips in flashgeheugen kan kraken. En wel op zo'n manier dat je alle data kan uitlezen.

Veiligheidsonderzoekers hebben een manier gevonden om SD-kaarten te hacken en de opgeslagen data te onderscheppen. De kaartjes zijn de meest gebruikte vorm van flashgeheugen om gegevens van telefoons en digitale camera’s te bewaren.   

Andrew ‘bunnie’ Huang en Sean "xobs" Cross onthulden hun kraak in een blogpost en tijdens hun voordracht op het Chaos Computer Congress (30C3). Door de hack wordt het mogelijk om software te draaien op de kaart zelf. Dat kan omdat ze minuscule, ingebouwde ‘computertjes’ hebben, zogenaamde microcontrollers, die het opslaan van data in goede banen moeten leiden.

 

Man-in-het-midden
Het resultaat is “perfect voor een man-in-the-middle-aanval”, zegt Huang in een video van de speech op 30C3. De huidige manier om flashgeheugen te gebruiken “is een uitnodiging om iemand tussen onze data te zetten en we vertrouwen hem om te doen wat ze ook doen.”

In een man-in-the-middle-aanval kan een hacker data onderscheppen die van één locatie naar een andere gaan, met de mogelijkheid om de gegevens te veranderen. Volgens Huang en Cross kunnen met hun aanpak ongemerkt data gekopieerd worden of gevoelige data zoals encryptiesleutels veranderd worden. Ook het knoeien met authenticatieprocessen, waarbij bijvoorbeeld een ander bestand wordt uitgevoerd dat hetgene dat eigenlijk geautoriseerd was, is mogelijk.

Ook voor SSD en smartphone
De twee onderzoekers gebruiken voor hun demonstratie SD-kaarten, maar in principe werkt hun manier ook met andere vormen van flashgeheugen, zoals SSD-schijven (de opvolgers van de traditionele harde schijf) of eMMC (embedded multimedia controllers, die in smartphones worden gebruikt).

Om de kraak aan de praat te krijgen, moesten Huang en Cross de controllerchips van de kaartjes reverse engineeren. Eerst moesten ze erachter komen hoe ze op de chips nieuwe, eigen firmware konden draaien. Daarna was het zaak om te zien naar welke prioritaire commando’s de chips luisterden. 

De specifieke kwetsbaarheid die de twee heren beschrijven, is echter niet van toepassing op alle soorten flashgeheugen, omdat zij afhankelijk is van de specifieke controllerchip die wordt gebruikt. Ze zijn er wel van overtuigd dat het een goede algemene aanpak is, omdat alle flashgeheugen zulke controllers heeft om kapotte geheugencellen op te sporen en links te laten liggen.

Goedkoper dan Arduino
Cross en Huang wijzen overigens op nog een mooie bonus: de hackergemeenschap heeft nu toegang tot microcontrollers die veel goedkoper zijn dan de typisch gebruikte hardware zoals Arduino-systemen. De in- en uitvoersnelheid van een SD-kaart zijn voor veel toepassingen misschien wel niet snel genoeg, maar ze kunnen heel handig zijn om bijvoorbeeld data te loggen van sensoren die aan het internet hangen.

“Een Arduino, met een 8-bit microcontroller van 16 MHz, kost je zowat 20 dollar”, aldus Huang. “Een microSD-kaart met gigabytes aan geheugen en een veel krachtigere microcontroller kost maar een fractie daarvan.”