Com un hook preinstall va executar malware silenciós a npm install

Descobreix com un hook preinstall a npm va instal·lar un infostealer en Rust sense intervenció humana. Protegeix els teus pipelines d'IA.

miércoles, 29 de julio de 2026 • 4 min de lectura • Equip Q2BSTUDIO

Ataque a la cadena de suministro npm: el caso jscrambler

L'ecosistema de desenvolupament modern s'ha construït sobre la confiança en les dependències. Una simple ordre com npm install descarrega centenars de paquets, cadascun amb permisos per executar codi a la teva màquina. El juliol de 2026, aquesta confiança es va trencar de forma silenciosa: un hook preinstall en un paquet legítim —jscrambler— va executar malware sense que el desenvolupador fes clic ni acceptés res. L'atac no va requerir error humà; només va fer falta que algú, o un agent d'IA, llancés una instal·lació. Aquí analitzem el mecanisme, per què és especialment perillós en entorns automatitzats i com protegir els teus pipelines sense trencar les funcionalitats natives que necessites.

El hook preinstall està definit al package.json d'un paquet. Quan npm executa la instal·lació, corre aquest script abans que el paquet es copiï al disc. És una característica legítima: alguns mòduls natius necessiten compilar bindings o verificar requisits del sistema. Però el contracte és brutal quan se n'abusa: el codi arbitrari s'executa amb els permisos de l'usuari, sense que aquest hagi vist un sol fitxer. En el cas de jscrambler, els atacants van publicar cinc versions malicioses en tres hores, cadascuna amb un hook que carregava un binari compilat en Rust. Aquest binari extreia credencials de navegadors, wallets de criptomonedes i voltes de Bitwarden, establia persistència mitjançant tasques programades o LaunchAgents, i exfiltrava les dades a través de Tor. Tot això passava mentre el terminal mostrava el progrés de descàrrega de dependències, sense cap error visible.

El que fa que aquest atac sigui especialment rellevant avui és la proliferació d'agents d'IA que executen pipelines de desenvolupament de forma autònoma. Quan un agent llança npm install com a pas intermedi d'una tasca, ningú està mirant la sortida. L'agent delega i confia. La màquina on corre l'agent sol tenir perfils de navegador amb sessions actives, perquè el propi agent fa servir Chromium a través de playwright-core per interactuar amb panells i serveis. El payload de jscrambler estava dissenyat exactament per robar aquestes bases de dades SQLite i LevelDB on s'emmagatzemen les galetes i les claus. L'automatització, que hauria de ser un avantatge, es converteix en el vector perfecte quan la supervisió humana desapareix.

No es tracta de demonitzar els agents d'IA. Es tracta de reconèixer que l'assumpció clàssica —'un humà notarà alguna cosa rara als logs'— és falsa als pipelines moderns. La solució no passa per desactivar globalment els scripts d'instal·lació amb --ignore-scripts, perquè això trenca paquets essencials com sqlite3, playwright o qualsevol embolcall de biblioteques natives. La resposta real és més quirúrgica: auditar quins paquets al teu arbre de dependències declaren hooks legítims, i permetre scripts només per a aquests. És més configuració, però converteix un permís global en una llista blanca explícita. A més, eines com Socket o StepSecurity poden detectar anomalies en minuts, com va passar en aquest atac: Socket ho va marcar sis minuts després de la publicació.

A Q2BSTUDIO entenem que la seguretat del programari no és un afegit, sinó una propietat del disseny. Per això els nostres serveis de desenvolupament d'aplicacions a mida inclouen anàlisi de la cadena de subministrament, integració d'escàners de dependències i configuracions de CI/CD que no depenen de la supervisió manual. A més, la nostra pràctica de ciberseguretat abasta des d'auditories de paquets fins a hardening d'entorns cloud AWS/Azure, on s'executen molts d'aquests pipelines. Perquè un atac com el de jscrambler no només amenaça el desenvolupador individual; compromet tota la infraestructura si l'agent que instal·la el paquet té accés a claus d'API, repositoris o bases de dades.

L'incident de jscrambler ens deixa una lliçó clara: la confiança cega en les dependències té un cost, i aquest cost es multiplica quan deleguem la instal·lació a agents d'IA. La solució tècnica existeix —lockfiles verificats, npm ci, escàners, llistes blanques de scripts— però requereix acció. No esperis que un wallet buit t'avisi. Revisa ara quins hooks s'executen als teus projectes i decideix, un per un, si realment hi confies.

A Q2BSTUDIO també combinem aquesta experiència amb intel·ligència artificial per automatitzar processos complets, des de la generació d'informes de Power BI fins al aprovisionament d'infraestructura cloud. Els nostres agents d'IA estan dissenyats per operar dins de perímetres de confiança definits, amb controls que impedeixen que un hook maliciós comprometi l'entorn. Si vols saber com aplicar aquestes pràctiques a la teva organització, contacta'ns. La seguretat no és una destinació, és una decisió que es pren cada vegada que executes npm install.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.