123% flere rapporterte CVE-er per dag i 2026 enn i fjor.

Sammenligning

CRACI vs. Syft og Grype

Syft og Grype er Anchores gratis verktøy for å generere SBOM-er og finne sårbarhetene i dem. De er bare så fullstendige som det Syft finner på disken. CRACI registrerer komponentlisten mens bygget kjører.

Oppdatert

Det korte svaret

Syft er en populær SBOM-generator med åpen kildekode, og Grype er sårbarhetsskanneren som følger med den. Sammen dekker de generering og matching gratis, i hvilken som helst pipeline. CRACI er en GitHub Actions-runner som registrerer hva hvert bygg hentet, angir om registreringen er fullstendig, kontrollerer hvor bygget kan koble seg til, og fortsetter å overvåke det som er levert. Forskjellen på én linje: Syft rekonstruerer SBOM-en fra filer, og hvor mye det finner, avhenger av konfigurasjonen og av hva som ligger på disken når det kjører. CRACI observerer den og sporer sårbarhetene i det det registrerte, så ett produkt gjør jobben til begge.

Funksjon CRACI Syft og Grype
Kjører byggene dine Jobber kjører på CRACI-runnere CLI-steg i hvilken som helst pipeline
Avhengigheter registrert fra bygget Observerte hentinger, også pakker i cache Catalogers leser filer i etterkant
Fullstendigheten til SBOM-en Angis per jobb og per cache Avhenger av hvilke catalogers som kjørte, og hva som lå på disken
Egress-policy på runneren Default deny eller allow, blokkerer ved feil (fail closed) Utenfor omfanget
Signert dokumentasjon Ingen signert provenance Syft lager signerte in-toto-SBOM-attestasjoner
Sårbarhetsmatching Samlet på tvers av bygg og repositorier Grype, med EPSS, KEV og risikoscore
Overvåking av leverte SBOM-er Overvåkede SBOM-er vurderes kontinuerlig på nytt Skann SBOM-er på nytt med Grype etter din egen tidsplan
Stopp CI ved en alvorlighetsterskel Policy-gates blokkerer bygg på grunn av funn; terskler ikke oppgitt grype --fail-on
Skanner images og kataloger du ikke har bygget Registrerer byggene det kjører Images, kataloger, arkiver og SBOM-er
Utover GitHub Actions GitHub Actions i dag; GitLab CI og Jenkins på veikartet Hvilken som helst CI eller lokal CLI
Pris $0.002 per vCPU-minutt ($0.004 for 2 vCPU), målt per sekund; ingen månedsavgift og ingen betaling per SBOM Gratis og åpen kildekode under Apache-2.0. Anchore Enterprise er et separat betalt produkt.
  • Inkludert
  • Delvis
  • Ikke inkludert
  • På veikartet

Hva Syft og Grype gjør bra

Nettstedet til Syft and Grype
anchore.com

Syft er "a CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems." Det gjenkjenner dusinvis av pakkesystemer, fra Alpine, Debian og RPM til Go, Python, Java, JavaScript, Ruby, Rust, PHP og .NET. Det skriver CycloneDX, SPDX og sitt eget Syft JSON, konverterer mellom formater og kan lage signerte SBOM-attestasjoner med in-toto-spesifikasjonen.

Grype skanner container-images, filsystemer og SBOM-er for kjente sårbarheter. Det prioriterer funn med EPSS, KEV og risikoscore, støtter OpenVEX for filtrering av resultater, og flagget --fail-on lar en pipeline feile når det finner sårbarheter på eller over en alvorlighetsgrad du velger. Anchore skriver at Grype "runs entirely locally and doesn't send any data to external services", bortsett fra nedlastingen av databasen.

Begge er Apache-2.0 og sponset av Anchore, som har den kommersielle plattformen Anchore Enterprise, som "builds on open source Syft and Grype." Denne siden handler om verktøyene med åpen kildekode.

Syft er sterkt når det har de riktige filene foran seg. Pekt mot et kildetre som har committet avhengighetene sine, for eksempel ollama/ollama, løser standardskanningen dem opp med versjoner, package URL-er og avhengighetskantene mellom dem.

Ett flagg endrer svaret

Syft velger catalogers etter skannetype, og dokumentasjonen forklarer hvorfor: "files that hint at the intent to install software do not have enough information in them to determine the exact version." Catalogers har tagger som declared, installed, image og directory, og flagg som --select-catalogers og --override-default-catalogers endrer settet.

