Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Ovo je stara izmjena dokumenta!


Potencijalne prijetnje/ranjivosti u Javascript ekosustavu

Sažetak

Ključne riječi: SSL; TSL; komunikacija; sigurnost; napad

Uvod

"Malicious lifecycle script" napad

“Malicious lifecycle script” napad se događa kada kontrolu nad paketom preuzme zlonamjerni akter koji je postavio maliciozni kod unutar postinstalacijske skripte (postinstall lifecycle script). Prijetnja se očituje u tome što je potencijalna maliciozna skripta poslala podatke za prijavu u npm registar na udaljenu adresu. Najveći problem je što nije lagano otkriti postojanje zlonamjerne skripte jer su često skrivene od korisnika. Postinstalacijske skripte se izvode u pozadini nakon instalacije kako bi osigurale spremnost korištenja paketa.

Primjer:

// package.json file

"name: "example-package",
"scripts": {
  "postinstall": "node malicious.js"
}

Kada bi korisnik odlučio instalirati npm example-package imao bi izvršenu gornju postinstalacijsku skriptu u kojoj bi se moglo nalaziti bilo što što zlonamjerni korisnik želi učiniti korisniku. Isto ponašanje sa postinstalacijskom skriptom može se izvesti i s “preinstall” , “postinstall” , “preuninstall” i “postuninstall” skriptama.

Kako se obraniti

Ne postoji jednostavan način obrane od opisanog napada jer “lifecycle hooks” imaju važnu ulogu u instaliranju paketa jer obavljaju čišćenje i pripremu paketa za korištenje te njihovo obustavljanje može stvoriti probleme kod pokretanja paketa. Preporučeni pristupi za sprječavanje problema:

  1. Koristiti poznate pakete te provjeriti komentare korisnika
  2. Dobro proučiti ovisnosti (dependencies) i koristiti “lockfile” kako bi se spriječilo automatsko instaliranje novih paketa
  3. Isključiti pokretanje skripti prilikom instalacije.
npm install --ignore-scripts

ili

yarn add --ignore-scripts

Zaključak

“Malicious lifecycle script” napad nije greška npm-a jer lifecycle skripte imaju vrlo korisne značajke za upravljanje paketima. Problem je puno širi od samog npm-a jer postoji puno malih modula koji se dijele kako bi se Node.js aplikacije lakše koristile te dovodi tako i do većeg broja prijetnji. Važno je da zajednica korisnika npm-a, poduzme mjere opreza za sprječavanje napada. Jedan od prvih koraka bi trebao biti 2FA za sve npm račune koji sadrže pristup objavljivanja tj pisanja paketa. Na takav bi način umanjili mogući broj zlonamjernih korisnika. Npm poduzima mjere opreza, koje se očituju u smanjenom “typosquatting” te nudi besplatne sigurnosne alate od kojih je najpoznatiji: npm audit.

Poglavlje 2

Općenita zaštita od potencijalnih ranjivosti

Github pruza mogucnost dojave potencijalne ranjivosti pomocu github bot-a. Ranjivost nam dojavljuje da jedan od ovisnosti u nasem package.json fileu ima sigurnosne implikacije koje napadac moze iskoristiti i moze uzrokovati probleme nasem racunalu, projektu, korisnicima projekta ili tvrtki za koju radimo.

Sto mozemo uciniti kako bi pronasli potencijalne ranjivosti u projektu?

  1.  npm audit 

    “npm audit” je naredba u npm-u koja provjerava postoje li ranjivosti u instaliranim paketima u projektu. Skenira zavisnosti projekta i provjerava postoje li poznate ranjivosti povezane s njima. Ako se pronađu, pružit će se informacije o ranjivosti, uključujući opis problema, razinu ozbiljnosti i preporuku za rješavanje problema.

  2. Github security policy - GitHub sigurnosna politika je skup smjernica i postupaka koji su dizajnirani kako bi se pomoglo zaštiti sigurnost projekta koji se nalazi na GitHubu. Politika navodi vrste aktivnosti koje su zabranjene na platformi, kao što su hakiranje, phishing i druge oblike zlonamjernih aktivnosti. Također daje smjernice za prijavu sigurnosnih problema i ranjivosti, kao i informacije o tome kako GitHub reagira na sigurnosne incidente. Slijedeći sigurnosnu politiku, programeri mogu pomoći osigurati da su njihovi projekti sigurni i da se potencijalni sigurnosni rizici prepoznaju i rješavaju na vrijeme.

Zaključak

Literatura

racfor_wiki/javascript/potencijalne_prijetnje_ranjivosti_u_javascript_ekosustavu.1673602093.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0