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:42] tl51986 [Razumijevanje i zaštita od zlonamjernih skripti unutar npm paketa] |
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 === | ||
- | ===== Razumijevanje | + | Ne postoji jednostavan način obrane od opisanog napada jer " |
+ | Preporučeni pristupi za sprječavanje problema: | ||
+ | - Koristiti poznate pakete te provjeriti komentare korisnika | ||
+ | - 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:// | ||