Voor de tweede keer in de afgelopen weken zijn projecten van Microsoft gecompromitteerd. 73 gesigneerde open source pakketten van Microsoft besmet. De code die je inloggegevens steelt, ging al af op het moment dat een ontwikkelaar het pakket opende in zijn editor of agent. In mei was het al Microsofts durabletask-pakket op PyPI, goed voor 400.000 downloads per maand.
Het venijn zit niet in een lek. De onderzoekers van Cloudsmith zeggen het scherp: er werd geen kwetsbaarheid in GitHub of npm misbruikt, maar het vertrouwensmodel zelf. Met gestolen maintainer-credentials werd een kwaadaardige versie gepubliceerd met een geldige handtekening en geldige herkomst. Voor elke scanner zag het eruit als een routine-update van een vertrouwde bron. Alles stond op groen.
Dat is het verontrustende deel. “Het is veilig, want het is gesigneerd en het komt van Microsoft” was niet genoeg. De handtekening klopte. De bron klopte. En het was alsnog malware die via je cloud-identiteiten verder kruipt naar AWS, Azure en GCP.
Het past in een bredere golf. De afgelopen maanden zijn honderden pakketten op npm en PyPI gekaapt, van TanStack tot die van Mistral AI, vaak met wormen die zichzelf verder verspreiden.
En hier raakt het de manier waarop we nu bouwen. We zijn overgestapt op een werkwijze waarin AI-agents code uit je dependencies openen en uitvoeren, in hoog tempo, vaak zonder dat een mens elke regel nog ziet. Aanvallers bouwen hun malware nu precies voor dat moment. AI-ondersteund ontwikkelen maakt bouwen sneller en goedkoper, en dat is echt zo. Maar het maakt de keten onder je software ook langer en sneller, terwijl het vertrouwensmodel eronder hetzelfde bleef.
Dit is dezelfde vraag die ik bij ICT-landschappen stel, maar een laag dieper. Elke dependency is code van een vreemde die met jouw rechten draait, en wordt nu automatisch geopend door je agent. Eén project heeft er al snel honderden. Elke keuze om iets binnen te halen was op zichzelf logisch. Het geheel is een keten die niemand meer overziet, zelfs Microsoft niet.
De winst zit niet in nog een scanner erbovenop, want die stond op groen. Die zit in minder afhankelijk zijn. Bouw op een fundament dat je kent. Houd de laag die je zelf bezit dun, zodat je weet wat erin zit. En weet wat je opent.
Wat draait er eigenlijk mee als jij een pakket binnenhaalt? En weet je het zeker?