Pregled sigurnosti aplikacije

SBOM za obične korisnike: kako provjeriti što aplikacija sadrži prije instalacije

Instaliranje aplikacije znači ukazivanje povjerenja mnogo većem broju sudionika nego samo tvrtki čiji se naziv nalazi na stranici za preuzimanje. Suvremeni softver često uključuje desetke ili čak stotine vanjskih biblioteka, razvojnih okvira, sistemskih paketa i drugih gotovih komponenti. Sigurnosni nedostatak u bilo kojoj od njih može utjecati na cijelu aplikaciju, čak i kada njezin glavni razvojni tim nije napisao ranjivi kod. Popis softverskih komponenti, poznat kao Software Bill of Materials ili skraćeno SBOM, pruža strukturirani zapis tih elemenata. Običnom korisniku može pomoći da provjeri što se nalazi unutar programa, prepozna zastarjele ovisnosti i utvrdi postoje li poznate ranjivosti prije nego što softveru omogući pristup osobnim datotekama, lozinkama ili poslovnim podacima. SBOM ne jamči sigurnost, ali odluku koja bi se inače temeljila uglavnom na ugledu proizvođača, recenzijama i rezultatima antivirusnog programa potkrepljuje provjerljivim informacijama.

Što SBOM otkriva o aplikaciji

SBOM se često opisuje kao popis sastojaka softvera. Umjesto brašna, šećera ili konzervansa, navodi biblioteke, pakete, module i druge komponente uključene u aplikaciju. Kvalitetan SBOM obično identificira glavni proizvod, nazive i verzije njegovih komponenti, njihove dobavljače, međusobne odnose te datum izrade zapisa. Može sadržavati i podatke o licencama, sažetke datoteka, identifikatore paketa te informacije o alatu kojim je dokument izrađen. Ti podaci omogućuju razlikovanje dviju verzija koje korisniku mogu izgledati gotovo jednako, ali se iznutra oslanjaju na različite komponente.

Verzija komponente jedno je od najvažnijih polja. Ranjivost rijetko zahvaća sva izdanja određene biblioteke. Može se odnositi samo na verzije objavljene prije određene nadogradnje, na jednu razvojnu granu ili na određeni operacijski sustav. Primjerice, podatak da aplikacija sadrži OpenSSL nije dovoljan za procjenu rizika. Potreban je točan broj verzije kako bi se utvrdilo pripada li ugrađeni kod rasponu zahvaćenom sigurnosnim upozorenjem. Ako podatak o verziji nedostaje, alat za skeniranje može previdjeti stvarni problem ili komponentu pogrešno povezati s nepovezanom ranjivošću.

SBOM bi također trebao prikazivati odnose među ovisnostima. Neke komponente razvojni programer aplikacije dodaje izravno, dok se druge uključuju posredno preko neke biblioteke. Takve neizravne ovisnosti mogu se protezati kroz nekoliko razina i ostati potpuno nevidljive u uobičajenom sučelju aplikacije. Razvojni programer može namjerno dodati jednu biblioteku za obradu dokumenata, koja zatim koristi zasebne pakete za slike, kompresiju i kodiranje znakova. Ako jedan od tih paketa niže razine sadrži sigurnosni nedostatak, ranjiva može biti i završna aplikacija. Prikaz odnosa među ovisnostima pomaže razumjeti zašto se određena komponenta nalazi u programu i koji se njegov dio na nju oslanja.

Kako prepoznati koristan i odgovarajući SBOM

Najprije treba provjeriti opisuje li SBOM upravo onu datoteku koju namjeravate instalirati. Usporedite naziv proizvoda, broj verzije, operacijski sustav, procesorsku arhitekturu i datum izdanja s podacima prikazanima na stranici za preuzimanje. Popis komponenti izrađen za izdanje za Windows možda neće odgovarati verziji za macOS, a zapis za verziju 5.1 ne može se automatski primijeniti na verziju 5.2. Čak i manja nadogradnja aplikacije može zamijeniti nekoliko biblioteka ili ukloniti ranjivi paket. Točan SBOM zato bi trebao biti povezan s određenim izdanjem, a ne predstavljen kao trajan popis komponenti za sve verzije proizvoda.

