SBOM en VEX: componenten en kwetsbaarheidsimpact
Sytance · Bijgewerkt
Een SBOM identificeert de softwarecomponenten in een product. Vulnerability Exploitability eXchange (VEX) geeft aan of een specifieke kwetsbaarheid van invloed is op dat product. De beoordeling hangt af van de productversie, de configuratie en de manier waarop het product de component gebruikt.
Componentinventaris, overeenkomsten en impact
De inventaris registreert of een component aanwezig is. Een kwetsbaarheidsmatch geeft aan dat een advies de component of de versie ervan noemt. De impactanalyse controleert vervolgens of de kwetsbare code in de daadwerkelijke build en het daadwerkelijke gebruik van het product aanwezig en uitbuitbaar is.
CycloneDX gebruikt VEX om de beoordeling voor een specifiek product te communiceren. Een component kan bijvoorbeeld aanwezig zijn terwijl een optionele kwetsbare functie tijdens de build is uitgesloten. Voor dat onderscheid zijn buildinformatie en analyse nodig.
De vier OpenVEX-statussen
OpenVEX definieert vier statussen. Elke status geldt voor de productversie en kwetsbaarheid die in de verklaring zijn geïdentificeerd.
| OpenVEX-status | Betekenis |
|---|---|
| under_investigation | De impact wordt nog beoordeeld |
| affected | Het geïdentificeerde product is getroffen |
| fixed | De geïdentificeerde versie bevat een oplossing |
| not_affected | Het geïdentificeerde product is niet getroffen |
Een optionele decoder in een gateway
Neem een fictieve gateway met een parserbibliotheek met een optionele decoder. Stel dat een kwetsbaarheid die decoder treft. De beoordeling begint met vaststellen welke build van de bibliotheek in de geleverde image zit en of de decoder daarin is gecompileerd.
Als buildinstellingen en analyse van het binaire bestand bevestigen dat de kwetsbare decoder ontbreekt, kunnen zij een verklaring met status `not_affected` en reden `vulnerable_code_not_present` onderbouwen. De verklaring geldt voor die build.
Als de code aanwezig is maar onduidelijk is of deze wordt uitgevoerd, blijft de beoordeling onder onderzoek totdat de toegangspunten en uitvoeringspaden zijn gecontroleerd. Als het product getroffen is en een latere release de oplossing bevat, blijft de eerdere release getroffen; voor de latere release wordt een afzonderlijke verklaring afgegeven.
Redenen voor de status niet getroffen
OpenVEX vereist dat een verklaring met status `not_affected` een motivering of impactverklaring bevat. De machineleesbare motiveringen maken onderscheid tussen ontbrekende componenten, ontbrekende kwetsbare code, code buiten het uitvoeringspad, beperkingen van de controle door een aanvaller en ingebouwde maatregelen.
Voor elke reden gelden andere voorwaarden. Een netwerkbeperking verwijdert geen kwetsbare code. Voor de reden met ingebouwde maatregelen specificeert OpenVEX dat het gaat om bescherming die uitbuiting voorkomt en die de gebruiker niet kan uitschakelen of opnieuw configureren.
Geef bij een conclusie over het codepad aan welke functie is getroffen, welke paden zijn gecontroleerd en welke configuratiebeperkingen gelden. Beoordeel de conclusie opnieuw als die voorwaarden veranderen. Als de conclusie afhangt van een instelling die de klant beheert, vermeld die afhankelijkheid dan duidelijk.
Een VEX-verklaring van een leverancier gebruiken
Een VEX-verklaring van een leverancier kan helpen meldingen te filteren of de prioriteit ervan aan te passen. Controleer voordat u deze gebruikt of de bron betrouwbaar is en de productversie overeenkomt. Controleer ook de publicatietijd, revisies, toepasselijke configuratie en aanbevolen acties.
Als een vertrouwde leverancier iets anders concludeert dan uw eigen analyse, bewaar dan beide registraties en los het verschil op. Een brede verklaring voor een productfamilie is mogelijk niet van toepassing op een aangepaste build met andere componenten of opties.
Een SBOM blijft nuttig nadat een VEX-verklaring is gepubliceerd. Nieuwe adviezen kunnen veranderen wat onderzocht moet worden, en een aangepast product kan een oude conclusie ongeldig maken. Houd inventarisupdates en impactbeoordelingen met elkaar verbonden en behoud hun afzonderlijke geschiedenis.