V roce 2026 o 131% více nahlášených CVE denně než loni.

Srovnání

CRACI vs Syft a Grype

Syft a Grype jsou bezplatné nástroje od Anchore pro generování SBOM a hledání zranitelností v nich. Jsou jen tak úplné jako to, co Syft najde na disku. CRACI zaznamenává seznam komponent během běhu buildu.

Aktualizováno

Stručná odpověď

Syft je oblíbený open source generátor SBOM a Grype je k němu doprovodný skener zranitelností. Společně zdarma pokrývají generování i párování, v libovolné pipeline. CRACI je runner pro GitHub Actions, který zaznamenává, co stáhl každý build, uvádí, zda je tento záznam úplný, kontroluje, kam se build může připojit, a průběžně monitoruje to, co bylo dodáno. Rozdíl v jedné větě: Syft rekonstruuje SBOM ze souborů a to, kolik najde, závisí na jeho konfiguraci a na tom, co je na disku v okamžiku spuštění. CRACI ji pozoruje a sleduje zranitelnosti v tom, co zaznamenal, takže jeden produkt odvede práci obou.

Funkce CRACI Syft a Grype
Spouští vaše buildy Joby běží na runnerech CRACI Kroky CLI v libovolné pipeline
Závislosti zaznamenané z buildu Sledovaná stahování včetně balíčků z cache Katalogizátory čtou soubory dodatečně
Úplnost SBOM Uvedena pro každý job a každou cache Závisí na tom, které katalogizátory běžely a co bylo na disku
Egress policy na runneru Výchozí zákaz nebo povolení, fail-closed Mimo jejich rozsah
Podepsané důkazy Bez podepsaného původu Syft vytváří podepsané atestace SBOM in-toto
Párování zranitelností Agregováno napříč buildy a repozitáři Grype, s EPSS, KEV a hodnocením rizik
Monitorování dodaných SBOM Monitorované SBOM se průběžně znovu vyhodnocují Opakovaný sken SBOM pomocí Grype podle vašeho plánu
Selhání CI při překročení prahu závažnosti Policy gates blokují buildy kvůli nálezům; prahy neuvedeny grype --fail-on
Skenování image a adresářů, které jste nesestavili Zaznamenává buildy, které spouští Image, adresáře, archivy a SBOM
Mimo GitHub Actions Zatím GitHub Actions; GitLab CI a Jenkins v plánu vývoje Libovolné CI nebo lokální CLI
Cena $0.002 za vCPU-minutu ($0.004 za 2 vCPU), účtováno po sekundách; bez měsíčního poplatku a bez poplatku za SBOM Zdarma a open source pod licencí Apache-2.0. Anchore Enterprise je samostatný placený produkt.
  • Součástí
  • Částečně
  • Není součástí
  • V plánu vývoje

Co Syft a Grype dělají dobře

Domovská stránka Syft and Grype
anchore.com

Syft je „nástroj CLI a knihovna pro Go pro generování softwarového kusovníku (SBOM) z image kontejnerů a souborových systémů“. Rozpozná desítky balíčkovacích systémů, od Alpine, Debianu a RPM po Go, Python, Javu, JavaScript, Ruby, Rust, PHP a .NET. Zapisuje CycloneDX, SPDX a vlastní Syft JSON, převádí mezi formáty a dokáže vytvářet podepsané atestace SBOM podle specifikace in-toto.

Grype skenuje image kontejnerů, souborové systémy a SBOM na známé zranitelnosti. Nálezy prioritizuje pomocí EPSS, KEV a hodnocení rizik, podporuje OpenVEX pro filtrování výsledků a jeho přepínač --fail-on nechá pipeline selhat, když najde zranitelnosti od zvolené závažnosti výše. Anchore uvádí, že Grype „běží zcela lokálně a neodesílá žádná data externím službám“, kromě stahování své databáze.

Oba nástroje jsou pod licencí Apache-2.0 a sponzoruje je Anchore, jejíž komerční platforma Anchore Enterprise „staví na open source Syft a Grype“. Tato stránka se týká open source nástrojů.

Syft je silný, když má před sebou správné soubory. Namířený na zdrojový strom, který má své závislosti v repozitáři, například ollama/ollama, je jeho výchozí sken vyřeší včetně verzí, package URL a vazeb mezi nimi.

Jeden přepínač změní odpověď

Syft volí své katalogizátory podle typu skenu a jeho dokumentace vysvětluje proč: „soubory, které naznačují záměr software nainstalovat, neobsahují dost informací k určení přesné verze“. Katalogizátory nesou tagy jako declared, installed, image a directory a přepínače jako --select-catalogers a --override-default-catalogers jejich sadu mění.

