We leven in een post-pc-tijdperk. Dat wil zeggen, een groot deel van onze werkzaamheden – zowel privé als zakelijk – voeren we al tijden niet meer enkel uit van achter onze computer. We maken voor onze werkzaamheden steeds meer gebruik van mobiele apparaten. Deze nieuwe manier van werken brengt nieuwe risico’s met zich mee.
Steeds meer kritieke data wordt via webservices ontsloten voor gebruik op tablets en mobiele telefoons. In ons werkveld voeren we naast webapplicatie-onderzoeken ook steeds meer onderzoeken naar mobiele apps en achterliggende serversystemen uit. Tijdens deze onderzoeken komen we veelal dezelfde risico’s en kwetsbaarheden tegen. Welke zijn dit? Hier wil ik graag ingaan op de verschillende risico’s die het gebruik van mobiele apps met zich meebrengt.
Risico’s onderkennen
Bij ingebruikname van mobiele apps voor het verwerken van vertrouwelijke gegevens zijn er een aantal risico’s die moeten worden onderkend. Allereerst, het gebruik in onbeveiligde omgevingen. Inherent aan het gebruik van mobiele apparaten is dat er overal mee kan worden gewerkt. Dat wil zeggen, de netwerkinfrastructuur die wordt gebruikt om vertrouwelijke gegevens op te halen of te versturen kan niet altijd worden vertrouwd. Het risico op ‘man-in-the-middle’-aanvallen (MitM) is in dit scenario vele malen groter dan wanneer iemand bijvoorbeeld op zijn of haar werkplek op kantoor zit. Door ervoor te zorgen dat een app controleert met welk serversysteem wordt gecommuniceerd voordat gevoelige gegevens worden verzonden of ontvangen, kan een succesvolle MitM-aanval worden voorkomen.
Vooral in publieke ruimtes als treinen, stations en restaurants is het risico van verlies of diefstal van een telefoon of tablet een scenario waarmee rekening gehouden moet worden. Een correcte versleuteling van opgeslagen gegevens en de mogelijkheid tot het op afstand wissen van een toestel zijn maatregelen die kunnen worden genomen om ervoor te zorgen dat vertrouwelijke gegevens niet op straat komen te liggen.
Vervolgens is er de diversiteit aan mobiele platformen. Denk aan iOS, Android, Windows Phone en BlackBerry. Al deze platformen hebben een eigen architectuur en beveiligingsmodel. De beveiligingsmodellen die door de verschillende platformen worden gebruikt verschillen veel van elkaar. Bijvoorbeeld de veilige opslag van gegevens: op een iOS-systeem kan de zogenaamde ‘keychain’ als veilige opslagplaats voor gebruikersgegevens worden gebruikt. Gegevens die een app in de keychain opslaat zijn enkel voor die specifieke app benaderbaar. Bij een Android-systeem is de keychain enkel bedoeld voor een veilige opslag van sleutel- en certificaatmateriaal. App-ontwikkelaars zullen voor Android zelf moeten zorgen voor een veilige manier van opslag van gebruikersgegevens. Een app die voor meerdere platformen beschikbaar is, kan ook op het ene platform veel veiliger zijn opgezet dan op het andere platform. Wanneer in uw organisatie verschillende platformen worden gebruikt, kan het verhelderend zijn om de verschillen tussen de gebruikte apps in kaart te brengen. Dit geeft een duidelijker beeld van de risico’s per mobiel platform.
Wanneer we kijken naar de systeembeveiliging van mobiele apparaten, zien we eveneens belangrijke verschillen. Waar bij Apple’s iOS, Microsoft’s Windows Phone en RIM’s BlackBerry OS een gecentraliseerde oplossing is gekozen voor het uitrollen van (beveiligings)updates, is er bij Android een afhankelijkheid van de fabrikant van het toestel voor het ontvangen van updates. Dit zorgt er doorgaans voor dat een groot deel van de Android-gebaseerde toestellen niet voorzien zijn van de laatste (beveiligings)updates. Het gevolg hiervan is dat er tot op de dag van vandaag nog toestellen verkocht worden met een Android-versie die ouder is dan drie jaar en waarin kritieke beveiligingslekken niet zijn opgelost.
Rooten of jailbreaken
Ook het zogenaamde rooten of jailbreaken van mobiele apparaten is een groot risico voor zowel de systeemveiligheid als de veiligheid van opgeslagen gegevens. Wanneer een gebruiker zijn/haar toestel jailbreakt of root, zorgt hij/zij er in essentie voor dat beveiligingsmechanismen zoals sandboxes worden omzeild. Gegevens van andere apps kunnen gemakkelijk worden uitgelezen. Ook kunnen ‘system calls’ van andere apps worden onderschept om zodoende ingebouwde beveiligingsmaatregelen als de tls-certificaatcontrole of de veilige versleuteling van gegevens te omzeilen.
Naast de verschillen in systeembeveiliging, beveiligingsmodel en architectuur zitten er grote verschillen in het toelatingsbeleid van apps in verschillende app stores. Apple hanteert, evenals Microsoft en RIM, een strikt toelatingsbeleid voor apps die in de App Store worden verkocht. Er wordt onder andere gecontroleerd of de app doet wat in de beschrijving staat en voldoet aan de overeenkomst voor ontwikkelaars. Ook wordt gekeken of de app bugs bevat of crashes veroorzaakt en of de gebruikersinterface aan de gestelde richtlijnen voldoet. Deze vorm van controle is niet waterdicht, maar werpt een zodanige drempel op dat er nauwelijks tot geen malware beschikbaar komt voor iOS, Windows Phone en BlackBerry OS. Google hanteert voor Google Play geen toelatingsbeleid. Ook is het bij Android-toestellen mogelijk om apps uit andere bronnen (o.a. app stores van fabrikanten) te downloaden. Dit scala aan ongecontroleerde distributiekanalen zorgt voor een grote hoeveelheid malware die specifiek is geschreven voor Android.
Een onbetrouwbare netwerkinfrastructuur, diefstal of verlies van mobiele apparaten, kwetsbare besturingssystemen, jailbreaking/rooting en mobiele malware vormen aanzienlijke risico’s voor de integriteit en vertrouwelijkheid van gegevens die in mobiele apps worden gebruikt en verwerkt. De beveiligingsmodellen, systeembeveiliging en architectuur van de verschillende platformen zullen moeten worden vergeleken en er zal moeten worden nagegaan welk platform het meest geschikt is om te kunnen gebruiken voor verwerking van vertrouwelijke gegevens binnen uw organisatie.
Sinds eind 2010 is er ook een OWASP Top 10 voor mobiele apps. Binnenkort wordt de OWASP Mobile Top 10 van 2016 gepubliceerd. Er wordt nog een laatste hand aan gelegd, maar de huidige ‘release candidate’ bevat de volgende kwetsbaarheden:
M1: Improper Platform Usag
M2: Insecure Data Storage
M3: Insecure Communication
M4: Insecure Authentication
M5: Insufficient Cryptography
M6: Insecure Authorization
M7: Client Code Quality
M8: Code Tampering
M9: Reverse Engineering
M10: Extraneous Functionality
Daniël Dragičević, senior security consultant bij Madison Gurkha
Black Hat Sessions
Tijdens de Black Hat Sessions op 23 juni 2016 geeft Victor van der Veen, promovendus aan de Vrije Universiteit Amsterdam, een presentatie/demonstratie over de risico’s bij mobiele applicaties, waarbij hij de nodige details zal geven om de ernst van dit soort kwetsbaarheden duidelijk te maken. De malafide app die door de VU A’dam is geschreven heeft zelfs een paar maanden in de Google Play-appstore gestaan en is pas verwijderd nadat het hoofd van Android Platform Security een demonstratiefilmpje onder de neus gedrukt kreeg.
Ga zelf aan de slag of volg diverse lezingen over dit onderwerp. Meer info vind je op www.blackhatsessions.com. Let op! Gebruik bij je online aanmelding de code vvSAb7bd. Computable is partner van dit congres en geeft 10 procent korting op de toegangsprijs.