De theorie van een hack bedenken is geniaal, maar het echte zware werk komt bij het daadwerkelijk toetsen van de theorie in de praktijk. Hoe maak je een proof of concept of een werkende applicatie? Vaak door bloed, zweet en tranen en met vallen en opstaan. Waarbij je niet moet opgeven als je door een simpele typo dagen tijd verliest. Hacken is is niet het aan elkaar knopen van de ene programmeer-API aan de andere, vaak moet je de grenzen opzoeken. Soms moet je letterlijk die API misbruiken om je hack te laten werken.

Drammerig op mobiel?

Promovendi Victor van der Veen kan hierover meepraten. Begeesterd door de theorie van de ultieme hardware hack, de Row Hammer exploit, vroeg hij zich een jaar geleden af: is dit ook mogelijk op een gangbare mobiele telefoon? Is het mogelijk om een smartphone te hacken door herhaaldelijk regels fysiek geheugen te schrijven met als doel nabijgelegen geheugencellen te beïnvloeden? En die zogenaamde 'bit flip' te bewerkstelligen?

De pc's waarop de originele exploit werd aangetoond draaiden immers op volle snelheid en waren niet geoptimaliseerd voor batterijgebruik. Oftewel mission impossible om het op een consumenten handheld-device te proberen? Op de Hack in the box in het luxueuze Grand Krasnapolsky, beschrijft Victor dit op een humoristische manier door ons mee te nemen in "the making of". Oftewel het ontwikkelproces van DRAMMER, de Android-variant van de row hammer-exploit. Te horen aan het openingsapplaus een succesvolle exploit!

Niet zelf bedacht

De doctor in spé aan de Vrije Universiteit te Amsterdam, waar hij zich onder andere bezighoudt met mobiele malware, heeft de hack niet zelf bedacht. De "RowHammer"-techniek waardoor geheugen met bepaalde lees- en schrijfpatronen wordt bestookt, bestaat al een tijd. Het is een manier die enkel werkt als de aanvaller direct toegang heeft tot het geheugen, zonder tussenkomst van de processorcache.

De uitdaging van Victor is dan ook vooral een manier te bedenken om deze cache op een smartphone te omzeilen. Met andere woorden, een heuse pelgrimstocht naar het proof of concept. Heilig doel: die mysterieuze bit flip vinden. En dat op een huis-tuin-en-keuken Android-telefoon!

Doorzetten loont!

Ook uw auteur weet uit eigen ervaring dat doorzetten loont. In de goede oude "homebrew" dagen, in 2006 toen er nog geen iPad was, mocht ik zelf ook hacken op de PSP, de playstation portable. Iedereen zei: het is onmogelijk om full motion video te streamen naar een handheld device. Logisch, iedereen liep in die tijd nog rond met van die dikke Nokia's, en hoe zou je dan films kunnen kijken op een opgewaardeerde gameboy?

Net als Victor heb ik nachtenlang moeten werken aan het proof of concept, grappig genoeg ook met dezelfde soort problemen met co-processors en typos in het proces. Maar bewijzen mocht ik het en Pimpstreamer werd een succes! Een Nederlands programmaatje draaide op honderdduizenden portables! Helaas was er toen ook nog geen Apple-Store.

Johnny can do it!

Terug naar Victor die, tussen het surfen c.q. strandbezoek en de naderende deadline van zijn research paper door een manier zocht om die magische flip te krijgen. Met vaak hilarische chatlogs tot gevolg. De resultaten bleven uit en soms waren ze zo teleurstellend, dat er zelfs al een titel voor zijn inzending was bedacht voor als het niet lukte: "Why Johnny cannot flip a bit on ARM".

Echter, Johnny liet zich niet kisten en eindelijk, na veel pogingen, kwam de doorbraak. Ondanks dat de cache bijna niet uit te zetten was op een mainstream smartphone, was er toch een publiek toegankelijke API om DMA (Direct Memory Access) gevonden! Hammering was mogelijk! En het werd mogelijk.

Google betaalt

Eind goed, al goed. De concept applicatie werkte vanuit user-space en DRAMMER was geboren. Victor kon zijn paper indienen en zelfs Google betaalde 4000 dollar voor het vinden van de kritieke exploit binnen het Android OS. Weer een manier om root te worden binnen Android. Maar nu in de vorm van een hardware-hack.

Google reageerde ook nog met een update waarbij deze specifieke exploit ongedaan werd gemaakt. Natuurlijk, dit soort verhalen horen we graag, maar er zijn talloze mislukte pogingen die we niet horen. Met de onvermijdelijke moraal van dit verhaal: Vooral doorgaan!