SPDX i CycloneDX dva su formata s kojima će se obični korisnici najčešće susresti. Oni pohranjuju podatke o komponentama u ujednačenom, strojno čitljivom obliku koji sigurnosni alati mogu obraditi. Od srpnja 2026. SPDX 3.0 aktualna je stabilna specifikacija, dok je SPDX 3.1 RC1 dostupan za testiranje, a ne za opću produkcijsku uporabu. CycloneDX 1.7 trenutačno je objavljena verzija tog standarda. Uobičajeni nazivi datoteka uključuju bom.json, bom.xml, product.cdx.json i product.spdx.json. Korisnik ne mora razumjeti cijelu strukturu tih datoteka jer odgovarajući alat za skeniranje njihov sadržaj može pretvoriti u razumljivo izvješće o ranjivostima.

Potpunost je jednako važna kao i format. Znakovi upozorenja uključuju komponente bez brojeva verzija, česte vrijednosti „unknown”, nepoznate dobavljače i popis koji izgleda prekratko za promatranu aplikaciju. Malo je vjerojatno da suvremeni internetski preglednik, program za obradu videozapisa ili komunikacijska aplikacija sadrži samo nekoliko vanjskih paketa. Istodobno, dugačak popis komponenti nije dokaz loše sigurnosti. Velike aplikacije prirodno ovise o brojnim zasebnim projektima. Važnije je provjeriti identificira li SBOM te komponente dovoljno precizno da ih alat može povezati s pouzdanim zapisima o ranjivostima.

Kako provjeriti i skenirati softver prije instalacije

Započnite preuzimanjem instalacijske datoteke i pripadajućeg SBOM-a iz izvora kojim upravlja proizvođač softvera. Dokument se može nalaziti uz aplikaciju u repozitoriju izdanja, sigurnosnom centru ili odjeljku za preuzimanje. Potražite nazive datoteka koji sadrže izraze „SBOM”, „SPDX”, „CycloneDX” ili „BOM”. Neki dobavljači takav zapis dostavljaju samo korisnicima ili na zahtjev, osobito ako sadrži pojedinosti o vlasničkim komponentama. Nemojte se oslanjati na SBOM preuzet s nepovezane stranice za preuzimanje. Popis komponenti vrijedan je samo kada postoji vjerodostojna veza između dokumenta, dobavljača i točnog izdanja aplikacije.

Prije analize komponenti provjerite samu instalacijsku datoteku. Kriptografski sažetak djeluje poput digitalnog otiska datoteke. Kada proizvođač objavi vrijednost SHA-256, izračunajte sažetak preuzete datoteke i usporedite svaki znak sa službenom vrijednošću. Korisnici sustava Windows mogu u PowerShellu pokrenuti naredbu Get-FileHash .\setup.exe -Algorithm SHA256. Na sustavu macOS može se upotrijebiti shasum -a 256 filename.dmg, dok se na mnogim distribucijama Linuxa koristi sha256sum filename. Podudaranje potvrđuje da je preuzeta datoteka identična onoj za koju je proizvođač izračunao sažetak. To ne dokazuje da je izvorni softver siguran, ali može otkriti oštećenje ili neovlaštenu izmjenu.

Digitalni potpis pruža dodatnu razinu provjere. U sustavu Windows desnom tipkom miša kliknite instalacijsku datoteku, otvorite Properties i potražite karticu Digital Signatures. Potpis mora biti valjan, a potpisnik bi trebao odgovarati proizvođaču aplikacije ili jasno povezanoj tvrtki. Microsoftov Sigcheck može bez pokretanja instalacijske datoteke prikazati verziju datoteke, vremensku oznaku, lanac certifikata, kriptografske sažetke i podatke o potpisu. Na sustavu macOS provjere potpisa i notarizacije mogu pomoći u utvrđivanju je li aplikacija prošla Appleov sigurnosni postupak. Nepotpisana datoteka nije automatski zlonamjerna, osobito ako dolazi iz manjeg projekta otvorenog koda, ali nedostatak potpisa ostavlja korisniku manje dokaza o njezinu podrijetlu.

