Automatisoitu kyberkestävyys kehittäjille ja agenteille
Tee jokaisesta buildista ensimmäinen puolustuslinjasi.
Tuo toimitusketjun tietoturva ohjelmistosi ytimeen nopeilla, luotettavilla ja edullisemmilla runnereilla.
- Turvalliset runnerit
- Buildin aikaiset SBOM:t
- Haavoittuvuuksien seuranta
- Haavoittuvuuksiin reagointi
- 185 pakettia tallennettu
- 6 yhteyttä estetty
- SBOM valmis
- Korjattu: v2.4.1
- Buildi
northwind-controls/web-portal
- Paketit
- next 15.2.2
- react 19.0.0
- react-dom 19.0.0
- express 4.21.2
- tailwindcss 4.0.14
- typescript 5.8.2
- KäytäntöporttiBuildi #1843 pysäytetty Buildi #1844 hyväksytty
- Julkaistu artefakti
ghcr.io/northwind-controls/web-portal:2.4.1
Julkaistu nimellä v2.4.1
Tiimit, jotka buildaavat CRACI:lla
Haavoittuvuuksia tulee nopeammin kuin mikään korjaus ehtii.
Hyökkääjät tarvitsevat vain yhden reitin sisään, ja agentit auttavat heitä löytämään sen nopeammin kuin koskaan. Tiimisi on suljettava jokainen aukko, enimmäkseen käsin.
2026 tähän mennessä
- CVE:tä julkaistaan päivässä
- 303
- Keskimäärin yksi 5 minuutin välein.
- Enemmän päivässä kuin edellisenä vuonna
- +131%
- Verrattuna vuoden 2025 päivätahtiin.
- Luokitus High tai Critical, joka päivä
- 155
- CVSS-pisteiden perusteella.
| Vuosi | CVE:tä päivässä | High tai Critical päivässä |
|---|---|---|
| 2020 | 39 | 7 |
| 2021 | 54 | 12 |
| 2022 | 68 | 20 |
| 2023 | 78 | 28 |
| 2024 | 109 | 48 |
| 2025 | 131 | 54 |
| 2026 tähän mennessä | 303 | 155 |
Miksi nyt
- Hälytyksistä on tullut kohinaa.
Kun sadat löydökset ovat kiireellisiä, mikään niistä ei ole. Tiimit lakkaavat hallitsemasta riskiä ja alkavat laskea hälytyksiä.
- Määrä kasvaa kaikkia tiimejä nopeammin.
Triage ja korjaukset tehdään yhä käsin. Tällä volyymilla lisärekrytoinnit eivät kurota eroa umpeen.
- Korjaukset kilpailevat ominaisuuksien kanssa.
Tuotetiimejä mitataan ominaisuuksien toimittamisella, joten tietoturvatyö odottaa hiljaista sprinttiä, jota ei koskaan tule.
- Skannerit vain arvioivat.
Buildin jälkeen tiedostoista päätelty lista ei näe, mitä oikeasti meni sisään, ja väärä varmuus saa ihmiset lopettamaan etsimisen.
Ohjelmistosi muotoutuu buildin aikana.
Lukitustiedostosi (lockfile) kiinnittää, mitä pitäisi asentaa. Buildi ratkaisee, mitä oikeasti saapuu. CRACI tallentaa jokaisen paketin sen saapuessa: ratkaistun version, alkuperän ja sen, palautettiinko paketti CI-välimuistista.
"packages": {
…
…
} | Paketti | Ratkaistu | Tuli reittiä | Lähde |
|---|---|---|---|
| package.jsonin kautta | |||
| express reittiä package.json | 4.21.2 | package.json | registry.npmjs.org |
| next reittiä package.json Nyt haavoittuvuuden CVE-2025-29927 koskema · Critical | 15.2.2 | package.json | registry.npmjs.org |
| react reittiä package.json · CI-välimuistista | 19.0.0 | package.json | CI-välimuisti |
| react-dom reittiä package.json · CI-välimuistista | 19.0.0 | package.json | CI-välimuisti |
| styled-jsx reittiä next | 5.1.6 | next | registry.npmjs.org |
| Build-skriptin kautta | |||
| tailwindcss reittiä build-skripti | 4.0.14 | build-skripti | registry.npmjs.org |
| typescript reittiä build-skripti | 5.8.2 | build-skripti | registry.npmjs.org |
| ja 178 muuta tallennettua pakettia | |||
Suojaa buildi. Tallenna sen riippuvuudet.
Jobisi ajetaan CRACI:n runnereilla GitHubin ylläpitämien sijaan, kaksi kertaa nopeammin. Jokainen paketti, jonka ne hakevat, tallennetaan version, lähteen ja lisenssin kera. Kaikki käytäntösi ulkopuolisista lähteistä estetään.
Secure Build Service
Jokainen jobi ajetaan omassa eristetyssä virtuaalikoneessaan egress-käytännön takana, joka tarkistetaan ennen jobin alkua.
- Eristetty VM
- Oletuksena estävä tai salliva
- Fail closed
- Hälytys rikkomuksesta
Package Analytics
Paketit tunnistava välityspalvelin (proxy) tallentaa jokaisen paketin, jonka jobi hakee, ratkaistun version, lähteen ja ilmoitetun lisenssin kera.
- npm
- PyPI
- RubyGems
- Cargo
- Go
- Nix
- OCI
- Yocto
- ja muita
- time2025-03-14 09:13:07 UTC
- jobrelease.yml #1842
- stepnpm run build
- policyDefault deny. Allowed: npm, GitHub, ghcr.io, Docker Hub, example.com
- denied malicious.example:443
- reasonPalvelin ei ole käytännössä
- actionEstetty runnerilla
{
"bomFormat": "CycloneDX",
"specVersion": "1.7",
…
"components": [{
"name": "next",
"version": "15.2.2",
"purl": "pkg:npm/[email protected]",
"licenses": [
{ "license": { "id": "MIT" } }
]
}, …]
} CRACI näkee liikenteen, jota skannerit eivät näe.
Muut SBOM-työkalut lukevat lukitustiedoston tai buildin tuotoksen ja arvaavat, mitä meni sisään. CRACI näkee, mitä kuhunkin buildiin oikeasti tulee, myös piilotetut riippuvuudet, joita buildin aikaiset hookit, build-skriptit ja peruskuvat tuovat mukanaan.
Skanneri
Kilpailijan skanneri
- Menetelmä
- Lukee package-lock.jsonin
- Milloin
- Buildin jälkeen
- Näkee
- Mitä lukitustiedosto listaa
| Paketti | Versio | Lisenssi | Löytyi |
|---|---|---|---|
| next pkg:npm/[email protected] | 15.2.2 | MIT | package-lock.json |
| react pkg:npm/[email protected] | 19.0.0 | MIT | package-lock.json |
| react-dom pkg:npm/[email protected] | 19.0.0 | MIT | package-lock.json |
| express pkg:npm/[email protected] | 4.21.2 | MIT | package-lock.json |
| styled-jsx pkg:npm/[email protected] | 5.1.6 | MIT | package-lock.json |
| Ei missään lukitustiedostossa, joten ei SBOM:ssa | |||
| Ei missään lukitustiedostossa, joten ei SBOM:ssa | |||
| Ei missään lukitustiedostossa, joten ei SBOM:ssa | |||
142 pakettia listattu 43 puuttuu
Tallennettu SBOM
- Menetelmä
- Näkee buildin liikenteen
- Milloin
- Buildin aikana
- Näkee
- Mitä buildi haki
| Paketti | Versio | Lisenssi | Haettu |
|---|---|---|---|
| next pkg:npm/[email protected] | 15.2.2 | MIT | registry.npmjs.org |
| react pkg:npm/[email protected] | 19.0.0 | MIT | registry.npmjs.org |
| react-dom pkg:npm/[email protected] | 19.0.0 | MIT | registry.npmjs.org |
| express pkg:npm/[email protected] | 4.21.2 | MIT | registry.npmjs.org |
| styled-jsx pkg:npm/[email protected] | 5.1.6 | MIT | registry.npmjs.org |
| valmiiksi käännetty binääri piilotettu reittiä postinstall-hook · pkg:npm/hidden-package | — | — | registry.npmjs.org |
| 2 × build-skriptin lataukset piilotettu reittiä build-skripti · pkg:generic/[email protected]?download_url=example.com/tool | — | — | example.com |
| 40 × peruskuvan käyttöjärjestelmäpaketit piilotettu reittiä Dockerfile FROM · pkg:oci/ubuntu | — | — | registry.hub.docker.com |
185 pakettia tallennettu 43 enemmän kuin lukitustiedosto näyttää
Esimerkkibuildi. Vedä jakajaa vertaillaksesi. Miten buildin aikaiset SBOM:t toimivat
Paikanna mahdolliset haavoittuvuudet tarkkoihin julkaisuihin.
CRACI tarkistaa tallennettuja SBOM:eja jatkuvasti uusien haavoittuvuuksien varalta. Tässä havainnollistavassa esimerkissä kriittinen haavoittuvuus julkistetaan 7 päivää julkaisun jälkeen. Seuraa buildikirjausta haavoittuvasta paketista tiimin korjaukseen.
Vaihe 1/4
CVE-2025-29927 julkistetaan
next on suora riippuvuus, ja buildi #1842 tallensi tarkan version.
- Vakavuus
- Critical 9.1
- Paketti
- next
- Haavoittuva
- 15.0.0–15.2.2
- Korjattu
- 15.2.3
Vaihe 2/4
Yksi julkaisu on haavoittuva
CRACI täsmää sen tallennettuun SBOM:iin.
- Julkaisu
- web-portal v2.4.0
- Osuma
- next 15.2.2, suora riippuvuus
- SBOM
- Complete
Vaihe 3/4
Se toimitettiin tänä kuvana
Julkaisu, sen kuva ja sen SBOM pysyvät yhdessä.
- Kuva
- ghcr.io/northwind-controls/web-portal:2.4.0
- Julkaisu
- v2.4.0
- SBOM
- Seurannassa
Vaihe 4/4
Korjauksella on vastuutaho
Tee triage, ohjaa eteenpäin ja seuraa korjattuun julkaisuun asti.
- Vastuutaho
- Alustatiimi
- Toimenpide
- Päivitä next versioon 15.2.3 ja buildaa uudelleen
- Korjattu
- web-portal v2.4.1, 2025-03-22
Vastaa jokaiselle auditoijalle näytöllä.
Jokainen buildi jättää jälkeensä näyttöä: SBOM:t, haavoittuvuuskirjaukset ja sen, miten kukin korjaus päätyi julkaisuun. Käytä sitä CRA-, NIS2-, ISO 27001- ja SOC 2 -prosesseissasi, niin auditoijan kysymykseen vastaaminen on lataus eikä projekti.
- Koostumus
- Buildin aikainen SBOM jokaisesta julkaisusta.
- CycloneDX
- SPDX
- Transitiiviset riippuvuudet
- Haavoittuvuudet
- Ilmoitetut lisenssit
- Haavoittuvuuksien käsittely
- Tallennetut SBOM:t arvioidaan jatkuvasti uudelleen.
- Triage
- Korjaus
- Säilytetään julkaisun kanssa
- Raportointi
- CRACI valmistelee ne; sinä lähetät.
- Ennakkovaroitus
- Ilmoitus
- Loppuraportti
Kyberkestävyyssäädös
- Raportointivelvoitteet alkavat
- Asetusta sovelletaan kokonaisuudessaan
Haavoittuvuusilmoitus Ote
web-portal v2.4.0
northwind-controls/web-portal · buildi #1842
- SBOM
- CycloneDX · Complete
- Buildi
- #1842 · commit 9f3c2e1
- Haavoittuvuus
- CVE-2025-29927 · Critical
- Komponentti
- next 15.2.2
- Ilmoitetaan
- CSIRT-yksikölle ja ENISAlle CRA:n keskitetyn raportointialustan kautta
Käsittelyn aikajana
- Julkaisu buildattu ja SBOM tallennettu
- Tietoturvatiedote julkaistu ja täsmätty tähän julkaisuun
- Triagen teki Tuoteturvallisuus, vastuu: Alustatiimi
- v2.4.1 julkaistu versiolla next 15.2.3
SBOM-vienti muodossa CycloneDX tai SPDX
Aja ensimmäinen buildisi 5 minuutissa.
Tässä demossa viemme TanStack Start -sivuston rekisteröitymisestä sen ensimmäiseen ajoon CRACI:lla. Yhdistämme GitHubin, ohjaamme jobit asetuksella runs-on: craci ja seuraamme ensimmäistä ajoa. CRACI tallentaa jokaisen ulkoisen riippuvuuden, jonka buildi hakee, merkitsee tunnetut haavoittuvuudet ja jäljittää jokaisen takaisin jobiin, joka sen toi.
From sign-up to your first build on CRACI
CRACI YouTubessa: CRACI demo.
Katso, miten CRACI sopii toimitusprosessiisi.
CRACI korvaa runnerin, ei GitHub Actionsia. Työnkulkusi, katselmointisi ja käyttöönottovaiheesi pysyvät ennallaan.
-
Yhdistä GitHub-sovellus
Kaikkiin repositorioihin tai vain valitsemiisi.
-
Vaihda runneri
Aseta työnkulkuun
runs-on: craci. Mikään muu ei muutu. -
Aja seuraava buildisi
Ajot näkyvät edelleen GitHubissa. Buildikirjaus ja SBOM näkyvät CRACI:ssa.
- Runnerit
- Hallinnoidut Linux-runnerit x86-64- ja ARM64-arkkitehtuureilla eurooppalaisella infrastruktuurilla.
- Buildit
- Docker Engine, Buildx ja Compose v2. Yocto- ja BitBake-buildit on dokumentoitu.
- Koodisi ja datasi
- CRACI käsittelee lähdekoodia buildisi aikana eikä tallenna sitä. Buildien data sijaitsee Euroopassa. Välimuistin sisältö riippuu siitä, mitä työnkulkusi tallentavat. Lue tietoturvasivu.
- Tiekartalla
- GitLab, Jenkins ja muut CI-järjestelmät, Windows- ja macOS-runnerit, on-prem-runnerit, Maven ja Java.
Kysymyksiä, joita tiimit kysyvät ennen demoa
Yhteensopivuus, käyttöönotto, tietoturva ja datan käsittely.
Mitä CI-ympäristöjä ja pakettiekosysteemejä tuetaan?
GitHub Actions on tällä hetkellä tuettu CI-integraatio, ja muut CI-järjestelmät ovat tiekartalla. CRACI tallentaa npm-, PyPI-, RubyGems-, Cargo-, Go-, Nix- ja OCI-rekisterit, Debianin, Ubuntun ja Alpinen pakettivarastot sekä Gitin ja muut lähdekoodilataukset. Maven ja Java ovat tiekartalla. Runnerit ovat Linuxia x86-64- ja ARM64-arkkitehtuureilla.
Mitä käyttöönotto vaatii?
Yhdistät CRACI:n GitHub-sovelluksen kaikkiin tai valittuihin repositorioihin ja asetat työnkulkuusi runs-on: craci. CRACI korvaa runnerin, ei GitHub Actionsia, joten ajosi näkyvät edelleen GitHubissa.
Mihin dataan CRACI pääsee käsiksi, ja missä se säilytetään?
GitHub-sovellus lukee koodiasi ja Actions-ajojasi ja hallinnoi runnereita, jotka se rekisteröi organisaatiollesi. CRACI käsittelee lähdekoodia buildisi aikana eikä tallenna sitä. Buildien data, mukaan lukien metatiedot, pakettitiedot, verkkoliikenteen jäljet, SBOM:t, alkuperätiedot, välimuistit ja audit-kirjaukset, sijaitsee Euroopassa, ja Enterprise-tilauksessa säilytysaika on mukautettavissa. Välimuistin sisältö riippuu siitä, mitä työnkulkusi tallentavat. Lue tietoturvasta ja datan käsittelystä.
Estääkö CRACI vai hälyttääkö se? Mitä tapahtuu buildille, joka rikkoo käytäntöä?
Egress-käytäntö pannaan täytäntöön runnerilla. Se validoidaan ennen jobin alkua ja toimii fail closed -periaatteella, joten käytännön ulkopuolinen yhteys estetään ja saat hälytyksen. Käytäntöportit voivat myös pysäyttää buildin reaaliajassa.
Mihin formaatteihin voin viedä?
SBOM:t viedään CycloneDX- tai SPDX-muotoon, mukaan lukien transitiiviset riippuvuudet, haavoittuvuudet ja ilmoitetut lisenssit.
Mikä on saatavilla tänään ja mikä on tiekartalla?
Saatavilla nyt: hallinnoidut Linux-runnerit GitHub Actionsille, buildin aikaiset SBOM:t haavoittuvuuksineen, egress-käytäntö, jatkuva haavoittuvuuksien seuranta triagen kera ja käytäntöportit. Tiekartalla: GitLab, Jenkins ja muut CI-järjestelmät, Windows- ja macOS-runnerit sekä on-prem-runnerit.
Tukijamme
Mediassa
Näe polku buildista korjaukseen.
- Tutki buildin aikana tallennettuja riippuvuuksia.
- Tunnista haavoittuvuuden koskemat julkaisut.
- Seuraa reagointia triagesta korjattuun julkaisuun.