Het gebruiken van externe packages in je applicaties om het leven makkelijker te maken is iets wat we allemaal doen, maar waar we vaak de gevaren niet goed van voor ogen hebben. Het grote voordeel van open source code uit de community zou moeten zijn dat we op het werk van anderen kunnen leunen én erop kunnen vertrouwen dat andere mensen de code op veiligheid controleren. Zoals deze week in het volgende artikel weer eens werd bewezen, is dit helaas een utopisch waanbeeld:
In dit geval betreft het NPM-packages die gebruikt worden voor het maken van Discord bots. (Discord is een populair communicatie platform wat tegenwoordig ook vaak door bedrijven wordt gebruikt. Het is gebruikelijk om binnen het platform “bots” te gebruiken die onder andere geautomatiseerde berichten kunnen versturen). Deze worden in groten getale geschreven door de community in talen als Python en JavaScript (Node.JS). Hierbij wordt, net zoals in bijna alle applicaties tegenwoordig, gebruik gemaakt van externe packages.
Omdat het zo makkelijk is om een package te zoeken die de functionaliteit biedt die je zelf niet kan of wil schrijven, stoppen we veel te veel vertrouwen in onze engelen uit de community. Alhoewel er ontelbare goed te gebruiken packages te vinden zijn die geen verder gevaar vormen, is de toenemende hoeveelheid kwaadaardige code zeker iets om maatregelen tegen te nemen.
En dat is het ook! Daarom is dit iets wat geautomatiseerd moet worden. Wanneer je gebruik maakt van een CI-capable code repository, is het ongelooflijk makkelijk om dit in te stellen. Neem als voorbeeld GitLab. Binnen het platform is het mogelijk om ‘Dependency Scanning‘ in te schakelen. Je krijgt dan automatisch een rapport over de veiligheidsstatus van alle packages gebruikt in je applicatie. Het is dan nog maar een kleine moeite om uit te zoeken welke package versie niet kwetsbaar is (of welk alternatief er gebruikt kan worden). Zo maak je van een verborgen killer, een beheerst risico.
Geïnteresseerd in hulp bij het realiseren van een veiligere applicatie? Kijk op: salt-security.com/appsec-engineering
P. de Medinalaan 73, 1086XP, Amsterdam
+31 (0)20-3030580
ma - fri 8:30-17:00