Dirty Cow

Wij schreven eerder deze week al over de Dirty Cow-kwetsbaarheid: een elf jaar oude bug ontdekt door Linus Torvalds en destijds opgelost, maar de oplossing veroorzaakte een ander probleem waardoor de fix weer werd teruggedraaid. De bug is daarna blijkbaar "vergeten" maar is nu dan eindelijk aangepakt. Het was toen nog niet bekend of de kwetsbaarheid ook te vinden was op Android-apparaten. Dat blijkt nu dus wel het geval te zijn.

Beveiligingsonderzoeker David Manouchehri heeft een proof of concept geplaatst op github. De code kan, in combinatie met enkele extra regels code, Android-toestellen volledig rooten.

Alle Android-versies kwetsbaar

"Het is erg makkelijk voor iemand die een beetje bekend is met het Android-bestandssysteem. Voor zover ik weet werkt deze exploit op elk Android-apparaat sinds versie 1.0. Android 1.0 begon met Linux Kernel 2.6.25 en het lek is al aanwezig sinds versie 2.6.22," aldus Manouchehri.

Ook andere beveiligingsonderzoekers (die niet bij naam genoemd willen worden) hebben inmiddels root-exploits ontwikkeld. Deze zijn allemaal gebaseerd op de publiekelijk beschikbare Dirty Cow-exploit. Deze is aangepast om te werken op Android-toestellen.


Op de volgende pagina: Flink doordrammen

Drammer/Rowhammer

Alsof de Dirty Cow-kwetsbaarheid nog niet erg genoeg was, is er ook nog een andere kwetsbaarheid ontdekt. Verschillende beveiligingsonderzoekers hebben een nieuwe manier gevonden om Android-apparaten te misbruiken zonder gebruik te maken van kwetsbaarheden in de software.

Deze nieuwe aanvalstechniek maakt misbruik van een fysieke kwetsbaarheid in RAM-chips. Deze aanval is overigens niet beperkt tot Android-apparaten maar kan ook werken op andere ARM- en x86-gebaseerde apparaten en computers.

De aanval maakt misbruik van een oud probleem waarmee geheugen (DRAM) een decennium geleden te maken had. Men verhoogde de capaciteit maar de chips werden kleiner waardoor aangrenzende geheugencellen hun elektronische lading lekte naar omringende cellen. Door dit vaak genoeg snel echter elkaar te doen (ook wel Hammeren genoemd) konden op deze manier cellen met een 0-waarde worden geflipt naar een 1-waarde en andersom.

Fabrikanten bestuderen dit fenomeen al enige tijd (geheugencorruptie leidt immers tot instabiele systemen en crashes) Andere onderzoekers hebben inmiddels kunnen aantonen dat het naast crashes ook beveiligingsproblemen met zich mee kan brengen.

Row Hammer-techniek

Google heeft in maart via Project zero laten zien dat het "row hammer" effect op de x86-64 architectuur ervoor kon zorgen dat aanvallers privileges konden verhogen en konden ontsnappen uit de Google Chrome sandbox.

Andere onderzoekers hebben dit probleem verder onderzocht en lieten zien dat het mogelijk was de kwetsbaarheden te misbruiken via JavaScript op websites en zo zelfs gevirtualiseerde servers in cloud-omgevingen kon aanvallen.

Men wist niet zeker of deze aanvalstechnieken ook gebruik konden worden op ARM-platformen omdat deze zoveel verschilde van x86-64 maar een groep onderzoekers van de VUSec groep op de Vrije Universiteit van Amsterdam, Graz universiteit in Oostenrijk en de universiteit van Californië hebben ontdekt en aangetoond dat het zelfs makkelijker is om zo'n aanval uit te voeren op de ARM-architectuur dan op de x86-architectuur.

In onderstaande video wordt uitgebreid uitgelegd hoe de rowhammer techniek precies in z'n werk gaat.

