O 123% więcej zgłoszonych CVE dziennie w 2026 niż przed rokiem.

Porównanie

CRACI vs Dependency-Track

Dependency-Track jest tylko tak dobry jak otrzymywane przez niego SBOM-y. CRACI rejestruje SBOM tam, gdzie oprogramowanie jest faktycznie budowane, i stamtąd go monitoruje, więc nie potrzebują już Państwo generatora na początku i platformy analitycznej na końcu.

Zaktualizowano

Co Dependency-Track robi dobrze

Strona główna Dependency-Track
dependencytrack.org

OWASP Dependency-Track to mocny wybór do analizy komponentów. Jest open source na licencji Apache 2.0, śledzi użycie komponentów we wszystkich wersjach wszystkich aplikacji w Państwa portfolio i pobiera dane o podatnościach z kilku źródeł, w tym z National Vulnerability Database i GitHub Advisories. Jego silnik polityk obejmuje reguły bezpieczeństwa, licencyjne i operacyjne, a platforma przyjmuje i tworzy dokumenty CycloneDX VEX. Projekt oparty na API pasuje do CI/CD: pipeline'y przesyłają SBOM-y do /api/v1/bom.

Zespoły z sektorów regulowanych cenią go za przejrzystość, samodzielny hosting i oparcie na standardowym formacie. Jego słabym punktem nie jest analiza, lecz to, co do niej trafia.

Analiza zależy od danych wejściowych

Dependency-Track przyjmuje SBOM-y, ale ich nie generuje. Każde znalezisko, naruszenie polityki i widok portfolio zależą od SBOM wysłanego przez Państwa pipeline. Jeśli w SBOM brakuje zależności, Dependency-Track nie może jej oznaczyć. Jeśli dwa generatory dają różne wyniki, Dependency-Track pokaże ten, który Państwo przesłali.

W praktyce generatory SBOM często dają różne wyniki, a powody podaje ich własna dokumentacja:

  • Brak wspólnej podstawy. Każdy generator sam decyduje, co uznać za komponent i którym plikom ufać, więc dwa z nich skierowane na jedno repozytorium zwracają częściowo pokrywające się, ale różne listy.
  • Pomijanie oczywistości. Narzędzie, które rozwiązuje zależności z lockfile, nie ma czego rozwiązywać w repozytorium, które żadnego nie zawiera, jak express 5.2.1. Nadal może zwrócić listę złożoną z tego, co jeszcze rozpozna, na przykład GitHub Actions i plików workflow.
  • Wahania zależne od konfiguracji. Syft dobiera swoje katalogery według typu skanu, więc jedna flaga zmienia to, co to samo narzędzie w tej samej wersji zgłasza z tego samego checkoutu.
  • Brak manifestu, brak SBOM. Repozytorium bez żadnego manifestu zależności nie daje skanerowi plików nic, na czym mógłby pracować, a to, co zwraca wtedy każde narzędzie, mówi więcej o narzędziu niż o projekcie.
  • Skąpe metadane. Większość generatorów nie ma źródła dla pola dostawcy NTIA, więc pozostaje ono puste bez względu na zawartość repozytorium.

CRACI nie można porównać w ten sposób. Rejestruje buildy, a nie skanuje katalogu, więc nie da się go uruchomić tak samo. Nie chodzi o to, że któreś z tych narzędzi jest złe. Chodzi o to, że statyczny skan repozytorium to oszacowanie tego, czego użyje build, a oszacowanie zmienia się wraz z narzędziem, jego ustawieniami i obecnymi plikami.

Funkcja CRACI Dependency-Track
Generuje SBOM-y Rejestrowane przez runner podczas każdego buildu Analizuje przesłane SBOM-y CycloneDX
Skąd pochodzi lista komponentów Zaobserwowany ruch do źródeł pakietów podczas zadania, łącznie z pakietami przywróconymi z cache CI Dowolny generator SBOM uruchamiany na wcześniejszym etapie
Stan kompletności SBOM Pięć stanów dla każdego zadania i cache Zależy od otrzymanego SBOM
Ciągła analiza podatności Monitorowane SBOM-y ponownie oceniane w wielu buildach i repozytoriach NVD, GitHub Advisories i inne źródła
Polityki bezpieczeństwa, licencyjne i operacyjne Polityka licencyjna i bramki blokujące buildy Polityki globalne i dla poszczególnych projektów
VEX Przyjmuje i tworzy CycloneDX VEX
Trwały triage Triage i przekazywanie znalezisk zespołom; komentarze w planach rozwoju W całym portfolio
Polityka ruchu wychodzącego buildu Domyślna odmowa lub zezwolenie, blokuje w razie błędu Analizuje SBOM-y po buildzie
Open source hostowany samodzielnie Dziś usługa zarządzana; runnery hostowane przez klienta w planach rozwoju, Enterprise Apache 2.0, hostują i utrzymują go Państwo sami
  • W zestawie
  • Brak
  • W planach rozwoju

