Inleiding
Wie het technologienieuws ook maar een beetje volgt, weet dat beveiligingsproblemen alomtegenwoordig zijn. Van smartphones tot desktops en van auto's tot spelcomputers: als er software op draait, zitten er bugs in. En dikwijls zijn die bugs te misbruiken door kwaadwillenden, die dan je auto op afstand kunnen besturen of de bestanden op je computer locken totdat je betaalt.
Dat een beveiligingsprobleem in het videoframework van Android vorige week zoveel aandacht kreeg, komt dan ook niet doordat het uniek is dat Googles besturingssysteem is getroffen door een beveiligingsprobleem. Dat gebeurt, net als bij andere besturingssystemen, aan de lopende band.
Wat wel opvalt, is het gemak waarmee het beveiligingsprobleem kan worden misbruikt en de omvang van het probleem. Dat probleem ontstaat al met een enkel mms'je dat je niet eens hoeft te openen. Volgens de onderzoeker die het ontdekte, zijn 950 miljoen Android-gebruikers kwetsbaar. Een deel van die toestellen zal kwetsbaar blijven totdat de eigenaren een nieuwe telefoon kopen, omdat oude telefoons niet altijd meer worden ondersteund.
Woensdag, tijdens de Black Hat-beveiligingsconferentie in Las Vegas, onthulde beveiligingsonderzoeker Joshua Drake van Zimperium meer details over het bewuste beveiligingsprobleem, dat ervoor zorgt dat een kwaadwillende toegang kan krijgen tot je telefoon met een vervalst videobestand. Tweakers was erbij, en stelde de vraag: wat is er nou precies aan de hand?
Plankenkoorts
Stagefright - letterlijk: plankenkoorts - is een library die de afhandeling van video- en audiobestanden verzorgt. Sinds Android 2.2 is de library op sommige toestellen aanwezig en sinds 2.3 is het de standaard-library. Mozilla gebruikt de opensource-library overigens ook voor Firefox en Firefox OS, maar die software is al gepatcht.
Eigenlijk gaat alle ophef niet over één bug in het Stagefright-framework, maar om een tiental integer overflows, buffer overreads en integer underflows. Dat zijn bugs waarbij het geheugen wordt gecorrumpeerd doordat de software niet overweg kan met aangeleverde data, waarna een aanvaller zijn eigen code naar het geheugen kan schrijven. De bugs bevinden zich in het deel van de code die mpeg4- en 3gpp-bestanden afhandelt, bijvoorbeeld voor het inlezen van metadata.