Ve výpisu syft cataloger list ve verzi v1.51.1 je katalogizátor JavaScriptu, který čte node_modules, označen pro skeny image a nainstalovaného softwaru a ve výchozí sadě pro sken adresáře není. Na nainstalovaném checkoutu tak jeden přepínač rozhoduje, zda se balíčky npm v node_modules vůbec přečtou. Stejný nástroj, stejná verze, stejný strom.

Stejně důležitá je i opačná strana. Žádná jednotlivá konfigurace není správná všude:

  • Na čistém checkoutu express 5.2.1, který nemá lockfile, nemá výchozí sken žádné závislosti npm k vyřešení a vrátí to ostatní, co rozpozná, například GitHub Actions a soubory workflow.
  • Když zapnete katalogizátory pro nainstalovaný software a namíříte je na zdrojové stromy tak, jak jsou v repozitáři, kde ještě nic nainstalováno není, nemají téměř co číst.
  • Repozitář úplně bez manifestu závislostí nedá skenu žádné soubory závislostí ke čtení, ať je konfigurace jakákoli.

Nic z toho není chyba. Syft hlásí to, co soubory před ním podporují, tak jak byl navržen. Praktický důsledek je, že SBOM závisí na dvou rozhodnutích, která musí někdo udělat správně v každé pipeline: které katalogizátory běží a zda byly závislosti nainstalovány před skenem. A Grype dokáže spárovat jen to, co Syft vypsal. Komponenta, která v SBOM chybí, se k vyhledání zranitelností nikdy nedostane, takže sken pro ni vyjde čistý.

V čem je CRACI jiný

CRACI nemá žádné katalogizátory k výběru, protože strom dodatečně nečte. Změníte runs-on na craci a proxy, která rozumí balíčkům, zaznamená, co job stahuje ze zdrojů npm, PyPI, RubyGems, Composer, Cargo, Go, Nix, OCI, apt, apk a Git, a navíc z předvoleb pro stahování. Balíčky obnovené z cache CI si své důkazy nesou dál. Výsledek ve formátu CycloneDX nebo SPDX obsahuje tranzitivní závislosti, které build skutečně použil.

  • Úplnost je explicitní. Každý job a každá cache jsou označeny jako Complete, Complete with connections, Incomplete, Unavailable nebo Not recorded.
  • Build je pod kontrolou. Egress policy (výchozí zákaz nebo povolení, 24 vestavěných předvoleb softwarových zdrojů) se ověří před spuštěním jobu a při selhání vše zablokuje (fail-closed).
  • Údaje o původu. API vrací SBOM, síťové záznamy a údaje o původu. CRACI původ nepodepisuje; atestace ze Syftu podepisuje SBOM.
  • Monitorování. Monitorované SBOM se průběžně znovu vyhodnocují a nálezy se agregují napříč buildy a repozitáři.

Grype stále umí věci, které CRACI neumí. Filtrování pomocí VEX a skenování image, které jste nesestavili, jsou doménou Grype. Policy gates v CRACI mohou nechat build selhat; upozornění při překročení prahů jsou v plánu vývoje.

Inventář toho, co je kde nasazeno

Pohled inventáře v CRACI přesně ukazuje, které verze softwaru jsou nasazeny ve kterých produktech, globálně. Když se objeví nová zranitelnost, vidíte, které produkty používají dotčenou verzi, místo abyste to skládali z poznámek k vydání a tabulek.

Přechod ze Syft a Grype

Na CRACI není třeba generovat SBOM ani udržovat krok skenování. Runner zaznamená SBOM během běhu buildu a CRACI ji i po dokončení buildu dál kontroluje na nové zranitelnosti. Syft a Grype zůstávají nástroji pro image a software třetích stran, který jste nesestavili, a pro pipeline mimo GitHub Actions.

Pro Cyber Resilience Act

CRA požaduje, aby výrobci dokumentovali komponenty každého produktu, včetně SBOM, a řešili v nich zranitelnosti. Syft a Grype umí takovou SBOM vytvořit a zkontrolovat, ale stopu důkazů od každého vydání zpět k jeho SBOM si musíte vybudovat sami. CRACI zaznamenává SBOM pro každý build a exportuje ji jako CycloneDX nebo SPDX. Automatizuje významnou část přehledu o softwarovém dodavatelském řetězci a důkazů, které firmy potřebují pro svůj širší proces dosažení souladu s CRA. Viz co je CRA a generování SBOM během buildu.

Porovnejte zaznamenanou SBOM s výstupem Syftu

Rezervujte si demo: spustíme jeden z vašich workflow GitHub Actions na CRACI a porovnáme jeho SBOM s tím, co pro stejný commit najde Syft.

Rezervujte si demo