Vuonna 2026 raportoitiin päivässä 131% enemmän CVE:itä kuin edellisenä vuonna.

Riippuvuudet

Mitä on ohjelmistokoostumuksen analyysi (SCA)?

Ohjelmistokoostumuksen analyysi löytää ohjelmistosi avoimen lähdekoodin ja kolmannen osapuolen komponentit ja tarkistaa niistä tunnetut haavoittuvuudet, lisenssiongelmat ja vanhentuneet versiot. Suurin osa toimittamastasi koodista on koodia, josta olet riippuvainen, joten SCA kattaa suurimman osan koodistasi. Se voi analysoida vain ne komponentit, jotka se onnistuu tunnistamaan.

Päivitetty

Näin SCA toimii

  1. Tunnista komponentit. Työkalu lukee sen, mihin se osoitetaan: repositorion manifestit ja lukitustiedostot (lockfile), asennetut paketit tai konttikuvan tai binäärin sisällön. Tuloksena on komponenttien ja versioiden inventaario, joka viedään usein SBOM:ksi.
  2. Vertaa tunnettuihin riskeihin. Jokainen komponentti haetaan haavoittuvuustietokannoista, kuten GitHub Advisory Databasesta, OSV:stä ja NVD:stä, ja sen ilmoitettua lisenssiä verrataan käytäntöösi.
  3. Priorisoi. Löydökset järjestetään vakavuuden mukaan, ja jotkin työkalut lisäävät reachability-analyysin, joka tarkistaa, voiko koodisi ylipäätään kutsua haavoittuvaa funktiota.
  4. Korjaa. Monet työkalut ehdottavat korjattua versiota tai avaavat pull requestin, kuten Dependabot ja Renovate tekevät. Haavoittuvan transitiivisen riippuvuuden korjaus on yleensä paketissa, joka tuo sen mukanaan, ja sen näyttää riippuvuusgraafi.

Mitä SCA löytää

  • Tunnetut haavoittuvuudet käyttämissäsi versioissa sekä niitä kuvaavat tietoturvatiedotteet.
  • Lisenssiriskit, kuten copyleft-lisenssin suljetussa tuotteessa.
  • Vanhentuneet ja ylläpitämättömät paketit, jotka eivät saa tietoturvakorjauksia.
  • Haitalliset paketit työkaluissa, jotka analysoivat myös pakettien käyttäytymistä eivätkä vain vertaa tietoturvatiedotteisiin.

SCA vs. SAST

SCA ja staattinen sovellusten tietoturvatestaus (SAST) myydään usein yhdessä, mutta ne tarkastelevat eri koodia ja vastaavat eri kysymyksiin.

SCA SAST
Mitä se analysoi Avoimen lähdekoodin ja kolmannen osapuolen komponentit, joista olet riippuvainen Tiimisi kirjoittama koodi
Mitä se löytää Tunnetut haavoittuvuudet, lisenssiongelmat, vanhentuneet paketit Virheet koodissasi, kuten injektiot tai syötteen turvaton käsittely
Mitä se lukee Manifestit, lukitustiedostot, asennetut paketit, kuvat tai binäärit Lähdekoodi
Mistä uusi löydös syntyy Riippuvuuden muutoksesta tai uudesta tietoturvatiedotteesta jo toimittamallesi versiolle Muutoksesta koodiisi
Tyypillinen tulos Haavoittuvat komponentit korjattuine versioineen sekä SBOM Virheen kohdat koodissa ja ehdotettu korjaus

Tarvitset molemmat. Koodikanta, jossa ei ole SAST-löydöksiä, voi silti sisältää haavoittuvan riippuvuuden, ja puhdas riippuvuuspuu ei kerro mitään omasta koodistasi. Katso koko vertailu: SAST vs. SCA. Yksi ero vaikuttaa siihen, miten niitä ajetaan: SAST-löydös syntyy, kun koodisi muuttuu, kun taas SCA-löydös voi ilmestyä kuukausia sitten toimitettuun julkaisuun sinä päivänä, kun uusi tietoturvatiedote julkaistaan.

Mihin SCA loppuu

Jokainen SCA-tulos riippuu ensimmäisestä vaiheesta: komponenttien tunnistamisesta. Komponenttia, jota työkalu ei koskaan tunnistanut, ei voi verrata, priorisoida eikä korjata, eikä se näy myöskään aukkona. Yleiset katvealueet:

  • Se, mitä tiedostot eivät kerro. Useimmat SCA-työkalut lukevat manifestit ja lukitustiedostot. Puuttuva tai vanhentunut lukitustiedosto, CI-välimuistista palautetut paketit, build-työkalut, lataukset ja asennusskriptit eivät koskaan päädy inventaarioon. Katso, miksi lukitustiedosto ei ole kirjaus siitä, mitä toimitettiin.
  • Työkalut ovat eri mieltä. Kaksi samaan committiin osoitettua skanneria palauttaa eri komponenttilistat, koska kummallakin on omat sääntönsä siitä, mitä luetaan ja miten se nimetään. Katso, mitä avoimen lähdekoodin SBOM-generaattoreilta jää huomaamatta.
  • Binäärit. Valmiiksi käännettynä binäärinä jaettu ohjelmisto ilmoittaa vähän tai ei mitään, minkä manifestien lukija näkisi.
  • Vain tunnetut haavoittuvuudet. Vertailu löytää sen, mitä on julkaistu. Uudella haitallisella paketilla tai julkistamattomalla virheellä ei ole vielä tietoturvatiedotetta.
  • Tilannekuva. Pull requestin skannaus kuvaa sitä hetkeä. Uudet tietoturvatiedotteet jo tuotannossa oleville versioille edellyttävät jotakin, joka tarkistaa jatkuvasti, mitä toimitettiin.