Praktičan postupak s besplatnim alatima za skeniranje

Ako je dostupan valjan SBOM, Grype omogućuje izravnu usporedbu njegovih komponenti s poznatim podacima o ranjivostima. Nakon instaliranja Grypea iz službenog izvora izdanja, naredba poput grype sbom:./application-sbom.json skenira dokument bez pokretanja aplikacije. Izvješće navodi zahvaćenu komponentu, instaliranu verziju, oznaku ranjivosti, razinu ozbiljnosti i verziju u kojoj je problem ispravljen, ako je taj podatak dostupan. Grype podržava uobičajene SBOM formate i može koristiti dodatne podatke o riziku, uključujući CISA-in katalog poznatih iskorištavanih ranjivosti te vrijednosti sustava Exploit Prediction Scoring System, kako bi lakše odredio prioritet nalaza.

OSV-Scanner još je jedna prikladna mogućnost, osobito kada preuzeti paket sadrži prepoznatljive SBOM datoteke, zapise o ovisnostima ili zaključane datoteke izvornog koda. Njegova aktualna dokumentacija za verziju V2 opisuje postupak u dvije faze: alat najprije izdvaja podatke o paketima, a zatim ih uspoređuje s poznatim zapisima o ranjivostima. Rezultat može sadržavati naziv i verziju paketa, identifikator sigurnosnog upozorenja, ocjenu ozbiljnosti te prvo izdanje s ispravkom. Standardni nazivi datoteka važni su pri skeniranju SBOM dokumenata, pa bi SPDX datoteka u pravilu trebala zadržati naziv koji završava s .spdx.json, dok bi CycloneDX datoteka trebala koristiti prepoznatljiv obrazac naziva. Preimenovanje svih dokumenata u općenite nazive može spriječiti njihovo pravilno prepoznavanje.

Kada proizvođač ne isporučuje SBOM, Syft može izraditi procijenjeni popis komponenti iz raspakirane mape, arhive, datotečnog sustava ili podržane slike spremnika. Primjerice, naredba syft dir:./unpacked-app -o cyclonedx-json=app-sbom.cdx.json analizira raspakiranu mapu i sprema rezultat kao CycloneDX dokument. Ta se datoteka zatim može provjeriti pomoću Grypea. Nemojte pokretati nepouzdanu instalacijsku datoteku samo kako biste došli do njezina sadržaja. ZIP arhive i neki instalacijski paketi mogu se raspakirati bez izvršavanja koda, dok drugi formati zahtijevaju specijalizirani postupak. Automatski izrađen SBOM također može previdjeti statički ugrađene, šifrirane ili neuobičajeno zapakirane komponente, pa ga ne treba smatrati pouzdanijim od potpunog zapisa izrađenog tijekom službenog procesa sastavljanja softvera.

Pregled sigurnosti aplikacije

Kako procijeniti ranjivosti pronađene u SBOM-u

Rezultat skeniranja može sadržavati oznake CVE, GHSA ili identifikatore sigurnosnih upozorenja specifične za određeni ekosustav. CVE broj zajednička je oznaka javno objavljene ranjivosti, a ne dokaz da je aplikacija trenutačno napadnuta. Otvorite povezano sigurnosno upozorenje i potvrdite zahvaćenu komponentu, raspon verzija i uvjete potrebne za iskorištavanje. Slični nazivi paketa mogu pripadati potpuno različitim projektima, a alat ponekad može prijaviti netočno podudaranje ako SBOM sadrži nepotpune identifikatore. Nalaz je vjerodostojniji kada se naziv paketa, dobavljač, ekosustav i verzija podudaraju s komponentom opisanom u sigurnosnom upozorenju.

