Implementeren van Minimale Vereisten voor VEX
Ingenieurswetenschappen

De Software Bill of Materials (SBOM) wordt belemmerd door de kwaliteit van SBOM en kwetsbaarheid-specifieke geluiden. CISA heeft aanbevolen VEX-informatie te creëren met Minimale Vereisten voor Kwetsbaarheidsexploitatie eXchange om het laatste aan te pakken.
Het document met de Minimale Vereisten voor VEX raadt aan velden op te nemen in de VEX die is ingebed in een SBOM of als een op zichzelf staand document.
In een eerdere post hebben we ons gericht op het detaileren van waar CycloneDX VEX, OpenVEX en CSAF staan in relatie tot de bekendmaking van kwetsbaarheden.
In deze post breken we de veldmappings van Minimale Vereisten naar CycloneDX VEX en OpenVEX af.
Minimale vereisten voor VEX
VEX, een acroniem voor Vulnerability Exploitability eXchange, is een gestructureerd gegevensformaat dat de uitwisseling van kwetsbaarheidsinformatie tussen softwareleveranciers, beveiligingsanalisten en consumenten vergemakkelijkt. Het heeft tot doel de uitdagingen aan te pakken die gepaard gaan met legacy-kwetsbaarheidsadviezen, die vaak gebrek aan machine-leesbaarheid vertonen en niet duidelijk maken of een kwetsbaarheid werkelijk kan worden geëxploiteerd in een bepaald product of omgeving.
De Minimumvereisten voor het VEX-document van CISA definieert de minimale elementen, onafhankelijk van het VEX-formaat of de specificatie, met een focus op machine-leesbaarheid.
Het beschrijft een VEX-document dat is verdeeld in VEX-documentmetadata en ten minste één VEX-verklaring, die op zijn beurt bestaat uit Statement metadata, Status, Kwetsbaarheidsdetails en Productdetails.
Documentmetadata
MOET Document-ID, een of meer documentversies, Auteur, Tijdstempel eerste uitgave, en Tijdstempel laatst bijgewerkt bevatten.
MAG Tooling en Auteurrol bevatten
VEX-verklaring metadata
MOET Statement-ID, Statement-versie, Tijdstempel eerste uitgave, Tijdstempel laatst bijgewerkt bevatten
VEX-verklaring Product
MOET Product-ID en Leverancier bevatten
MAG subcomponent-ID bevatten
VEX-verklaring Kwetsbaarheid
MOET Kwetsbaarheid-ID en beschrijving bevatten
VEX-verklaring Status
MOET Kwetsbaarheid Status en bij voorbaat MOET Justificatie bevatten (voor Status Niet Aangetast) of Impact Statement (voor Status Niet Aangetast maar zonder Justificatie). Het moet voor Status Aangetast voorwaardelijk MOET een Actieverklaring bevatten.
MAG Tijdstempel van de Impact- of Actieverklaring bevatten en MAG Statusnotities bevatten
Minimale vereisten in CycloneDX
CycloneDX omvatte kwetsbaarheden en hun analyse als velden met versie 1.4 en breidde deze uit met versie 1.5. Daarom is CycloneDX een natuurlijke specificatie voor het opnemen van VEX-informatie met de SBOM.
Het is echter mogelijk dat sommige veldmappings bij eerste aanblik niet voor de hand liggend zijn.
Interlynk raadt aan om de Minimale Eisen voor VEX met CycloneDX als volgt te implementeren:
Documentmetadata
Document ID: [Verplicht] Serienummer
Documentversie: [Verplicht] Versie
Auteur: [Verplicht] Metadata-auteurs
Tijdstempel eerste uitgave: [Verplicht] Kwetsbaarheidsanalyse eersteUitgave (Versie 1.5+)
Tijdstempel laatste bijwerking: [Verplicht] Kwetsbaarheidsanalyse laatsteBijgewerkt (Versie 1.5+)
Gereedschap: [Optioneel] Metadata gereedschappen (Opmerking: CycloneDX heeft ook een Kwetsbaarheden: Gereedschap sectie, maar dat is bedoeld om gereedschappen voor kwetsbaarheid identificatie en analyse op te sommen).
Auteurrol: [Optioneel] Ongemapped
VEX-statement metadata
Statement ID: [Verplicht] Kwetsbaarhedenanalyse Bom-Ref
Tijdstempel eerste uitgave: [Verplicht] Kwetsbaarheidsanalyse eersteUitgave (Versie 1.5+)
Tijdstempel laatste bijwerking: [Verplicht] Kwetsbaarheidsanalyse laatsteBijgewerkt (Versie 1.5+)
VEX-statement Product
Product ID: [Verplicht] Kwetsbaarhedenanalyse Affects Ref
Leverancier: [Verplicht] Componentenleverancier waar Component bom-ref hetzelfde is als Product ID (Beïnvloed Product/Component)
Subcomponent ID: [Optioneel] Kwetsbaarhedenanalyse Affects Ref
VEX-statement Kwetsbaarheid
Kwetsbaarheid ID: [Verplicht] Kwetsbaarheid ID
Beschrijving kwetsbaarheid: [Verplicht] Kwetsbaarheid Beschrijving
VEX-statement Status [Verplicht]
Status “Niet Beïnvloed”: Kwetsbaarheidsanalyse status: niet_beïnvloed
Status “Beïnvloed”: Kwetsbaarheidsanalyse status: exploiteerbaar
Status “Opgelost”: Kwetsbaarheidsanalyse status: opgelost
Status “Onder Onderzoek”: Kwetsbaarheidsanalyse status: in_triage
Status Notities: [Optioneel] Kwetsbaarheidsanalyse detail
VEX-statement Rechtvaardiging [Voorwaardelijk Vereist]
Rechtvaardiging “Component_niet_present”: Kwetsbaarheidsanalyse rechtvaardiging: vereist_afhankelijkheid
Rechtvaardiging “Kwetsbare_code_niet_present”: Kwetsbaarheidsanalyse rechtvaardiging: code_niet_present
Rechtvaardiging “Kwetsbare_code_niet_in_executie_pad”: Kwetsbaarheidsanalyse rechtvaardiging: code_niet_bereikbaar
Rechtvaardiging “Kwetsbare_code_kunnen_niet_worden_gecontroleerd_door_tegenstander”: Kwetsbaarheidsanalyse rechtvaardiging: vereist_omgeving
Rechtvaardiging “Inline_mitigaties_bestaande”: Kwetsbaarheidsanalyse rechtvaardiging: beschermd_door_mitigating_control
VEX-statement Impact Statement
Impact Statement: [Voorwaardelijk Vereist] Kwetsbaarheidsanalyse detail (Opmerking: CycloneDX kwetsbaarheid>analyse>detail wordt beschreven als Gedetailleerde beschrijving van de impact inclusief methoden die tijdens de beoordeling zijn gebruikt. Als een kwetsbaarheid niet exploiteerbaar is, moet dit veld specifieke details bevatten over waarom de component of dienst niet door deze kwetsbaarheid wordt beïnvloed. Dit komt overeen met Impact Statement’s CISA-opmerking: Voor [status] “niet_beïnvloed”, als [rechtvaardiging] niet wordt gegeven, moet een VEX-statement een [impact_statement] geven dat verder uitlegt hoe of waarom de genoemde [product_id]s “niet_beïnvloed” zijn door [vul_id].)
Impact Statement Tijdstempel: [Optioneel] Kwetsbaarheidsanalyse laatsteBijgewerkt (Versie 1.5+)
VEX-statement Actie Statement
Actie Statement: [Voorwaardelijk Vereist] Kwetsbaarheidsaanbeveling (Opmerking: CycloneDX kwetsbaarheid>aanbeveling wordt beschreven als Aanbevelingen voor hoe de kwetsbaarheid kan worden verholpen of verminderd. Dit komt overeen met de Actie Statement’s CISA voorgestelde rol: Voor status “beïnvloed”, moet een VEX-statement één [action_statement] bevatten die MOET beschrijven welke acties moeten worden ondernomen om [vul_id] te verhelpen of te verminderen.)
Actie Statement Tijdstempel: [Optioneel] Kwetsbaarheidsanalyse laatsteBijgewerkt (Versie 1.5+)
Minimale vereisten in OpenVEX
OpenVEX specificatie werd bijgewerkt samen met de CISA werkgroep die het document over Minimum Vereisten schreef, en daarom biedt OpenVEX de meest directe mapping naar de geraadpleegde velden.
Documentmetadata
Document ID: [Verplicht] @id
Documentversie: [Verplicht] versie
Auteur: [Verplicht] auteur
Timestamp eerste uitgave: [Verplicht] timestamp
Timestamp laatst bijgewerkt: [Verplicht] laatst_bijgewerkt
Auteur Rol: [Optioneel] rol
Gereedschap: [Optioneel] gereedschap
VEX verklaring metadata
Verklaring ID: [Verplicht] verklaringen:@id
Timestamp eerste uitgave: [Verplicht] verklaringen:timestamp
Timestamp laatst bijgewerkt: [Verplicht] verklaringen:laatst_bijgewerkt
VEX verklaring Product
Product ID: [Vereiste] producten:@id
Leverancier: [Verplicht] leverancier
Subcomponent ID: [Optioneel] subcomponenten:@id
VEX verklaring Kwetsbaarheid
Kwetsbaarheid ID: [Verplicht] kwetsbaarheden:@id
Kwetsbaarheid Beschrijving: [Verplicht] kwetsbaarheden:beschrijving
VEX verklaring Status [Verplicht]
Status “Niet Beïnvloed”: verklaringen:status:niet_beïnvloed
Status “Beïnvloed”: verklaringen:status:beïnvloed
Status “Gefixed”: verklaringen:status:gefixed
Status “In Onderzoek”: verklaringen:status:in_onderzoek
Status Notities: [Optioneel] verklaringen:status_notities
VEX verklaring Rechtvaardiging [Conditioneel Verplicht]
Rechtvaardiging “Component_niet_present”: verklaringen:rechtvaardiging:component_niet_present
Rechtvaardiging “Kwetsbare_code_niet_present”: verklaringen:rechtvaardiging:kwetsbare_code_niet_present
Rechtvaardiging “Kwetsbare_code_niet_in_uitvoerpad”: verklaringen:rechtvaardiging:kwetsbare_code_niet_in_uitvoerpad
Rechtvaardiging “Kwetsbare_code_niet_bewerkbaar_door_vijand”: verklaringen:rechtvaardiging:kwetsbare_code_niet_bewerkbaar_door_vijand
Rechtvaardiging “Inline_mitigaties_zijn_al_aanwezig”: verklaringen:vulnerable_code_cannot_be_controlled_by_adversary
VEX verklaring Impact Verklaring
Impact Verklaring: [Conditioneel Verplicht] verklaringen:impact_verklaring
Impact Verklaring Timestamp: [Optioneel] verklaringen:impact_verklaring_timestamp
VEX verklaring Actie Verklaring
Actie Verklaring: [Conditioneel Verplicht] verklaringen:actie_verklaring
Actie Verklaring Timestamp: [Optioneel] verklaringen:actie_verklaring_timestamp
Betere benutting van SBOM voor kwetsbaarheidsbeheer en risicobeoordeling vereist baseline machineleesbaarheid van het VEX-document. Daarom raden we aan om VEX te creëren binnen CycloneDX of OpenVEX met behulp van een gemeenschappelijk overeengekomen conventie.
Interlynk probeert beveiligingsonthullingen eenvoudig, vanzelfsprekend en geautomatiseerd te maken. We beantwoorden graag eventuele vragen die je hebt. Voel je vrij om contact met ons op te nemen via hello@interlynk.io of via interlynk.io.