Beveiligingsonderzoeker Joshua Drake van Zimperium vond de bugs met behulp van fuzzing, waarbij een aanvaller willekeurige data aan een applicatie geeft met als doel om de applicatie te crashen. Daarnaast heeft Drake delen van de code met de hand geïnspecteerd. Dat duurde ongeveer drie weken. Daarna heeft hij patches geschreven voor de gevonden beveiligingsproblemen.
Misbruiken
In theorie zou het niet meteen een groot probleem hoeven zijn als een aanvaller een bug in een bepaald deel van Android misbruikt. Processen zijn immers van elkaar gescheiden en het besturingssysteem treft voorzorgsmaatregelen om de impact te beperken.
Maar zoals dat wel vaker het geval is met theoretische scenario's, is het in werkelijkheid net iets anders. "Vooral voor oudere Android-toestellen zijn er talloze manieren om root te krijgen op een toestel", zegt beveiligingsonderzoeker Drake tegen Tweakers op de Black Hat-beveiligingsconferentie in Las Vegas. Als een aanvaller root heeft, dan zijn de mogelijkheden vrijwel eindeloos.
De inhoud van je mailbox buitmaken? Eitje. Al je contacten spammen over Viagra? Niet echt een uitdaging. Screenshots maken van wat je aan het doen bent? Met root-toegang is dat geen enkel probleem. Alleen het stelen van vingerafdrukken op telefoons met vingerafdrukscanners is in veel gevallen nog een uitdaging, omdat de software daarvoor vaak op een dieper niveau draait. Maar ook in vingerafdruksoftware zijn in het verleden kwetsbaarheden gevonden, dus het is allerminst uitgesloten dat je vingerafdruk kan worden gestolen met een mms.
Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.
De kwetsbaarheid in actie
Drake heeft zelf een aanval weten op te zetten waarbij hij roottoegang wist te krijgen op Android 2.3 en 4.0. Die versies draaien nog altijd op 8,7 procent van de Android-toestellen met toegang tot de Play Store, blijkt uit cijfers van Google. Op nieuwere Android-versies is roottoegang ook mogelijk, denkt Drake, maar dat heeft hij niet zelf aangetoond. Op de Hack in the Box-beveiligingsconferentie in mei toonde beveiligingsonderzoeker Wen Xu wel een kwetsbaarheid die roottoegang geeft op 'honderdduizenden' Android-toestellen.
Zelfs als een aanvaller geen roottoegang heeft, heeft hij veel mogelijkheden. Stagefright heeft binnen Android namelijk relatief veel rechten. Zo heeft het proces standaard toegang tot de camera en de microfoon, maar ook tot internet. "Zonder roottoegang kun je dus met behulp van deze bug de camera aftappen en de inhoud uploaden naar je server", aldus Drake woensdag tijdens zijn bespreking op Black Hat.
Op sommige apparaten heeft het proces zelfs nog meer rechten, maar het is onduidelijk welke apparaten dat zijn. Het gaat daarbij om aanpassingen die fabrikanten zelf aan de Android-broncode hebben gedaan, aldus Drake. "Stagefright draait dan op één niveau onder root."
Impact verschilt
Hoe kwetsbaar gebruikers zijn, verschilt kortom per Android-versie. Over het algemeen geldt: hoe ouder de Android-versie, hoe meer bekende beveiligingsproblemen er inzitten en dus ook mogelijkheden om root te krijgen. Op Android 2.3 en ouder zijn daarnaast bepaalde voorzorgsmaatregelen als adress space layout randomization nog niet aanwezig; sinds Android 5.0 zijn daar nog meer voorzorgsmaatregelen bijgekomen. "Maar op nieuwe versies maken die maatregelen misbruik van het beveiligingsprobleem moeilijker, maar niet onmogelijk", aldus Drake.
De enige voorzorgsmaatregel die voor problemen zorgt is aslr
Volgens hem is de enige voorzorgsmaatregel die echt voor problemen zorgt bij het misbruiken van het aanval aslr. Daarbij worden posities in het geheugen op willekeurige locaties geplaatst, zodat een aanvaller niet zomaar naar geheugen kan schrijven van een programma dat zojuist is gecrasht. Drake stelt dat een aanvaller posities in het geheugen kan raden, bijvoorbeeld door er een statistische analyse op los te laten of door net zo lang locaties in het geheugen te proberen totdat de aanval slaagt. Android 4.0 heeft een zwakke implementatie van aslr, die Drake met succes heeft weten te omzeilen.
Andere voorzorgsmaatregelen hebben minder nut, stelt Drake. Zo kunnen NX-bits, waarmee uitvoerbaar geheugen wordt gescheiden van beschrijfbaar geheugen, worden omzeild met return oriented programming. Bij die aanvalstechniek worden de bestaande machine-instructies van een bepaald programma in een specifieke, door de aanvaller gekozen volgorde uitgevoerd, waardoor hij zijn eigen code kan samenstellen.
Ook SELinux, dat applicaties op Android uit elkaar moet houden, heeft geen effect. "SELinux houdt alleen in de gaten wat er op een toestel gebeurt", aldus Drake. "Deze aanval komt van buitenaf. En bovendien is er geen sprake van een proces dat z'n boekje te buiten gaat: het is namelijk te verwachten gedrag, doordat er een beveiligingsprobleem in het framework zit."
Mms'en en WhatsAppen
Wat de bugs interessant maakt, is de manier waarop ze te misbruiken zijn. Een van de manieren waarop dat kan, is met een mms. Zowel de stock-Messaging-app in Android-versies voor 5.0 als Hangouts is getroffen. Hangouts is sinds 5.0 de standaard-mms-app op Nexus-toestellen. Het is onduidelijk of ook apps van derden, bijvoorbeeld fabrikanten, last hebben van het probleem, maar die kans lijkt groot.
Mms is maar één manier om de bug te misbruiken, maar wel een hele interessante
De mms-exploit is de manier waarop de bug vorige week in het nieuws kwam. Hoewel het slechts een van de vele manieren is om de bug te misbruiken, is het wel een hele interessante. Een exploit vereist in dat geval namelijk geen enkele interactie van de gebruiker. Zodra een Android-toestel met de standaard-app een mms ontvangt, verwerkt het Stagefright-framework de video; dat gebeurt in Hangouts zelfs op het moment waarop de notificatie wordt getoond. De onderzoeker heeft niet onderzocht of de kwetsbaarheid geldt voor andere sms-applicaties, zoals de Berichten-apps die standaard staan op toestellen van bijvoorbeeld Samsung.
Zodra de thumbnail is geladen, is een aanvaller dus al binnen. Dat maakt hele griezelige scenario's mogelijk. "Telecomproviders vrezen een worm", zegt Drake. "Die zou zich dan automatisch kunnen doorsturen aan iedereen in het adresboek." Malware zou de notificatie voor de ontvangen mms zelfs weer kunnen verwijderen, zodat gebruikers niets doorhebben.
Nu is mms in Nederland allang niet meer populair en op sommige toestellen is mms standaard niet ingeschakeld, in tegenstelling tot in de Verenigde Staten, waar mensen nog driftig met elkaar mms'en ("Ik heb een hekel aan mms, want het kost extra geld om berichten te sturen", zegt Amerikaan Drake).
Providers zouden de aanval tegen kunnen gaan door verdachte mms'jes te blokkeren. "Een aanval stuurt waarschijnlijk meerdere mms'jes uit, omdat de aanval op verschillende toestellen anders moet worden opgezet", zegt Drake. Als dat gebeurt, kunnen providers ingrijpen.