Ozbiljnost se obično izražava CVSS ocjenom ili oznakama poput niske, srednje, visoke i kritične. Ta ocjena procjenjuje tehničku ozbiljnost ranjivosti u određenim uvjetima, ali ne opisuje u potpunosti rizik za konkretnog korisnika. Kritična ranjivost koja se odnosi na isključenu funkciju može biti manje hitna od ranjivosti visoke razine koja se aktivira svaki put kada aplikacija otvori datoteku s interneta. Provjerite zahtijeva li iskorištavanje lokalni pristup, radnju korisnika, posebne ovlasti ili mrežnu vezu. Uzmite u obzir i podatke kojima će aplikacija moći pristupati. Sigurnosni nedostatak u softveru koji obrađuje lozinke, povjerljive dokumente ili udaljene veze ima ozbiljnije praktične posljedice od istog nedostatka u izoliranom programu koji se koristi samo izvan mreže.

Posebnu pozornost posvetite ranjivostima uključenima u CISA-in katalog Known Exploited Vulnerabilities. Uvrštavanje u taj katalog znači da postoje dokazi o stvarnom iskorištavanju ranjivosti. Exploit Prediction Scoring System, odnosno EPSS, pruža procjenu vjerojatnosti iskorištavanja u kratkom razdoblju. Nijedan od tih pokazatelja ne zamjenjuje pažljivu procjenu, ali oba mogu pomoći u odvajanju hitnih nalaza od starijih ranjivosti ograničene praktične izloženosti. Komponenta s kritičnom ocjenom, potvrđenim aktivnim iskorištavanjem i bez dostupnog ispravka zahtijeva mnogo veću pozornost od nedostatka niske razine za čije je iskorištavanje potreban fizički pristup već otključanom računalu.

Kada instalirati, odgoditi ili odbaciti aplikaciju

Instalacija je lakše opravdana kada instalacijska datoteka dolazi od proizvođača, njezin se sažetak podudara, digitalni potpis je valjan, a SBOM odgovara točnom izdanju. Rezultat skeniranja ne bi trebao sadržavati neriješene visokorizične ranjivosti do kojih se može doći tijekom uobičajene uporabe aplikacije. Neki nalazi mogu biti prihvatljivi ako proizvođač pruži jasno VEX izvješće, odnosno zapis Vulnerability Exploitability eXchange, u kojem objašnjava zašto proizvod nije zahvaćen. Primjerice, ranjiva biblioteka može biti prisutna, ali odgovarajuća funkcija može biti onemogućena ili uklonjena tijekom sastavljanja. Koristan VEX zapis navodi verziju proizvoda, konkretnu ranjivost i tehničko obrazloženje umjesto općenite tvrdnje da je aplikacija sigurna.

Odgodite instalaciju ako je SBOM nepotpun, pripada drugoj verziji ili prijavljuje ozbiljnu ranjivost za koju već postoji ispravljena komponenta. Provjerite je li objavljeno novije izdanje aplikacije i pročitajte sigurnosne napomene proizvođača. Ako objašnjenje nije dostupno, obratite se dobavljaču i navedite verziju proizvoda, naziv komponente te identifikator ranjivosti. Vjerodostojan odgovor trebao bi se odnositi na konkretan paket i zahvaćeni dio koda. Kada je riječ o poslovnom softveru, podatke proslijedite osobi zaduženoj za IT ili sigurnost. Pojedinačni korisnik ne bi trebao samostalno prihvatiti rizik za cijelu organizaciju samo zato što se instalacija čini rutinskom.

Odbacite datoteku ako se njezin sažetak ne podudara sa službenom vrijednošću, ako je digitalni potpis nevažeći, ako se navedeni proizvođač ne može potvrditi ili ako je datoteka preuzeta iz nepouzdanog izvora. Jednaka je odluka opravdana kada se ranjivost koja se može iskoristiti na daljinu aktivno upotrebljava u napadima, a ne postoji ispravljeno izdanje ni učinkovita zaštitna mjera. Nedostatak SBOM-a ne dokazuje da je program opasan, ali smanjuje transparentnost i otežava neovisnu provjeru. U takvom slučaju veću važnost pridajte povijesti nadogradnji dobavljača, dostupnosti sigurnosnog kontakta, javnim upozorenjima i osjetljivosti podataka koje će aplikacija obrađivati. SBOM je najučinkovitiji kada se kombinira s provjerom izvora, ograničenim dozvolama, ažurnim sigurnosnim kopijama, antivirusnom zaštitom i pravodobnim instaliranjem sigurnosnih nadogradnji.

Popularne teme