Porównanie
CRACI vs Exein
Exein zabezpiecza urządzenie: agent działa na nim, a analizator sprawdza firmware przed wydaniem. CRACI zabezpiecza build: runner, na którym powstaje Państwa obraz Yocto, oraz zapis tego, co do niego trafiło.
Zaktualizowano
Krótka odpowiedź
Exein tworzy produkty bezpieczeństwa dla urządzeń wbudowanych i połączonych. Exein Runtime obserwuje i blokuje zagrożenia na
samym urządzeniu, a Exein Analyzer skanuje firmware pod kątem podatności przed wydaniem. Warstwa Yocto firmy Exein,
meta-exein, umieszcza agenta runtime w Państwa obrazie. CRACI to runner GitHub Actions: działa na nim Państwa build
Yocto, a CRACI rejestruje, co build pobrał, i ogranicza, z czym może się łączyć. Exein działa na urządzeniu i firmware, CRACI
działa na buildzie. Większość zespołów, które potrzebują obu, będzie używać obu.
W skrócie
| Funkcja | CRACI | Exein |
|---|---|---|
| Uruchamia Państwa buildy Yocto | BitBake na runnerach do 32 vCPU | Integruje się z Państwa obecnym pipeline'em |
| Rejestruje, co pobrał build | Obserwowane przez runner podczas każdego zadania | Analizuje firmware lub dostarczony przez Państwa SBOM |
| Polityka ruchu wychodzącego podczas buildu | Sprawdzana przed zadaniem, blokuje w razie błędu | Poza zakresem |
| Agent bezpieczeństwa na urządzeniu | Exein Runtime, oparty na eBPF | |
| Warstwa Yocto dla Państwa obrazu | CRACI uruchamia build, nie dodaje niczego do obrazu | meta-exein dodaje Pulsar do obrazu |
| Binarna analiza firmware | Exein Analyzer | |
| Priorytetyzacja według osiągalności | Ocena osiągalności i filtrowanie LLM | |
| SBOM | Z buildu, ze stanem kompletności | Generowany przez Exein Analyzer |
| Dowody dla CRA | SBOM-y w CycloneDX lub SPDX, zapisy przez API; brak eksportu raportów | Mapowanie dowodów dla CRA w Analyzer |
- W zestawie
- Częściowo
- Brak
Czym jest integracja Exein z Yocto
Te dwa produkty łatwo pomylić, ponieważ oba wspominają o Yocto, warto więc wyrażać się precyzyjnie. meta-exein to
warstwa Yocto open source, która zawiera Pulsar i receptury jądra pozwalające dodać do obrazu framework bezpieczeństwa Pulsar.
Dodają Państwo warstwę do bblayers.conf, dopisują pulsar do IMAGE_INSTALL i włączają BTF,
a Państwa obraz zawiera Pulsar, oparte na eBPF narzędzie Exein do ochrony w czasie działania. Warstwa jest testowana na wydaniach
Yocto od Kirkstone wzwyż, a w 2024 stała się oficjalną warstwą Yocto Project Compatible. Exein dołączył do Yocto Project jako
Platinum Member w 2023.
Innymi słowy, warstwa Exein zmienia to, co działa na urządzeniu. Nie uruchamia Państwa buildu ani nie rejestruje, co build pobrał. Exein podaje też, że Exein Analyzer jest natywnie zintegrowany z Yocto, Buildroot i Państwa pipeline'em CI/CD, dzięki czemu skanuje każdy nowy build, co oznacza analizę wyniku buildu w Państwa własnym pipeline'ie.
Co Exein robi dobrze
Ochrona urządzenia w czasie działania. Exein Runtime jest napisany w Rust i używa eBPF do monitorowania i blokowania złośliwego zachowania na poziomie jądra, w chwili gdy próbuje się ono uruchomić. W całej flocie śledzi incydenty i generuje raporty śledcze i zgodności z telemetrii zbieranej w czasie działania. Exein publikuje też jako open source Pulsar, opisywany jako modułowe i bardzo szybkie narzędzie bezpieczeństwa w czasie działania dla IoT, oparte na eBPF.
Analiza firmware przed wydaniem. Exein Analyzer bezpośrednio sprawdza finalne firmware lub przyjmuje Państwa SBOM, gdy plik binarny nie jest dostępny. Exein podaje, że obejmuje Linux, RTOS, Docker, UEFI, Android i inne, a dzięki ocenie osiągalności i filtrowaniu opartemu na LLM stawia na pierwszym miejscu możliwe do wykorzystania CVE.
Naprawa i mapowanie CRA. Exein opisuje naprawę opartą na AI, która działa w pipeline'ach Yocto i CI/CD, oraz mapuje znaleziska na wymagania Cyber Resilience Act.
Czym różni się CRACI
Uruchamia build
Buildy Yocto są długie i ciężkie. CRACI uruchamia BitBake z Państwa workflow GitHub Actions na runnerach do 32 vCPU i 96 GB RAM,
ustawianych przez cracicorp/setup@v1 i size: "32". Zadania działają w izolowanych maszynach wirtualnych,
a uruchomienia nadal są widoczne w GitHub.
Rejestruje, co pobrał build
Podczas działania zadania CRACI obserwuje ruch do hostów pakietów i źródeł i zachowuje go jako dowody z buildu, ze stanem
kompletności dla każdego zadania i każdego cache. W przypadku Yocto to niezależny zapis tego, co przyszło przez sieć, łącznie z
tym, co pomija SBOM SPDX z klasy create-spdx w Yocto: w
równoległym buildzie core-image-sato SBOM CRACI zawierał każdy komponent z
SBOM Yocto, 88 dodatkowych, takich jak pakiety hosta i GitHub Actions, oraz URL pakietu dla każdej z 653 wersji crate'ów Rust, które
Yocto wymienia bez niego. Źródła pobierane przez BitBake z mirrora źródeł Yocto są rejestrowane w SBOM zadania CRACI.
Kontroluje, z czym build może się łączyć
BitBake może ograniczać swój fetcher przez BB_ALLOWED_NETWORKS. CRACI dodaje politykę ruchu wychodzącego na runnerze,
walidowaną przed startem zadania i blokującą ruch w razie błędu, więc skrypt lub narzędzie omijające fetcher nadal nie dotrze do
hosta, na który Państwo nie zezwolili. CRACI powiadamia o naruszeniu alertem.
Obserwuje to, co dostarczono
API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu. CRACI agreguje podatności z wielu buildów i repozytoriów oraz nadal ponownie ocenia monitorowane SBOM-y.
CRACI nie umieszcza niczego na urządzeniu i nie analizuje plików binarnych. Jeśli potrzebują Państwo ochrony w czasie działania lub skanu gotowego obrazu, to domena Exein.
Inwentarz tego, co jest gdzie 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ść, widzą Państwo, które produkty działają na podatnej wersji, zamiast składać to z informacji o wydaniach i arkuszy kalkulacyjnych.
Kiedy które narzędzie, a kiedy oba
- Chcą Państwo wykrywać i blokować zagrożenia na urządzeniach w terenie. Exein Runtime. CRACI nie ma komponentu działającego na urządzeniu.
- Państwa buildy Yocto działają na serwerze pod biurkiem lub trwają godzinami na małych runnerach CI. CRACI uruchamia je z GitHub Actions i zachowuje zapis każdego z nich.
-
Dostarczają Państwo obraz Yocto z
meta-exein. Warto budować go na CRACI. Warstwa buduje się jak każda inna, a CRACI rejestruje, co pobrał build. - Muszą Państwo pokazać, skąd pochodzi SBOM. Zapis z runnera CRACI wiąże SBOM z konkretnym buildem. Skan wyniku przez Exein Analyzer to użyteczny drugi punkt widzenia.
Na potrzeby CRA
Cyber Resilience Act wymaga od producentów dokumentowania komponentów ich produktów, w tym przez SBOM, obsługi podatności przez cały okres wsparcia, a od września 2026 także zgłaszania aktywnie wykorzystywanych podatności. Exein pomaga po stronie urządzenia, analizą firmware przed wydaniem, mapowaniem dowodów dla CRA i telemetrią z urządzeń w terenie. CRACI pomaga po stronie buildu, dowodami z każdego buildu na to, co trafiło do firmware, danymi o pochodzeniu, bieżącym monitorowaniem i eksportem SBOM w formacie CycloneDX lub SPDX. CRACI automatyzuje znaczną część widoczności łańcucha dostaw oprogramowania i dowodów potrzebnych producentom w szerszym procesie zgodności z CRA; sam nie zapewnia zgodności produktu. Zob. czego wymaga CRA.
Dodanie CRACI do workflow Yocto
Warstwy, łącznie z meta-exein, oraz krok Exein Analyzer pozostają bez zmian. Wystarczy ustawić runs-on: craci
w zadaniu buildu i wybrać rozmiar runnera. Przykład Yocto w dokumentacji CRACI buduje core-image-sato z oficjalnym mirrorem źródeł Yocto i odpowiednim
ustawieniem BB_ALLOWED_NETWORKS. CRACI obsługuje dziś tylko GitHub Actions, a GitLab CI i Jenkins są w planach rozwoju.
Więcej o tym, jak CRACI działa dla
przemysłowego IoT i elektroniki
użytkowej.
Proszę przynieść build Yocto na demo
Proszę umówić demo, a uruchomimy jeden z Państwa buildów BitBake na runnerze CRACI i omówimy, co pobrał.
Umów demo