Installeren van applicaties

Lees verder na de advertentie.
Android gebruikt installatiebestanden voor applicaties. Deze bestanden heten APK’s (Android application package) en bevatten alles wat een applicatie nodig heeft: afbeeldingen, code en lay-outs. Om er voor te zorgen dat er niet met deze bestanden kan worden geknoeid, worden deze bestanden digitaal ondertekend. Ontwikkelaars gebruiken hiervoor een digitale handtekening.
Bij het digitaal ondertekenen worden ook specifieke kenmerken van de applicatie bekeken. Bij dit soort toepassingen is het gebruikelijk om te kijken naar de grootte van het bestand voor ondertekening en het maken van een soort digitale vingerafdruk van de inhoud. Wanneer de handtekening wordt bekeken, is deze alleen geldig als ook de andere kenmerken van de app kloppen.
Bij een update van een applicatie, of het nu gaat om een app die je via de Play Store hebt geïnstalleerd, een app die je ergens anders download, of een app die al op jouw telefoon stond toen je hem kocht, wordt de digitale handtekening van de applicatie gecontroleerd. De handtekening van de update moet dezelfde zijn als die van de reeds geïnstalleerde app.
Beveiligingslek
Jeff Forristal, CTO bij Bluebox Security, liet weten een lek te hebben ontdekt in Android, dat het mogelijk maakt om installatiebestanden aan te passen, zonder dat het systeem daarbij opmerkt dat er dingen veranderd zijn. Het systeem controleert dus de inhoud, de digitale vingerafdruk en de digitale handtekening, maar heeft niet in de gaten dat er veranderingen zijn aangebracht. De digitale handtekening blijkt dus dezelfde als die van de originele app en de digitale vingerafdruk lijkt ook te kloppen, ondanks dat er met het installatiebestand geknoeid is.
Applicaties die een digitale ondertekening hebben van de fabrikant van een toestel of van Google, hebben toegang tot meer rechten dan applicaties van andere partijen. Wanneer een kwaadwillende zo’n applicatie aan zou passen en als update aan zou bieden, zou deze persoon bijna alles op het toestel kunnen doen en toegang hebben tot alle informatie. Wanneer er misbruik gemaakt wordt van dit lek, kan dit dus verregaande gevolgen hebben.
Bewijs
Op het weblog van Bluebox Security geeft Forristal ‘bewijs’ dat het lek daadwerkelijk bestaat en misbruikt kan worden. Dat doet hij in de vorm van de screenshot die je hieronder terug kunt vinden. Daar zie je een screenshot van een HTC-toestel waarop hij een systeemwaarde heeft aangepast. Dit is overigens weinig overtuigend bewijs: dit soort instellingen zijn op toestellen met root-toegang aan te passen. Daarnaast kan een screenshot ook altijd aangepast worden. Echter, dat het lek bestaat lijkt bijna zeker: Forristal heeft een goede reputatie in de beveiligingswereld.
Eind juli zal Forristal een presentatie houden op een beveiligingsconferentie en zal dan technische details vrijgeven en dan tools en voorbeelden vrijgegeven die betrekking hebben op het lek.
Oplossing
Forristal heeft Google in februari van dit jaar op de hoogte gesteld van de fout. Dit is een normale praktijk bij beveiligingsonderzoekers en hij was zelfs de eerste die een beleid heeft opgesteld waarin wordt aangegeven dat beveiligingslekken geopenbaard moeten worden, maar dat deze eerst discreet bekend gemaakt moeten worden bij de eigenaar van de software waar het lek in te vinden is.
Betekent dat nu dat toestellen die recentelijk van een update voorzien zijn naar een nieuwe Androidversie al niet kwetsbaar meer zijn? Nee, helaas niet. Forristal geeft aan in een gesprek met CIO dat alleen de Samsung Galaxy S4 niet kwetsbaar is voor aangepaste installatiebestanden. Dat wijst er op dat Google zijn partners al informatie gegeven heeft om het lek te dichten. Nexus-toestellen zouden nog wel kwetsbaar zijn, maar vermoedelijk wordt dit met de eerstvolgende update verholpen.
Google heeft Forristal ook laten weten de controle van installatiebestanden in de Google Play Store aan te hebben gepast. Bestanden die aangepast zijn door middel van de methode van Bluebox worden door Google gedetecteerd en niet toegelaten tot de Google Play Store. Daarnaast zouden alle reeds beschikbare apps in de Google Play Store zijn gescand en volgens Google zouden er geen apps gevonden zijn die misbruik maken van het lek.
Ondanks dat Google geen verklaring naar buiten heeft gebracht met betrekking tot het lek, is het duidelijk dat het bedrijf het beveiligingsrisico serieus neemt. Eén van de maatregelen die gerelateerd zou kunnen zijn aan het beveiligingslek is het verbieden van updates van Play Store-apps buiten de Play Store om. Aangezien Facebook deze strategie gebruikte om nieuwe functies te testen, werd er gesproken van een poging van Google om Facebook een hak te zetten, maar het updaten van apps buiten de Play Store om brengt wel degelijk beveiligingsrisico’s met zich mee. Google kan zo apps niet meer scannen op kwaadaardige software. Daar komt nog eens bij dat, om een update buiten de Play Store om te installeren, de functie ‘software uit onbekende bronnen installeren’ ingeschakeld moet zijn. Normaal gesproken zouden de meeste gebruikers dit niet doen, maar als een bedrijf als Facebook, van wie de applicatie miljoenen keren geïnstalleerd is, dit aanraadt, zullen vast veel mensen overstag gaan. Facebook test nu overigens nieuwe functies op een andere manier, zoals je hier kunt lezen.
De Galaxy S4 is niet kwetsbaar voor dit probleem, maar alle overige toestellen nog wel volgens Forristal. Dat geldt voor alle andere toestellen die draaien op Android 1.6 en hoger, volgens Forristal zo’n 99% van de Androidtoestellen. Het probleem is dat het vaak erg lang duurt voordat fabrikanten (beveiligings)updates voor hun toestellen uitbrengen, waardoor het kan zijn dat toestellen lange tijd beveiligingsgaten bevatten. Om misbruik van dit soort gaten te voorkomen, lijkt Google nog andere maatregelen genomen te hebben. Misschien heb je wel eens gehoord van Google Play Services. Deze applicatie, die door Google automatisch is geïnstalleerd op Androidtoestellen met Android 2.2 of hoger én de Google Play Store, biedt ontwikkelaars mogelijkheden om nieuwe functies voor Android in hun apps aan te bieden, zonder dat de gebruiker daarvoor een Androidtoestel moet hebben met de nieuwste Androidversie. Dit pakket blijkt echter nog meer aan te bieden: de dienst kan applicaties controleren nog voordat ze geïnstalleerd worden. Dat wijst er op dat Google, ook voor toestellen die nog geen beveiligingsupdate gehad hebben die het lek dicht, een oplossing heeft. Momenteel draait minder dan 2% van de actieve Androidtoestellen op een versie lager dan Android 2.2, waardoor (mits het controleren van installatiebestanden inderdaad overgenomen wordt door Google Play Services) het aantal potentiële doelwitten een stuk minder groot wordt. Hier lees je meer over Google Play Services.
Het is vervelend dat Google nog geen verklaring naar buiten heeft gebracht over de maatregelen die het bedrijf genomen heeft, waardoor we niet met 100% zekerheid kunnen zeggen dat updates die buiten de Play Store om worden gedownload worden gecontroleerd door Google Play Services.
Wat kun je doen?
Ten eerste is het belangrijk om op te merken dat de mogelijkheden om dit lek te misbruiken erg klein zijn. Om misbruik te kunnen maken van het lek, moet er een (door een kwaadwillende aangepast) installatiebestand op jouw toestel worden gezet en dit moet door jou als gebruiker worden geïnstalleerd. Alleen wanneer het een vermomd update-bestand van een bestaande systeemapplicatie is, dus een app van Samsung, HTC, Sony, LG of Google, dan kan dit lek er voor zorgen het systeem volledig overgenomen kan worden. Updates voor andere apps buiten de Play Store om kunnen wel misbruik maken van het lek, maar hebben dan beperktere, maar zeker niet minder gevaarlijke, mogelijkheden om misbruik te maken.
Wat kun je nu zelf doen om te voorkomen dat jij slachtoffer wordt van het misbruik van dit beveiligingslek? Nou, updates die via de Google Play Store worden verspreid, zijn dus veilig voor dit lek. Dat wil zeggen dat er met updates voor apps die op jouw toestel stonden toen je het kreeg of die jij later via de Google Play Store hebt geïnstalleerd, niet geknoeid is.
Wanneer is het lek dan gevaarlijk? Wanneer je het idee hebt dat je een update voor een systeemapplicatie download, kan het zijn dat hier mee geknoeid is. Laten we even een voorbeeld nemen. Stel, er is een update beschikbaar voor Gmail. Aangezien Google gebruik maakt van het gefaseerd uitrollen van updates, kan het zijn dat de Google Play Store bij jou niet aangeeft dat er een update is. Wanneer je dan even gaat zoeken op het net, vind je bijna zeker een installatiebestand voor deze nieuwe versie van Gmail voor Android. Dit bestand installeer je dan op jouw toestel. Door het lek kan het systeem niet goed zien of er nu wel of niet geknoeid is met het installatiebestand, waardoor het kan zijn dat je ongemerkt malware installeert.
Applicaties die geïnstalleerd worden uit andere bronnen, zoals applicatiewinkels van derden (de Amazon Appstore uitgezonderd) en websites met illegale versies van betaalde Androidapps en -games staan er om bekend veel malware te bevatten. Eigenlijk verandert dat verhaal nu niet echt. Wel is het nu mogelijk dat apps die als update voor een bestaande app aangeboden worden ook malware bevatten en deze malware kan gebruik maken van belangrijke systeemrechten. ‘Losse’ apps of games die je uit dit soort bronnen download konden altijd al malware bevatten en het halen van Androidapps uit illegale bronnen kunnen we dus altijd ontraden. Sterker nog, tenzij je een hele goede reden hebt, raden wij het inschakelen van de optie ‘Toestaan dat apps uit onbekende bronnen worden geïnstalleerd’ (bij instellingen–> beveiliging) af.
Ten slotte
De mogelijkheden om het beveiligingslek te misbruiken, hoe ernstig het lek op zich ook is, zijn erg beperkt. Dat wil niet zeggen dat je niet op een andere manier gevaar loopt. Bijvoorbeeld wanneer je applicaties installeert die afkomstig zijn van niet-vertrouwde ontwikkelaars of bronnen, loop je kans dat deze besmet zijn met malware. Applicaties die verspreid worden via de Google Play Store worden automatisch gescand op bekende malware en zijn dus relatief veilig en apps die verspreid worden via de Amazon Appstore worden handmatig gecontroleerd en zijn daarom ook veiliger dan gemiddeld.
Denk er wel aan dat applicaties nooit gegarandeerd 100% veilig zijn, dus ook niet als ze via de Google Play Store worden aangeboden. Let daarom op, ook in de Play Store, wat je installeert. Kijk of het gaat om een bekende ontwikkelaar en ook de waardering die anderen geven aan de app en het aantal keer dat een app gedownload is, kan een goede indicatie zijn van of deze ontwikkelaar te vertrouwen is. Daarnaast is het verstandig om goed op te letten welke permissies door een applicatie worden gevraagd.
Bron: Bluebox Security, Engadget, The Verge, CIO
Reacties
Inloggen of registreren
om een reactie achter te laten
Sander, je schrijft dat het verstandig is om goed op te letten welke permissies door een applicatie worden gevraagd.Â
Het lijkt me daarom een goed idee als de App reviews op Androidworld voortaan een paragraaf bevatten over de redelijkheid van de gevraagde permissies.
een goede app krijgt regelmatig updates. vooral als gaat om belangrijke data.
@Sander
Ik vraag me af hoe het beoordelings systeem werkt. Ik kan me zo voorstellen dat er een drempel is in gebouwd zat je niet met 10 negatieve beoordelingen gelijk je app de prullenbak in kan mikken. Dat zou wel erg zuur zijn.
Ook vraag ik me af of een ontwikkelaar bij een lage waardering de ontwikkelaar niet dood leuk een 2e app met zijn broncode kan ontwikkelen onder een andere naam. Neem aan dat Google daar op toe ziet? Het zou de playstore namelijk enorm vervuilen.