I syft cataloger list for v1.51.1 er JavaScript-catalogeren som leser node_modules, tagget for image- og installed-skanninger og er ikke med i standardsettet for en katalogskanning. På en installert checkout avgjør altså ett flagg om npm-pakkene i node_modules blir lest i det hele tatt. Samme verktøy, samme versjon, samme kildetre.

Baksiden er like viktig. Ingen enkelt konfigurasjon er riktig overalt:

  • På en ren checkout av express 5.2.1, som ikke har noen lockfile, har standardskanningen ingen npm-avhengigheter å løse og returnerer det andre den gjenkjenner, for eksempel GitHub Actions og workflow-filer.
  • Slå på installed-catalogers og pek dem mot kildetrær slik de er committet, der ingenting er installert ennå, så har de nesten ingenting å lese.
  • Et repositorium uten noe avhengighetsmanifest gir skanningen ingen avhengighetsfiler å lese, uansett konfigurasjon.

Ingenting av dette er en feil. Syft rapporterer det filene foran det gir grunnlag for, slik det er utformet. Den praktiske konsekvensen er at SBOM-en avhenger av to beslutninger noen må ta riktig i hver pipeline: hvilke catalogers som kjører, og om avhengighetene ble installert før skanningen. Og Grype kan bare matche det Syft listet opp. En komponent som mangler i SBOM-en, når aldri sårbarhetsoppslaget, så skanningen kommer tilbake ren for den.

Der CRACI skiller seg ut

CRACI har ingen catalogers å velge, fordi det ikke leser kildetreet i etterkant. Du endrer runs-on til craci, og en pakkebevisst proxy registrerer hva jobben henter fra npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk og Git, pluss forhåndsinnstillinger for nedlastinger. Pakker gjenopprettet fra en CI-cache tar dokumentasjonen sin med seg. Resultatet, i CycloneDX eller SPDX, inkluderer de transitive avhengighetene bygget faktisk brukte.

  • Fullstendigheten er eksplisitt. Hver jobb og cache er merket Complete, Complete with connections, Incomplete, Unavailable eller Not recorded.
  • Bygget er kontrollert. En egress-policy (default deny eller allow, 24 innebygde forhåndsinnstillinger for programvarekilder) valideres før jobben starter, og blokkerer ved feil (fail closed).
  • Provenance-data. API-et returnerer SBOM-er, nettverksspor og provenance. CRACI signerer ikke provenance; en Syft-attestasjon signerer SBOM-en.
  • Overvåking. Overvåkede SBOM-er vurderes kontinuerlig på nytt, og funn samles på tvers av bygg og repositorier.

Grype gjør fortsatt ting CRACI ikke gjør. VEX-filtrering og skanning av images du ikke har bygget, er Grypes territorium. Policy-gates i CRACI kan stoppe bygget; terskelvarslene står på veikartet.

En oversikt over hva som er rullet ut hvor

Inventarvisningen i CRACI viser nøyaktig hvilke programvareversjoner som er rullet ut til hvilke produkter, globalt. Når en ny sårbarhet dukker opp, kan du se hvilke produkter som kjører den berørte versjonen, i stedet for å pusle det sammen fra utgivelsesnotater og regneark.

Bytte fra Syft og Grype

På CRACI er det ingen SBOM å generere og ikke noe skannesteg å vedlikeholde. Runneren registrerer SBOM-en mens bygget kjører, og CRACI fortsetter å sjekke den for nye sårbarheter etter at bygget er ferdig. Syft og Grype er fortsatt verktøyene for images og tredjepartsprogramvare du ikke har bygget, og for pipelines utenfor GitHub Actions.

For Cyber Resilience Act

CRA ber produsenter dokumentere komponentene i hvert produkt, inkludert en SBOM, og håndtere sårbarheter i det. Syft og Grype kan produsere og sjekke den SBOM-en, og dokumentasjonssporet fra hver utgivelse tilbake til SBOM-en må du bygge selv. CRACI registrerer SBOM-en per bygg og eksporterer den som CycloneDX eller SPDX. Det automatiserer en betydelig del av innsynet i programvareleverandørkjeden og dokumentasjonen som bedrifter trenger for sin bredere CRA-samsvarsprosess. Se hva CRA er og SBOM-generering under bygget.

Sammenlign en registrert SBOM med Syft-resultatet ditt

Book en demo, så kjører vi en av GitHub Actions-workflowene dine på CRACI og sammenligner SBOM-en med det Syft finner for samme commit.

Book en demo