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

Vertailu

CRACI vs. oma SBOM-pino

Toimitusketjun tietoturvapinon jokaiselle kerrokselle on hyvä avoimen lähdekoodin työkalu. Työ on niiden valitsemisessa, yhteen kytkemisessä, käynnissä pitämisessä ja siinä, että skannauksen ja buildin tallenteen välinen aukko suljetaan.

Päivitetty

Lyhyt vastaus

Syftistä tai Trivystä, Grypestä, Dependency-Trackista, Cosignista ja Renovatesta koottu oma pino on lisensseiltään ilmainen, toimii missä tahansa ja antaa osaavalle alustatiimille täyden hallinnan. CRACI on hallinnoitu GitHub Actions -runneri, joka tallentaa, mitä kukin buildi haki, hallitsee, mihin se voi muodostaa yhteyden, valvoo toimitettua ja vie näytön ulos. Ero on vähemmän ominaisuuksissa ja enemmän siinä, mistä SBOM tulee ja kuka ylläpitää saumat. Jos rakennat GitLabissa, Jenkinsissä tai Windowsilla tai kaiken on toimittava omassa infrastruktuurissasi, oma pino on tällä hetkellä rehellinen suositus.

Miltä pino näyttää

Kattavassa itse kootussa ratkaisussa on yleensä seitsemän kerrosta. Jokainen on oikea projekti, jolla on oma ylläpitonsa.

  1. Generointi. Syft ("generating a Software Bill of Materials (SBOM) from container images and filesystems"), Trivy, cdxgen (OWASP-projekti, joka luo CycloneDX-BOM:eja "from source and container images") tai Microsoft SBOM Tool, joka kirjoittaa SPDX:ää ja odottaa komentorivillä buildin tulostekansiota, paketin nimeä, versiota ja toimittajaa.
  2. Täsmäytys. Grype skannaa konttikuvia, tiedostojärjestelmiä ja SBOM:eja EPSS:n, KEV:n ja riskipisteytyksen avulla. OSV-Scanner täsmäyttää lukitustiedostoja, SBOM:eja ja konttikuvia OSV.deviä vasten.
  3. Hallinta. OWASP Dependency-Track ottaa vastaan CycloneDX-SBOM:eja ja valvoo niitä ajan mittaan. Sen API-palvelin tarvitsee vähintään 2 Gt RAM-muistia ja 2 suoritinydintä (suositus 8 Gt ja 4 ydintä), ja sen dokumentaatio ohjaa tuotantoasennukset Docker Composeen erillisen tietokannan kanssa.
  4. Allekirjoitus. Cosign allekirjoittaa konttikuvia, blobeja ja SBOM-attestaatioita, avaimettomasti Fulcion ja Rekor-läpinäkyvyyslokin avulla. GitHubin artifact attestations perustuvat Sigstoreen ja tarjoavat SLSA v1.0 Build Level 2 -tason alkuperätiedot.
  5. Päivitykset. Renovate tai Dependabot avaavat pull requesteja riippuvuuksien pitämiseksi ajan tasalla.
  6. Lähtevän liikenteen hallinta. StepSecurity Harden-Runner voi auditoida tai estää GitHub Actions -jobien lähtevät yhteydet. Sen Community-taso on ilmainen julkisille repositorioille GitHubin ylläpitämillä runnereilla; yksityiset repositoriot ja itse ylläpidetyt runnerit vaativat Enterprise-tason. Vaihtoehtona on oma välityspalvelin ja palomuurisäännöt itse ylläpidettyjen runnereiden ympärillä.
  7. Raportointi. Jonkun on muutettava kaiken edellä mainitun tulokset asiakirjoiksi, joita auditoija, asiakas tai CRA:n tekninen dokumentaatio tarvitsee.
Ominaisuus CRACI Oma pino
Ajaa buildisi Jobit ajetaan CRACI:n runnereilla Työkalut ajetaan CI:si vaiheina
SBOM tallennetaan buildista Havainnoidut haut, myös välimuistin paketit Koostetaan jälkikäteen tiedostoista
SBOM:n kattavuus Ilmoitetaan jobi- ja välimuistikohtaisesti Riippuu generaattorista, sen asetuksista ja siitä, asensitko riippuvuudet ensin
Egress-käytäntö runnerilla Oletuksena estävä tai salliva, fail closed Harden-Runner tai oma välityspalvelin
Allekirjoitetut alkuperätiedot Ei allekirjoitettuja alkuperätietoja Cosign tai GitHubin artifact attestations
Toimitettujen SBOM:ien valvonta Valvottuja SBOM:eja arvioidaan jatkuvasti uudelleen Dependency-Track, kun ylläpidät sitä itse
Portfoliokäytännöt, VEX ja triage Triage, VEX ja lisenssikäytäntö Dependency-Trackin käytännöt ja VEX
CRA-näyttö ja raportit SBOM:t CycloneDX- tai SPDX-muodossa, kirjaukset API:n kautta, CRA-ilmoitusten sisältö valmisteltuna; ei raporttivientiä Kokoat raportit kunkin työkalun tuloksista
Muut CI-järjestelmät, Windows ja macOS Nyt Linux GitHub Actionsissa; muut CI:t, Windows ja macOS tiekartalla Generaattorit ja skannerit toimivat missä tahansa CI:ssä
Toimii omassa infrastruktuurissasi Nyt hallinnoituna; asiakkaan ylläpitämät runnerit tiekartalla, Enterprise Itse ylläpitämäsi avoimen lähdekoodin työkalut
Kustannus $0.002 vCPU-minuutilta ($0.004 2 vCPU:lla), mitataan sekunneittain; ei kuukausimaksua eikä SBOM-kohtaista maksua Ilmaiset lisenssit. Maksat kehitystyön tunteina, ylläpitona ja hostingina.
  • Sisältyy
  • Osittain
  • Ei sisälly
  • Tiekartalla

Kustannus syntyy saumoissa

Generaattorin valinta on sen sokeiden pisteiden valinta

Aja useampi SBOM-generaattori samaa repositoriota vasten, eivätkä ne ole samaa mieltä sen sisällöstä. Kukin lukee eri joukon tiedostoja ja ratkaisee ne eri tavalla, joten saamasi komponenttiluettelo kertoo yhtä paljon valitsemastasi työkalusta kuin projektista. NTIA:n supplier-kenttä näyttää saman toiselta puolelta: useimmilla generaattoreilla ei ole sille lähdettä, joten se jää tyhjäksi, oli repositoriossa mitä tahansa.

Mikään näistä työkaluista ei ole rikki. Kukin tekee oman, dokumentoidun ratkaisunsa siitä, mikä lasketaan komponentiksi ja mihin tiedostoihin luotetaan. Oma pino kuitenkin perii valitsemasi ratkaisut, ja putken loppuosa (täsmäytys, valvonta, raportointi) voi olla vain yhtä kattava kuin tämä ensimmäinen vaihe.

Liima on sinun

Jokaisella työkalulla on oma julkaisutahtinsa, haavoittuvuustietokantansa, tulostemuotonsa ja konfiguraationsa. Jonkun on lukittava versiot, päivitettävä tietokannat, pidettävä Dependency-Track ja sen tietokanta paikattuina, kierrätettävä allekirjoitusidentiteetit, päätettävä, mikä SBOM menee minnekin, ja huomattava, kun jokin vaihe alkaa hiljaa tuottaa vähemmän. Se on jatkuvaa alustatyötä, ei kertaluonteinen käyttöönotto.

Työkalutkin ovat riippuvuuksia

Tietoturvatyökalut ajetaan buildiesi sisällä ja niillä on pääsy salaisuuksiisi, joten ne kuuluvat uhkamalliisi. Maaliskuussa 2026 Aqua Security julkaisi tietoturvatiedotteen, jossa kuvattiin, miten vuodettuja tunnuksia käytettiin haitallisen Trivy-julkaisun julkaisemiseen ja useimpien trivy-action-tagien pakottamiseen tunnuksia varastavaan koodiin noin 12 tunnin ajaksi. Aqua dokumentoi tapauksen julkisesti, ja se olisi voinut sattua mille tahansa laajasti käytetylle projektille. Se osoittaa, miksi runnerin lähtevän liikenteen hallinnalla on merkitystä: oletuksena estävä käytäntö rajaa, minne vaarantunut vaihe voi lähettää tietoja, vaikkakaan ei jokaista kanavaa (tiedote kuvaa myös varamenetelmän, joka loi repositorioita uhrin GitHub-tilille).

Milloin oma pino on oikea valinta

  • CI:si ei ole GitHub Actions. CRACI tukee tällä hetkellä vain GitHub Actionsia, ja GitLab CI ja Jenkins ovat tiekartalla. GitLab-, Jenkins- ja CircleCI-tiimit voivat ajaa kaikkia edellä mainittuja avoimen lähdekoodin työkaluja.
  • Rakennat Windowsilla tai macOS:llä. CRACI:n runnerit ovat nyt Linuxia (x86-64 ja ARM64); Windows ja macOS ovat tiekartalla.
  • Kaiken on toimittava omassa infrastruktuurissasi. CRACI ajaa nyt hallinnoituja runnereita eurooppalaisessa infrastruktuurissa, ja asiakkaan ylläpitämät runnerit ovat Enterprise-tason tiekartalla.
  • Sinulla on alustatiimi, joka haluaa omistaa sen. Jos pinon ylläpito on harkittu investointi ja ajat jo Dependency-Trackia hyvin, pidä se.
  • Tarvitset yhden SBOM:n yhteen kyselyyn. Satunnaiseen, vähäpanoksiseen pyyntöön käsin ajettu generaattori voi riittää.

Mitä CRACI korvaa ja mitä ei

CRACI kattaa useita kerroksia yhdessä paikassa, alkaen buildista. Vaihdat runs-on-arvoksi craci, ja ajot näkyvät edelleen GitHubin käyttöliittymässä. Paketit tunnistava välityspalvelin tallentaa, mitä kukin jobi hakee npm-, PyPI-, RubyGems-, Composer-, Cargo-, Go-, Nix-, OCI-, apt-, apk- ja Git-lähteistä sekä latausesiasetuksista, ja riippuvuusnäyttö kulkee CI-välimuistien mukana. Jokainen jobi ja välimuisti saa kattavuustilan: Complete, Complete with connections, Incomplete, Unavailable tai Not recorded.

  • Generointi: CycloneDX ja SPDX tallennetusta buildista, transitiiviset riippuvuudet mukaan lukien.
  • Valvonta: löydökset koottuina buildien ja repositorioiden yli, ja valvottuja SBOM:eja arvioidaan jatkuvasti uudelleen.
  • Alkuperätiedot: API palauttaa SBOM:t, verkkojäljet ja alkuperätiedot. CRACI ei allekirjoita alkuperätietoja.
  • Egress: jobikohtainen käytäntö, jossa on 24 valmista ohjelmistolähteiden esiasetusta; se tarkistetaan ennen jobin alkua, toimii fail closed -periaatteella ja hälyttää rikkomuksista.
  • Vienti: SBOM:t CycloneDX- tai SPDX-muodossa haavoittuvuuksineen; ei raporttivientiä.

Se ei korvaa kaikkea. Pakettien estolistat ovat tiekartalla. Jos tarvitset allekirjoitetut alkuperätiedot, pidä Cosign tai GitHubin artifact attestations. Renovate tai Dependabot ovat edelleen järkeviä kaikkien riippuvuuksien pitämiseen ajan tasalla, ei vain haavoittuvien. Jos tietoturvatiimisi työskentelee Dependency-Trackissa, CycloneDX-SBOM:n voi ladata CRACI:n REST API:n kautta ja syöttää sinne.

Inventaario siitä, mitä on käytössä missäkin

CRACI:n inventaarionäkymä näyttää tarkasti, mitkä ohjelmistoversiot ovat käytössä missäkin tuotteessa maailmanlaajuisesti. Kun uusi haavoittuvuus tulee tietoon, näet, missä tuotteissa haavoittuvaa versiota ajetaan, eikä sinun tarvitse koota tietoa julkaisutiedotteista ja taulukoista.

Kyberkestävyyssäädöstä varten

EU:n kyberkestävyyssäädös (Cyber Resilience Act, CRA) edellyttää, että valmistajat yksilöivät ja dokumentoivat digitaalisia elementtejä sisältäviin tuotteisiin sisältyvät haavoittuvuudet ja komponentit, myös laatimalla ohjelmistojen materiaaliluettelon (liitteen I osa II). Aktiivisesti hyödynnettyjen haavoittuvuuksien raportointi alkaa syyskuussa 2026, ja ensimmäiselle ilmoitukselle on 24 tuntia. Oma pino voi tukea tätä, kunhan joku vastaa näyttöketjusta jokaisesta julkaisusta sen SBOM:iin. CRACI automatisoi merkittävän osan siitä ohjelmistotoimitusketjun näkyvyydestä ja näytöstä, jota yritykset tarvitsevat laajemmassa CRA-vaatimustenmukaisuusprosessissaan, ja se valmistelee CRA-ilmoitusten sisällön, jonka lähetät itse. Kumman tien valitsetkin, päätös siitä, mitä hyödynnetään aktiivisesti, jää tiimillesi. Katso CRA-vaatimustenmukaisuus ja buildin aikainen SBOM-generointi.

Vertaa pinoasi yhteen tallennettuun buildiin

Varaa demo, niin ajamme yhden GitHub Actions -työnkulkusi CRACI:ssa ja asetamme sen SBOM:n rinnakkain nykyisten työkalujesi tuottaman kanssa.

Varaa demo