De onderzoekers noemen deze nieuwe manier van aanvallen Drammer, een afkorting voor Deterministic RowhAMMER maar ook voor een samenvoeging van de woorden DRoid en hAMMER, daarnaast vonden ze dit woord ook zo mooi omdat het het woord DRAM bevat en ten slotte omdat het ook nog eens een mooi Nederlands woord is dat goed past bij deze manier van aanvallen.

De aanvallers hebben een malafide Android-applicatie ontwikkeld die geen machtigingen nodig heeft en root-privileges kan krijgen door misbruik te maken van memory bitflipping. De app is getest op 27 verschillende Android-apparaten van 21 verschillende fabrikanten. 21 van deze apparaten hadden een ARMv7-processor aan boord en zes een ARMv8. Het lukte de aanvallers om 17 ARMv7-apparaten en 1 ARMv8-apparaat te "flippen".

Drammer kan verder ook worden gecombineerd met andere Android-kwetsbaarheden als Stagefright of BAndroid. Gebruikers hoeven overigens niet eens een malafide app te downloaden. De kwetsbare apparaten kunnen ook op afstand worden misbruikt.

In de onderstaande video laten de onderzoekers zien hoe zij een volledige gepatchte, ongeroote LG Nexus 5 aanvallen met de drammer-methode. Op de website van de onderzoekers laten de onderzoekers onder andere zien hoe zij drammer aanval combineren met Stagefright.


Op de volgende pagina: En nu?

Niets aan te doen?

Google is inmiddels op de hoogte van het probleem en werkt samen met de onderzoekers om het probleem te tackelen. Er wordt gewerkt aan een fix die het probleem enigszins kan verzachten. Het zal echter niet mogelijk zijn dit probleem helemaal op te lossen. Het is erg lastig een hardware probleem met software op te lossen. Hardware fabrikanten kunnen er alleen maar voor zorgen dat het probleem in toekomstige geheugenchips wordt opgelost. De chips in huidige apparaten zullen tot op zekere hoogte altijd kwetsbaar blijven.

Het is op dit moment erg lastig te zeggen welke apparaten er precies kwetsbaar zijn, omdat er veel verschillende factoren zijn waar dit soort aanvallen misbruik van kunnen maken. Daarnaast melden de onderzoekers ook dat nog niet alle factoren zijn onderzocht. Een geheugencontroller kan zich anders gedragen afhankelijk van de spanning van de accu in het apparaat. Een toestel zou dan bijvoorbeeld veilig kunnen lijken terwijl deze weldegelijk kwetsbaar is als de accu bijna leeg is.

Niet alleen Android

Drammer was in eerste instantie getest op Android omdat de onderzoekers wilde testen wat de impact is op ARM-gebaseerde apparaten maar de onderliggende techniek is uiteraard ook van toepassing op andere systemen. Deze aanvalstechniek is een flinke verbetering van de oude "hammer"-technieken. Aanvallers waren veel afhankelijker van geluk en/of speciale features die aanwezig waren op bepaalde platformen. Deze konden ook nog eens makkelijk worden uitgeschakeld.

Drammer is afhankelijk van DMA (Direct Memory Access) buffers die worden gebruikt door veel verschillende hardwaresystemen waaronder graphics, netwerk en geluid. Drammer mocht voor deze test dan wel gebruik maken van Android's IOS memory allocator, maar dit het net zo goed ook gerealiseerd kunnen worden op andere APIs en methodes die DMA buffers aanspreken in alle besturingssystemen. Deze aanval is slechts het begin,

"Ik verwacht dat wij nog veel meer verschillende varianten van deze aanval zullen zien op verschillende platformen," aldus Herbert Bos, professor aan de Vrije Universiteit Amsterdam.

Mensen die die app willen testen (om te kijken of hun toestel kwetsbaar is) kunnen dat doen op de Drammer website van VUSec. Daar kan men ook een open source Rowhammer simulator vinden. De bijbehorende paper kan hier worden gedownload.