2min

Een beveiligingsonderzoeker heeft een probleem gevonden in de manier waarop veel programmeertalen omgaan met dependency’s. Door nieuwe publieke packages te maken met dezelfde namen als die door bedrijven intern gebruikt werden, wist hij code aan de software van de bedrijven toe te voegen.

Onderzoeker Alex Birsan schrijft in zijn blog dat hij zich verwonderde over hoeveel vertrouwen programmeurs hebben in de dependency’s die hun software gebruiken. Hij vroeg zich af of er een manier was om daar misbruik van te maken en wist er een te ontwikkelen.

Dependency’s bleken vervangbaar

Veel bedrijven maken een deel van hun software open source beschikbaar, waardoor het gemakkelijk is om te lezen welke dependency’s er gebruikt worden. Vooral bij javascript bleek dit eenvoudig. Ook bij een deel van de software die niet open source is, is het mogelijk om de dependency’s in te zien. Een deel van deze dependency’s bestaat uit publieke packages en een ander deel is door het bedrijf intern ontwikkeld.

Birsan kwam erachter dat programmeertalen over het algemeen eerst naar de publieke repository’s kijken, voordat ze zoeken naar interne packages. Door simpelweg een eigen package te publiceren met dezelfde naam als een package die intern door een bedrijf werd gebruikt, wist hij eigen code toe te voegen aan de software van bedrijven.

Bug bounty’s

Die code kon vervolgens gebruikt worden om bijvoorbeeld een backdoor toe te voegen aan de interne netwerken van bedrijven en vanaf daar gevoelige gegevens te stelen of anderzijds schade aan te richten. Birsan heeft zijn theorie op een groot aantal bedrijven en programma’s uitgetest, waarmee hij onder andere toegang kreeg tot interne netwerken van Apple, Microsoft, Netflix, PayPal, Tesla en meer dan dertig andere bedrijven. Verschillende bedrijven hebben inmiddels de problemen opgelost en tienduizenden dollars aan bugbountybeloningen uitbetaald.

Tip: Update patcht actief uitgebuite zero-day in Windows