10 savjeta za osiguranje ovisnosti o trećim stranama
Zavisnosti trećih strana čine do 90% modernih baza kodova aplikacija, ali dolaze s ozbiljnim sigurnosnim rizicima. Preko 80% baza kodova uključuje ranjivosti, a do 2025. napadi na lanac opskrbe mogli bi prouzročiti štetu od $60 milijardi. Evo kako osigurati svoje ovisnosti i zaštititi svoj softver:
- Smanjite ovisnosti: Koristite samo potrebne biblioteke kako biste smanjili ranjivosti.
- Pažljivo birajte biblioteke: Procijenite sigurnosnu povijest, održavanje i ažuriranja.
- Održavajte ovisnosti ažuriranima: Redovito ažurirajte kako biste popravili poznate ranjivosti.
- Potražite ranjivosti: Koristite alate kao što su Snyk ili OWASP Dependency-Check.
- Koristite prikvačivanje verzije: Zaključajte određene verzije kako biste izbjegli neočekivane promjene.
- Izolirajte ovisnosti: Koristite spremnike ili mikroservise da ograničite štetu.
- Procijenite prije upotrebe: Provjerite ugled, održavanje i usklađenost.
- Pratite kontinuirano: Automatizirajte skeniranje i pratite ranjivosti tijekom vremena.
- Izvor od pouzdanih pružatelja usluga: Provjerite autentičnost i koristite privatne registre.
- Odaberite Sigurno hosting: Osigurajte da vaše hosting okruženje ima snažnu obranu.
Sprječavanje napada na lanac nabave softvera s najboljim primjerima upravljanja ovisnostima
1. Smanjite ovisnosti
Smanjenje ovisnosti o trećim stranama ključni je korak u zaštiti vašeg softvera. Svaka biblioteka koju dodate povećava rizik od ranjivosti, tako da njihovo svođenje na minimum pomaže smanjiti površinu napada vaše aplikacije.
Započnite revizijom svojih trenutnih knjižnica. Potražite one koji su nepotrebni, suvišni ili se rijetko koriste. Usredotočite se na ono što je doista potrebno za funkcionalnost vaše aplikacije i provjerite postoje li preklapanja s postojećim alatima.
Evo nekoliko praktičnih načina za upravljanje ovisnostima:
- Koristiti spremnici izolirati ovisnosti i ograničiti njihov pristup osjetljivim sustavima.
- Postavite redovite preglede kako biste utvrdili je li svaka biblioteka još uvijek potrebna.
- Iskoristite automatizirane alate za skeniranje vaše baze kodova i označavanje neiskorištenih ovisnosti.
Za veće aplikacije razmislite o usvajanju mikroservisa. Ovaj pristup pomaže izolirati ovisnosti, smanjujući potencijalni utjecaj kršenja. Kada odlučujete o novim bibliotekama, zapitajte se: Može li se ova funkcionalnost postići s onime što već imamo? Ili, može li mala količina prilagođenog koda bolje obaviti posao?
Konačno, implementirajte jasan postupak za dodavanje novih ovisnosti. Zahtijevati od programera da opravdaju svoje izbore i procijene uključene sigurnosne rizike.
Nakon što se vaš popis ovisnosti smanji, usredotočite se na pažljiv odabir biblioteka koje su usklađene s vašim sigurnosnim i funkcionalnim zahtjevima.
2. Pažljivo odaberite knjižnice
Odabir pravih biblioteka trećih strana uključuje više od puke provjere ispunjavaju li vaše potrebe funkcionalnosti. Također morate istražiti njihovu sigurnosnu povijest i koliko su dobro održavani. Ovaj je korak ključan za izgradnju jačeg i sigurnijeg lanca nabave softvera.
Kada pregledavate knjižnice, obratite pozornost na tri glavna čimbenika: popularnost, održavanje, i ovisnosti. Knjižnice s aktivnim zajednicama korisnika često su podvrgnute većem nadzoru, ali redovita ažuriranja i brza rješenja problema jednako su važna.
Evo što trebate tražiti u sigurnoj knjižnici:
- Česta ažuriranja i pravovremene sigurnosne zakrpe
- Aktivni održavatelji koji brzo rješavaju prijavljene probleme
- Detaljna sigurnosna dokumentacija i jasne metode za prijavu ranjivosti
- Visoka pokrivenost testa i jaku kvalitetu koda
Iako naširoko korištene biblioteke poput Antd ili Chakra UI imaju koristi od nadzora zajednice, ipak morate procijeniti njihove sigurnosne prakse i ovisnosti koje donose.
"Procjena sigurnosti knjižnice nije jednostavan zadatak. Čak i ako programer ili tvrtka koja stoji iza toga ima solidnu reputaciju, nema jamstva da knjižnica nema sigurnosnih nedostataka."
Alati kao što su NVD i Snyk mogu vam pomoći da identificirate poznate ranjivosti i potvrdite autentičnost izvornog koda. Također je važno procijeniti dodatne ovisnosti koje biblioteka uvodi kako biste izbjegli nepotrebne rizike od koda treće strane.
Nakon odabira sigurnih biblioteka, praćenje ažuriranja jednako je važno kako bi se osigurala njihova kontinuirana pouzdanost.
3. Održavajte ovisnosti ažuriranima
Održavanje ovisnosti ažuriranim jedan je od najboljih načina da zaštitite svoje aplikacije od poznatih ranjivosti. Snykovo izvješće State of Open Source Security otkriva to 84% sigurnosnih proboja događa se iskorištavanjem poznatih ranjivosti – problemi koji se često mogu izbjeći pravodobnim ažuriranjem.
Da biste ostali ispred, kombinirajte automatizacija s ručni nadzor. Alati poput Snyk, OWASP Provjera ovisnosti, npm revizija, i Dependabot može skenirati vaše ovisnosti, označiti sigurnosne probleme i čak se integrirati u vaš tijek rada kako bi se pojednostavila ažuriranja.
Evo praktičnog pristupa:
- Trčanje dnevna automatizirana skeniranja rano uhvatiti probleme.
- primijeniti manja ažuriranja tjedno kako bi izbjegli zaostajanje.
- Raspored mjesečni pregledi za velika ažuriranja kako bi se osigurala stabilnost.
Za kritične ovisnosti upotrijebite prikvačivanje verzije za zaključavanje određenih verzija dok i dalje obavljate redovita ažuriranja kako biste izbjegli iznenađenja. Aplikacije kritične za misiju zahtijevaju još veću pozornost: odmah zakrpite ranjivosti, testirajte manja ažuriranja tjedno i provedite regresijsko testiranje za velike promjene svakog mjeseca.
Ne zaboravite dokumentirati sve promjene u dnevniku promjena. Ovaj jednostavan korak olakšava rješavanje problema i sigurnosne revizije.
Automatizirani alati također mogu kreirati zahtjeve za povlačenjem za sigurnosna ažuriranja, pomažući vam da ostanete u tijeku s najnovijim zakrpama bez povećanja radnog opterećenja. Ova metoda ne samo da jača vašu sigurnost, već vam također pomaže u izbjegavanju tehničkog duga.
Ažuriranje ovisnosti samo je jedan dio slagalice – uparite ga s proaktivnim nadzorom i redovitim skeniranjem ranjivosti kako biste osigurali dugoročnu zaštitu.
4. Potražite ranjivosti
Skeniranje ranjivosti igra ključnu ulogu u osiguravanju ovisnosti trećih strana, pomažući u zaštiti lanca opskrbe softvera od poznatih prijetnji. Korištenjem modernih alata za skeniranje možete otkriti i riješiti sigurnosne probleme prije nego što eskaliraju.
Analiza sastava softvera (SCA) alati su posebno korisni. Oni analiziraju vašu bazu koda radi pronalaska ranjivosti, problematičnih licenci i zlonamjernog softvera, pokrivajući i izravne ovisnosti i one neizravno naslijeđene. Kako biste ojačali svoje sigurnosne napore, razmotrite ove prakse:
- Iskoristite više alata: Koristite kombinaciju alata kao što su Snyk, OWASP Dependency-Check i npm audit. Svaki alat ima svoje prednosti, a zajedno pružaju bolju pokrivenost u različitim programskim jezicima.
- Integrirajte skeniranje u svoj tijek rada:
- Dodajte IDE dodatke za otkrivanje problema tijekom razvoja.
- Upotrijebite pre-commit kuke za skeniranje koda prije nego što se preda.
- Uključite skeniranje u CI/CD cjevovode.
- Pokrenite provjere tijekom implementacije za dodatni sloj sigurnosti.
- Odgovorite na rezultate: Riješite ranjivosti na temelju njihove ozbiljnosti. Odmah riješite kritične probleme, dok one nižeg prioriteta planirate za buduća ažuriranja.
Kako biste poboljšali svoje skeniranje, konfigurirajte alate za referenciranje više baza podataka ranjivosti, kao što su:
- Nacionalna baza podataka o ranjivosti (NVD)
- Uobičajene ranjivosti i izloženosti (CVE)
- GitHub baza podataka o sigurnosnim savjetima
- Savjeti za pojedine jezike
Iako su alati za skeniranje ključni za prepoznavanje rizika, upravljanje i izoliranje ovisnosti učinkovito dodaje još jedan sloj zaštite.
5. Koristite prikvačivanje verzije
Kada radite s ovisnicima trećih strana, nije ih dovoljno samo odabrati i ažurirati – također morate kontrolirati kako i kada se promjene vrše. Prikvačivanje verzije pomaže zaključavanjem ovisnosti o određenim verzijama, sprječavajući neočekivana ažuriranja koja bi mogla unijeti pogreške ili sigurnosne rizike.
Alati poput paket-lock.json ili poezija.brava olakšavaju provedbu prikvačenih verzija. To osigurava dosljednost instalacija na različitim strojevima i okruženjima.
Evo jednostavnog plana za učinkovito upravljanje prikvačenim ovisnostima:
- Odaberite stabilne, sigurne verzije s nedavnim ažuriranjima.
- Postavite raspored za ažuriranja – manja ažuriranja mjesečno, glavna kvartalno.
- Temeljito testirajte sva ažuriranja u pripremnom okruženju.
- Dokumentirajte prikvačene verzije i zašto su odabrane.
Za kritične aplikacije, pokušajte primijeniti sigurnosne zakrpe unutar 48 sati, pregledajte manja ažuriranja mjesečno, a glavna ažuriranja rješavajte kvartalno. Prikvačivanje verzije daje vam kontrolu nad vremenom ažuriranja, održavajući vaš sustav stabilnim i istovremeno sigurnim.
Uparite prikvačivanje verzije s redovitim sigurnosnim skeniranjem i drugim zaštitnim mjerama. Dok pričvršćivanje osigurava stabilnost, izoliranje ovisnosti dodaje dodatni sloj zaštite.
sbb-itb-59e1987
6. Izolirajte ovisnosti
Ovisnosti trećih strana mogu predstavljati ozbiljne rizike za vaš sustav. Njihovo izoliranje pomaže osigurati da jedna ugrožena biblioteka ne ugrozi cijelu vašu aplikaciju. Postavljanjem granica između vanjskog koda i vašeg osnovnog sustava možete ograničiti potencijalnu štetu.
Alati poput spremnika ili postava mikroservisa mogu pomoći u tome. Ovi pristupi ograničavaju dopuštenja, pristup mreži i korištenje resursa, što napadačima otežava iskorištavanje ranjivosti. Na primjer, pokretanje knjižnica u spremnicima s ograničenim pristupom osigurava da će ostatak vaše aplikacije ostati zaštićen, čak i ako je jedan ugrožen.
Evo nekoliko praktičnih načina za izolaciju ovisnosti:
- Izolacija temeljena na spremniku
Pokrenite svaku ovisnost u vlastitom spremniku s minimalnim dopuštenjima. Ograničite pristup mreži i datotečnom sustavu, postavite ograničenja korištenja resursa i nadzirite aktivnosti za neobično ponašanje. - Arhitektura mikroservisa
Koristite pristup mikroservisa za odvajanje komponenti i njihovih ovisnosti. Definirajte jasne granice između usluga, primijenite prilagođene sigurnosne mjere za svaku i pazite na interakciju usluga. - Upravljanje dozvolama
Dodijelite samo dopuštenja koja su prijeko potrebna. Redovito provjeravajte ta dopuštenja, opozovite sva koja nisu u upotrebi i pratite kako se koriste.
Za aplikacije koje rukuju osjetljivim podacima, možete ići dalje dodavanjem dodatnih izolacijskih slojeva za mrežu, pohranu, procese i memoriju. Alati poput vatrozida, enkripcije i cgrupa mogu biti od posebne pomoći ovdje.
Dok je izolacija snažna obrana, uparivanje s temeljitim pregledom knjižnica prije njihove uporabe dodaje dodatni sloj zaštite.
7. Procijenite ovisnosti prije upotrebe
Pažljiva procjena ovisnosti prije njihove integracije u vaš projekt ključna je za smanjenje sigurnosnih rizika. Započnite provjerom ugleda izvora, koliko se aktivno razvija i evidencije o održavanju. Potražite česta ažuriranja, detaljne napomene o izdanju i aktivne održavatelje – to su dobri znakovi pouzdane ovisnosti.
Koristite automatizirane alate poput OWASP Provjera ovisnosti, Snyk, ili Umiroviti se.js kako bi identificirali ranjivosti i osigurali usklađenost. Obratite posebnu pozornost na ova ključna područja:
| Površina | Provjere ključeva | alat |
|---|---|---|
| sigurnosti | CVE skeniranje, provjere ranjivosti | OWASP provjera ovisnosti, Snyk |
| Održavanje | Učestalost ažuriranja, popravci problema | GitHub metrika, povijest izdanja |
| Usklađenost | Kompatibilnost licence | FOSSA, WhiteSource |
Za aplikacije koje su kritične, idite dublje. Pogledajte sigurnosnu povijest ovisnosti, kvalitetu njezine dokumentacije i njezino puno stablo ovisnosti kako biste otkrili sve skrivene rizike. Svakako dokumentirajte svoja otkrića, uključujući pojedinosti o verziji, poznata ograničenja i sigurnosne napomene.
Evo nekoliko ključnih područja na koja se trebate usredotočiti tijekom ocjenjivanja:
- Sigurnosna povijest: Provjerite prošle sigurnosne probleme i kako su riješeni.
- Kvaliteta dokumentacije: Osigurajte da su sigurnosne smjernice jasne i sveobuhvatne.
- Korištenje resursa: Procijenite kako ovisnost utječe na performanse i potrošnju resursa.
Držite sve detalje o procjeni organiziranima, posebno oko verzija i sigurnosnih problema. Ovaj strukturirani pristup osigurava dosljednost u načinu na koji procjenjujete ovisnosti.
Čak i nakon što obavite temeljit pregled prije integracije, stalno praćenje je ključno. S vremenom se mogu pojaviti nove ranjivosti, a njihovo otkrivanje ključno je za održavanje sigurnog i pouzdanog sustava.
8. Kontinuirano nadzirite ovisnosti
Paziti na svoje ovisnosti nije jednokratan zadatak – to je stalan proces zaštite od novih prijetnji. Ovaj se korak nadovezuje na ranije radnje poput skeniranja i ažuriranja, ali ide dalje osiguravajući kontinuiranu zaštitu. Automatizirani alati olakšavaju brzo uočavanje ranjivosti, tako da vaš tim može brzo djelovati. Uparite alate kao što su Dependabot, Snyk Monitor i WhiteSource s ručnim pregledima kako biste pokrili sve svoje baze.
| Sloj praćenja | Alati i metode | Frekvencija |
|---|---|---|
| Automatizirano skeniranje | Dependabot, Snyk Monitor, WhiteSource | U stvarnom vremenu/dnevno |
| Sigurnosna upozorenja | GitHub sigurnosna upozorenja, NPM revizija | Kako se pojavljuju ranjivosti |
| Kontrola verzija | Paket Version Monitor, Version Eye | Tjedni |
| Pregledi priručnika | Revizija koda, analiza stabla ovisnosti | Tromjesečno |
Postavite upozorenja u svom sustavu upravljanja kako biste obavijestili svoj tim o kritičnim ranjivostima, glavnim ažuriranjima verzija, zastarjelim ovisnostima ili promjenama licence.
Za kritične aplikacije idite dublje – koristite alate za nadzor cijelog stabla ovisnosti. Nadzorna ploča može vam pomoći da pratite ključne metrike kao što su:
- Zastarjele ovisnosti
- Ozbiljnost sigurnosnih propusta
- Učestalost ažuriranja
- Ovisnosti se bliže kraju života
Razvijte jasan postupak za rješavanje problema označenih tijekom praćenja. Ako je vaša aplikacija velika, razmislite o korištenju sustava za upravljanje sigurnosnim informacijama i događajima (SIEM) za povezivanje ranjivosti ovisnosti s drugim sigurnosnim događajima.
Dok praćenje pomaže u otkrivanju problema, pronalaženje ovisnosti o pouzdanim pružateljima osigurava da počinjete na čvrstom tlu.
9. Izvor od pouzdanih pružatelja usluga
Odabir pouzdanih izvora za vaše ovisnosti ključan je za održavanje sigurnosti vaše aplikacije. Prema Gartneru, 45% organizacija širom svijeta suočilo se s napadima na lanac nabave softvera 2023. godine – što je nagli porast u odnosu na 2021. Ovaj trend naglašava važnost provjere vaših izvora.
Evo nekih bitnih sigurnosnih praksi kojih se trebate pridržavati prilikom pronalaženja ovisnosti:
| Faktor povjerenja | Metoda provjere | Ublažavanje rizika |
|---|---|---|
| Kanal distribucije | Koristite privatne registre, provjerene izvore | Smanjuje rizik od napada ovisnosti o zabuni |
| Potpisivanje paketa | Provjerite potpise paketa | Potvrđuje autentičnost paketa |
| Kontrola izvora | Pratite promjene vlasništva | Otkriva potencijalne sigurnosne kompromise |
Privatni registri pružaju dodatni sloj sigurnosti pohranjivanjem odobrenih paketa u predmemoriju i kontroliranjem novih dodataka. Kako biste se dodatno zaštitili, koristite --ignoriraj-skripte sufiks prilikom instaliranja paketa. Ovo sprječava pokretanje zlonamjernih skripti tijekom instalacije. Možete čak postaviti ovu postavku kao zadanu tako da je dodate u svoj .npmrc projektna datoteka.
"Pitanje 'Vjerujem li ovom paketu' nije najbolje pitanje koje možete postaviti. Relevantnije je pitanje 'Vjerujem li autoru ovog paketa?'" – Scott Hanselman, Tech Advocate
jeste li znali Prosječni npm paket oslanja se na 79 paketa trećih strana i 39 održavatelja. To stvara veliku napadnu površinu. Kako biste smanjili ove rizike, razmislite o korištenju softvera otvorenog koda koji podržava dobavljač, a koji često uključuje redovita sigurnosna ažuriranja i podršku. Priča upozorenja: incident streama događaja iz 2018., gdje je ugrožena ovisnost uspjela dosegnuti milijune preuzimanja u samo nekoliko mjeseci.
Ako vaš upravitelj paketa ne podržava potpisivanje (kao što je NuGet), implementirajte pravila povjerenja klijenta kako biste nametnuli korištenje potpisanih paketa pouzdanih autora. Osim toga, pazite na promjene vlasništva ili održavanja jer one mogu signalizirati potencijalne probleme.
Dok nabava od pouzdanih pružatelja pomaže u smanjenju rizika, uparivanje ovoga sa sigurnim hosting rješenjima podiže sigurnost vaše aplikacije na višu razinu.
10. Odaberite Sigurno hosting
Sigurnost vaše hosting infrastrukture jednako je kritična kao i ovisnosti na koje se vaša aplikacija oslanja. Sigurno hosting okruženje djeluje kao okosnica obrane vaše aplikacije, smanjujući rizike izoliranjem potencijalnih prijetnji i osiguravanjem sigurnih ažuriranja.
Prilikom odabira pružatelja usluga hostinga, dajte prednost ovim ključnim sigurnosnim značajkama:
| Sigurnosna značajka | Svrha | Utjecaj na ovisnosti |
|---|---|---|
| Izolirana okruženja | Drži aplikacije odvojene kako bi se izbjegli rizici | Ograničava širenje problema iz ugroženih ovisnosti |
| Automatizirano skeniranje | Kontinuirano prati ranjivosti | Otkriva sigurnosne nedostatke u ovisnostima prije nego što se iskoriste |
| DDoS zaštita | Štiti od napada uskraćivanjem usluge | Održava dostupnost ovisnosti tijekom napada |
| Redovite sigurnosne revizije | Pregledava i potvrđuje sigurnosne mjere | Potvrđuje integritet sustava upravljanja ovisnostima |
Pružatelji poput Serverion, poznati po svojim podatkovnim centrima na više lokacija, DDoS zaštiti i rutinskim revizijama, pružaju onu vrstu sigurnosti na razini infrastrukture koja je ključna za upravljanje ovisnostima. Izolirana okruženja, na primjer, osiguravaju da ako su ovisnosti jedne aplikacije ugrožene, druge ostaju nepromijenjene.
Kada procjenjujete pružatelje usluga hostinga, potražite opcije koje uključuju:
- Automatizirano sigurnosno kopiranje za vraćanje problematičnih ažuriranja
- Integracija kontrole verzija i alate za praćenje sigurnosnih događaja
- Kontrole upravljanja pristupom za nadgledanje promjena ovisnosti
"Bez sigurnog hostinga, čak i provjerene ovisnosti mogu postati ranjivosti."
Odaberite pružatelja usluga s dobrim iskustvom u poštivanju pravila i odgovoru na incidente. Uparivanje sigurnog hostinga s drugim zaštitnim mjerama pomoći će vam stvoriti čvrstu obranu od rizika povezanih s ovisnošću.
Zamotavanje
Upravljanje sigurnošću ovisnosti trećih strana postalo je glavni prioritet u današnjem okruženju razvoja softvera. U 2023. kibernetički napadi u opskrbnom lancu pogodili su 2769 organizacija u SAD-u – nevjerojatan skok od 58% u odnosu na prethodnu godinu.
Uzmimo kao primjer incident s backdoorom XZ Utilsa iz ožujka 2024. Otkrio je kako nedostaci u široko korištenim ovisnostima mogu prostrujati kroz cijelu softversku industriju. Iako postoje popravci za 96% ranjivosti, zastarjele ovisnosti i dalje predstavljaju 80% slučajeva, ostavljajući sustave otvorenima za napade.
"Upotrebom ovisnosti trećih strana preuzimate odgovornost za kôd koji niste napisali." – Auth0
Ovdje navedene strategije – od odabira sigurnih ovisnosti do korištenja pouzdanih usluga hostinga – postavljaju temelje za jaču zaštitu. Kršenje Equifaxa, koje je proizašlo iz odgođene zakrpe za poznatu ranjivost, služi kao upozoravajuća priča o opasnostima ignoriranja ažuriranja.
Primjenom ovih deset praksi stvarate slojeviti pristup upravljanju ovisnostima trećih strana. Zajedno se bave ključnim područjima upravljanja ovisnostima dodajući višestruke prepreke potencijalnim prijetnjama.
Kako lanci nabave softvera postaju sve zamršeniji, budnost i davanje prioriteta sigurnosti ovisnosti ostat će ključni za izgradnju sigurnijih aplikacija.
FAQ
Kako možete upravljati ovisnostima trećih strana?
Za učinkovito rukovanje ovisnostima trećih strana, ključno je voditi detaljnu evidenciju, provoditi redovite procjene rizika i kontrolirati izvorni kod ovisnosti dobavljača. Odabir biblioteke dokumenata, slučajevi njihove upotrebe i svi povezani rizici. Redovito procjenjujte rizike trećih strana i osigurajte pravilno upravljanje izvornim kodom. Mnogi dobavljači trećih strana imaju slabije mjere kibernetičke sigurnosti, što može povećati vašu izloženost potencijalnim prijetnjama.
Ovaj pristup je posebno kritičan kada se koriste paketni ekosustavi kao što je npm, koji dolaze sa svojim skupom sigurnosnih izazova.
Jesu li npm paketi sigurni za korištenje?
npm paketi mogu predstavljati rizike zbog svojih složenih stabala ovisnosti i oslanjanja na više održavatelja. Zbog toga je neophodno pažljivo pregledati pakete i uspostaviti povjerenje u njihove autore. Utvrđeno je da čak i popularni npm paketi, uključujući one dizajnirane imajući na umu sigurnost, sadrže ranjivosti. Značajan primjer je paket 'event-stream', koji je bio kompromitiran 2018., što naglašava važnost temeljitih sigurnosnih provjera.
Ovi izazovi s npm paketima odražavaju šire probleme unutar lanaca nabave softvera.
Što je glavni sigurnosni rizik u lancu nabave softvera?
Ključni rizici u lancu nabave softvera uključuju ranjivosti u ovisnostima trećih strana, javnim spremištima, sustavima izgradnje i procesima ažuriranja. Ove zabrinutosti naglašavaju važnost jakih sigurnosnih mjera. S otvorenim kodom koji sada čini čak 90% modernog softvera, rješavanje ovih rizika kritičnije je nego ikada.