Veilig werken met open source

Redactie WINMAG Pro
De beschikbaarheid van open source-code, applicaties, pakketten en bibliotheken is ongetwijfeld een van de belangrijkste bijdragen aan het huidige groeiende ontwikkelaarsecosysteem.

Door: Daniel Berman, Product Marketing Director, Snyk

Het is namelijk een essentiële factor voor het hoge tempo waarin moderne applicaties worden gemaakt, vernieuwd en onderhouden. Ontwikkelaars hoeven hierdoor niet langer nieuwe code te maken om standaard vereiste functionaliteit te leveren. Nu kunnen ze zich juist concentreren op de nieuwe kenmerken en functies van hun applicaties.

Het gebruik van open source is de laatste jaren haast universeel geworden onder applicatie-ontwikkelaars. Sterker nog, volgens Gartner bevat 96% van alle applicaties open source-pakketten. Zij vormen de enorme basis waar applicaties op gebouwd zijn en vormen de native code van ontwikkelaars: uit Gartner's analyse blijkt dat 80% van de applicatie source code bestaat uit open source.

Door middel van open source kan er sneller gecreëerd worden omdat het wiel niet opnieuw uitgevonden hoeft te worden. Dit is ongetwijfeld een groot voordeel, maar met die macht komt ook een grote verantwoordelijkheid kijken.

De laatste paar jaar is het aantal aanvallen op de supply chain aanzienlijk toegenomen, met name door cybercriminelen die zich op populaire open source-pakketten richten. Cybercriminelen hebben zich bijvoorbeeld aangesloten bij bestaande projecten en de code ervan gewijzigd, of ze hebben nieuwe variaties op bestaande pakketten gemaakt. Die lijken erg op de nieuwste versie, maar bevatten kwaadaardige code.

Het gevolg van dit soort aanvallen is dat ontwikkelaars open source-pakketten niet meer op het eerste gezicht kunnen vertrouwen. In het verleden werden veel meer securitycontroles uitgeoefend op de 20% van de applicatiecode die intern werd ontwikkeld. Van open source-pakketten werd aangenomen dat ze intrinsiek betrouwbaarder waren. Nu is dat een onverstandige veronderstelling en ontwikkelaars moeten bereid zijn om open source-pakketten grondig te onderzoeken voordat ze deze gebruiken.

Dit onderzoeksproces moet zich richten op vier belangrijke vragen:

1. Wie gebruikt het nog meer?

Een pakket dat gebruikt wordt door veel verschillende ontwikkelaars heeft een grotere kans om betrouwbaar te zijn dan een pakket met weinig gebruikers. Het is dan ook waarschijnlijk dat het effectiever werkt. Populariteit betekent ook dat meer mensen actief naar het pakket kijken, dus eventuele kwetsbaarheden of de toevoeging van kwaadaardige code zullen waarschijnlijk eerder opgemerkt worden.

2. Wordt het goed onderhouden?

Sommige pakketten zijn populair maar worden niet actief onderhouden. Op een bepaald moment wordt bijvoorbeeld plots bepaald dat het "af" is of verliezen de betrokken ontwikkelaars hun interesse. Dit roept vraagtekens op. Als je dan problemen krijgt met het pakket in een cruciale toepassing voor het bedrijf, wie is er dan om je te helpen? Ten tweede, hoe kun je zeker zijn van de compatibiliteit met modernere componenten of weten of er in de loop der tijd kwetsbaarheden zijn ontstaan? Nogmaals is het antwoord is dat je dat waarschijnlijk niet kan.

3. Is het veilig om te gebruiken?

Populariteit en een regelmatig onderhoudsprogramma kunnen enige geruststelling bieden, maar toch moet je overwegen of een pakket voor meer risico zorgt in je applicatie. Het is niet altijd eenvoudig vast te stellen of een pakket kwetsbaarheden of zelfs kwaadaardige code bevat. Heel vaak moeten er keuzes worden gemaakt tussen verschillende pakketten. Natuurlijk moeten ontwikkelaars het pakket zoeken dat tot het minste risico leidt bij het uitvoeren van de vereiste functies en ervoor zorgen dat ze de minst kwetsbare versie van dat pakket gebruiken, ook als deze misschien niet de meest recente is. Gebruik een goed bijgehouden databank om inzicht te krijgen in informatie over deze kwetsbaarheden en kijk eventueel naar automatisering van deze controles.

Security alleen houdt risico’s niet tegen. Elk open source-component wordt geleverd met een licentie die beschrijft hoe het mag worden gebruikt. Ontwikkelaars moeten de naam en het type van de licentie waaronder de software is vrijgegeven onderzoeken en er natuurlijk voor zorgen dat hun eigen toepassing of bedrijfsbeleid hen niet in gevaar brengt door het niet naleven van de voorwaarden.

4. Heeft het pakket een sterke community?

Bij de meeste open source-projecten is een klein kernteam verantwoordelijk voor het schrijven en onderhouden van de code. Maar de community van gebruikers speelt ook een belangrijke rol in het voortzetten van het project door middel van feature verzoeken, het melden van bugs en het geven van feedback op de routekaart. Een pakket met een sterke community is waarschijnlijk gezonder, dynamischer en het introduceert en verbetert zijn functionaliteit en prestaties in de loop van de tijd. Een sterke, levendige community zal waarschijnlijk ook hulpmiddelen produceren die het gemakkelijker maken om het pakket te gebruiken en je leven zo een stuk gemakkelijker maken. Controleer het aantal bijdragers om vertrouwen te krijgen in de gezondheid van het project.

Door in deze mate van zorgvuldigheid open source-pakketten de selecteren, wordt het veel gemakkelijker om er tijdens het coderen op te vertrouwen dat de basiselementen van een applicatie veilige ondersteuning zullen bieden. De gemoedsrust die dit oplevert - om nog maar te zwijgen van het daaruit voortvloeiende gebrek aan security-incidenten - maakt die inspanning zeker de moeite waard.

Redactie WINMAG Pro
Door: Redactie WINMAG Pro
Redactie

Redactie WINMAG Pro

Redactie