En sårbarhet (vulnerability) är en svaghet eller brist i ett system, en applikation, hårdvara eller en process som kan utnyttjas av en angripare för att orsaka skada eller få obehörig åtkomst.
Dessa svagheter kan uppstå på grund av designfel, implementeringsbrister eller otillräckliga säkerhetsåtgärder.
Att förstå och hantera sårbarheter är avgörande för att skydda organisationers information och resurser.
Sårbarheter i beroenden och SBOM:ar
Moderna mjukvaruprojekt förlitar sig ofta på tredjepartskomponenter och bibliotek, kallade beroenden (dependencies).
Dessa kan innehålla sårbarheter som, om de inte hanteras, äventyra hela systemets säkerhet.
Genom att använda SBOM:ar kan organisationer identifiera vilka beroenden som finns i deras system och åtgärda eventuella sårbarheter i dessa.
Vanliga typer av sårbarheter
Det finns flera kategorier av sårbarheter som ofta förekommer:
-
Buffer Overflow: När ett program skriver mer data till en buffert än vad den kan hantera, vilket kan leda till exekvering av skadlig kod.
-
SQL Injection: Inmatning av skadlig SQL-kod i en applikations databasfrågor, vilket kan ge obehörig åtkomst till data.
-
Cross-Site Scripting (XSS): Infogning av skadlig skriptkod på webbplatser, vilket kan påverka användare som besöker sidan.
-
Insecure Deserialization: När en applikation deserialiserar data från opålitliga källor, vilket kan leda till exekvering av skadlig kod.
-
Directory Traversal: Utnyttjande av sårbarheter för att få åtkomst till filer och kataloger utanför den avsedda katalogstrukturen.
Se referenserna nedan för en mer omfattande lista över olika typer av sårbarheter som organisationen OWASP sammanställt.
Bedömning av sårbarheters allvarlighetsgrad: CVSS och EPSS
För att effektivt hantera sårbarheter är det viktigt att kunna bedöma deras allvarlighetsgrad och sannolikhet för utnyttjande.
Två etablerade system för detta är Common Vulnerability Scoring System (CVSS) och Exploit Prediction Scoring System (EPSS).
Common Vulnerability Scoring System (CVSS)
CVSS är ett standardiserat ramverk som ger en poäng mellan 0 och 10 baserat på sårbarhetens egenskaper, såsom hur den kan utnyttjas och vilken påverkan den har på systemets konfidentialitet, integritet och tillgänglighet.
Denna poäng hjälper organisationer att förstå sårbarhetens potentiella påverkan och prioritera åtgärder därefter.
Allvarlighetsgrad | Poängintervall |
---|---|
Ingen | 0,0 |
Låg | 0,1–3,9 |
Medel | 4,0–6,9 |
Hög | 7,0–8,9 |
Kritisk | 9,0–10,0 |
Exploit Prediction Scoring System (EPSS)
EPSS är ett system som använder maskininlärning och realtidsdata för att förutsäga sannolikheten för att en sårbarhet kommer att utnyttjas.
EPSS kompletterar CVSS genom att ge insikt i vilka sårbarheter som är mest troliga att bli utnyttjade i verkligheten, vilket hjälper till att ytterligare prioritera åtgärder.
Genom att kombinera information från både CVSS och EPSS kan organisationer få en mer heltäckande bild av sårbarheters riskprofil och därmed effektivisera sina säkerhetsåtgärder.
Åtgärdande av sårbarheter genom patchar
När en sårbarhet identifieras är det viktigt att snabbt implementera korrigerande åtgärder, ofta i form av patchar eller uppdateringar, för att förhindra potentiella attacker.
Eftersom nya sårbarheter ständigt upptäcks är det avgörande att ha automatiserade processer för att kontinuerligt övervaka, identifiera och åtgärda dessa svagheter.
Genom att automatisera denna process kan organisationer säkerställa att deras system förblir skyddade mot både kända och nyupptäckta hot.
Hot och risker i samband med sårbarheter
Ett hot är en potentiell händelse eller aktör som kan utnyttja en sårbarhet för att orsaka skada på ett system eller en organisation. Det kan vara allt från en illasinnad hacker till en skadlig programvara.
En risk å andra sidan representerar sannolikheten för att ett hot utnyttjar en sårbarhet och den potentiella påverkan det kan ha. Risk bedöms genom att analysera både sannolikheten för utnyttjande och konsekvenserna av en sådan händelse.
Genom att förstå sambandet mellan sårbarheter, hot och risker kan organisationer bättre prioritera sina säkerhetsinsatser och resurser.
Prioritering och hantering av sårbarheter
Att hantera sårbarheter effektivt kräver en strukturerad metod för att identifiera, bedöma och prioritera dem.
Genom att använda verktyg som SBOM:ar (Software Bill of Materials) kan organisationer få en detaljerad inventering över sina mjukvarukomponenter och deras beroenden, vilket underlättar sårbarhetshantering.
Prioritering av sårbarheter
För att säkerställa att de mest kritiska sårbarheterna åtgärdas först är det viktigt att:
- Bedöma sårbarhetens allvarlighetsgrad: Använd standardiserade ramverk som CVSS (Common Vulnerability Scoring System) för att kvantifiera sårbarhetens potentiella påverkan.
- Utvärdera sannolikheten för utnyttjande: Verktyg som EPSS (Exploit Prediction Scoring System) hjälper till att förutsäga sannolikheten för att en sårbarhet kommer att utnyttjas inom en viss tidsram.
- Analysera affärspåverkan: Överväg hur en sårbarhet kan påverka verksamhetens kontinuitet, särskilt i system som hanterar känslig information eller är affärskritiska.
Patch Management
En proaktiv patchhantering är avgörande för att minska risken för attacker. Genom att regelbundet uppdatera mjukvarukomponenter kan kända sårbarheter åtgärdas innan de utnyttjas.
Automatiserade verktyg kan övervaka system och identifiera vilka patchar som behöver appliceras, vilket effektiviserar processen och minskar mänskliga fel.
Koppling mellan SBOM och specifika miljöer
SBOM:ar ger en detaljerad förteckning över alla komponenter i en mjukvara, inklusive deras versioner. Genom att ha systemstöd för att koppla SBOM:ar till specifika miljöer kan organisationer:
- Spåra komponenter i olika system: Förstå exakt vilka komponenter som finns i vilka miljöer, såsom produktions- eller testmiljöer.
- Prioritera åtgärder baserat på miljö: Sårbarheter i produktionssystem som hanterar känslig information bör prioriteras högre än de i testsystem.
- Förenkla efterlevnad och rapportering: Ha en tydlig översikt över mjukvarans sammansättning för att underlätta vid revisioner och säkerställa efterlevnad av regelverk.
Ovanstående gör att organisationer snabbt kan svara på de kritiska frågor som uppstår vid upptäckten av nya sårbarheter:
- Är vi påverkade?
- Vilka system och miljöer berörs?
- Behöver vi agera omedelbart?
Genom att kombinera detaljerad information från SBOM:ar med en strukturerad patchhanteringsprocess kan organisationer inte bara effektivt identifiera, prioritera och åtgärda sårbarheter – de får också en tydlig överblick över riskexponering i olika miljöer, vilket stärker deras övergripande resiliens mot attacker.
Hur hanteras och publiceras sårbarheter?
För att förstå hur sårbarheter hanteras och publiceras är det viktigt att känna till de olika aktörerna och stegen i processen.
Nedan beskrivs viktiga termer och hur en sårbarhet går från upptäckt till publicering och berikning.
Viktiga begrepp i sårbarhetshantering
-
CVE (Common Vulnerabilities and Exposures): Ett unikt identifieringssystem för kända sårbarheter i mjukvara och hårdvara.
Varje sårbarhet som upptäcks tilldelas en CVE-identifikator, vilket underlättar spårning och hantering av säkerhetsproblem.
-
CNA (CVE Numbering Authorities): Organisationer som är auktoriserade att identifiera och tilldela CVE-identifikatorer till sårbarheter.
Dessa kan vara mjukvaruleverantörer, forskningsinstitutioner eller andra säkerhetsorganisationer.
När en sårbarhet upptäcks rapporteras den till en relevant CNA, exempelvis en mjukvaruleverantör eller en säkerhetsorganisation, som granskar informationen och, om den uppfyller kriterierna, tilldelar en CVE-identifikator.
-
NIST:s roll: National Institute of Standards and Technology (NIST) ansvarar för att underhålla National Vulnerability Database (NVD), en omfattande databas över kända sårbarheter.
Efter att en sårbarhet har fått en CVE-identifikator från en CNA, publiceras den i NVD. Här berikas sårbarheten med ytterligare information, såsom CVSS-poäng (Common Vulnerability Scoring System), CWE-kategorier (Common Weakness Enumeration) och CPE-namn (Common Platform Enumeration), vilket hjälper organisationer att förstå sårbarhetens allvarlighetsgrad och vilka system som påverkas.
-
Berikning (Enrichment): Efter att en sårbarhet har publicerats i NVD genomgår den en berikningsprocess där ytterligare detaljer läggs till.
Detta inkluderar att tilldela CVSS-poäng för att bedöma sårbarhetens allvarlighetsgrad, kategorisera sårbarheten med en CWE (Common Weakness Enumeration) och associera relevanta CPE-namn (Common Platform Enumeration) för att identifiera vilka produkter som påverkas.
Denna process säkerställer att organisationer har all nödvändig information för att hantera sårbarheten effektivt.
-
CPE (Common Platform Enumeration): Ett standardiserat system för att namnge och identifiera mjukvaru- och hårdvaruprodukter.
Genom att använda CPE-namn kan organisationer snabbt avgöra om en specifik produkt påverkas av en sårbarhet.
Det är viktigt att CNAs inkluderar korrekta CPE-namn när de rapporterar sårbarheter för att underlätta denna process.
-
CWE (Common Weakness Enumeration): Ett system för att kategorisera och identifiera vanliga typer av svagheter i mjukvara.
Genom att associera en sårbarhet med en specifik CWE-kategori kan organisationer bättre förstå dess natur och vidta lämpliga åtgärder.
Hur ser processen ut?
- Upptäckt och rapportering: En säkerhetsforskare, leverantör eller annan part identifierar en potentiell sårbarhet och rapporterar den till en CNA, exempelvis en mjukvaruleverantör eller en säkerhetsorganisation.
- Granskning och CVE-tilldelning: CNA granskar rapporten och, om sårbarheten uppfyller kriterierna, tilldelas den en CVE-identifikator.
- Publicering i CVE-databasen: När en CVE har tilldelats publiceras den officiellt i CVE-databasen, ofta utan fullständig metadata.
- Berikning i NVD: NVD, underhållen av NIST, hämtar CVE-information och kompletterar den med ytterligare data som CVSS-poäng, CPE-namn och CWE-kategorier.
- Tillgänglighet för säkerhetsteam: När sårbarheten har berikats blir den mer användbar för säkerhetsteam och organisationer, vilket gör det möjligt att identifiera påverkan och vidta åtgärder.
Utmaningar och kommande förändringar
Under 2024 uppstod problem med berikningsprocessen i NVD, vilket ledde till att många sårbarheter publicerades utan fullständig metadata, såsom CVSS-poäng och CPE-namn. Detta skapade svårigheter för organisationer att bedöma och hantera dessa sårbarheter.
För att förbättra processen har det föreslagits att CNAs inkluderar mer detaljerad information vid rapporteringen, bland annat korrekta CPE-namn, så att sårbarheter från början publiceras med all nödvändig metadata.
Dessutom pågår diskussioner om att införa nya identifieringssystem, såsom Package URLs (purl), för att komplettera eller i vissa fall ersätta CPE och förbättra noggrannheten i produktidentifieringen.
Package URLs (purl) är utformade för att entydigt identifiera mjukvarupaket och kan potentiellt ge en mer exakt identifiering än CPE. Det är dock viktigt att understryka att detta ännu inte är en officiell standard – det är för närvarande bara under diskussion inom säkerhets- och utvecklingscommunityt.