Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
| racfor_wiki:javascript:potencijalne_prijetnje_ranjivosti_u_javascript_ekosustavu [2023/01/12 20:48] tl51986 [Razumijevanje i zaštita od zlonamjernih npm paketa s "lifecycle" skriptama] | 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 " | |
| - | Ključne riječi: SSL; TSL; komunikacija; | ||
| ===== 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, | ||
| - | ===== Poglavlje 1 ===== | ||
| + | ===== " | ||
| + | " | ||
| + | Primjer: | ||
| + | < | ||
| + | // package.json file | ||
| + | "name: " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | Kada bi korisnik odlučio instalirati | ||
| + | Isto ponašanje sa postinstalacijskom skriptom može se izvesti i s " | ||
| + | === Kako se obraniti === | ||
| - | ===== eslint-scope paketni napad ===== | + | Ne postoji jednostavan način obrane od opisanog napada jer " | 
| + | Preporučeni pristupi za sprječavanje problema: | ||
| + |  | ||
| + | - Dobro proučiti ovisnosti (dependencies) i koristiti " | ||
| + | - Isključiti pokretanje skripti prilikom instalacije. | ||
| + | < | ||
| + | ili | ||
| + | yarn add --ignore-scripts | ||
| + | </ | ||
| + | === Zaključak === | ||
| + | " | ||
| - | ===== Poglavlje 3 ===== | ||
| Redak 32: | Redak 53: | ||
| + | =====Vulnerabilnost Dependency Confusion===== | ||
| - | ===== Zaključak ===== | + | Vulnerabilnost Dependency Confusion je vrsta sigurnosnog propusta koja se pojavljuje kada se koriste vanjske biblioteke (eng. dependency) u softverskom projektu. | 
| + | ==Primjer== | ||
| + | U istraživanju napadač je na https:// | ||
| + | ==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/ | ||
| + | * Rezerviranje javnih paketa (npr ako interno koristimo paypal-auth, | ||
| + | * Konfiguriranje alata da eksplicitno mapiranje paketa na registar | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Općenita zaštita od potencijalnih ranjivosti ===== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | Što možemo učiniti kako bi pronašli potencijalne ranjivosti u projektu? | ||
| + | |||
| + | - < | ||
| + | - **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 ===== | ||
| + | |||
| + | 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://dl.acm.org/doi/pdf/10.1145/1161366.1161375| Wang W., Farid H.: Exposing Digital Forgeries | + | [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://incolumitas.com/ | ||
| + | |||
| + | [3] [[https:// | ||
| - | [2] [[http://clem.dii.unisi.it/~vipp/ | + | [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:// | ||