Co CRACI zmienia u źródła

SBOM pochodzi z buildu

CRACI to runner zgodny z GitHub Actions. Wystarczy zmienić runs-on na craci, a Państwa zadania działają na CRACI w izolowanych maszynach wirtualnych. Podczas każdego zadania proxy rozpoznające pakiety rejestruje ruch do źródeł pakietów: npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk i źródeł Git, a także presety pobierania. Dowody zależności przemieszczają się razem z cache CI, więc pakiet przywrócony z cache nadal jest w zapisie. SBOM, w formacie CycloneDX lub SPDX, zawiera wszystkie zależności przechodnie, których build faktycznie użył.

Informuje, gdy jest niekompletny

Każdy SBOM CRACI ma stan kompletności dla każdego zadania i każdego cache: Complete, Complete with connections, Incomplete, Unavailable lub Not recorded. Wiedzą Państwo, czy każdy SBOM to pełny zapis, czy ma lukę. Ma to znaczenie, gdy audytor pyta, skąd wiadomo, że inwentarz jest kompletny.

Rejestruje SBOM wewnątrz buildu

CRACI generuje SBOM wewnątrz własnego runnera na podstawie tego, co pobrało zadanie. API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu.

Kontroluje, do czego build może dotrzeć

Ponieważ CRACI uruchamia zadanie, może egzekwować politykę ruchu wychodzącego: domyślna odmowa lub domyślne zezwolenie, z 24 wbudowanymi presetami źródeł oprogramowania i typowanymi źródłami niestandardowymi. Polityki są weryfikowane przed startem zadania i w razie błędu blokują ruch. Dependency-Track może po fakcie poinformować, że komponent jest ryzykowny; polityka ruchu wychodzącego ogranicza to, z jakich źródeł build w ogóle mógł pobierać.

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 pojawia się nowa podatność, widać, które produkty działają na dotkniętej wersji, bez składania tego z notatek o wydaniach i arkuszy kalkulacyjnych.

Zastąpienie Dependency-Track przez CRACI

CRACI obejmuje obie połowy zadania, które dotąd wymagało generatora i Dependency-Track. Tworzy SBOM w buildzie, stale ponownie ocenia monitorowane SBOM-y w miarę publikowania nowych podatności, agreguje znaleziska z wielu buildów i repozytoriów oraz pozwala zespołom bezpieczeństwa wykonywać ich triage i przekazywać każde z nich zespołowi odpowiedzialnemu za poprawkę. Nie ma kroku przesyłania do utrzymywania ani serwera do uruchamiania.

Trzeba jasno powiedzieć, z czego Państwo rezygnują. Silnik polityk Dependency-Track jest dojrzały. CRACI ma politykę licencyjną i bramki polityk blokujące buildy, a komentarze i alerty progowe są w planach rozwoju. Dependency-Track jest też open source i hostowany samodzielnie, podczas gdy CRACI jest dziś usługą zarządzaną, a runnery hostowane przez klienta są w planach rozwoju dla Enterprise. Jeśli te kwestie są ważniejsze niż jakość inwentarza, warto pozostać przy Dependency-Track.

Dlaczego ma to znaczenie w sektorach regulowanych

Zgodnie z unijnym Cyber Resilience Act producenci muszą wiedzieć, co znajduje się w każdym wydaniu produktu, i obsługiwać jego podatności, a obowiązki raportowania aktywnie wykorzystywanych podatności wchodzą w życie we wrześniu 2026. Podatność, której Państwo nie widzą, bo SBOM pominął komponent, nadal jest Państwa podatnością.

CRACI automatyzuje znaczną część widoczności łańcucha dostaw oprogramowania i dowodów, których firmy potrzebują w szerszym procesie zgodności z CRA, i eksportuje SBOM-y w formacie CycloneDX lub SPDX, łącznie z podatnościami. Inwentarz i monitorowanie pochodzą z tego samego zapisu tego, z czego zbudowano każde wydanie. Zob. zgodność z CRA, przemysłowy IoT i telekomunikacja.

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.

Proszę porównać swój SBOM z SBOM-em CRACI

Proszę uruchomić jeden workflow GitHub Actions na CRACI i porównać jego SBOM z tym, który tworzy obecny generator.

Umów demo