Tämä ei ole yhden tuotteen vika. Näin skannaus toimii, oli se kaupallinen tai avointa lähdekoodia. CRACI on löytänyt haavoittuvia paketteja, joita Snyk ja Aikido eivät raportoineet, koska komponentit eivät koskaan olleet siinä, mitä ne skannasivat.

Tallenna buildi, pidä SCA-työkalusi

CRACI sulkee tunnistusaukon buildin puolelta. Se on GitHub Actions -runneri, joka tallentaa jokaisen paketin, jonka kukin jobi hakee, puun jokaisella tasolla ja myös CI-välimuistista palautetut paketit, SBOM:iin, joka ilmoittaa oman kattavuutensa. Se arvioi toimitettujen julkaisujen SBOM:eja jatkuvasti uudelleen uusien haavoittuvuuksien julkaisun myötä, ja buildihistoria näyttää, mitkä aiemmat buildit sisälsivät haavoittuvan paketin.

CRACI ei suunnitellusti tee SAST- eikä reachability-analyysiä. Tiimit ajavat sitä SCA- tai SAST-työkalun rinnalla, joka kattaa pull requestit ja oman koodin. Katso SCA-työkalut vertailussa, mihin CRACI sopii SCA-työkalujesi rinnalla tai varaa demo ja vertaa tallennettua SBOM:ia nykyiseen skannaukseesi.

Ohjelmistokoostumuksen analyysi: usein kysytyt kysymykset

Mitä SCA tarkoittaa kyberturvallisuudessa?

Ohjelmistokoostumuksen analyysi (SCA) tarkoittaa ohjelmistosi avoimen lähdekoodin ja kolmannen osapuolen komponenttien löytämistä ja niiden tarkistamista tunnettujen haavoittuvuuksien, lisenssiongelmien ja vanhentuneiden versioiden varalta. Se kattaa koodin, josta olet riippuvainen, erotuksena koodista, jonka kirjoitat itse.

Mitä eroa on SCA:lla ja SAST:lla?

SAST analysoi tiimisi kirjoittamaa koodia virheiden, kuten injektiobugien, varalta. SCA analysoi komponentteja, joista olet riippuvainen, tunnettujen haavoittuvuuksien ja lisenssiongelmien varalta. Ne vastaavat eri kysymyksiin, joten useimmat tietoturvaohjelmat käyttävät molempia.

Mitä SCA-skannaus tarkoittaa?

SCA-skannaus lukee projektin manifestit, lukitustiedostot, asennetut paketit tai konttikuvan, selvittää, mitä komponentteja siinä on, ja vertaa niitä haavoittuvuus- ja lisenssitietoihin. Tuloksena on lista löydöksistä, usein yhdessä tunnistettujen komponenttien SBOM:n kanssa.

Onko SBOM sama asia kuin SCA?

Ei. SBOM on inventaario: luettelo julkaisun komponenteista. SCA on analyysi: komponenttien tunnistaminen ja niiden riskien tarkistaminen. Monet SCA-työkalut tuottavat SBOM:n samalla, ja SBOM voi syöttää haavoittuvuuksien valvontaa julkaisun jälkeen.

Mitkä ovat SCA:n rajoitukset?

Se analysoi vain komponentit, jotka se pystyy tunnistamaan, yleensä manifesteista ja lukitustiedostoista. CI-välimuistista palautetut paketit, build-työkalut, lataukset ja binäärit ilman pakettimetatietoja voivat jäädä huomaamatta. Se löytää tunnetut haavoittuvuudet, ei tuntemattomia, ja skannaus on tilannekuva, ellei työkalu tarkista jatkuvasti uudelleen, mitä toimitettiin.

Mitkä ovat parhaat SCA-työkalut?

Se riippuu siitä, mitä tarvitset perusasioiden lisäksi: reachability-analyysiä, haitallisten pakettien tunnistusta, lisenssikäytäntöjä tai kehittäjän työnkulkua. Katso 13 SCA-työkalun vertailustamme, mitä kukin kattaa ja mihin se loppuu.

Katso, mitä SCA-skannauksesi ei nähnyt

Aja yksi GitHub Actions -työnkulku CRACI:ssa ja vertaa sen tallentamaa SBOM:ia komponentteihin, jotka SCA-työkalusi raportoi.

Varaa demo