- GitHub a lansat npm 12 care dezactivează implicit scripturile de instalare, reducând riscul atacurilor supply chain.
GitHub a anunțat lansarea npm versiunea 12, o actualizare majoră care aduce modificări semnificative în modul în care sunt gestionate scripturile de instalare. Începând cu această versiune, scripturile de instalare sunt dezactivate implicit, o măsură menită să reducă riscurile de securitate în lanțul de aprovizionare software. Decizia vine pe fondul creșterii atacurilor care exploatează scripturile de instalare pentru a injecta cod malițios în proiecte populare.
De ce a fost necesară această schimbare?
În ecosistemul npm, pachetele pot defini scripturi care se execută automat la instalare, cum ar fi preinstall, install și postinstall. Deși utile pentru configurare, acestea au fost folosite frecvent de atacatori pentru a livra malware direct în mediile de dezvoltare. Atacuri precum dependency confusion sau typosquatting au profitat de această caracteristică pentru a compromite proiecte prin pachete aparent legitime. Prin dezactivarea implicită a acestor scripturi, npm 12 elimină o suprafață de atac semnificativă, forțând dezvoltatorii să activeze explicit scripturile doar acolo unde este necesar.
Cum funcționează noul comportament?
În npm 12, opțiunea allowScripts este setată pe false din oficiu. Pentru a permite executarea scripturilor de instalare, dezvoltatorii trebuie să adauge configurația corespunzătoare în fișierul .npmrc al proiectului sau să utilizeze flag-ul --scripts-prepend-node-path la instalare. Aceasta înseamnă că pachetele care depind de scripturi pentru funcționare vor necesita o configurare manuală suplimentară. Totodată, GitHub a anunțat deprecarea accesului granular tokens (GATs), care permiteau ocolirea autentificării cu doi factori. Înlocuitorii acestora, fine-grained personal access tokens, oferă un control mai strict și obligă la utilizarea 2FA, întărind securitatea conturilor.
Impactul asupra dezvoltatorilor
Pentru dezvoltatorii care folosesc pachete cu scripturi de instalare, migrarea la npm 12 poate necesita ajustări ale fluxurilor de lucru. Proiectele care se bazează pe scripturi pentru compilare sau post-procesare vor trebui să activeze explicit aceste comportamente. În plus, deprecarea GAT-urilor va afecta echipele care gestionau accesul la pachete prin token-uri personalizate. Cu toate acestea, schimbarea aduce un nivel mai ridicat de securitate, reducând riscul ca un pachet compromis să execute cod malițios automat.
Ce înseamnă pentru tine
- Actualizează npm la versiunea 12 – pentru a beneficia de protecția implicită împotriva scripturilor necontrolate. Verifică dacă proiectele tale au nevoie de scripturi explicite și configurează-le corespunzător.
- Revizuiește permisiunile token-urilor – dacă foloseai GAT-uri, migrează la noile personal access tokens fine-grained și activează 2FA pentru conturile tale GitHub.
- Adoptă bune practici – analizează mereu pachetele pe care le instalezi, verifică sursa și autorul, și limitează utilizarea scripturilor de instalare doar la pachetele de încredere.