Porównanie
CRACI i Chainguard
Chainguard utwardza to, co trafia do Państwa buildu: obrazy kontenerów, biblioteki językowe i GitHub Actions. CRACI zabezpiecza i rejestruje sam build. Jeden oczyszcza składniki, drugi rejestruje, co się z nimi stało.
Zaktualizowano
Krótka odpowiedź
Chainguard buduje oprogramowanie open source z kodu źródłowego i dostarcza je utwardzone: minimalne obrazy kontenerów z niewielką liczbą znanych podatności lub bez nich, przebudowane biblioteki językowe, obrazy VM i utwardzone GitHub Actions, każde z podpisanym SBOM i danymi o pochodzeniu. Jeśli Państwa problem polega na tym, że obrazy bazowe i pakiety, od których Państwo zaczynają, mają zbyt wiele CVE, Chainguard uderza wprost w ten problem.
CRACI to runner CI dla GitHub Actions. Państwa zadania działają na nim, a podczas ich działania rejestruje każdą pobieraną przez nie zależność zewnętrzną i egzekwuje politykę ruchu wychodzącego. Chainguard zabezpiecza składniki. CRACI zabezpiecza i rejestruje build. Te produkty w bardzo niewielkim stopniu się pokrywają i naturalnie się uzupełniają.
W skrócie
| Funkcja | CRACI | Chainguard |
|---|---|---|
| Uruchamia Państwa buildy | Zadania działają na runnerach CRACI | Dostarcza obrazy i biblioteki używane w buildach |
| Rejestruje, co pobrał Państwa build | Zaobserwowane pobrania, łącznie z pakietami z cache CI | Jego SBOM-y opisują własne artefakty Chainguard |
| Polityka ruchu wychodzącego buildu | Domyślna odmowa lub zezwolenie, blokuje w razie błędu | Poza jego zakresem: nie uruchamia buildów |
| SBOM-y | Dla Państwa artefaktów, dla każdego buildu, z określoną kompletnością | Podpisany SBOM SPDX przy każdym obrazie kontenera |
| Podpisane dane o pochodzeniu | Brak podpisanych danych o pochodzeniu | Dane o pochodzeniu SLSA dla jego obrazów i bibliotek |
| Śledzenie podatności | Monitorowane SBOM-y są ponownie oceniane | Biuletyny i przebudowy artefaktów Chainguard |
| Utwardzone, minimalne obrazy kontenerów | Katalog obrazów zero-CVE budowanych z kodu źródłowego | |
| Biblioteki przebudowane z kodu źródłowego | Java, Python i JavaScript | |
| SLA na usuwanie CVE | 7 dni dla krytycznych, 14 dni dla pozostałych poziomów ważności | |
| Utwardzone GitHub Actions | Chainguard Actions, budowane z kodu źródłowego | |
| Ceny | $0.002 za minutę vCPU ($0.004 za 2 vCPU), naliczane co sekundę; bez opłaty miesięcznej i bez opłat za SBOM | Do pięciu obrazów kontenerów bezpłatnie; katalog od $19K dla zespołu 10 osób, ceny za obraz według wyceny indywidualnej (stan na wrzesień 2026). |
- W zestawie
- Brak
Co Chainguard robi dobrze
Chainguard Containers to, jak ujmuje to Chainguard, katalog obrazów kontenerów zero-CVE budowanych z kodu źródłowego. Każdy obraz ma podpisaną atestację SBOM w formacie SPDX i atestację pochodzenia SLSA 1.0 opisującą środowisko buildu, a wszystko to można zweryfikować za pomocą cosign. Klienci mogą też otrzymać SBOM-y CycloneDX dla nowszych buildów.
Polityka dotycząca CVE jest konkretna. Wobec klientów z zamówieniem Chainguard zobowiązuje się usuwać krytyczne CVE w ciągu 7 dni kalendarzowych, a CVE wysokie, średnie i niskie w ciągu 14 dni kalendarzowych od publicznego udostępnienia kwalifikującej się poprawki, dla wspieranych strumieni wersji swoich obrazów.
Chainguard Libraries stosuje to samo podejście do pakietów językowych. To katalog zależności Java, Python i JavaScript przebudowanych ze zweryfikowanego kodu źródłowego zamiast pobieranych jako gotowe artefakty, dostarczany jako źródło upstream dla JFrog Artifactory, Sonatype Nexus Repository lub Cloudsmith. Każdy pakiet ma podpisy Sigstore, podpisany SBOM i dane o pochodzeniu SLSA Level 3. Chainguard Actions oferuje utwardzone wersje popularnych GitHub Actions, budowane z kodu źródłowego i stale skanowane, a Chainguard VMs stosuje ten model do obrazów maszyn wirtualnych.
CRACI nie wytwarza utwardzonych obrazów ani bibliotek i nie składa żadnych obietnic dotyczących liczby CVE w czymkolwiek, co Państwo pobierają. To zadanie Chainguard.
Czym różni się CRACI
Obserwuje Państwa build, a nie build Chainguard
SBOM-y i dane o pochodzeniu Chainguard opisują artefakty Chainguard, zbudowane w fabryce Chainguard. Państwa build i tak gdzieś działa i pobiera więcej niż obraz bazowy: Państwa własne zależności, toolchainy, narzędzia pobierane przez skrypty instalacyjne i wszystko, co ściągnie krok workflow. CRACI to rejestruje. Proxy rozpoznające pakiety na runnerze obserwuje ruch do źródeł pakietów: npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk i źródeł Git. Dowody są przenoszone razem z cache CI, a każdy SBOM określa swoją kompletność dla każdego zadania i każdego cache: Complete, Complete with connections, Incomplete, Unavailable lub Not recorded.
Ogranicza to, do czego build ma dostęp
Utwardzone składniki pomagają tylko wtedy, gdy build faktycznie ich używa. Polityka ruchu wychodzącego CRACI działa w trybie domyślnej odmowy lub domyślnego zezwolenia, z 24 wbudowanymi presetami źródeł oprogramowania i typowanymi źródłami niestandardowymi dla rejestrów, w tym rejestrów OCI i Git. Polityki są weryfikowane przed startem zadania, a w razie błędu blokują ruch. Polityka, która zezwala na Państwa rejestr Chainguard i repozytorium artefaktów, a poza tym na niewiele więcej, zmienia „używamy Chainguard” z przyjętej konwencji w coś, co egzekwuje runner.
Nadal obserwuje to, co Państwo dostarczyli
API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu. CRACI nadal ponownie ocenia monitorowane SBOM-y pod kątem nowych podatności. SBOM-y eksportuje się w formacie CycloneDX lub SPDX, łącznie z podatnościami.
Inwentarz tego, co gdzie jest wdrożone
Widok inwentarza CRACI pokazuje dokładnie, które wersje oprogramowania są wdrożone w których produktach, na całym świecie. Gdy pojawi się nowa podatność, widzą Państwo, które produkty używają podatnej wersji, zamiast składać to z informacji o wydaniach i arkuszy kalkulacyjnych.
Wspólne użycie
Typowa konfiguracja:
- Chainguard dostarcza obrazy bazowe oraz, przez Państwa repozytorium artefaktów, przebudowane biblioteki.
- CRACI uruchamia oparte na nich zadania GitHub Actions z polityką ruchu wychodzącego, która zezwala na zatwierdzone przez Państwa źródła, i rejestruje, co pobrało każde zadanie.
OCI należy do ekosystemów wykrywanych przez CRACI, a CRACI współpracuje z mirrorami JFrog Artifactory dla npm i PyPI, więc obrazy oraz pakiety Python lub JavaScript, które docierają tą drogą, są częścią zapisu buildu. Obsługa Maven, obejmująca Chainguard Libraries dla Javy, jest w planach rozwoju.
Co wybrać
- Skanery wciąż oznaczają CVE w Państwa obrazach bazowych: Chainguard zastępuje te obrazy utwardzonymi.
- Potrzebują Państwo dowodów, co trafiło do każdego wydania: CRACI rejestruje je z buildu.
- Chcą Państwo buildów, które mają dostęp tylko do zatwierdzonych źródeł: polityka ruchu wychodzącego CRACI egzekwuje to na runnerze.
- Chcą Państwo zarówno czystych składników, jak i zarejestrowanego buildu: należy używać ich razem, jak opisano powyżej.
Na potrzeby Cyber Resilience Act
Punkt wyjścia w postaci komponentów z niewielką liczbą znanych podatności, udokumentowanego SLA na usuwanie i podpisanych SBOM-ów ułatwia producentowi obsługę podatności. Tu pomaga Chainguard. CRACI automatyzuje znaczną część widoczności łańcucha dostaw oprogramowania i dowodów potrzebnych firmom w szerszym procesie zgodności z CRA: co trafiło do każdego wydania oraz bieżące śledzenie podatności. Żaden z nich sam w sobie nie zapewnia zgodności produktu. Zob. czym jest CRA oraz zgodność z CRA.
Dodanie CRACI do konfiguracji z Chainguard
Wystarczy zainstalować aplikację CRACI GitHub App, a następnie zmienić runs-on na craci w
workflow, które mają być rejestrowane. Państwa pliki Dockerfile i konfiguracja pakietów pozostają bez zmian. CRACI obsługuje
dziś GitHub Actions; GitLab CI, Jenkins i inne systemy CI są w planach rozwoju. Więcej o
generowaniu SBOM w czasie buildu i
integracji CI/CD.
Build na czystych składnikach, z dowodem
Proszę uruchomić na runnerze CRACI jeden workflow GitHub Actions, który używa Państwa obrazów Chainguard, i obejrzeć pozostawiony przez niego zapis.
Umów demo