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.
I denna artikel
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": "exploitable",
"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å 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.
Relaterade artiklar
Gäller CRA för din produkt?
Svara på 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 SBOM:ar och efterlevnadsdokumentation med CRA Evidence.