Datalekken, applicatiebeveiliging en privacy. Het zijn hot topics als we kijken naar de headlines van het laatste nieuws. Frankrijk vraagt Apple om beveiligingsfuncties uit te zetten voor een corona-app. De Nederlandse corona app Covid19 Alert heeft een datalek al bij het uploaden van de broncode en nog geen maand geleden zijn twee harde schijven met een back-up van 6,9 miljoen donorformulieren zoekgeraakt.
Het waarborgen van ieders privacy lijkt soms lastig. De opkomst van nieuwe slimme technologie maakt het voor hackers en kwaadwillenden steeds makkelijker om data te verkrijgen*. Onderwerpen als databeveiliging en privacy worden steeds belangrijker.. en het realiseren ervan lastiger zo lijkt het.
Toch is er niet enkel slecht nieuws: met de komst van nieuwe technologie worden softwarespecialisten en de tools die ze gebruiken óók slimmer. Gebruikersprivacy en databeveiliging zijn speerpunten bij het ontwikkelen en onderhouden van een app. Door de nieuwste technieken te gebruiken rondom applicatiebeveiliging kan de privacy van de gebruiker worden gewaarborgd. Daarnaast kunnen veel van deze privacyschendingen voorkomen worden door secuur en pragmatisch te werken.
Bij Coffee IT streven we ernaar om de hoogste kwaliteit te bieden aan onze klanten. Applicatiebeveiliging is hier een essentieel onderdeel van. Wij zorgen dat apps goed beveiligd zijn. In dit artikel geven we belangrijke adviezen voor databeveiliging in apps. Hoe beveilig je een app?
* Het voorbeeld van de twee zoekgeraakte harde schijven tellen we niet mee in dit voorbeeld. Dit was een menselijke fout en had misschien juist voorkomen kunnen worden door een app te gebruiken in plaats van harde schijven.
Overzicht (leestijd: 6 minuten)
Wat maakt een app een goed beveiligde app?
Een goed beveiligde app voldoet aan de gestelde beveiligingsnormen. Deze normen zijn bepaald op meerdere niveaus: de EU, landelijk, maatschappelijk of in de Google Play Store en Apple App Store. Goed beveiligd betekent dat alleen de bevoegde gebruikers toegang hebben tot privacygevoelige data. Daarnaast mag een app nooit misleidend of onbetrouwbaar zijn.
Als onderneming of app-eigenaar is het beveiligen van een app geen overbodige luxe. Wil je grote boetes en nare PR issues voorkomen, dan is het raadzaam om ervoor te zorgen dat de app goed beveiligd is. Wordt er privacygevoelige data verzameld in een app? In dat geval is het belangrijk om hier bewust mee bezig te zijn. Zowel de consument als de onderneming heeft hierin een belangrijke rol. We kunnen het beveiligen van een app grofweg onderverdelen in een tweetal categorieën:
- De minimale maatregelen voor privacywaarborging en databeveiliging binnen apps
- Aanvullende maatregelen voor databeveiliging in apps
Minimale maatregelen voor het beveiligen van een app
De basismaatregelen voor het beveiligen van belangrijke en privacygevoelige data:
- Zorg voor beveiligd dataverkeer door data alleen te versturen met een versleutelde (encrypted) verbinding. Dit doe je door een SSL of HTTPS verbinding. Door de gegevens tussen zender en ontvanger te versleutelen voorkom je dat derden toegang hebben tot deze gegevens*. Wil je nog een stapje verder gaan? Voeg dan een SSL pinning toe of een TLS certificaat (de opvolger van SSL). Dit voorkomt een zogeheten man-in-the-middle attack.
- Gebruik alleen unieke en sterke wachtwoorden.
- Versleutel en beveilig alle gegevens die op een toestel worden opgeslagen.
- Werk altijd met de laatste software en besturingsysteem updates. Hackers of kwaadwillenden gebruiken vaak oudere versies met problemen om toegang tot systemen en data te krijgen. Door software consequent te updaten verminder je dit risico.
- Welke gebruiker mag welke data zien? Met andere woorden: verdeel de rollen. Mag deze gebruiker alleen gegevens inzien of ook data bewerken en zelfs verwijderen? Door rollen te verdelen en een gebruiker te identificeren door een login (Facebook/Google/email) en te koppelen aan een rol beveilig je de data. Neem bijvoorbeeld een app die wij momenteel ontwikkelen voor restaurants. Hierin hebben wij een drietal gebruikersrollen verdeeld: user, admin en owner. Een owner gebruikersrol kan content wijzigen met betrekking tot zijn eigen restaurant. Een admin gebruikersrol kan alle data wijzigen. Een user kan enkel inloggen in de app en reviews achterlaten. Door goed over de gebruikersrollen na te denken bescherm je de data binnen de app.
- Gebruik layered security. Dat wil zeggen dat je elke stap waar een hacker binnen kan komen voorziet van een beveiliging. Vergelijk dit voor het gemak even met een huis. Zo zet je als het ware een hek om je huis en vergrendel je de deuren met een slot.
* Wist je dat: tegenwoordig is het enorm gemakkelijk om SSL certificaten te krijgen. Wij gebruiken hiervoor ‘let’s encrypt‘. Let’s encrypt is een non-profit organisatie die bedrijven stimuleert om verbindingen beveiligd te maken met HTTPS. Zij leveren gratis SSL certificaten, vroeger moest je hiervoor betalen.
Aanvullende (aangeraden) maatregelen voor het beveiligen van een app
Wil je nog een stapje verder gaan dan kun je wat extra beveiligingslagen toevoegen om de privacy van gebruikers en applicatiebeveiliging te verzekeren. Hierbij kun je denken aan:
- Bewustzijn en aandacht van de developer. Misschien wel een van de belangrijkste aspecten bij het ontwikkelen van goed beveiligde apps. Een gestructureerde, logische en schone code zorgt voor meer veiligheid en overzicht. Door de ‘secure-coding’ principes toe te passen worden beveiligingsmaatregelen gehandhaaft. Dit zorgt er weer voor dat de achterliggende infrastructuur goed wordt geïmplementeerd en misconfiguraties en verouderde software wordt voorkomen (het eerdere punt bij de basis applicatiebeveiliging)**.
- Continue applicatiebeveiliging. Door consequente controle uit te voeren kan worden nagegaan of kwaadwillenden achterliggende infrastructuur kunnen manipuleren door bijvoorbeeld foutieve data in te voeren of uit te wisselen. Door dit in iteraties te doen worden security kwetsbaarheden tijdig opgespoord.
- Gebruik OAuth 2.0. Door een OAuth workflow te gebruiken geef je derden een veilige toegang tot de API of HTTP endpoints. Dit gaat niet via een inlog maar via een toegangscode. De app ontvangt dan na het inloggen een access token, dat voor een bepaalde tijd geldig is. Met die access token kan je dan een bepaalde tijd data ophalen voor een rol (user/admin/owner etc.). Vervolgens wordt in de backend gecontroleerd om welke gebruiker het gaat en of deze bij de data mag. Bekijk onderstaande afbeelding voor een schematische workflow van OAuth 2.0.
- De beveiliging van de backend van een app moet dichtgespijkerd zijn. Dit kan je controleren aan de hand van de OWASP (Web Application Security Sheet).
** Dit ging er veelal mis bij de veelbesproken corona apps. Uit securitytesten is gekomen dat de ‘secure coding’ principes niet voldoende zijn toegepast. Zo zijn hard-coded wachtwoorden te traceren in de leesbare broncode die is gepubliceerd. Hiermee kan toegang worden gegeven tot de databases en achterliggende infrastructuur. Deze infrastructuur en API was in veel gevallen niet beveiligd met identificatie en authenticatie.
Databescherming vanuit de wet
Als consumenten zijn we gelukkig ook beschermd tegen datalekken vanuit de wet. De AVG wet is misschien wel een van de belangrijkste nieuwe wetten die de rechten en privacy van app gebruikers beschermd. Organisaties die niet zorgvuldig omgaan met klantgegevens kunnen forse boetes krijgen. Daarnaast is het melden van een datalek sinds 2016 verplicht. Elke organisatie is verplicht een melding te maken van een datalek of beveiligingsbreuk bij Autoriteit Persoonsgegevens.
Safety first: aandacht voor app-privacy en databeveiliging
Het beveiligen van data is voor elk bedrijf van toepassing. Welke beveiligingsmaatregelen van toepassing zijn verschilt per app. Apps zijn tenslotte maatwerk. Over het algemeen geldt de vuistregel: hoe meer privacygevoelige informatie de app bevat, hoe zwaarder de beveiliging en protocollen. Toch dient elke app een zeker basisniveau te hebben als we het hebben over applicatiebeveiliging.
De impact van slecht beveiligde apps zal in de nabije toekomst alleen maar groter worden. Er wordt tenslotte steeds meer informatie online verzameld zoals je geolocatie, activiteitengeschiedenis of contactgegevens. Wij raden daarom aan om zorgvuldig na te denken over databeveiliging en het inventariseren van de risico’s. Door bovenstaande maatregelen toe te passen verzeker je een level van veiligheid en privacy voor app-gebruikers. Natuurlijk zijn er nog veel aanvullende maatregelen die je kunt nemen voor extra databeveiliging. Afhankelijk van het type app, kunnen we je hierover informeren. Wil je hier meer over weten of heb je overige vragen neem dan contact op.