Ovo je stara izmjena dokumenta!
Ključne riječi: SSL; TSL; komunikacija; sigurnost; napad
Eslint-scope napad se dogada kada kontrolu nad paketom preuzme zlonamjerni akter koji je postavio maliciozni kod unutar portinstalacijske skripte (postinstall lifecycle script). Prijetnja se ocituje u tome sto je potencijalna maliciozna skripta poslala podatke za prijavu u npm registar na udaljenu adresu. Najveci problem je sto nije lagano otkriti postojanje zlonamjerne skripte jer su cesto skrivene od korisnika. Postinstalacijske skripte se izvode u pozadini nakon instalacije kako bi osigurale spremnost koristenja paketa.
Primjer:
// package.json file "name: "example-package", "scripts": { "postinstall": "node malicious.js" }
Kada bi korisnik odlucio instalirati
npm example-package
imao bi izvrsenu gornju postinstalacijsku skriptu u kojoj bi se moglo nalaziti bilo sto sto zlonamjerni korisnik zeli uciniti korisniku. Isto ponasanje sa postinstalacijskom skriptom moze se izvesti i s “preinstall” , “postinstall” , “preuninstall” i “postuninstall”.
Ne postoji jednostavan nacin obrane od opisanog napada jer “lifecycle hooks” imaju vaznu ulogu u instaliranju paketa jer obavljaju ciscenje i pripremu paketa za koristenje te njihovo obustavljanje moze stvoriti probleme kod pokretanja paketa. Preporuceni pristupi za sprijecavanje problema 1.) Koristiti poznate pakete te provjeriti komentare korisnika 2.) Dobro prouciti ovisnosti (dependencies) i koristiti “lockfile” kako bi se sprijecilo automatsko instaliravanje novih paketa 3.) Iskljuciti pokretanje skripti prilikom instalacije.
npm install --ignore-scripts ili yarn add --ignore-scripts
Eslint-scope paketni napad nije greska npm-a jer lifecycle skripte imaju vrlo korisne znacajke za upravljanje paketima. Problem je puno siri od samog npm-a jer postoji puno malih modula koji se dijele kako bi se Node.js aplikacije lakse koristile te dovodi tako i do vecih prijetnji. Vazno je da zajednica korisnika npm-a, poduzme mjere opreza za sprijecavanje napada. Jedan od prvih koraka bi trebao biti 2FA za sve npm racune koji sadrze pristup objavljivanja tj pisanja paketa. Na takav bi nacin umanjili moguci broj zlonamjernih korisnika. Npm poduzima mjere opreza, koje se ocituju u smanjenom “typosquatting” te nudi besplatne sigurnosne alate od kojih je najpoznatiji: npm audit.