App Beveiliging: Tips en blunders

Beveiligingsblunders bij mobiele apps en hoe deze te voorkomen. Beveiligingsproblemen bij mobiele apps lijken onzichtbaar. Echter met een beetje kennis van programmeren en een beetje priegelen vind je meer bugs en gaten in een app dan je bij voorbaat zou denken.

Beveiligingsproblemen bij de mobiele app Nissan Leaf EV

De beveiligingsproblemen in de Nissan Leaf EV app hebben het mogelijk gemaakt om de auto op afstand te bedienen via de zogenaamde API’s (application program interfaces).

Beveiligingsproblemen bij mobiele apps komen vaker voor dan je denkt. Maar ze zijn ook nagenoeg altijd te voorkomen. Nissan nam een maand lang de tijd om zich te verontschuldigen voor de beveiligingsproblemen rondom de mobiele app. Helaas was het zo dat de beveiligingsproblemen in de API’s van Nissan’s app indruisen tegen de meest fundamentele beveiligingsregels. Uiteindelijk hadden ze dus makkelijk voorkomen kunnen worden.

De ontwikkelaars van de app van Nissan hebben essentiële en fundamentele beveiligingsmaatregelen genegeerd voor het valideren van de identiteit van de gebruiker. Je kon op de API van de app inloggen door het VIN nummer (Vehicle Identification Number) in te voeren. Verder werd er geen authenticatie gedaan.

Het resultaat is dat bijna iedereen met een beetje kennis van programmeren en VIN nummer op afstand de systemen van de auto kon inzien en aanpassen. Daarbij is het VIN nummer zichtbaar door de voorruit van de Leaf. Een gigantische fout natuurlijk om dat als beveiliging te gebruiken.

De inbreuk op de beveiliging is dus niet alleen een programmeerfout geweest. Er is overduidelijk te weinig aandacht besteed aan de bescherming van de privacy van de app-gebruikers. Dit is dus gewoon vooral heel dom geweest om het op deze manier te laten werken.

Apple en Google de meesters in veilige mobiele apps bouwen

Helaas komen beveiligingsproblemen bij mobiele apps vaker voor dan je zou denken. Om deze reden investeren Apple en Google waanzinnig veel tijd, geld en energie in de beveiliging. Hierdoor hebben de ontwikkelaars veel tools, middelen en mogelijkheden om veilige apps te bouwen.

Apple neemt de veiligheid van het platform zeer serieus. Hun drang naar veilige mobiele apps gaat zelfs zo ver, dat Apple weigerde om via een geheime backdoor de FBI toegang te geven tot de telefoon van een terrorist. Dit omdat ze daarmee de deur open zouden zetten voor andere kwaadwillenden.

Uiteindelijk hangt het allemaal van de ontwikkelaars af. Zij hebben de taak om veilige apps te bouwen. De ontwikkelaas moeten in staat zijn om de data toegankelijk te maken, te verplaatsen en uiteindelijk veilig op te slaan. Hier ligt een verantwoordelijkheid.

Regels voor het bouwen van veilige apps

Er zijn drie belangrijke beveiligingsregels omtrent het bouwen van veilige mobiele apps. Deze drie regels garanderen een bijna absolute veiligheid voor de app-gebruikers. Daarnaast voorkomen ze dat je in een soortgelijke situatie als bij die van Nissan terecht komt.

1. Beveilig alle services in de app

Als het gaat om optimale veiligheid, moet je niet alleen de app dichttimmeren. Ook de assets die je toevoegt aan de app moet je beschermen. Alle services die geïntegreerd worden met de app moeten 100% veilig zijn!

Apps zijn verbonden met diverse gegevensbronnen en de data gaat vaak meerdere richtingen op. De verbindingen moeten wel echt veilig zijn. Dit betekent dat je duidelijk inzicht nodig hebt in de diensten en de systemen die jij integreert. Alleen met dat inzicht kun je ervoor zorgen dat de app feilloos werkt voor de eindgebruikers.

Bij het bouwen van apps moet je verantwoordelijkheid nemen om alle systemen onder de loep te nemen. Daarmee kun je potentiële beveiligingsproblemen voorkomen. Zo hebben iOS en Android ingebouwde security tools, waar je veel voordeel uit kan halen. Gebruik die dan ook.

2. Offer de veiligheid van een mobiele app niet op voor een snelle release

In de race om apps zo snel mogelijk uit te kunnen brengen, kan de veiligheid in het geding raken. De controle op optimale veiligheid kan minder aandacht krijgen. Dit heeft als gevolg dat de extra systemen en services die worden geconfigureerd in de app toekomstige beveiligingsproblemen kunnen opleveren. Dit is dus het geval geweest bij de Nissan app.

Bouw mobiele apps veilig. Neem liever wat langer de tijd, maar geef je veiligheid nooit op voor snelheid. Als eenmaal het vertrouwen weg is bij je app-gebruikers door beveiligingsproblemen, win je dat maar heel moeilijk terug. Immers, vertrouwen komt te voet, maar gaat te paard.

3. Wees extra waakzaam bij veranderingen in het data landschap

Bedrijven hebben steeds minder controle over de gegevens die zij gebruiken. In feite bezitten ze de gegeven niet altijd zelf. Neem weer het voorbeeld van de Nissan app erbij. De Voertuig Identificatie Nummers (VIN) van de Nissan Leaf worden gebruikt in de Leaf app hack staan op de auto zelf.

Het is verstandig om niet alleen te kijken naar de data die door de app heen gebruikt wordt. Bekijk ook hoe dit in de toekomst eventueel misbruikt kan worden. Je moet overal op voorbereid zijn. Het is heel belangrijk om je veiligheid serieus te nemen. Wanneer de gebruikers ontdekken dat er geen dataveiligheid is en hun privacy niet series wordt genomen, dan ben je verder van huis!

De hierboven geschetste problemen bieden enige stof tot nadenken voor alle app-ontwikkelaars.

10 technische tips voor mobiele app veiligheid

Wil je zelf meer weten over de beveiliging van je app? Hier zijn 10 technische tips die kunnen helpen:

  1. De communicatie via de server moet altijd plaatsvinden via een beveiligd kanaal (bij voorkeur TLS 1.2)
  2. Zorg ervoor dat de TLS / SSL-certificaat is gevalideerd
  3. Het is beter om kortstondige authenticatie (OAuth) te gebruiken
  4. Vertrouw op data-encryptie en bescherming van files via native frameworks
  5. Maak gebruik van veilige opslagmogelijkheden voor wachtwoorden en dergelijke (Keychain)
  6. Voorkom hardcoded credentials in de source codes
  7. Maak gebruik van wachtwoorden en vingerafdrukken en on-demand VPN connectie wanneer de data en services zeer gevoelig zijn
  8. Sla niet onnodig persoonlijke of gevoelige gegevens op
  9. Zorg ervoor dat de toegang op de app meteen wordt geblokkeerd wanneer een gebruiker zich afmeld
  10. Bekijk het beleid en de regels omtrent dataretentie in je app (zoals analytics, performance logging, push notificatie, enzovoort) om de naleving ervan te waarborgen

Nog steeds niet helemaal duidelijk?

Ik help je graag met al je vragen. Je mag me altijd even bellen of mailen.