En l'ecosistema de desenvolupament modern, cada vegada que un equip executa npm install està acceptant un risc que va més enllà de la simple descàrrega d'arxius. La instal·lació de paquets npm pot desencadenar l'execució automàtica de codi arbitrari amb els permisos de l'usuari, abans fins i tot que s'hagi revisat una sola línia del codi recent obtingut. Aquest mecanisme, lluny de ser teòric, ha estat explotat de forma sistemàtica en atacs a la cadena de subministrament, com els ocorreguts a partir de setembre de 2025 amb el cuc Shai-Hulud i la campanya de juny de 2026 que va comprometre 32 paquets sota l'espai de noms @redhat-cloud-services mitjançant un compte de GitHub compromesa. La indústria del programari s'enfronta a un desafiament de ciberseguretat que exigeix repensar la confiança dipositada en les dependències de tercers.
Els ganxos d'instal·lació (lifecycle hooks) definits al camp scripts del package.json —preinstall, install i postinstall— tenen usos legítims: compilar bindings nadius en C++ per a llibreries com bcrypt o sharp, o descarregar binaris de navegadors en eines com Puppeteer. No obstant això, ningú executa aquests scripts per a cada paquet en l'arbre de dependències, tant directes com transitives, de forma predeterminada. Tot i que només al voltant del 2.2% dels paquets del registre defineixen scripts d'instal·lació, n'hi ha prou que un de sol estigui compromès en un arbre de cents per comprometre tot el sistema. Aquesta asimetria converteix la gestió de dependències en un punt crític per a qualsevol projecte que desenvolupi aplicacions a mida.
Un atac típic segueix un patró que s'ha tornat habitual: l'atacant registra paquets npm sota espais de noms similars als de l'organització víctima, infla el número de versió perquè el resolutor de dependències ho prefereixi sobre el paquet intern legítim, i defineix un script postinstall ofuscat que es comunica amb un servidor de control i descarrega una càrrega útil. L'ofuscació pot fer que un droguer de 17 KB passi desapercebut en una revisió casual. A més, els atacants han començat a col·locar scripts maliciosos dins de package.json inclosos en paquets d'altres ecosistemes, com PHP/Composer, perquè els revisors de seguretat de PHP no solen inspeccionar les eines JavaScript. La falta de coincidència entre el tarball publicat en npm i el repositori públic de GitHub dificulta encara més la detecció: els atacants poden publicar un tarball maliciós mentre mantenen el repositori net, i gairebé ningú compara tots dos.
Les eines tradicionals com npm audit o Dependabot són reactives: depenen que ja existeixi un CVE. Un paquet maliciós recent publicat, amb un script postinstall ofuscat, les travessa sense problemes. L'única defensa real és canviar la mentalitat: npm install no és una descàrrega, és una execució potencial de codi. Cada dependència que s' afegeix és codi que s' accepta executar, no només importar. En aquest context, comptar amb una estratègia sòlida de ciberseguretat i pentesting es torna indispensable per a empreses que desenvolupen programari de forma contínua.
Com es poden protegir els equips de desenvolupament? L'opció més dràstica és usar la bandera --ignore-scripts durant la instal·lació, però això trenca paquets legítims que necessiten els scripts per funcionar correctament. Una alternativa és executar les instal·lacions en entorns aïllats, com contenidors sense permisos de xarxa, o revisar manualment els scripts de cada nova dependència abans d'integrar-la. Les auditories automatitzades, combinades amb eines d'anàlisi estàtica i firmes digitals, poden ajudar, però requereixen integració en el pipeline de CI/CD. A més, la intel·ligència artificial està començant a utilitzar-se per detectar patrons anòmals en scripts d'instal·lació, com ofuscació inusual o connexions a dominis desconeguts. Empreses com Q2BSTUDIO ofereixen ia per a empreses que permeten implementar agents IA capaços de monitoritzar el comportament de les dependències en temps real. Així mateix, els serveis cloud AWS i Azure proporcionen entorns controlats on és possible aïllar la instal·lació de paquets i aplicar polítiques de seguretat granulars.
Per a les organitzacions que gestionen múltiples repositoris o monoreps, el risc s' amplifica: un sol paquet maliciós en un projecte compartit pot comprometre tot l' entorn de desenvolupament i fins i tot els entorns de producció. Les bones pràctiques inclouen mantenir un registre intern de dependències aprovades, usar proxies de paquets privats (com Verdaccio o Artifactory) que permetin analitzar cada tarball abans de distribuir-lo, i segregar els entorns de compilació. L'observabilitat és un altre pilar: integrar serveis intel·ligència de negoci com Power BI permet visualitzar mètriques de dependències, identificar pics d'activitat inusual i generar alertes primerenques.
En definitiva, la seguretat en la cadena de subministrament de npm no és un problema que es resolgui amb una sola eina. Requereix un enfocament holístic que combini processos, tecnologia i formació de l' equip. En Q2BSTUDIO entenem que cada projecte té necessitats úniques, per això oferim solucions de programari a mesura que integren seguretat des del disseny, agents IA per automatitzar la detecció d'amenaces i automatització de processos per reduir la intervenció manual en la gestió de dependències. La ciberseguretat no és un afegit, és part fonamental del desenvolupament modern, i som aquí per ajudar les empreses a navegar aquest complex panorama.

.jpg)

.jpg)