Bezpieczeństwo łańcucha dostaw oprogramowania rejestrowane z każdego buildu
Łańcuch dostaw oprogramowania spotyka się z Państwa produktem w buildzie CI. CRACI uruchamia Państwa zadania GitHub Actions na bezpiecznych runnerach i rejestruje każdą pobieraną zależność, kontroluje, z czym każdy build może się łączyć, i nadal śledzi podatności w dostarczonym oprogramowaniu.
Bezpieczne runnery dla GitHub Actions
Wystarczy zmienić runs-on na craci, a Państwa zadania GitHub Actions będą działać na runnerach CRACI, z uruchomieniami nadal widocznymi w GitHub. Każde zadanie otrzymuje własną, odizolowaną maszynę wirtualną z Linuksem na x86-64 lub ARM64, hostowaną w Europie. Buildy działają mniej więcej dwa razy szybciej niż na runnerach hostowanych przez GitHub dzięki szybszemu sprzętowi, krótszym kolejkom i cache.
SBOM rejestrowany z każdego buildu
CRACI rejestruje, a nie skanuje. Proxy rozpoznające pakiety na runnerze widzi każdy pakiet pobierany przez zadanie z npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk i źródeł Git, a także z presetów pobierania Yocto i OpenEmbedded, łącznie z pakietami przywróconymi z cache CI. SBOM każdego zadania ma stan kompletności i eksportuje się go w formacie CycloneDX lub SPDX z zależnościami przechodnimi i deklarowaną licencją każdego komponentu.
Kontrola nad tym, z czym łączy się build
Polityka ruchu wychodzącego określa, z którymi hostami zadanie może się łączyć: domyślnie blokuj lub domyślnie zezwalaj, 24 wbudowane presety źródeł oprogramowania, typowane własne źródła dla rejestrów pakietów i Git oraz jawne reguły sieciowe. Polityka jest weryfikowana przed startem zadania i w razie problemu blokuje ruch (fail closed), a naruszenia wywołują alert. Przejęta zależność lub krok buildu nie może po cichu wysłać danych do hosta, którego Państwo nigdy nie zatwierdzili.
Pochodzenie (provenance) dostarczanego oprogramowania
Publiczne REST API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu dla każdego zadania, wszystkie zarejestrowane z tego samego buildu. Dowody powstają w samym buildzie, bez dodatkowego kroku w workflow.
Śledzenie podatności po wydaniu
CRACI na bieżąco ponownie ocenia SBOM-y dostarczonego oprogramowania w miarę publikowania nowych podatności i agreguje znaleziska z wielu buildów i repozytoriów. Zespoły bezpieczeństwa je analizują i przekazują każde zespołowi odpowiedzialnemu za poprawkę. Bramki polityk mogą zablokować build z powodu znalezisk lub licencji, VEX jest obsługiwany, SBOM-y dostawców są monitorowane razem z Państwa buildami, a widok inwentarza pokazuje, które wersje oprogramowania są wdrożone w których produktach.
Dowody dla klientów i audytorów
Klienci, audytorzy i przepisy coraz częściej wymagają SBOM dla każdego wydania i zapisu tego, jak obsłużono podatności. CRACI eksportuje SBOM-y w formacie CycloneDX lub SPDX, łącznie z podatnościami znalezionymi w ich komponentach, a publiczne REST API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu. Te same dowody wspierają unijny Cyber Resilience Act, NIS2, wymagania FDA dotyczące SBOM i zabezpieczenia łańcucha dostaw z ISO 27001.
Pytania, które rodzi incydent w łańcuchu dostaw
Gdy przejęty zostaje pakiet, akcja CI lub rejestr, pierwsze godziny upływają na ustalaniu, czy to Państwa dotyczy. Oto pytania, które zadają zespoły, i miejsca, w których odpowiada na nie zapis buildu w CRACI.
| Pytanie | Jak odpowiada CRACI |
|---|---|
| Czy któryś z naszych buildów pobrał przejętą wersję pakietu? | SBOM każdego buildu wymienia pakiety, które zadanie faktycznie pobrało, więc przeszukują Państwo zarejestrowane buildy zamiast ponownie skanować repozytoria. |
| Których z naszych produktów i wydań to dotyczy? | Monitorowane SBOM-y są stale ponownie oceniane, a widok inwentarza przypisuje wersje oprogramowania do produktów, w których są wdrożone. |
| Czy krok buildu mógł gdzieś wysłać sekrety? | Ślad sieciowy każdego zadania rejestruje nawiązane połączenia, a polityka ruchu wychodzącego blokuje hosty spoza polityki, zanim zostanie z nimi nawiązane połączenie. |
| Czy ten SBOM jest wystarczająco kompletny, by go przekazać? | SBOM każdego zadania określa swoją kompletność: Complete, Complete with connections, Incomplete, Unavailable lub Not recorded. |
| Kto to naprawia i czy możemy udowodnić, że sprawa została obsłużona? | Znaleziska są analizowane i przekazywane odpowiedzialnym zespołom, a SBOM-y eksportuje się w formacie CycloneDX lub SPDX z podatnościami znalezionymi w ich komponentach. |
CRACI obejmuje build i to, co z niego wychodzi. Skanowanie kodu, skanowanie sekretów i analiza osiągalności pozostają w gestii Państwa narzędzi do bezpieczeństwa aplikacji. Obecnie obsługiwany jest GitHub Actions, a inne systemy CI są w planach rozwoju.
Bezpieczeństwo łańcucha dostaw oprogramowania: odpowiedzi
Co obejmuje, dlaczego należy do CI/CD i jaką rolę pełni CRACI
Czym jest bezpieczeństwo łańcucha dostaw oprogramowania?
Bezpieczeństwo łańcucha dostaw oprogramowania chroni wszystko, co trafia do oprogramowania między pierwszym commitem a wydaniem: zależności open source, obrazy bazowe, narzędzia buildu, zewnętrzne akcje CI, sam pipeline CI i dostarczane artefakty. Oznacza to wiedzę, czym są te elementy, kontrolę nad tym, skąd pochodzą, i możliwość udowodnienia, co trafiło do każdego wydania.
Dlaczego zabezpieczać łańcuch dostaw oprogramowania w CI/CD?
To w buildzie wydania zależności są rozwiązywane, pobierane i pakowane. Build produkcyjny to nie build z laptopa: zakresy wersji, zmienne tagi i cache sprawiają, że może pobrać coś innego. Zapis wykonany w trakcie buildu wydania to jedyny wiarygodny zapis tego, co zostało dostarczone, a runner buildu to miejsce, w którym można kontrolować, z czym build może się łączyć.
Czym CRACI różni się od skanera bezpieczeństwa łańcucha dostaw?
Skanery odczytują pliki po fakcie: manifest, lockfile, kod źródłowy lub gotowy plik binarny. CRACI jest runnerem dla Państwa zadań GitHub Actions, więc obserwuje build na bieżąco i rejestruje pakiety, które każde zadanie faktycznie pobrało, łącznie z pakietami przywróconymi z cache CI. Każdy SBOM określa własną kompletność, polityka ruchu wychodzącego kontroluje, z czym build może się łączyć, a API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu.
Czy CRACI zastępuje moje workflow GitHub Actions?
Nie. CRACI zastępuje runner, a nie GitHub Actions. Wystarczy zmienić runs-on na craci, a Państwa workflow, wyzwalacze i historia uruchomień pozostaną w GitHub.
Jakie systemy CI i platformy obsługuje CRACI?
Obecnie GitHub Actions; inne systemy CI, w tym GitLab CI i Jenkins, są w planach rozwoju. Runnery działają na Linuksie na x86-64 i ARM64, a Windows i macOS są w planach rozwoju.
Czy CRACI wykonuje SAST, skanowanie sekretów lub analizę osiągalności?
Nie. CRACI rejestruje i kontroluje build, śledzi podatności w dostarczonym oprogramowaniu i tworzy dowody. Skanowanie własnego kodu pod kątem błędów lub sekretów oraz analiza osiągalności to zadania dla narzędzia do bezpieczeństwa aplikacji.
Gdzie przechowywane są dane moich buildów?
CRACI jest hostowany w Europie, na europejskiej infrastrukturze bare-metal, a dane są domyślnie przechowywane przez 180 dni, z niestandardowym okresem przechowywania w planie Enterprise. CRACI nie przechowuje Państwa kodu źródłowego. CRACI ma certyfikat ISO 27001; szczegóły znajdą Państwo w Trust Center.
Co naprawdę pobierają Państwa buildy
Prosimy umówić demo, aby zobaczyć SBOM, ślad sieciowy, politykę ruchu wychodzącego i dane o pochodzeniu, które CRACI rejestruje dla buildu GitHub Actions
Umów demo