Onlangs heeft het Open Worldwide Application Security Project (OWASP) voor het eerst sinds 2016 zijn Top 10 Risico’s voor Mobiele Applicaties bijgewerkt. Het beveiligingsrisico dat deze keer bovenaan staat? “Onjuist gebruik van inloggegevens.”
Dit is een wake-upcall voor aanbieders van mobiele apps over het gevaar van hardcoded inloggegevens en algemene slechte geheimenhygiëne.
Ongepast omgaan met de geheimen die jouw applicatie gebruikt, vooral in mobiele apps, kan leiden tot verwoestende beveiligingsinbreuken. Laten we deze nieuwe topfocus voor het beveiligen van onze applicaties nader bekijken en wat we samen kunnen doen om deze zorgen aan te pakken.
De Groeiende Bedreiging van Ongepaste Geheimenbehandeling
Onjuist gebruik van inloggegevens doet zich voor wanneer geheimen zoals wachtwoorden of tokens niet goed worden beveiligd, waardoor ze kwetsbaar zijn voor diefstal door aanvallers. Mobiele apps zijn vooral berucht om het lekken van geheimen. Volgens onderzoek van CyberNews, meer dan 50% van de mobiele apps op platforms zoals de Google Play Store hebben hardcoded geheimen, wat betekent dat deze gevoelige informatie gemakkelijk door kwaadwillende actoren kan worden ontdekt.
Als we kijken naar de definitie die door OWASP is gegeven, begrijpen we snel waarom dit risico bijzonder zorgwekkend is:
Wanneer geheimen worden blootgesteld, kunnen aanvallers ze gebruiken om ongeautoriseerde toegang te krijgen tot services, gegevens of zelfs hele systemen. Dit maakt geheimenbeheer een topprioriteit voor app-ontwikkelaars en beveiligingsteams.
Waarom Geheimen het Primaire Doelwit Zijn
Geheimen zijn aantrekkelijke doelwitten voor aanvallers omdat ze directe toegang verlenen tot kritieke systemen. In tegenstelling tot andere kwetsbaarheden die verdere exploitatie vereisen, hebben aanvallers een duidelijk pad naar waardevolle bronnen zodra ze toegang krijgen tot een API-sleutel of wachtwoord.
Bijvoorbeeld, hardcoded API-sleutels in mobiele apps kunnen worden geëxtraheerd via statische analyse tools en gebruikt worden voor ongeautoriseerde API-verzoeken. Dit compromitteert niet alleen gebruikersgegevens maar kan ook financiële verliezen met zich meebrengen, vooral als deze sleutels verbonden zijn met services die factureren op basis van gebruik.
Geheimhouding aan de Clientzijde is Moeilijk
Een belangrijk punt in het begrijpen van geheimenbeheer is dat geheimhouding aan de clientzijde praktisch onmogelijk is. Ongeacht hoe goed geheimen zijn verhuld of versleuteld in een mobiele app, kunnen aanvallers met voldoende middelen de app reverse-engineeren en ze ophalen. Dit komt doordat geheimen op een bepaald punt beschikbaar moeten zijn in het geheugen van de app voor gebruik. Via dynamische analyse kunnen aanvallers deze geheimen ophalen en er misbruik van maken.
Als gevolg hiervan is de enige veilige manier om geheimen te beheren, om ze volledig uit de clientzijde te houden. In plaats van API-sleutels of referenties in de app in te sluiten, zouden ontwikkelaars deze gevoelige informatie naar de backend moeten verplaatsen, waar ze meer controle hebben over toegang en beveiliging.
Best Practices voor Geheimenbeheer
Om het probleem van het uitlekken van geheimen aan te pakken, moeten ontwikkelingsteams een reeks best practices implementeren.
1. Geheimen nooit hardcoderen
Geheimen mogen nooit rechtstreeks in de code van de app worden opgeslagen. Dit omvat API-sleutels, verificatietokens en andere gevoelige gegevens. Het hardcoderen van geheimen is een van de meest voorkomende manieren waarop ze uitlekken en kan leiden tot aanzienlijke beveiligingsinbreuken.
2. Gebruik beveiligde opslag-API’s
Voor gebruikersgeheimen (bijvoorbeeld wachtwoorden, tokens) moeten ontwikkelaars beveiligde opslagmechanismen gebruiken die worden aangeboden door mobiele besturingssystemen. Zo biedt iOS de Keychain en Android heeft de Keystore. Deze API’s zorgen voor een veilige opslag en toegangsbeheer van gevoelige gegevens op het apparaat.
3. Verplaats geheimen naar de backend
In plaats van geheimen aan de clientzijde te verwerken, moeten mobiele apps gebruikmaken van server-side logica om API-sleutels en andere gevoelige gegevens te beheren. Door deze handelingen aan de backend te plaatsen, wordt het risico op het uitlekken van geheimen aanzienlijk verminderd.
4. Geheimen regelmatig roteren en ongeldig maken
Zelfs met een juist geheimenbeheer moeten geheimen regelmatig worden geroteerd en gecompromitteerde sleutels onmiddellijk worden geannuleerd. Dit zorgt ervoor dat als een aanvaller toegang krijgt tot een geheim, ze het niet onbeperkt kunnen gebruiken.
5. Certificaatpinnen
Wanneer geheimen naar de app worden verzonden tijdens runtime, moeten ontwikkelaars certificaatpinnen gebruiken om ervoor te zorgen dat de communicatie veilig is. Dit voegt een extra beveiligingslaag toe door de identiteit van de server te verifiëren tijdens de verbinding.
6. Implementeer Geheimen Detectie in de SDLC
Geheimen beheren in de ontwikkelfase houdt onvermijdelijk in dat er op enig moment fouten en lekken optreden. OWASP benadrukt de noodzaak van “een uitgebreid beveiligingstestproces”. Het moet meerdere lagen van detectie afdwingen in de commit-, push- en buildfasen en gestroomlijnde remediëring mogelijk maken in geval van een incident.
Het is cruciaal om in gedachten te houden dat een hardcoded geheim niet naar productie hoeft te gaan om een hoog impactvolle kwetsbaarheid te zijn.
De Gevolgen van Gelekte Geheimen
Wanneer geheimen uitlekken, kunnen de gevolgen ernstig zijn. Aanvallers kunnen blootgestelde referenties gebruiken om toegang te krijgen tot gevoelige gegevens, bedrijfslogica te manipuleren of zelfs hele systemen over te nemen. Als bijvoorbeeld een API-sleutel gekoppeld aan een betalingssysteem uitlekt, kunnen aanvallers frauduleuze transacties starten, resulterend in financiële verliezen voor zowel het bedrijf als zijn klanten.
“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”
Bovendien kunnen gelekte geheimen de integriteit van een mobiele app compromitteren en leiden tot kostbare juridische en reputatieschade. Als bijvoorbeeld een gezondheidsapp API-sleutels lekt die toegang geven tot patiëntgegevens, kan dit leiden tot aanzienlijke regelgevende boetes en het vertrouwen van klanten ondermijnen.
Geheimen Detectie Tools
Om het probleem van geheimenlekkage aan te pakken, zijn geheimen detectietools essentieel geworden voor moderne app-ontwikkeling. Deze tools scannen code repositories, CI/CD pipelines en productieomgevingen op blootgestelde geheimen, waardoor teams kwetsbaarheden kunnen ontdekken voordat ze worden misbruikt.
Deze tools en platforms maken real-time monitoring van code wijzigingen mogelijk, waardoor wordt gegarandeerd dat geheimen niet per ongeluk worden vastgelegd tijdens het ontwikkelingsproces. Door dergelijke tools te integreren in de ontwikkelingslevenscyclus, kunnen organisaties het risico op geheimenlekken aanzienlijk verminderen.
Geheimenbeveiliging Is een Reis Die We Allemaal Maken
Geheimenbeheer is niet alleen een technisch probleem; het is een kritische beveiligingsuitdaging die verstrekkende gevolgen kan hebben als het niet goed wordt aangepakt. Organisaties kunnen hun gevoelige gegevens beschermen en de kans op kostbare inbreuken verkleinen door de risico’s van onjuist gebruik van referenties te begrijpen, best practices voor het beveiligen van geheimen te implementeren en tools te gebruiken die zijn ontworpen om lekken op te sporen.
Terwijl cyberaanvallen en inbreuken blijven domineren in het nieuws, is het beveiligen van geheimen de meest essentiële beschermingsstrategie om organisaties en systemen veilig te houden. Gelukkig zijn OWASP-vrijwilligers er om ons te helpen om bij te blijven in het voortdurend veranderende cybersecurity-landschap.
Referentie
- Top 10 Risico’s voor Mobiele Applicaties, Open Web Application Security Project (OWASP)
Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps