Software composition analysis (SCA)
Også kendt som: SCA
Automatisk tjek af de eksterne biblioteker, et program er bygget af, for kendte fejl og licensproblemer.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En værktøjsdrevet metode, der lister alle eksterne biblioteker, et program bruger, også dem, bibliotekerne selv bruger, sammenligner hvert navn og hver version med offentlige CVE-lister og licensregler og rapporterer, hvad der skal opdateres eller udskiftes.
Forklaret enkelt
Som en fødevarekontrollant, der læser etiketten på hver ingrediens, et bageri køber ind, og tjekker den mod listen over tilbagekaldte varer.
I praksis
En udvikler i et revisionsfirma tilføjer et nyt bibliotek til firmaets kundeportal; CI/CD-pipelinen kører SCA, finder en kendt alvorlig sårbarhed i netop den version og blokerer ændringen, indtil hun vælger en rettet version.
Hvorfor det betyder noget
Det meste af koden i en moderne app er skrevet af fremmede; uden dette tjek kan ét gammelt bibliotek stille åbne et hul, som angribere allerede ved, hvordan de udnytter.
Teknisk uddybning
Et SCA-værktøj arbejder i tre trin. Opdagelse opbygger fortegnelsen over afhængigheder ved at læse manifester og helst lockfiler (package-lock.json, poetry.lock, go.sum, Cargo.lock, pom.xml opløst via Maven), opløse hele den transitive graf og - for kompilerede artefakter eller container-images - tage fingeraftryk af binærer, JAR-filer og styresystempakker. Identifikation kobler hver komponent til en kanonisk identifikator, i dag som regel en Package URL (purl) og undertiden en CPE. Matchning sammenligner navn og version med sårbarhedskilder som NVD (CPE-baseret), OSV.dev (økosystemets egne versionsintervaller samlet fra GitHub Security Advisories, PyPA, RustSec, Go m.fl.) og leverandørfeeds samt med licensdata udtrykt som SPDX-licensidentifikatorer. Resultatet er ofte en SBOM plus fund, og derfor overlapper SCA- og SBOM-værktøjer i stigende grad.
Præcisionen begrænses af identifikationen. CPE-matchning giver falske positiver (en CVE for et produkt med et lignende navn) og oversete fund (en komponent, der aldrig har fået en CPE), og NVD's efterslæb med berigelse siden begyndelsen af 2024 efterlod mange CVE'er uden CPE-data i måneder, hvilket har skubbet værktøjerne mod økosystemspecifikke advisories i OSV-stil. Projekter uden lockfil giver kun versionsintervaller, så scanneren må gætte, hvad der bliver installeret; vendoreret, shadet eller statisk linket kode undslipper manifestbaseret scanning helt.
Prioritering adskiller brugbare programmer fra støjende. En sårbar funktion kan ofte ikke nås fra applikationens kaldgraf, så moderne værktøjer tilføjer reachability-analyse; sandsynligheden for udnyttelse (EPSS), optagelse i CISA's katalog over Known Exploited Vulnerabilities og leverandørers VEX-erklæringer indsnævrer listen yderligere. Afhjælpning automatiseres med pull requests fra Dependabot eller Renovate, der løfter versioner, men transitive rettelser kan kræve overrides eller at vente på en mellemliggende vedligeholder. Licensanalyse markerer stærke copyleft-vilkår (GPL, AGPL) i software, der distribueres eller eksponeres over netværk, og manglende krav om kildeangivelse.
SCA er også vokset fra matchning af kendte sårbarheder til trusler i forsyningskæden: detektion af typosquattede eller nyudgivne ondsindede pakker, dependency confusion (demonstreret offentligt af Alex Birsan i 2021, hvor interne pakkenavne blev registreret i offentlige registries), installationsscripts, der kører ved npm install, og forladte projekter uden vedligeholder. OWASP rangerede "Vulnerable and Outdated Components" som A06 i Top 10:2021, og 2025-udgaven udvidede kategorien til "Software Supply Chain Failures" som A03:2025. SCA adskiller sig fra SAST, der analyserer egen kildekode for kodefejl, og fra scanning af container-images, der anvender samme matchning på styresystempakker i et image; det er en form for sårbarhedsscanning rettet mod tredjepartskomponenter frem for kørende værter.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Softwareforsyningskæde
- →Trussel
- →Sårbarhed
- →CVE og CVSS
- →Software composition analysis (SCA)
Relationer
- En slags
- Sårbarhedsscanning
- Forudsætter
- SoftwareforsyningskædeCVE og CVSS
- Bruges sammen med
- AI-kodeassistentCI/CDPipelineSoftwarestykliste (SBOM)
Kilder og videre læsning
Opslagsværker
- OWASP - Component Analysis · OWASP Foundation
- OWASP Dependency-Check · OWASP Foundation
- OWASP Top 10:2025 · OWASP Foundation
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…