Ontwikkelen met low-code? Dit is waarom beveiligingstesten nog steeds van belang is!
Low-code, een groeiende en dynamische markt die mogelijkheden biedt voor vele toepassingen. Beloftes van snellere ontwikkeltijden en flexibelere systemen spreken bedrijven aan die hier maar al te graag van profiteren. Covid-19 lijkt de groei in de adoptie van low-code ontwikkeling alleen maar te stimuleren. Vanwege de toename in online activiteit bij werken op afstand moesten bedrijven snel applicaties kunnen ontwikkelen om mee te kunnen gaan en zichzelf aan te passen aan de nieuwe situatie.
Maar hoe zit het eigenlijk met de beveiliging van deze low-code applicaties en welke rol kan nSEC/Resilience hierin spelen?
Het afgelopen half jaar ben ik op een zoektocht geweest om hier een antwoord op te vinden. Voor mijn afstudeerstage bij nSEC/Resilience heb ik onderzoek verricht naar het effectief inzetten van security testing op low-code applicaties, met de vraag of beveiligingstesten op low-code applicaties überhaupt relevant is, en zo ja hoe dit dan effectief benaderd kan worden.
Hiervoor heb ik verschillende toepassingen voor low-code bekeken, eigenschappen vergeleken, mogelijke bedreigingen en risico’s onderzocht en ben ik met verschillende low-code platformen in contact gekomen. Hier een aantal van mijn belangrijkste bevindingen. Waar traditionele softwareontwikkeling complex en erg technisch kan zijn brengen low-code platformen hier verandering in door de leercurve voor ontwikkelaars te verkorten en de ontwikkeling van software sneller, eenvoudiger en toegankelijker te maken voor bedrijven. Geen een low-code platform is precies hetzelfde, ze maken gebruik van verschillende technologieën, richten zich op verschillende doelgroepen en/of hebben hun eigen benadering om zich in de markt te positioneren.
Ondanks verschillen over low-code platformen zijn er ook duidelijke overeenkomsten te vinden in de algemene structuur waarin de low-code applicaties ontwikkeld worden met de low-code platformen.
In mijn onderzoek heb ik 3 hoofdlagen gedefinieerd waar een ontwikkelaar mee te maken krijgt als afnemer bij een low-code platform.
De applicatie laag is de laag waarin de ontwikkelaar directe interactie heeft met het ontwikkelproces van de applicatie. Dit
omvat een visuele ontwikkelomgeving en de door het platform aangeboden tooling. De integratie laag heeft betrekking op de mogelijkheden die het platform biedt voor integraties met bestaande software/partners maar ook gebruik van bijvoorbeeld plugins of modules van 3de partijen uit een appstore. De deployment laag gaat over het beheer en configuratie voor deployment van de applicatie.
Low-code platformen voorzien de middelen en omgeving om low-code applicaties te kunnen ontwikkelen. De low-code platformen nemen zelf vele maatregelen om te zorgen dat hun eigen ontwikkelomgeving en tooling voldoet aan de laatste security standaarden, met behulp van certificeringen en het regelmatig uitvoeren van audits en pentests. Ontwikkelde applicaties kunnen hierdoor in bepaalde aspecten veiliger kunnen zijn door de afgebakende omgeving en gecontroleerde tooling waarmee ze zijn ontwikkeld.
Dit betekent echter niet dat het testen van low-code applicaties minder belangrijk is dan het testen van regulier ontwikkelde software. Door de tussenkomst van een low-code aanbieder, is er wel een verschil in verantwoordelijkheden en de mogelijke bedreigingen en risico’s die kunnen leiden tot kwetsbaarheden. De verwachting van snellere ontwikkeltijden voegt hier aan toe dat er mogelijk niet voldoende getest en gecontroleerd wordt op beveiligingsproblemen vanwege de tijdsdruk om snel applicaties te publiceren.
Low-code platformen kunnen niet alle beveiligingsrisico’s in een applicatie weg nemen, omdat er nog steeds verantwoordelijkheden bij de afnemer of zelfs bij 3de partijen liggen.
Denk hierbij aan:
- Configuratie en juiste toepassing van door platform aangeboden security controls (access control & authenticatiemechanisme)
- Gebruik van 3th party componenten/plugins/modules uit bijvoorbeeld appstores of marketplaces die mogelijk niet geverifieerd zijn door het platform
- Integraties met bestaande software, partners, 3th party software en API gebruik met betrekking tot veilige configuraties en up-to-dateness
- Toepassen van best security practices zoals door het platform geboden (documentatie en rapportages/checks/controles) met betrekking tot veilige ontwikkeling en deployment
- Beheer, onderhoud (applicatie hygiëne) en deployment van applicaties in cloud of on-premise omgevingen
Low-code verschilt voornamelijk met traditioneel ontwikkelde software in de manier waarop de ontwikkelaar interactie heeft met het ontwikkelproces van de applicatie binnen een low-code platform. Dit heeft invloed op de manier waarop beveiligingstesten effectief kan worden ingezet.
Voor applicaties die zijn gebouwd op basis van low code platformen/frameworks is een reguliere penetratietest hierdoor vaak minder effectief. Zo zijn bepaalde categorieën kwetsbaarheden op specifieke platformen vaak al nagenoeg uitgesloten. Daarnaast zijn voor applicaties gebouwd op low code platformen/frameworks specifieke controles nodig, die controleren op bekende
zwakke plekken en security best practices voor die platformen/frameworks. Dit geldt zowel voor low code applicaties die een organisatie zelf host als voor applicaties die in de cloud worden gehost op infrastructuur van de low code leverancier.
nSEC/Resilience kan een belangrijke rol spelen in het beveiligingstesten van low-code applicaties, waarbij effectieve maatregelen voor beveiligingstesten van low-code applicaties zich richten zich op het controleren en juist toepassen van mogelijkheden die het low-code platform biedt voor het ontwikkelen en beheren van een veilige applicatie. Hierbij spelen configuraties in de applicatie, de deployment omgeving en eventuele integraties een grote rol. Ontwikkelaars besteden hier mogelijk niet voldoende aandacht aan, passen security controls niet op een veilige manier toe in de applicatie of er kunnen details over het hoofd worden gezien die tot mogelijke beveiligingsproblemen kunnen leiden.
Met de low-code security test van nSEC/Resilience wordt een volledige white-box benadering toegepast waarbij de focus ligt op het controleren op het juist maar vooral veilig toepassen van mogelijkheden die het platform biedt en het testen op mogelijke kwetsbaarheden en beveiligingsproblemen die bepaalde componenten met zich mee kunnen dragen. De scope van de test is hierbij afhankelijk van de omvang en de toepassing van de applicatie die van te voren samen met de security consultants van nSEC bepaald wordt.
Geschreven door Jesse van Eekelen, gepost op 25 juni 2021
Benieuwd of een Low-Code security test van nSEC/Resilience ook waarde zou toevoegen voor uw organisatie? We vertellen u er graag meer over. Neem contact met ons op voor meer informatie of bekijk onze pakketten/prijzen pagina!