VEX för CRA-efterlevnad: Guide till Vulnerability Exploitability eXchange
Hur man använder VEX-dokument för CRA-efterlevnad. Täcker VEX-format, statustyper, integration med SBOM och praktiska exempel för att kommunicera sårbarhetstillämplighet.
In this article
Inte varje sårbarhet i din SBOM påverkar din produkt. VEX (Vulnerability Exploitability eXchange) låter dig kommunicera vilka sårbarheter som faktiskt gäller för din specifika produkt och ditt sammanhang. För CRA-efterlevnad hjälper VEX dig att visa att du bedömt sårbarheter och åtgärdat de som spelar roll.
Den här guiden förklarar hur du använder VEX effektivt.
Info: VEX (Vulnerability Exploitability eXchange) låter dig kommunicera vilka sårbarheter i din SBOM som faktiskt påverkar din produkt — och vilka som inte gör det. Det är avgörande för att uppfylla CRA:s krav på "inga kända exploaterbara sårbarheter."
Sammanfattning
- VEX = maskinläsbart utlåtande om sårbarhetstillämplighet
- Besvarar: "Påverkar CVE-XXXX MIN produkt?"
- Fyra statusar: Ej påverkad, Påverkad, Åtgärdad, Under utredning
- Kompletterar SBOM: SBOM listar komponenter, VEX bedömer sårbarheter
- CycloneDX VEX och CSAF VEX är huvudformat
- Avgörande för CRA:s krav på "inga kända exploaterbara sårbarheter"
Vad är VEX?
Problemet VEX löser
När du skannar en SBOM får du en lista över sårbarheter i komponenter:
SBOM-SKANNINGSRESULTAT (Typiska):
Komponent: openssl 1.1.1k
- CVE-2021-3711 (Kritisk)
- CVE-2021-3712 (Hög)
- CVE-2022-0778 (Hög)
Komponent: zlib 1.2.11
- CVE-2018-25032 (Hög)
Komponent: libxml2 2.9.10
- CVE-2021-3517 (Hög)
- CVE-2021-3518 (Hög)
- CVE-2022-23308 (Medium)
TOTALT: 8 sårbarheter hittade
MEN VÄNTA...
- Påverkar alla dessa faktiskt din produkt?
- Används den sårbara kodvägen?
- Har du redan begränsat några?
- Är några icke-exploaterbara i ditt sammanhang?
VEX besvarar dessa frågor.
VEX-definition
VEX (Vulnerability Exploitability eXchange) är ett standardiserat format för att kommunicera:
- Om en sårbarhet påverkar en specifik produkt
- Varför eller varför inte
- Vilka åtgärder (om några) som behövs
- Nuvarande bedömningsstatus
VEX-statustyper
VEX-STATUSALTERNATIV
EJ PÅVERKAD:
"Den här sårbarheten påverkar inte vår produkt"
- Sårbar kod ej närvarande
- Sårbar funktion anropas ej
- Plattform ej tillämplig
- Begränsad via konfiguration
PÅVERKAD:
"Den här sårbarheten påverkar vår produkt"
- Kräver åtgärd
- Kan inkludera rekommenderade begränsningar
- Anger allvarlighetsgrad i sammanhang
ÅTGÄRDAD:
"Den här sårbarheten åtgärdades"
- I specifik version
- Detaljer om åtgärd tillhandahållet
- Rekommendation om uppdatering
UNDER UTREDNING:
"Vi bedömer fortfarande detta"
- Status ej ännu fastställd
- Utredning pågår
- Tillfällig status
VEX och CRA-krav
CRA-sårbarhetskrav
CRA kräver att tillverkare:
- Inga kända exploaterbara sårbarheter (vid marknadsplacering)
- Hanterar sårbarheter under hela supportperioden
- Tillhandahåller säkerhetsuppdateringar för att åtgärda sårbarheter
- Rapporterar aktivt exploaterade sårbarheter till ENISA (24h)
- Rapporterar allvarliga sårbarheter till ENISA (72h)
Hur VEX stödjer CRA
VEX FÖR CRA-EFTERLEVNAD
KRAV: Inga kända exploaterbara sårbarheter
VEX-ROLL:
- Dokumentera sårbarhetsbedömning
- Visa vilka CVE:er som utvärderats
- Visa "ej påverkad"-bestämningar
- Bevis för teknisk fil
KRAV: Hantera sårbarheter
VEX-ROLL:
- Spåra sårbarhetstatusförändringar
- Dokumentera "påverkad" → "åtgärdad"-progression
- Kommunicera med kunder
- Upprätthåll revisionskedja
KRAV: Säkerhetsuppdateringar
VEX-ROLL:
- Dokumentera vad som åtgärdats i varje uppdatering
- Tillhandahåll "åtgärdad i version X"-information
- Kundkommunikationsverktyg
KRAV: ENISA-rapportering
VEX-ROLL:
- Förbedömning hjälper bestämma rapporteringsskyldighet
- "Påverkad" + "aktivt exploaterad" = rapportera
- Dokumentation för rapporteringsnoggranhet
Tips: CycloneDX har inbyggt VEX-stöd. Om du redan genererar CycloneDX-SBOM:er är det enkelt att lägga till VEX-data.
VEX-format
CycloneDX VEX
CycloneDX inkluderar VEX-förmåga som del av SBOM-formatet:
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"vulnerabilities": [
{
"id": "CVE-2021-3711",
"source": {
"name": "NVD"
},
"analysis": {
"state": "not_affected",
"justification": "code_not_present",
"detail": "Vår produkt använder OpenSSL men inte SM2-funktionalitet där den här sårbarheten finns. SM2 är inte kompilerat i vår build."
},
"affects": [
{
"ref": "openssl-1.1.1k"
}
]
},
{
"id": "CVE-2022-0778",
"source": {
"name": "NVD"
},
"analysis": {
"state": "affected",
"detail": "Produkten påverkas vid tolkning av opålitliga certifikat. Åtgärdad i version 2.1.0."
},
"affects": [
{
"ref": "openssl-1.1.1k"
}
],
"recommendation": "Uppdatera till produktversion 2.1.0 eller senare"
}
]
}
CSAF VEX
CSAF (Common Security Advisory Framework) tillhandahåller ett fristående VEX-dokumentformat:
{
"document": {
"category": "csaf_vex",
"title": "Produktsäkerhetsbedömning för 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"
}
},
"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": "SM2-funktionalitet ingår inte i vår OpenSSL-build."
}
]
}
]
}
OpenVEX
OpenVEX är ett enklare, fokuserat VEX-format:
{
"@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": "SM2-kryptografisk funktionalitet är inte kompilerad in i vår produkts OpenSSL-build."
}
]
}
Skapa VEX-utlåtanden
Bedömningsprocess
VEX-BEDÖMNINGSARBETSFLÖDE
STEG 1: IDENTIFIERA SÅRBARHET
- Från SBOM-skanningsresultat
- Från säkerhetsrådgivning
- Från kundrapport
- Från ENISA-notifiering
STEG 2: ANALYSERA TILLÄMPLIGHET
Frågor att besvara:
- Finns den sårbara komponenten i vår produkt?
- Finns den sårbara versionen?
- Används den sårbara kodvägen?
- Är sårbarheten exploaterbar i vårt sammanhang?
- Finns begränsningar redan på plats?
STEG 3: FASTSTÄLL STATUS
Baserat på analys:
- NOT_AFFECTED: Sårbarhet gäller inte
- AFFECTED: Sårbarhet gäller, åtgärd behövs
- FIXED: Var påverkad, nu åtgärdad
- UNDER_INVESTIGATION: Bedömer fortfarande
STEG 4: DOKUMENTERA MOTIVERING
För NOT_AFFECTED, specificera varför:
- vulnerable_code_not_present
- vulnerable_code_cannot_be_controlled_by_adversary
- vulnerable_code_not_in_execute_path
- inline_mitigations_already_exist
STEG 5: SKAPA VEX-DOKUMENT
- Använd valt format
- Inkludera alla obligatoriska fält
- Versionera och datera dokumentet
- Signera om möjligt
Motiveringstyper
NOT_AFFECTED-MOTIVERINGAR
VULNERABLE_CODE_NOT_PRESENT:
"Den sårbara koden ingår inte i vår build"
Exempel: OpenSSL kompilerat utan SM2-stöd
VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY:
"En angripare kan inte nå den sårbara koden"
Exempel: Funktion anropas bara med betrodda interna data
VULNERABLE_CODE_NOT_IN_EXECUTE_PATH:
"Den sårbara funktionen anropas aldrig"
Exempel: Bibliotek inkluderat men specifik funktion oanvänd
INLINE_MITIGATIONS_ALREADY_EXIST:
"Andra kontroller förhindrar exploatering"
Exempel: WAF blockerar attackvektorn, sandbox begränsar påverkan
Exempelbedömningar
EXEMPEL 1: Ej påverkad (Kod ej närvarande)
Sårbarhet: CVE-2021-3711 (OpenSSL SM2 buffertspill)
Komponent: openssl 1.1.1k
Bedömning: Vår produkt använder OpenSSL för TLS enbart.
SM2 är en kinesisk kryptografisk standard vi inte använder.
Vår build inaktiverar SM2 explicit: ./config no-sm2
Status: NOT_AFFECTED
Motivering: vulnerable_code_not_present
EXEMPEL 2: Ej påverkad (Ej i exekveringsväg)
Sårbarhet: CVE-2022-23308 (libxml2 use-after-free)
Komponent: libxml2 2.9.10
Bedömning: Sårbarhet i XPath-utvärdering med namnrymder.
Vår produkt använder libxml2 bara för enkel XML-tolkning.
Vi använder aldrig XPath-funktionalitet.
Status: NOT_AFFECTED
Motivering: vulnerable_code_not_in_execute_path
EXEMPEL 3: Påverkad
Sårbarhet: CVE-2022-0778 (OpenSSL oändlig loop)
Komponent: openssl 1.1.1k
Bedömning: Vår produkt bearbetar TLS-certifikat från
potentiellt opålitliga källor. Sårbarheten
tillåter DoS via skadligt certifikat.
Status: AFFECTED
Rekommendation: Uppdatera till produktversion 2.1.0 (OpenSSL 1.1.1n)
EXEMPEL 4: Åtgärdad
Sårbarhet: CVE-2022-0778 (OpenSSL oändlig loop)
Komponent: openssl (var 1.1.1k, nu 1.1.1n)
Bedömning: Åtgärdad i produktversion 2.1.0
Status: FIXED
Åtgärdad version: 2.1.0
VEX-arbetsflöde för CRA
Kontinuerlig bedömning
LÖPANDE VEX-PROCESS
DAGLIGEN/VECKOVIS:
1. Skanna SBOM för nya sårbarheter
2. Prioritera efter allvarlighetsgrad
3. Börja bedömning av hög/kritisk
FÖR VARJE SÅRBARHET:
1. Teknisk analys
2. Fastställ status
3. Skapa/uppdatera VEX-utlåtande
4. Om AFFECTED: planera åtgärd
NÄR ÅTGÄRDAD:
1. Uppdatera VEX-status till FIXED
2. Referera åtgärdsversion
3. Notifiera kunder
4. Uppdatera teknisk fil
FÖR ENISA-RAPPORTERING:
1. AFFECTED + aktivt exploaterad → Rapportera 24h
2. AFFECTED + allvarlig → Rapportera 72h
3. Inkludera VEX i rapportkontext
Integration med SBOM
SBOM + VEX-INTEGRATION
ALTERNATIV 1: Inbäddad VEX (CycloneDX)
- VEX-data inuti SBOM-dokument
- Enstaka fil för komponenter + sårbarheter
- Uppdatera SBOM när VEX ändras
ALTERNATIV 2: Länkad VEX
- Separat VEX-dokument
- Refererar SBOM-komponenter
- Kan uppdateras oberoende
ALTERNATIV 3: CSAF-rådgivningar
- Fristående säkerhetsrådgivningar
- Publicerade på säkerhetssida
- Maskinläsbara för automatisering
REKOMMENDATION FÖR CRA:
- Använd inbäddad VEX för teknisk fil (komplett post)
- Publicera CSAF-rådgivningar för kundkommunikation
- Underhåll båda, håll synkroniserade
VEX i teknisk fil
Dokumentationsapproach
VEX-AVSNITT I TEKNISK FIL
AVSNITT: Sårbarhetsbedömning (VEX)
INNEHÅLL:
1. VEX-metodikbeskrivning
2. Aktuellt VEX-dokument (alla produkter)
3. Historiska VEX-uppdateringar (revisionskedja)
4. Bevis för "ej påverkad"-motiveringar
EXEMPELPOST:
"Per [datum] har följande sårbarheter bedömts
för [Produktnamn] version [X.Y.Z]:
Totalt CVE:er i komponentberoenden: 47
- Ej påverkad: 41
- Åtgärdad: 4
- Under utredning: 2
- Påverkad (med begränsning): 0
VEX-dokument: [länk/bilaga]
Senast uppdaterad: [datum]"
Bevis för "Inga kända exploaterbara sårbarheter"
CRA-EFTERLEVNADSBEVIS
PÅSTÅENDE: Produkten har inga kända exploaterbara sårbarheter
BEVIS (VEX-baserat):
1. SBOM-skanningsresultat (daterade)
2. VEX-bedömning som täcker alla fynd
3. För varje "Ej påverkad": motivering
4. För varje "Åtgärdad": versionsinformation
5. För "Under utredning": tidslinje/status
REVISIONSKEDJA:
- När bedömdes varje CVE?
- Vem utförde bedömningen?
- Vad var motiveringen?
- När uppdaterades status?
Verktyg och automatisering
VEX-genereringsverktyg
VEX-VERKTYGSALTERNATIV
SBOM + SÅRBARHETSMATCHNING:
- Grype (Anchore) - genererar VEX
- Trivy - sårbarhetsskanning med VEX-utdata
- OWASP Dependency-Track - VEX-stöd
VEX-REDIGERING:
- CycloneDX CLI - skapa/validera VEX
- CSAF-verktyg - skapa CSAF VEX-dokument
- OpenVEX-verktyg - enkel VEX-skapning
AUTOMATISERING:
- CI/CD-integration för skanning
- Automatisk "under utredning"-status
- Manuell granskning för slutstatus
Automatiseringsstrategi
VEX-AUTOMATISERINGSAPPROACH
AUTOMATISERAT:
- SBOM-skanning för nya CVE:er
- Initial "under utredning"-status
- Notifiering till säkerhetsteam
- Grundläggande tillämplighetskontroller
SEMI-AUTOMATISERAT:
- Kodvägsanalysförslag
- Historisk mönstermatchning
- Liknande produktstatusuppslagning
MANUELLT (Obligatoriskt):
- Slutgiltig statusbestämning
- Motiverinskrivning
- Kundkommunikation
- ENISA-rapporteringsbeslut
Vanliga utmaningar
Utmaning: Volym av CVE:er
Problem: SBOM-skanningar returnerar hundratals CVE:er.
Lösningar:
- Prioritera efter allvarlighetsgrad (Kritisk/Hög först)
- Använd automatisering för initial triage
- Bygg motiveringsmallar för vanliga mönster
- Fokusera på komponenter du kontrollerar
Utmaning: Svårighet med teknisk analys
Problem: Svårt att avgöra om sårbar kod används.
Lösningar:
- Arbeta med utvecklingsteamet
- Använd statisk analys-verktyg
- Dokumentera osäkerhet lämpligt
- Konservativ approach: vid tvivel, behandla som påverkad
Utmaning: Hålla VEX aktuell
Problem: Sårbarhetstatus förändras över tid.
Lösningar:
- Automatisera SBOM-omskanningar
- Schemalagda VEX-granskningar
- Utlösarbaserade uppdateringar (ny CVE, ny version)
- Versionera dina VEX-dokument
VEX-checklista
CHECKLISTA FÖR VEX-IMPLEMENTERING
INSTÄLLNING:
[ ] Välj VEX-format (CycloneDX VEX rekommenderat)
[ ] Definiera bedömningsprocess
[ ] Tilldela ansvar
[ ] Konfigurera verktyg
INITIAL BEDÖMNING:
[ ] Skanna SBOM för sårbarheter
[ ] Prioritera efter allvarlighetsgrad
[ ] Bedöm varje sårbarhet
[ ] Dokumentera motiveringar
LÖPANDE PROCESS:
[ ] Reguljärt SBOM-omskanningsschema
[ ] Ny CVE-övervakning
[ ] Bedömnings-SLA (t.ex. Kritisk: 24h)
[ ] VEX-dokumentuppdateringar
DOKUMENTATION:
[ ] VEX inkluderad i teknisk fil
[ ] Versionshistorik underhållen
[ ] Motiveringar detaljerade
[ ] Kundkommunikationspublicering
INTEGRATION:
[ ] Länkad till SBOM
[ ] Kundkommunikationsprocess
[ ] ENISA-rapporteringsarbetsflöde
[ ] Uppdatera versionsanteckningar
Nyckelresurser
VEX-RESURSER
STANDARDER:
CycloneDX VEX: https://cyclonedx.org/capabilities/vex/
CSAF: https://docs.oasis-open.org/csaf/
OpenVEX: https://openvex.dev
VÄGLEDNING:
CISA VEX Status Justifications
NTIA VEX Minimum Elements
VERKTYG:
Grype: https://github.com/anchore/grype
Trivy: https://aquasecurity.github.io/trivy/
CycloneDX CLI: https://github.com/CycloneDX/cyclonedx-cli
Hur CRA Evidence hjälper
CRA Evidence tillhandahåller heltäckande VEX-stöd:
- Integrerad VEX: Hantera VEX tillsammans med SBOM
- Bedömningsarbetsflöde: Strukturerad sårbarhetanalys
- Statusspårning: Spåra förändringar över tid
- Motiveringsmallar: Vanliga mönster förbyggda
- Teknisk filintegration: VEX i efterlevnadsdokumentation
- Kundportal: Dela VEX-status med kunder
Starta din CRA-efterlevnad på app.craevidence.com.
Relaterade artiklar
- SBOM för CRA-efterlevnad: Komplett guide till Software Bill of Materials
- CRA sårbarhetrapportering: ENISA-notifieringskrav
- CRA SBOM-generering: Verktygs- och automationsguide
Den här artikeln är endast avsedd för informationsändamål och utgör inte juridisk rådgivning. För specifik efterlevnadsvägledning, konsultera kvalificerade juridiska rådgivare.
Ämnen som tas upp i den här artikeln
Relaterade artiklar
Hur man Genererar ett Firmware SBOM: Öppna...
Steg-för-steg-guide för att generera ett Software Bill of Materials (SBOM)...
10 minCRA får sin instruktionsmanual: Vad kommissionens...
EU-kommissionen publicerade utkast till vägledning om cyberresiliensakter...
6 minÄr smarta kameror viktiga produkter under EU:s cyberresiliensakt?
Smarta säkerhetskameror klassificeras som viktiga produkter (klass I) under...
8 minDoes the CRA apply to your product?
Besvara 6 enkla frågor för att ta reda på om din produkt omfattas av EU:s Cyber Resilience Act. Få ditt resultat på under 2 minuter.
Redo att uppnå CRA-efterlevnad?
Börja hantera dina SBOMs och efterlevnadsdokumentation med CRA Evidence.