Drake presenteert de bugs op Black Hat
Maar mms is niet de enige aanvalsmogelijkheid. Ook andere chat-apps zouden kunnen worden gebruikt. Denk aan WhatsApp, maar ook Telegram: zodra een app de mogelijkheid biedt om berichten te versturen, is ze kwetsbaar. "Ik heb WhatsApp nog niet specifiek onderzocht, maar als je video's kunt versturen, kan de bug worden misbruikt", aldus Drake.
Daarbij is een belangrijke vraag of de app video's direct door het Stagefright-framework laat verwerken, of dat dat pas gebeurt als de video wordt geopend. Is dat laatste het geval kan de bug pas worden misbruikt als een gebruiker de video opent. "Maar in het geval van een worm komen dergelijke video's van je vrienden", aldus Drake. De kans is dan aanzienlijk dat een slachtoffer het filmpje zal openen.
Het lijkt er echter op dat ook WhatsApp kwetsbaar is bij het ontvangen van een bericht. Hangouts is kwetsbaar omdat van filmpjes bij het ontvangen direct een thumbnail wordt gemaakt. WhatsApp downloadt op wifi automatisch ook filmpjes van gebruikers, en toont een thumbnail als de chat wordt geopend. De kans is groot dat die thumbnail al bij het downloaden wordt gemaakt, waardoor het filmpje dan al door het Stagefright-framework wordt verwerkt en dus vervelende dingen kan doen.
Andere manieren
Drake komt op minimaal elf verschillende manieren om de bug te misbruiken. "Vanuit de browser kan hij op twee manieren worden misbruikt: door een video te embedden, of door de video als download te serveren", aldus Darke. In beide gevalen wordt de video direct verwerkt en is de gebruiker dus getroffen voordat hij actie heeft ondernomen.
Wel moet de gebruiker eerst naar een website surfen die de video aanbiedt, maar dat hoeft niet per se een schimmige site te zijn: aanvallers misbruiken vaak advertenties op websites om malware te serveren. Dat doen ze bijvoorbeeld door een malafide advertentie te plaatsen en hoewel websites daarop controleren, glippen ze er soms toch doorheen. Ook worden soms advertentienetwerken gehackt.
Ook kan de bug via e-mail worden misbruikt en via protocollen als bluetooth en nfc, maar ook via een bestand op een sd-kaart. Drake vindt deze manieren om de bug te misbruiken wel minder ernstig dan de mms-exploit, omdat deze in elk geval nog enige interactie van de gebruiker vragen. Dat in tegenstelling tot de mms-exploit, die in het geval van Hangouts altijd direct werkt.
Een oplossing
Op dit moment is vrijwel iedereen nog kwetsbaar voor deze specifieke bug, die iedereen sinds Android 2.3 treft. Deze week is Google wel begonnen met het uitrollen van patches naar Nexus-toestellen. Cyanogenmod heeft de bug ook al gepatcht. Daarnaast heeft HTC het lek gedicht in zijn One M9. Wie wil checken of zijn Android-toestel getroffen is, kan een app van beveiligingsbedrijf Zimperium downloaden om dat te controleren.
Google beloofde tijdens Black Hat dat veel toestellen, onder meer van Samsung, HTC, LG en Sony, nog deze maand een update zullen krijgen. Een complete lijst met toestellen die worden gepatcht is er echter nog niet. Het zal daarbij waarschijnlijk om vlaggenschepen en recentere telefoons gaan.

