Third-party dependencies: onmisbaar maar niet zonder risico's

Cryptominers die ongemerkt op je servers draaien. Een plotselinge verplichting om bedrijfskritische broncode openbaar te maken. Of, erger nog: een backdoor die hackers toegang geeft tot al je systemen.

Dit zijn geen hypothetische scenario’s, maar reële risico’s die ontstaan door het gebruik van third-party dependencies. “Als softwareontwikkelaar kun je eigenlijk nauwelijks meer om deze externe componenten heen”, aldus IT-architect Michaël Hompus. “Ze bieden direct bruikbare oplossingen en voorkomen dat je als ontwikkelaar steeds opnieuw het wiel moet uitvinden.

Deze componenten zijn vaak via gespecialiseerde platforms beschikbaar, zoals NuGet voor het Microsoft .NET ecosysteem, of Maven voor Java. Michaël: “Sommige componenten worden gebruikt door duizenden ontwikkelaars wereldwijd. En dat zegt wel iets over de betrouwbaarheid en kwaliteit. Maar dat betekent nog niet dat er geen risico’s aan verbonden zijn.”

Deze vallen grofweg uiteen in twee categorieën: juridische risico’s en beveiligingsrisico’s.

Juridische risico’s

De juridische risico’s van third-party componenten worden volgens Michaël nogal eens onderschat: “Met name licenties van externe componenten kunnen verstrekkende gevolgen hebben. Een voorbeeld is de GPLv3-licentie: gebruik van een component onder deze licentie kan betekenen dat je verplicht wordt om broncode openbaar te maken. Dit kan desastreus zijn voor organisaties die hun intellectueel eigendom willen beschermen.”

Wat de situatie extra complex maakt, is dat licenties kunnen veranderen. Michaël: “Een component dat vandaag onder een commercieel vriendelijke Apache 2- of MIT-licentie valt, kan morgen overstappen naar een restrictievere GPL-licentie. Als je dit niet actief monitort, dan kun je dus onbewust in juridische problemen komen.”

Beveiligingsrisico's

Nog zorgwekkender zijn de beveiligingsrisico’s. Third-party dependencies zijn een geliefd doelwit voor cybercriminelen, die verschillende aanvalstechnieken hanteren.

Michaël: “Er zijn gevallen bekend waarbij kwaadwillenden het beheer van populaire componenten overnemen. Ze bouwen er vervolgens schadelijke code in, zoals cryptominers die ongemerkt servercapaciteit misbruiken voor het delven van cryptocurrencies. Ernstiger zijn de pogingen om backdoors in te bouwen. Recent werd een geavanceerde aanval ontdekt waarbij infiltranten maandenlang werkten aan het injecteren van een backdoor in een component die in vrijwel elk Linux-systeem ter wereld wordt gebruikt. Als deze aanval niet tijdig was ontdekt, hadden de aanvallers toegang kunnen krijgen tot heel veel servers overal ter wereld.”

Bescherm je organisatie tegen kwetsbaarheden

“Het is niet de vraag óf, maar wanneer je als organisatie te maken krijgt met aanvallen op je supply chain door middel van third-party dependencies”, waarschuwt Michaël. Hij adviseert een proactieve aanpak.

“Begin met het opbouwen van kennis binnen uw ontwikkelteams. Zorg dat zij de risico’s begrijpen en train hen in het herkennen van potentiële dreigingen. De menselijke factor blijft cruciaal in het beveiligingsproces.”

Een volgende stap is het opstellen van duidelijk beleid: “Leg vast welke licenties acceptabel zijn voor je organisatie. Grotere organisaties hebben vaak al een juridische afdeling die een lijst bijhoudt van toegestane en verboden licenties. Overweeg ook om voor kritieke componenten commerciële licenties af te nemen, wat vaak extra zekerheid en ondersteuning biedt.”

Automatisering kan vervolgens helpen om licenties en bijbehorende risico’s te monitoren, aldus Michaël: “Handmatige controles zijn arbeidsintensief en foutgevoelig. Investeer daarom in geautomatiseerde tools die zowel licenties als beveiligingsrisico’s monitoren. Deze tools kunnen proactief scannen op bekende kwetsbaarheden en waarschuwen bij licentiewijzigingen.”

Software Bill of Materials (SBOM) bieden een handig overzicht van componenten die worden gebruikt en op welke plekken. “Als er een kwetsbaarheid wordt ontdekt in een specifiek component, kun je snel zien welke applicaties geraakt worden en dus gericht actie ondernemen.”

Doordachte strategie en continue waakzaamheid

Third-party dependencies zijn niet meer weg te denken uit moderne softwareontwikkeling. Echter, de voordelen van hergebruik en versnelde ontwikkeling zijn te groot om te negeren. Michaël: “Het gebruik van externe componenten vereist een doordachte strategie en continue waakzaamheid. Door te investeren in kennis, processen en tooling kun je de vruchten plukken van third-party dependencies, zonder je organisatie bloot te stellen aan onnodige risico’s.”