VEX dla Zgodności z CRA: Przewodnik Vulnerability Exploitability eXchange
Jak używać dokumentów VEX dla zgodności z CRA. Obejmuje formaty VEX, typy statusów, integrację ze SBOM i praktyczne przykłady komunikowania zastosowania podatności.
In this article
Nie każda podatność w waszym SBOM wpływa na wasz produkt. VEX (Vulnerability Exploitability eXchange) pozwala komunikować, które podatności rzeczywiście dotyczą waszego konkretnego produktu i kontekstu. Dla zgodności z CRA, VEX pomaga wykazać, że oceniliście podatności i zajęliście się tymi, które mają znaczenie.
Ten przewodnik wyjaśnia, jak efektywnie używać VEX.
Informacja: VEX (Vulnerability Exploitability eXchange) pozwala komunikować, które podatności w waszym SBOM rzeczywiście wpływają na wasz produkt -- a które nie. Jest to niezbędne do spełnienia wymogu CRA "brak znanych podatności możliwych do wykorzystania".
Podsumowanie
- VEX = oświadczenie czytelne maszynowo o zastosowaniu podatności
- Odpowiada na: "Czy CVE-XXXX wpływa na MÓJ produkt?"
- Cztery statusy: Nie Dotyczy, Dotyczy, Naprawiono, W Trakcie Badania
- Uzupełnia SBOM, SBOM wymienia komponenty, VEX ocenia podatności
- CycloneDX VEX i CSAF VEX to główne formaty
- Niezbędne dla wymagania CRA "brak znanych eksploatowalnych podatności"
Czym jest VEX?
Problem, Który VEX Rozwiązuje
Gdy skanujecie SBOM, otrzymujecie listę podatności w komponentach:
WYNIKI SKANOWANIA SBOM (Typowe):
Komponent: openssl 1.1.1k
- CVE-2021-3711 (Krytyczna)
- CVE-2021-3712 (Wysoka)
- CVE-2022-0778 (Wysoka)
Komponent: zlib 1.2.11
- CVE-2018-25032 (Wysoka)
Komponent: libxml2 2.9.10
- CVE-2021-3517 (Wysoka)
- CVE-2021-3518 (Wysoka)
- CVE-2022-23308 (Średnia)
RAZEM: 8 znalezionych podatności
ALE CHWILA...
- Czy wszystkie te naprawdę wpływają na wasz produkt?
- Czy używana jest podatna ścieżka kodu?
- Czy już złagodziliście niektóre?
- Czy niektóre nie są eksploatowalne w waszym kontekście?
VEX odpowiada na te pytania.
Definicja VEX
VEX (Vulnerability Exploitability eXchange) to standardowy format do komunikowania:
- Czy podatność wpływa na konkretny produkt
- Dlaczego tak lub nie
- Jakie działania (jeśli jakiekolwiek) są potrzebne
- Obecny status oceny
Typy Statusów VEX
OPCJE STATUSU VEX
NIE DOTYCZY:
"Ta podatność nie wpływa na nasz produkt"
- Podatny kod nie jest obecny
- Podatna funkcja nie jest wywoływana
- Platforma nie ma zastosowania
- Złagodzono przez konfigurację
DOTYCZY:
"Ta podatność wpływa na nasz produkt"
- Wymaga działania
- Może zawierać zalecane łagodzenia
- Wskazuje dotkliwość w kontekście
NAPRAWIONO:
"Ta podatność została naprawiona"
- W konkretnej wersji
- Podano szczegóły naprawy
- Zalecenie aktualizacji
W TRAKCIE BADANIA:
"Nadal to oceniamy"
- Status jeszcze nie określony
- Trwa badanie
- Status tymczasowy
VEX i Wymagania CRA
Wymagania CRA dotyczące Podatności
CRA wymaga od producentów:
- Brak znanych eksploatowalnych podatności (przy wprowadzeniu na rynek)
- Obsługi podatności przez cały okres wsparcia
- Dostarczania aktualizacji bezpieczeństwa naprawiających podatności
- Raportowania aktywnie eksploatowanych podatności do ENISA (24h)
- Raportowania poważnych podatności do ENISA (72h)
Jak VEX Wspiera CRA
VEX DLA ZGODNOŚCI Z CRA
WYMAGANIE: Brak znanych eksploatowalnych podatności
ROLA VEX:
- Dokumentuj ocenę podatności
- Pokaż, które CVE zostały ocenione
- Wykaż ustalenia "nie dotyczy"
- Dowody dla pliku technicznego
WYMAGANIE: Obsługa podatności
ROLA VEX:
- Śledź zmiany statusu podatności
- Dokumentuj progresję "dotyczy" → "naprawiono"
- Komunikuj z klientami
- Utrzymuj ścieżkę audytu
WYMAGANIE: Aktualizacje bezpieczeństwa
ROLA VEX:
- Dokumentuj co jest naprawione w każdej aktualizacji
- Dostarczaj informację "naprawiono w wersji X"
- Narzędzie komunikacji z klientem
WYMAGANIE: Raportowanie ENISA
ROLA VEX:
- Wstępna ocena pomaga określić konieczność raportowania
- "Dotyczy" + "aktywnie eksploatowane" = raportuj
- Dokumentacja dla dokładności raportu
Wskazówka: CycloneDX ma natywne wsparcie dla VEX. Jeśli już generujesz SBOM w formacie CycloneDX, dodanie danych VEX jest proste.
Formaty VEX
CycloneDX VEX
CycloneDX zawiera funkcjonalność VEX jako część formatu SBOM:
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"vulnerabilities": [
{
"id": "CVE-2021-3711",
"source": {
"name": "NVD"
},
"analysis": {
"state": "not_affected",
"justification": "code_not_present",
"detail": "Nasz produkt używa OpenSSL, ale nie używa funkcjonalności SM2, gdzie istnieje ta podatność. SM2 nie jest skompilowane w naszej budowie."
},
"affects": [
{
"ref": "openssl-1.1.1k"
}
]
},
{
"id": "CVE-2022-0778",
"source": {
"name": "NVD"
},
"analysis": {
"state": "affected",
"detail": "Produkt jest dotknięty przy analizowaniu niezaufanych certyfikatów. Naprawiono w wersji 2.1.0."
},
"affects": [
{
"ref": "openssl-1.1.1k"
}
],
"recommendation": "Zaktualizuj do wersji produktu 2.1.0 lub nowszej"
}
]
}
CSAF VEX
CSAF (Common Security Advisory Framework) dostarcza samodzielny format dokumentu VEX:
{
"document": {
"category": "csaf_vex",
"title": "Ocena Bezpieczeństwa Produktu dla CVE-2021-3711",
"publisher": {
"category": "vendor",
"name": "Example Corp"
},
"tracking": {
"id": "EX-2024-001",
"status": "final",
"version": "1.0.0",
"current_release_date": "2024-01-15T10:00:00Z"
}
},
"product_tree": {
"branches": [
{
"category": "product_name",
"name": "Smart Sensor Pro",
"product": {
"product_id": "SSP-2.0",
"name": "Smart Sensor Pro 2.0"
}
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2021-3711",
"product_status": {
"known_not_affected": ["SSP-2.0"]
},
"flags": [
{
"label": "vulnerable_code_not_present",
"product_ids": ["SSP-2.0"]
}
],
"notes": [
{
"category": "description",
"text": "Funkcjonalność SM2 nie jest zawarta w naszej budowie OpenSSL."
}
]
}
]
}
OpenVEX
OpenVEX to prostszy, ukierunkowany format VEX:
{
"@context": "https://openvex.dev/ns/v0.2.0",
"@id": "https://example.com/vex/2024-001",
"author": "Example Corp Security Team",
"timestamp": "2024-01-15T10:00:00Z",
"statements": [
{
"vulnerability": {
"@id": "CVE-2021-3711"
},
"products": [
{
"@id": "pkg:generic/smart-sensor-pro@2.0"
}
],
"status": "not_affected",
"justification": "vulnerable_code_not_present",
"impact_statement": "Funkcjonalność kryptograficzna SM2 nie jest skompilowana w budowie OpenSSL naszego produktu."
}
]
}
Tworzenie Oświadczeń VEX
Proces Oceny
PRZEPŁYW PRACY OCENY VEX
KROK 1: ZIDENTYFIKUJ PODATNOŚĆ
- Z wyników skanowania SBOM
- Z ostrzeżenia bezpieczeństwa
- Ze zgłoszenia klienta
- Z powiadomienia ENISA
KROK 2: PRZEANALIZUJ ZASTOSOWANIE
Pytania do odpowiedzi:
- Czy podatny komponent jest w naszym produkcie?
- Czy obecna jest podatna wersja?
- Czy używana jest podatna ścieżka kodu?
- Czy podatność jest eksploatowalna w naszym kontekście?
- Czy są już wdrożone łagodzenia?
KROK 3: OKREŚL STATUS
Na podstawie analizy:
- NOT_AFFECTED: Podatność nie ma zastosowania
- AFFECTED: Podatność ma zastosowanie, potrzebne działanie
- FIXED: Było dotknięte, teraz naprawione
- UNDER_INVESTIGATION: Nadal oceniamy
KROK 4: UDOKUMENTUJ UZASADNIENIE
Dla NOT_AFFECTED, określ dlaczego:
- vulnerable_code_not_present
- vulnerable_code_cannot_be_controlled_by_adversary
- vulnerable_code_not_in_execute_path
- inline_mitigations_already_exist
KROK 5: UTWÓRZ DOKUMENT VEX
- Użyj wybranego formatu
- Uwzględnij wszystkie wymagane pola
- Wersjonuj i datuj dokument
- Podpisz jeśli to możliwe
Typy Uzasadnień
UZASADNIENIA NOT_AFFECTED
VULNERABLE_CODE_NOT_PRESENT:
"Podatny kod nie jest zawarty w naszej budowie"
Przykład: OpenSSL skompilowany bez wsparcia SM2
VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY:
"Atakujący nie może dotrzeć do podatnego kodu"
Przykład: Funkcja wywoływana tylko z zaufanymi danymi wewnętrznymi
VULNERABLE_CODE_NOT_IN_EXECUTE_PATH:
"Podatna funkcja nigdy nie jest wywoływana"
Przykład: Biblioteka dołączona, ale konkretna funkcja nieużywana
INLINE_MITIGATIONS_ALREADY_EXIST:
"Inne kontrole zapobiegają eksploatacji"
Przykład: WAF blokuje wektor ataku, sandboxing ogranicza wpływ
Przykłady Ocen
PRZYKŁAD 1: Nie Dotyczy (Kod Nieobecny)
Podatność: CVE-2021-3711 (OpenSSL SM2 buffer overflow)
Komponent: openssl 1.1.1k
Ocena: Nasz produkt używa OpenSSL tylko do TLS.
SM2 to chiński standard kryptograficzny, którego nie używamy.
Nasza budowa jawnie wyłącza SM2: ./config no-sm2
Status: NOT_AFFECTED
Uzasadnienie: vulnerable_code_not_present
PRZYKŁAD 2: Nie Dotyczy (Nie w Ścieżce Wykonania)
Podatność: CVE-2022-23308 (libxml2 use-after-free)
Komponent: libxml2 2.9.10
Ocena: Podatność w ewaluacji XPath z przestrzeniami nazw.
Nasz produkt używa libxml2 tylko do prostego parsowania XML.
Nigdy nie używamy funkcjonalności XPath.
Status: NOT_AFFECTED
Uzasadnienie: vulnerable_code_not_in_execute_path
PRZYKŁAD 3: Dotyczy
Podatność: CVE-2022-0778 (OpenSSL infinite loop)
Komponent: openssl 1.1.1k
Ocena: Nasz produkt przetwarza certyfikaty TLS z
potencjalnie niezaufanych źródeł. Podatność
pozwala na DoS poprzez złośliwy certyfikat.
Status: AFFECTED
Zalecenie: Zaktualizuj do wersji produktu 2.1.0 (OpenSSL 1.1.1n)
PRZYKŁAD 4: Naprawiono
Podatność: CVE-2022-0778 (OpenSSL infinite loop)
Komponent: openssl (było 1.1.1k, teraz 1.1.1n)
Ocena: Naprawiono w wersji produktu 2.1.0
Status: FIXED
Naprawiona Wersja: 2.1.0
Przepływ Pracy VEX dla CRA
Ciągła Ocena
BIEŻĄCY PROCES VEX
DZIENNIE/TYGODNIOWO:
1. Skanuj SBOM w poszukiwaniu nowych podatności
2. Priorytetyzuj według dotkliwości
3. Rozpocznij ocenę wysokich/krytycznych
DLA KAŻDEJ PODATNOŚCI:
1. Analiza techniczna
2. Określ status
3. Utwórz/zaktualizuj oświadczenie VEX
4. Jeśli AFFECTED: zaplanuj naprawę
GDY NAPRAWIONO:
1. Zaktualizuj status VEX na FIXED
2. Odwołaj się do wersji naprawy
3. Powiadom klientów
4. Zaktualizuj plik techniczny
DLA RAPORTOWANIA ENISA:
1. AFFECTED + aktywnie eksploatowane → Raportuj 24h
2. AFFECTED + poważne → Raportuj 72h
3. Dołącz VEX w kontekście raportu
Integracja ze SBOM
INTEGRACJA SBOM + VEX
OPCJA 1: Wbudowany VEX (CycloneDX)
- Dane VEX wewnątrz dokumentu SBOM
- Pojedynczy plik dla komponentów + podatności
- Aktualizuj SBOM gdy VEX się zmienia
OPCJA 2: Połączony VEX
- Oddzielny dokument VEX
- Odwołuje się do komponentów SBOM
- Może być aktualizowany niezależnie
OPCJA 3: Poradniki CSAF
- Samodzielne poradniki bezpieczeństwa
- Publikowane na stronie bezpieczeństwa
- Czytelne maszynowo dla automatyzacji
ZALECENIE DLA CRA:
- Użyj wbudowanego VEX dla pliku technicznego (kompletny zapis)
- Publikuj poradniki CSAF dla komunikacji z klientem
- Utrzymuj oba, trzymaj zsynchronizowane
Komunikacja z Klientem
VEX DLA KOMUNIKACJI Z KLIENTEM
SCENARIUSZ: Klient pyta "Czy CVE-XXXX wpływa na wasz produkt?"
Z VEX:
1. Sprawdź bazę danych VEX dla podatności
2. Podaj status natychmiast
3. Jeśli NOT_AFFECTED: podziel się uzasadnieniem
4. Jeśli AFFECTED: podaj wskazówki naprawy
5. Jeśli UNDER_INVESTIGATION: podaj harmonogram
KORZYŚCI:
- Spójne odpowiedzi w całym zespole wsparcia
- Przygotowane wcześniej uzasadnienia
- Szybszy czas odpowiedzi
- Wykazywalna należyta staranność
VEX w Pliku Technicznym
Podejście do Dokumentacji
SEKCJA VEX PLIKU TECHNICZNEGO
SEKCJA: Ocena Podatności (VEX)
ZAWARTOŚĆ:
1. Opis metodologii VEX
2. Aktualny dokument VEX (wszystkie produkty)
3. Historyczne aktualizacje VEX (ścieżka audytu)
4. Dowody uzasadnienia nie-dotyczy
PRZYKŁADOWY WPIS:
"Na dzień [data], następujące podatności zostały
ocenione dla [Nazwa Produktu] wersja [X.Y.Z]:
Łączna liczba CVE w zależnościach komponentów: 47
- Nie Dotyczy: 41
- Naprawiono: 4
- W Trakcie Badania: 2
- Dotyczy (z łagodzeniem): 0
Dokument VEX: [link/załącznik]
Ostatnia aktualizacja: [data]"
Dowody dla "Brak Znanych Eksploatowalnych Podatności"
DOWODY ZGODNOŚCI CRA
TWIERDZENIE: Produkt nie ma znanych eksploatowalnych podatności
DOWODY (oparte na VEX):
1. Wyniki skanowania SBOM (datowane)
2. Ocena VEX obejmująca wszystkie wyniki
3. Dla każdego "Nie Dotyczy": uzasadnienie
4. Dla każdego "Naprawiono": informacja o wersji
5. Dla "W Trakcie Badania": harmonogram/status
ŚCIEŻKA AUDYTU:
- Kiedy oceniono każde CVE?
- Kto przeprowadził ocenę?
- Jakie było uzasadnienie?
- Kiedy zaktualizowano status?
Narzędzia i Automatyzacja
Narzędzia do Generowania VEX
OPCJE NARZĘDZI VEX
DOPASOWYWANIE SBOM + PODATNOŚCI:
- Grype (Anchore) - generuje VEX
- Trivy - skanowanie podatności z wyjściem VEX
- OWASP Dependency-Track - wsparcie VEX
TWORZENIE VEX:
- CycloneDX CLI - twórz/waliduj VEX
- Narzędzia CSAF - twórz dokumenty CSAF VEX
- Narzędzia OpenVEX - proste tworzenie VEX
AUTOMATYZACJA:
- Integracja CI/CD dla skanowania
- Automatyczny status "w trakcie badania"
- Ręczny przegląd dla finalnego statusu
Strategia Automatyzacji
PODEJŚCIE DO AUTOMATYZACJI VEX
ZAUTOMATYZOWANE:
- Skanowanie SBOM dla nowych CVE
- Początkowy status "w trakcie badania"
- Powiadomienie zespołu bezpieczeństwa
- Podstawowe sprawdzenia zastosowania
PÓŁAUTOMATYCZNE:
- Sugestie analizy ścieżki kodu
- Dopasowywanie historycznych wzorców
- Wyszukiwanie statusu podobnych produktów
RĘCZNE (Wymagane):
- Finalne określenie statusu
- Pisanie uzasadnień
- Komunikacja skierowana do klientów
- Decyzje o raportowaniu ENISA
Typowe Wyzwania
Wyzwanie: Ilość CVE
Problem: Skany SBOM zwracają setki CVE.
Rozwiązania:
- Priorytetyzuj według dotkliwości (Krytyczne/Wysokie najpierw)
- Użyj automatyzacji do wstępnej segregacji
- Buduj szablony uzasadnień dla typowych wzorców
- Skup się na komponentach, które kontrolujesz
Wyzwanie: Trudność Analizy Technicznej
Problem: Trudno określić, czy podatny kod jest używany.
Rozwiązania:
- Pracuj z zespołem deweloperskim
- Użyj narzędzi analizy statycznej
- Dokumentuj niepewność odpowiednio
- Podejście konserwatywne: w razie wątpliwości, traktuj jako dotknięte
Wyzwanie: Utrzymanie VEX Aktualnym
Problem: Status podatności zmienia się w czasie.
Rozwiązania:
- Zautomatyzuj ponowne skanowanie SBOM
- Zaplanowane przeglądy VEX
- Aktualizacje oparte na wyzwalaczach (nowe CVE, nowa wersja)
- Wersjonuj swoje dokumenty VEX
Lista Kontrolna VEX
LISTA KONTROLNA WDROŻENIA VEX
KONFIGURACJA:
[ ] Wybierz format VEX (zalecany CycloneDX VEX)
[ ] Zdefiniuj proces oceny
[ ] Przypisz odpowiedzialność
[ ] Skonfiguruj narzędzia
POCZĄTKOWA OCENA:
[ ] Skanuj SBOM w poszukiwaniu podatności
[ ] Priorytetyzuj według dotkliwości
[ ] Oceń każdą podatność
[ ] Udokumentuj uzasadnienia
BIEŻĄCY PROCES:
[ ] Regularny harmonogram ponownego skanowania SBOM
[ ] Monitorowanie nowych CVE
[ ] SLA oceny (np. Krytyczne: 24h)
[ ] Aktualizacje dokumentów VEX
DOKUMENTACJA:
[ ] VEX zawarty w pliku technicznym
[ ] Historia wersji utrzymywana
[ ] Uzasadnienia szczegółowe
[ ] Publikacja skierowana do klientów
INTEGRACJA:
[ ] Powiązany ze SBOM
[ ] Proces komunikacji z klientem
[ ] Przepływ raportowania ENISA
[ ] Zaktualizowane notatki wydania
Kluczowe Zasoby
ZASOBY VEX
STANDARDY:
CycloneDX VEX: https://cyclonedx.org/capabilities/vex/
CSAF: https://docs.oasis-open.org/csaf/
OpenVEX: https://openvex.dev
WSKAZÓWKI:
CISA VEX Status Justifications
NTIA VEX Minimum Elements
NARZĘDZIA:
Grype: https://github.com/anchore/grype
Trivy: https://aquasecurity.github.io/trivy/
CycloneDX CLI: https://github.com/CycloneDX/cyclonedx-cli
Jak Pomaga CRA Evidence
CRA Evidence zapewnia kompleksowe wsparcie VEX:
- Zintegrowany VEX: Zarządzaj VEX obok SBOM
- Przepływ pracy oceny: Ustrukturyzowana analiza podatności
- Śledzenie statusu: Śledź zmiany w czasie
- Szablony uzasadnień: Typowe wzorce wstępnie zbudowane
- Integracja z plikiem technicznym: VEX w dokumentacji zgodności
- Portal klienta: Udostępniaj status VEX klientom
Rozpocznij swoją zgodność z CRA na app.craevidence.com.
Powiązane Artykuły
- SBOM dla Zgodności z CRA: Kompletny Przewodnik po Software Bill of Materials -- VEX uzupełnia SBOM -- dowiedz się, jak najpierw zbudować podstawy.
- Raportowanie Podatności CRA: Wymagania Powiadamiania ENISA -- Zrozum obowiązki raportowania 24h/72h dla podatności sklasyfikowanych jako "Dotyczy".
- Generowanie SBOM CRA: Przewodnik po Narzędziach i Automatyzacji -- Zautomatyzuj generowanie SBOM i VEX w swoim pipeline CI/CD.
Ten artykuł ma charakter wyłącznie informacyjny i nie stanowi porady prawnej. W celu uzyskania konkretnych wskazówek dotyczących zgodności należy skonsultować się z wykwalifikowanym doradcą prawnym.
Tematy omówione w tym artykule
Powiązane artykuły
Czy inteligentne kamery są produktami ważnymi w świetle...
Inteligentne kamery monitorujące są klasyfikowane jako produkty ważne (Klasa...
9 minEU Cybersecurity Act 2: Zakazy w Łańcuchu Dostaw,...
20 stycznia 2026 roku UE zaproponowała pełne zastąpienie Cybersecurity Act....
9 minKlasyfikacja produktów CRA: Czy Twój produkt jest...
Praktyczny przewodnik do określenia kategorii CRA Twojego produktu. Zawiera...
5 minDoes the CRA apply to your product?
Odpowiedz na 6 prostych pytań, aby sprawdzić, czy Twój produkt podlega unijnemu Cyber Resilience Act. Otrzymaj wynik w mniej niż 2 minuty.
Gotowy na osiągnięcie zgodności z CRA?
Zacznij zarządzać swoimi SBOM-ami i dokumentacją zgodności z CRA Evidence.