Volgens Google krijgen 'honderden' toestellen een patch, maar dat zijn lang niet alle toestellen: volgens OpenSignal zijn er rond de 24.000 verschillende Android-toestellen in omloop. Het is de vraag hoeveel van die toestellen snel, zij het überhaupt, een update zullen krijgen. Op de lijst staan wel de populairste apparaten, waaronder de tot nu toe niet meer ondersteunde Galaxy S3 van Samsung.
Dus: wat te doen als je momenteel kwetsbaar bent - of blijft - voor deze bug? Een belangrijke stap voert Google zelf al uit: in de Hangouts-app worden vanaf eind deze week tijdelijk geen thumbnails meer getoond. Daardoor worden filmpjes niet automatisch door het Stagefright-framework verwerkt en kun je dus niet ongemerkt met een mms worden gehackt. Als je een filmpje opent, ben je nog wel kwetsbaar. Ook WhatsApp en Telegram hebben instellingen om het automatisch downloaden van video's uit te zetten.
Voor de rest is het lastig voor gebruikers om zichzelf tegen de aanval te wapenen. Voorzichtigheid bij het openen van filmpjes is aan te raden, maar zoals Drake heeft aangetoond, is voorzichtigheid niet genoeg.
/i/2000645207.png?f=imagenormal)
Van links naar rechts: Hangouts, WhatsApp en Telegram
Voor zover bekend wordt de bug op dit moment nog niet in het wild misbruikt. Drake was eigenlijk van plan om zijn eigen exploit al tijdens Black Hat vrij te geven, maar na overleg met telecomproviders besloot hij daarvan af te zien. De exploit komt nu later deze maand, tenzij iemand anders al een exploit vrijgeeft of de bug wordt misbruikt. "Dan geven we onze exploit ook vrij", aldus Drake, die stelt met de exploit 'bewustwording' te willen creëren. Ook kan de exploit juist helpen om verspreiding van het probleem tegen te gaan. Volgens Drake zijn bijvoorbeeld makers van beveiligingssoftware en intrusion detection systems geïnteresseerd in de details.
Tijdens Black Hat deed Drake wel uit de doeken waar de bugs precies zitten. Het is dan ook niet onwaarschijnlijk dat bezoekers van de conferentie momenteel proberen om de hack na te bootsen. Het automatisch ophalen van mms'jes kan daarom beter worden uitgezet, raadt Drake zelf ook aan.
Ondanks alles gebruikt Drake overigens zelf nog steeds een Android-telefoon. "Ik ren niet gillend weg van Android", zegt hij. "Ik wil het beter maken." Wel raadt hij mensen af om oudere Android-versies te gebruiken. "Dat is een slecht idee; die apparaten zitten sowieso vol met kwetsbaarheden."
Updateproblemen
Het Stagefright-probleem is het gevaarlijkst voor gebruikers van oudere toestellen en budgetmodellen, die niet meer worden voorzien van nieuwe Android-versies. Door de ongebruikelijke - en volgens velen onwenselijke - manier waarop Android-updates werken, blijven ze in veel gevallen voor altijd kwetsbaar. Dat geldt in elk geval totdat ze een nieuw toestel kopen of zelf een custom rom op hun toestel zetten.
Tegelijkertijd blijft Android met een fundamenteel probleem kampen. In tegenstelling tot bij iOS of Windows heeft Google bij de meeste toestellen nauwelijks controle over de firmware die erop draait. Stel je eens voor dat een update voor Windows niet door Microsoft zelf zou worden uitgegeven, maar eerst zou moeten worden aangepast en vervolgens uitgerold door Dell, Asus, HP en andere fabrikanten van Windows-hardware. En dat het maanden kan duren voordat een beveiligingsupdate naar je systeem komt, mede omdat internetproviders de update eerst moeten goedkeuren.
Sterker nog, anderhalf tot twee jaar na het kopen van een Windows-pc, zou het best kunnen zijn dat je pc dan niet meer ondersteund wordt en dat je geen beveiligingsupdates meer krijgt. Budgetlaptops zouden niet eens updates krijgen en altijd kwetsbare software draaien.
Vele miljoenen Android-gebruikers zijn kwetsbaar voor beveiligingsproblemen
Het is een situatie die gelukkig niet bestaat. Zelfs budgethardware wordt vele jaren ondersteund en krijgt beveiligingsupdates even snel als de duurste hardware. Toch is dit precies hoe het bij Android wel werkt.
Doordat niet Google maar telefoonfabrikanten en providers over de uitrol van updates gaan, gebruiken op dit moment vele miljoenen mensen versies van Android die kwetsbaar zijn voor beveiligingsproblemen, waaronder de Stagefright-bug. Tegelijkertijd liggen er echter patches klaar die het probleem oplossen. "Google heeft zijn zaken erg slecht voor elkaar", zegt beveiligingsonderzoeker Drake. "Het duurt erg lang voordat updates bij gebruikers komen."
Volgens Googles officiële cijfers draait maar liefst 97,4 procent een oudere Android-versie dan 5.1. Dat betekent per definitie dat ze kwetsbaar zijn voor beveiligingsproblemen; in elke Android-versie worden weer beveiligingsproblemen gedicht. Tachtig procent gebruikt een release van anderhalf jaar oud, 4.4 of zelfs nog ouder. En veertig procent gebruikt een Android-versie die zo oud is, 4.3 of eerder, dat Google er niet eens meer browserupdates voor uitbrengt. Op Tweakers ligt dat trouwens iets anders: meer dan 20 procent van de bezoekers met Android afgelopen maand draait 5.1, terwijl nog eens meer dan 30 procent op 5.0 zit.
Er zijn stappen in de goede richting. Zo brengt Google steeds meer functionaliteit onder in Play Services, dat via de Play Store kan worden bijgewerkt. Belangrijke onderdelen van Android blijven echter enkel bij te werken via reguliere softwareupdates.
In reactie op de Stagefright-bug hebben Google, Samsung en LG beloofd sneller met software-updates voor toestellen te komen. Daarbij gaan Google en Samsung maandelijks security-updates uitrollen en zullen Nexus-toestellen drie jaar worden ondersteund. Maar er zijn nog genoeg Android-fabrikanten die dergelijke beloftes niet of nog niet hebben gedaan; de belofte van Google geldt enkel voor zijn eigen toestellen. Bovendien is een maandelijkse patchronde geen garantie dat alle op dat moment bekende bugs dan ook echt zijn gepatcht.