Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:javascript:potencijalne_prijetnje_ranjivosti_u_javascript_ekosustavu [2023/01/13 09:27]
tl51986 ["Malicious lifecycle script" napad]
racfor_wiki:javascript:potencijalne_prijetnje_ranjivosti_u_javascript_ekosustavu [2024/12/05 12:24] (trenutno)
Redak 2: Redak 2:
 ===== Sažetak ===== ===== Sažetak =====
  
- +U Javascript-u postoji veliki broj potencijalnih napada, u seminaru je obrađena potencijalna prijetnja od "malicious lifecycle script" napada i vulnerabilnosti Dependency Confusion. Kako bih se obranili od navedenih napada potrebno je koristiti poznate pakete s provjerenim komentarima korisnika, dobro proučiti ovisnosti i koristiti "lockfile" te isključiti pokretanje skripti prilikom instalacije.
  
-Ključne riječi: SSL; TSL; komunikacija; sigurnost; napad 
  
  
 ===== Uvod ===== ===== Uvod =====
 +
 +JavaScripta je jedan od najčešće korištenih i popularnih programskih jezika u svijetu, također se stalno mijenja i razvija. S popularnošću JavaScripta, dolazi povećani rizik od potencijalnih sigurnosnih prijetnji i ranjivosti. Postoje rizici povezani s upotrebom vanjskih paketa i knjižnica, jer one mogu sadržavati ranjivosti koje mogu biti iskorištene od strane napadača. U nastavku ćemo napisati kako dolazi do najčešćih napada kroz vanjske pakete te kako ih spriječiti.
  
  
Redak 52: Redak 53:
  
  
-=====Poglavlje 2=====+=====Vulnerabilnost Dependency Confusion=====
  
 +Vulnerabilnost Dependency Confusion je vrsta sigurnosnog propusta koja se pojavljuje kada se koriste vanjske biblioteke (eng. dependency) u softverskom projektu.  To se događa kada se unutar projekta koristi isto ime vanjske biblioteke kao i unutarnje, pa se interna verzija biblioteke prevodi kao vanjska, što može dovesti do sigurnosnih propusta.  Prije nekoliko godina je demonstrirano kako Apple, Microsoft, PayPal, Shopify, te mnogi drugi nemaju zaštitu protiv ovog napada, odnosno radi nepažnje kod kreiranja internih paketa došlo je do sigurnosnih propusta.
  
 +==Primjer==
 +U istraživanju napadač je na https://npmjs.com objavio pakete istih imena kao interni PayPalovi paketi "paypal-auth" i pplogger, te na rubygems.org paket shopify-cloud. Kroz svega nekoliko sati njegovi paketi bili su instalirali što na automatiziranim deployment servisima (CI/CD) što na računalima developera tih firmi.
  
 +==Zaštita==
 +Opisani problem imaju praktički svi manageri paketa, pip (python), npm (js), gem (ruby) i ostali. Zaštita je u većini slučajeva jednostavna te se može izvesti na jedan od sljedećih načina:
 +  * Korištenje jedinstvenih imena npr. @shopify/shopify-cloud u privatnom registru paketa ( package registry)
 +  * Rezerviranje javnih paketa (npr ako interno koristimo paypal-auth, napravimo prazan paket na npm-u javno paypal-auth, kako netko ne bi mogao kreirati zlonamjerni paket istog imena)
 +  * Konfiguriranje alata da eksplicitno mapiranje paketa na registar
  
  
Redak 63: Redak 72:
 ===== Općenita zaštita od potencijalnih ranjivosti ===== ===== 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. +GitHub pruža mogućnost dojave potencijalne ranjivosti pomoću GitHub alert bot-a. Ranjivost nam dojavljuje da jedan od ovisnosti u našem package.json fileu ima sigurnosne implikacije koje napadač može iskoristiti i može uzrokovati probleme našem računalu, projektu, korisnicima projekta ili tvrtki za koju radimo.
- +
-Sto mozemo uciniti kako bi pronasli potencijalne ranjivosti u projektu? +
- +
-  - <code> npm audit </code> "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.  +
-  - 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. +
  
 +Što možemo učiniti kako bi pronašli potencijalne ranjivosti u projektu?
  
 +  - <code> npm audit </code> "**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. 
 +  - **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. Sljedeć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 ===== ===== Zaključak =====
  
 +JavaScript ekosustav se stalno mijenja, stoga je važno da programeri budu informirani o najnovijim sigurnosnim prijetnjama i ranjivostima te da poduzimaju odgovarajuće mjere za zaštitu svojih projekata i korisnika.
 ===== Literatura ===== ===== Literatura =====
  
 [1] [[https://medium.com/@kyle_martin/understanding-and-protecting-against-malicious-npm-package-lifecycle-scripts-8b6129619d7c| Kyle Martin: EUnderstanding and protecting against malicious npm package lifecycle scripts]] [1] [[https://medium.com/@kyle_martin/understanding-and-protecting-against-malicious-npm-package-lifecycle-scripts-8b6129619d7c| Kyle Martin: EUnderstanding and protecting against malicious npm package lifecycle scripts]]
  
-[2] [[https://medium.com/@kyle_martin/understanding-and-protecting-against-malicious-npm-package-lifecycle-scripts-8b6129619d7cKyle MartinEUnderstanding and protecting against malicious npm package lifecycle scripts]]+[2] [[https://incolumitas.com/2016/06/08/typosquatting-package-managers/| Nikolai Tschacher: Typosquatting programming language package managers]] 
 + 
 +[3] [[https://itnext.io/fixing-security-vulnerabilities-in-npm-dependencies-in-less-than-3-mins-a53af735261dVivek NayyarFixing security vulnerabilities in npm dependencies ]] 
 + 
 +[4] [[https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610| Alex Birsan: Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies]]
  
-[3] [[https://www.forensicfocus.com/articles/forensics-bitcoin/]] 
  
  
racfor_wiki/javascript/potencijalne_prijetnje_ranjivosti_u_javascript_ekosustavu.1673602031.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