Door Joost Schellevis

Redacteur

Gehackt met één berichtje

Ernstig lek in videoframework Android

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 aslrVolgens 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."

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee