Ohjelmistotoimitusketjun tietoturva, tallennettuna jokaisesta buildista
Ohjelmistotoimitusketjusi kohtaa tuotteesi CI-buildissa. CRACI ajaa GitHub Actions -jobisi turvallisilla runnereilla ja tallentaa jokaisen riippuvuuden, jonka ne hakevat, hallitsee, mihin kukin buildi voi yhdistää, ja seuraa jatkuvasti toimittamiesi ohjelmistojen haavoittuvuuksia.
Turvalliset runnerit GitHub Actionsille
Vaihda runs-on-arvoksi craci, niin GitHub Actions -jobisi ajetaan CRACI:n runnereilla, ja ajot näkyvät edelleen GitHubissa. Jokainen jobi saa oman eristetyn virtuaalikoneen Linux x86-64- tai ARM64-alustalla Euroopassa. Buildit valmistuvat noin kaksi kertaa nopeammin kuin GitHubin ylläpitämillä runnereilla nopeamman laitteiston, lyhyempien jonotusaikojen ja välimuistin ansiosta.
SBOM tallennetaan jokaisesta buildista
CRACI on tallentaja, ei skanneri. Paketit tunnistava välityspalvelin runnerissa näkee jokaisen paketin, jonka jobi hakee npm-, PyPI-, RubyGems-, Cargo-, Go-, Nix-, OCI-, apt-, apk- ja Git-lähteistä sekä Yocton ja OpenEmbeddedin latausesiasetuksista, myös CI-välimuisteista palautetut paketit. Jokaisen jobin SBOM:lla on kattavuustila, ja sen voi viedä CycloneDX- tai SPDX-muodossa transitiivisine riippuvuuksineen ja kunkin komponentin ilmoitettuine lisensseineen.
Hallitse, mihin buildi voi yhdistää
Egress-käytäntö määrää, mihin palvelimiin jobi saa yhdistää: oletuksena estävä tai oletuksena salliva, 24 valmista ohjelmistolähteiden esiasetusta, tyypitetyt omat lähteet pakettirekistereille ja Gitille sekä eksplisiittiset verkkosäännöt. Käytäntö validoidaan ennen jobin alkua, virhetilanteessa liikenne estetään (fail closed), ja rikkeistä lähtee hälytys. Kaapattu riippuvuus tai build-vaihe ei voi huomaamatta lähettää tietoja palvelimeen, jota et ole koskaan hyväksynyt.
Alkuperätiedot siitä, mitä toimitat
Julkinen REST-API palauttaa kunkin jobin SBOM:t, verkkojäljet ja alkuperätiedot, jotka kaikki on tallennettu samasta buildista. Näyttö syntyy itse buildista ilman lisävaihetta työnkulussa.
Haavoittuvuuksien seuranta julkaisun jälkeen
CRACI arvioi toimittamiesi ohjelmistojen SBOM:it jatkuvasti uudelleen uusien haavoittuvuuksien julkaisun myötä ja kokoaa löydökset kaikista buildeista ja repositorioista. Tietoturvatiimit luokittelevat ne ja ohjaavat kunkin korjauksesta vastaavalle tiimille. Käytäntöportit voivat estää buildin löydösten tai lisenssin perusteella, VEX:iä tuetaan, toimittajien SBOM:eja valvotaan omien buildiesi rinnalla, ja inventaarionäkymä näyttää, mitkä ohjelmistoversiot ovat käytössä missäkin tuotteessa.
Näyttö asiakkaille ja auditoijille
Asiakkaat, auditoijat ja sääntely edellyttävät yhä useammin SBOM:ia jokaisesta julkaisusta ja tallennetta siitä, miten haavoittuvuudet käsiteltiin. CRACI vie SBOM:t CycloneDX- tai SPDX-muodossa komponenteista löydettyine haavoittuvuuksineen, ja julkinen REST-API palauttaa SBOM:t, verkkojäljet ja alkuperätiedot. Sama näyttö tukee EU:n kyberkestävyyssäädöstä (Cyber Resilience Act), NIS2-direktiiviä, FDA:n SBOM-vaatimuksia ja ISO 27001:n toimitusketjun hallintakeinoja.
Kysymykset, joita toimitusketjun tietoturvapoikkeama herättää
Kun paketti, CI-action tai rekisteri kaapataan, ensimmäiset tunnit kuluvat sen selvittämiseen, koskeeko tapaus sinua. Nämä ovat tiimien esittämät kysymykset, ja näin CRACI:n tallenne buildista vastaa niihin.
| Kysymys | Miten CRACI vastaa |
|---|---|
| Hakiko jokin buildeistamme kaapatun pakettiversion? | Jokaisen buildin SBOM luettelee paketit, jotka jobi todella haki, joten haet tallennetuista buildeista etkä skannaa repositorioita uudelleen. |
| Mihin tuotteisiimme ja julkaisuihimme tämä vaikuttaa? | Valvotut SBOM:t arvioidaan jatkuvasti uudelleen, ja inventaarionäkymä yhdistää ohjelmistoversiot tuotteisiin, joissa ne ovat käytössä. |
| Olisiko build-vaihe voinut lähettää salaisuuksia jonnekin? | Kunkin jobin verkkojälki tallentaa sen muodostamat yhteydet, ja egress-käytäntö estää käytännön ulkopuoliset palvelimet ennen kuin niihin yhdistetään. |
| Onko tämä SBOM tarpeeksi kattava luovutettavaksi? | Kunkin jobin SBOM ilmoittaa kattavuutensa: Complete, Complete with connections, Incomplete, Unavailable tai Not recorded. |
| Kuka korjaa sen, ja voimmeko todistaa, että asia hoidettiin? | Löydökset luokitellaan ja ohjataan vastuutiimeille, ja SBOM:t voi viedä CycloneDX- tai SPDX-muodossa komponenteista löydettyine haavoittuvuuksineen. |
CRACI kattaa buildin ja sen, mitä se toimittaa. Koodin skannaus, salaisuuksien skannaus ja reachability-analyysi jäävät sovellustietoturvatyökaluillesi. GitHub Actions on tuettu nyt, ja muut CI-järjestelmät ovat tiekartalla.
Ohjelmistotoimitusketjun tietoturva: vastaukset
Mitä se kattaa, miksi se kuuluu CI/CD:hen ja mihin CRACI sopii
Mitä ohjelmistotoimitusketjun tietoturva on?
Ohjelmistotoimitusketjun tietoturva suojaa kaikkea, mikä päätyy ohjelmistoosi ensimmäisen commitin ja julkaisun välillä: avoimen lähdekoodin riippuvuuksia, peruskuvia, build-työkaluja, kolmansien osapuolten CI-actioneita, itse CI/CD-putkea ja toimittamiasi artefakteja. Se tarkoittaa, että tiedät, mitä nämä osat ovat, hallitset, mistä ne tulevat, ja pystyt todistamaan, mitä kuhunkin julkaisuun meni.
Miksi ohjelmistotoimitusketju kannattaa suojata CI/CD:ssä?
Julkaisubuildissa riippuvuutesi ratkaistaan, ladataan ja paketoidaan. Tuotantobuildi ei ole sama kuin buildi kannettavalla: versioalueet, muuttuvat tagit ja välimuistit tarkoittavat, että se voi hakea jotain muuta. Julkaisubuildin aikana tehty tallenne on ainoa luotettava tallenne siitä, mitä toimitettiin, ja buildin runnerissa voit hallita, mihin buildi saa yhdistää.
Miten CRACI eroaa toimitusketjun tietoturvaskannerista?
Skannerit lukevat tiedostoja jälkikäteen: manifestin, lukitustiedoston (lockfile), lähdekoodin tai valmiin binäärin. CRACI on GitHub Actions -jobiesi runneri, joten se havainnoi buildin sen tapahtuessa ja tallentaa paketit, jotka kukin jobi todella haki, myös CI-välimuisteista palautetut paketit. Jokainen SBOM ilmoittaa oman kattavuutensa, egress-käytäntö hallitsee, mihin buildi voi yhdistää, ja API palauttaa SBOM:t, verkkojäljet ja alkuperätiedot.
Korvaako CRACI GitHub Actions -työnkulkuni?
Ei. CRACI korvaa runnerin, ei GitHub Actionsia. Vaihdat runs-on-arvoksi craci, ja työnkulkusi, triggerisi ja ajohistoriasi pysyvät GitHubissa.
Mitä CI-järjestelmiä ja alustoja CRACI tukee?
Nyt GitHub Actionsia; muut CI-järjestelmät, muun muassa GitLab CI ja Jenkins, ovat tiekartalla. Runnerit ovat Linuxia x86-64- ja ARM64-alustoilla, ja Windows ja macOS ovat tiekartalla.
Tekeekö CRACI SAST-analyysia, salaisuuksien skannausta tai reachability-analyysia?
Ei. CRACI tallentaa ja hallitsee buildia, seuraa toimittamiesi ohjelmistojen haavoittuvuuksia ja tuottaa näytön. Oman koodin skannaaminen virheiden tai salaisuuksien varalta sekä reachability-analyysi ovat sovellustietoturvatyökalun tehtäviä.
Missä buildidatani säilytetään?
CRACI toimii Euroopassa eurooppalaisella bare metal -infrastruktuurilla, ja tietoja säilytetään oletuksena 180 päivää; Enterprise-tilauksessa säilytysaika on mukautettavissa. CRACI ei tallenna lähdekoodiasi. CRACI on ISO 27001 -sertifioitu; lisätiedot löytyvät Trust Centeristä.
Katso, mitä buildisi todella hakevat
Varaa demo ja näe SBOM, verkkojälki, egress-käytäntö ja alkuperätiedot, jotka CRACI tallentaa GitHub Actions -buildista
Varaa demo